Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
PDFIA 통합 MANUALPdfia 라이브러리 사용법 (공통)...........................................................................................................2
Pdfia Component 구성................................................................................................................ 2[필독] 기본절차 안내
C# (ASP.NET, WinForm, WPF) 프로그램에서 Pdfia 를 사용하는 예제..............................................41. 참조(Reference)에 Pdfia 추가.....................................................................................................4
2, 프로젝트 속성 화면에서 빌드탭을 선택한 후 아래와 같이 설정............................................................43. C# Code 예제........................................................................................................................... 5
ASP 에서 Pdfia 를 사용하는 예제.........................................................................................................5COM+ 및 분산 환경 설정.....................................................................................................................6HTML jQuery.getJSON 에서 Pdfia 를 사용하는 예제.......................................................................11Windows Server IIS 설정 방법......................................................................................................14
포트 사용 셋팅 시........................................................................................................................... 16
필독 : 기본적인 Com+방식은 윈도우서버 환경에서만 서비스구성이 가능합니다. 리눅스 등의 타환경의 서버와 서비스 구성을 하시는 경우 기본적으로 pdfia 가 설치된 윈도우서버가 별도로 필요합니다.
PDFIA ver 1.2.0.22 이상일 경우 변환서버에 .NET Framework 4.6.1 필수입니다 .
윈도우서버 서비스 구성후 (별도 DLL 제공 – 평가판 다운로드는 std 만 가능하며, 별도 dll 은 PRO 에 포함되어 있으며, 별도문의가 필요합니다.
Pdfia 라이브러리 사용법 (공통)Pdfia Component 구성
파일명 Component
Interface 설명
PdfiaCore.exe 실제 변환 작업을 담당하는 핵심 모듈
Pdfia.dll PdfiaProxy IPdfiaProxy
PdfiaCore 의 핵심 기능을 호출하는 라이브러 리로써 COM+ 서비스를 통해서 별도의 서버 에서 동작하도록 구성할 수 있음
* 메써드
함수원형 bool ConvertUrl(string url, string saveFilePath);
설명- 인터넷 또는 인트라넷에 존재하는 사이트를 PDF 로 변환하는 함수 - 동기적으로 호출되기 때문에 변환이 완료되면 함수가 반환됨 - 반환값 : 성공 여부
예제 bool success = pdfia.ConvertUrl("http://www.naver.com", “D:\Temp\naver.pdf");
함수원형 bool ConvertHtml(string html, string saveFilePath);
설명- HTML 문자열을 브라우저로 로딩한 결과를 PDF 로 변환하는 함수
- 동기적으로 호출되기 때문에 변환이 완료되면 함수가 반환됨 - 반환값 : 성공 여부
예제bool success = pdfia.ConvertHtml("<html><body><p>Hello world</p></body></ html>", “D:\Temp\test.pdf”);
함수원형 string GetLastError();
설명- ConvertUrl, ConvertHtml 함수 호출 시에 결과 값이 실패를 반환한 경우 오류의 내용을 확인하는 함 수
예제 string errorMessage = pdfia.GetLastError();
* 속성
변수명 데이터 형식 설명
landscapeMode bool - 가로보기 여부(기본값 : false)ex) landscapeMode = true; // 가로보기
margin unsigned short - 여백설정 0 : 기본값 1 : 여백없음 2 : 최소
scale unsigned short - 확대 축소 비율 - 백분율로 설정(기본값 : 100)
delaySecond double - HTML 로딩 완료를 위한 대기 시간(초 단위) (이미지가 제대로 표시되지 않는 경우 대기 시간을 설정할 필요 가 있음)
pageWidth unsigned short - HTML 또는 사이트를 불러올 페이지 너비
pageHeight unsigned short - HTML 또는 사이트를 불러올 페이지 높이
paperType unsigned short - 만들어질 PDF 의 용지 유형0 : Letter (21.59 cm * 27.94 cm)1 : Legal (21.59 cm * 35.56 cm)2 : Executive (18.41 cm * 26.67 cm)3 : A2 (42 cm * 594 cm)4 : A3 (29.7 cm * 42 cm)5 : A4 (21 cm * 29.7 cm) 기본값6 : A5 (14.8 cm * 21 cm)7 : B5 (18.2 cm * 25.7 cm)8 : Envelope #10 (10.48 cm * 24.13 cm)9 : Envelope DL (11 cm * 22 cm)10 : Envelope C5 (16.2 cm * 22.9 cm)11 : Envelope B5 (17.6 cm * 25 cm)12 : Envelope Monarch (9.84 cm * 19.05 cm)13 : A6 (10.5 cm * 14.8 cm)14 : Double Japan Postcard Rotated (14.8 cm * 20 cm)15 : B6 (12.8 cm * 18.2 cm)16 : 16K (19.68 cm * 27.3 cm)
C# (ASP.NET, WinForm, WPF) 프로그램에서 Pdfia 를 사용하는 예제
1. 참조(Reference)에 Pdfia 추가
2, 프로젝트 속성 화면에서 빌드탭을 선택한 후 아래와 같이 설정
3. C# Code 예제
IPdfiaProxy pdfia = new PdfiaProxy();bool success = pdfia.CovertUrl(“http://www.naver.com”, “E:\Temp\naver.pdf”);
ASP 에서 Pdfia 를 사용하는 예제 dim pdfiaObj, success Set pdfiaObj = Server.CreateObject(“Pdfia.PdfiaProxy.1”) success = pdf.ConvertUrl("http://www.naver.com", "E:\Temp\naver.pdf") if success = false then
Response.Write pdfiaObj.GetLastError() else
Response.Write “success” end if
※ 주의할 점
• ASP 또는 ASP.NET 같은 웹 응용프로그램에서 사용되는 경우 반드시 COM+(구성 요소 서비스)에 등록하여 사용해야함.(아래의 COM+ 및 분산 환경 설정 참조)
[기본 install 절차 안내]1. 평가판 zip 압축프로그램을 다운로드받습니다.2. PdfiaSetup(x64)_1.2.0.22 압축해제
3. 해당 PC 또는 서버에 PdfiaSetup(x64)_1.5.0.22.msi 를 설치합니다.
*정식라이센스 신청 및 전환방법은 PDFIA README.201905.docx 를 참고하세요.
COM+ 및 분산 환경 설정 [필수]* 1. 구성 요소 서비스 실행 후 COM+ 응용 프로그램 생성
* 2. 응용 프로그램을 실행할 권한이 있는 사용자 설정 (administrator 권한이나 그에 준한 관리자를 설정)
* 3. 응용 프로그램 등록 후 속성의 보안 탭을 선택한 후 아래와 같이 설정
* 4. 응용 프로그램 생성 후 구성 요소 등록
* 5. 추가 버튼을 누른 후 Pdfia.dll 을 선택한 후 다음을 누르고 설치를 완료
<아래 COM+ 6 번,7 번 절차는 윈도우 서버를 각각 물리적으로 구분하여 구성할 경우 필요한 절차입니다.>
<Json 으로 구성하거나, 윈도우서버가 아닌 타 OS 서버와의 구성에는 아래 절차를 생략해도 됩니다.>
* 6. 다른 서버에서 현재 서버에 설치된 Pdfia 를 호출할 수 있도록 하려면 아래와 같이 응용 프로그램 프록시를 생성됩니다.
* 7. 응용 프로그램 프록시를 생성할 경로 및 파일명을 지정한 후 다음을 눌러 완료
* 생성된 msi 파일과 cab 파일을 다른 서버에 복사한 후 설치 * 설치된 서버에서 Pdfia 라이브러리를 호출하면 리모트 서버의 Pdfia 가 동작하게됨.
주) COM+ 설정까지 완료된 후에 평가판 install 시 설치되는 테스트용 프로그램으로 구동을 꼭 확인하시기 바랍니다.
HTML jQuery.getJSON 에서 Pdfia 를 사용하는 예제
* asp 또는 asp.Net 이 아닌 경우 웹 응용프로그램에서 사용하기 위해 JSON Response 제너릭 핸들러 구성
* Java 또는 PHP 에서 구동 시 Pdfia 가 실행 될 Windows 서버가 필요 . * JavaScript 예제<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">function CallPDFIA(RequestURL) {
// Get 방식은 URL 인코딩이 없으면 특수문자가 반영이 안 됩니다.var pdf_url = encodeURIComponent(RequestURL);
// 아래 주소창에 PDFIA 가 설치되어 있는 URL 정보 또는 Domain 을 입력 하세요.var url = 'http://[URL or Domain]/pdfia.ashx?url=' + pdf_url;$.getJSON(url, function () { })
.done(function (data) {alert("Status : " + data.status + "\nErrorMessage : " + data.errorMessage + "\
nFilePath : " + data.filePath);}).fail(function (xhr, ajaxSetting, throwError) {
alert(xhr.status);});
}</script>* JavaScript 예제 (FileName, FolderName 추가 시)<script src="https://code.jquery.com/jquery-1.10.2.js"></script><script type="text/javascript">
function CallPDFIA(RequestURL, RequestFileName, RequestFolderName) {// Get 방식은 URL 인코딩이 없으면 특수문자가 반영이 안 됩니다.var pdf_url = encodeURIComponent(RequestURL);var pdf_name = encodeURIComponent(RequestFileName);var pdf_folder = encodeURIComponent(RequestFolderName);
// 아래 주소창에 PDFIA 가 설치되어 있는 URL 정보 또는 Domain 을 입력 하세요.// 파일명과 폴더명은 javascript 를 이용하여 따로 만드셔도 됩니다. 다만 폴더명은 URL Encoding 이 반드시
필요합니다.var url = 'http://[URL or Domain]/pdfia.ashx?url=' + pdf_url + '&fileName=' + pdf_name +
'&folderName=' + pdf_folder;$.getJSON(url, function () { })
.done(function (data) {alert("Status : " + data.status + "\nErrorMessage : " + data.errorMessage + "\
nFilePath : " + data.filePath);}).fail(function (xhr, ajaxSetting, throwError) {
alert(xhr.status);});
}</script>
* Request 속성(대소문자 구분)변수명 데이터 형식 설명 필수여부
url String - PDF 변환 할 웹 페이지 URLex) https://www.naver.com
Y
fileName string - PDF 변환 시 저장할 명칭공백일 경우 UID 로 PDF 명 저장확장자 .pdf 필요 없음
N
folderName string - 윈도우 서버 IIS 폴더 하위 Storage 내 신규 폴더 생성을 원할 경우 사용ex) “/folder1”, “/folder1/folder2”
N
landscapeMode string 0 : false (기본값)1 : true
N
margin string 0 : 기본값1 : 여백없음2 : 최소
N
scale string 백분율로 설정(기본값:100) NdelaySecond string 초단위 N
* Response 속성(대소문자 구분)변수명 데이터 형식 설명
status string - 변환 완료 여부0: 성공1: 실패
errorMessage string - 실패 시 서버에서 반환된 에러메세지성공일 경우 null
filePath String - 변환 성공 시 PDFIA 윈도우 서버 내 변환 완료된 경로파일명은 GUID 로 저장
* 결과 값 샘플(JSON)
{ status : 0 , errorMessage : , filePath : http:// [URL or Domain]/Storage/Test.pdf}
* getJSON 참고 사이트https://api.jquery.com/jquery.getjson/
HTML jQuery.ajax 에서 Pdfia 를 사용하는 예제(Post) * asp 또는 asp.Net 이 아닌 경우 웹 응용프로그램에서 사용하기 위해 JSON Response WebAPI 구성
* 기본적으로 Request 와 Response 는 GetJSON 과 동일 합니다.* Java 또는 PHP 에서 구동 시 Pdfia 가 실행 될 Windows 서버가 필요 . * JavaScript 예제
<script src="https://code.jquery.com/jquery-1.10.2.js"></script><script type="text/javascript">
function CallPDFIA(RequestURL, RequestFileName) {var pdf_url = encodeURIComponent(RequestURL);var pdf_name = encodeURIComponent(RequestFileName);
// 아래 주소창에 PDFIA 가 설치되어 있는 URL 정보 또는 Domain 을 입력 하세요.var url = 'http://[URL or Domain]/PDFia';var obj = {};
obj.url = pdf_url; obj.fileName = pdf_name; obj.folderName = ""; obj.landscapeMode = ""; obj.margin = ""; obj.scale = ""; obj.delaySecond = "";
var jsonData = JSON.stringify(obj);
try { $.ajax({ type: "POST" , url: url , contentType:"application/json" , data: jsonData }).done(function (data) { // 성공시 alert("Status : " + data.status + "\nErrorMessage : " + data.errorMessage + "\nFilePath : " + data.filePath); }).error(function (jqXHR, textStatus, errorThrown) { // 실패시 alert("에러 : " + jqXHR.responseText); }); } catch (e) { alert("에러"); } }</script>
* 결과 값 샘플(JSON)
{ status : 0 , errorMessage : , filePath : http:// [URL or Domain]/Storage/Test.pdf}
[아래 항목은 리눅스 등 OS 가 다른 물리적으로 나눠진 서버 간에 연동할 경우 필수적으로 필요한 절차입니다.]
Windows Server IIS 설정 방법 * Winddows Server 설정 시 필수 확인 사항
1. Windows Server 2012 R2 이상 권장 – 2008 R2 이하 버전일 경우 문의 요망
2. 제어판 – PDFIA 1.2.0.22 이상 일 경우 프로그램 도구에서 .NetFramework 4.6.1 이상 설치 여부 확인3. COM+ 분산설정으로 PDFia 설치 여부 확인
4. PDFia 버전이 1.2.0.20 이상인지 확인
* IIS 에 매핑 할 폴더 생성
* 컴파일된 파일을 해당 경로에 붙여 넣기 (해당파일은 PDFIA PRO 에만 포함된 DLL 및 샘플파일입니다 .)* IIS(인터넷 정보 서비스)관리자에서 웹 사이트 추가
* 사이트 이름, 실제 경로, 바인딩 정보 등을 입력
* 사이트 이름은 IIS 에서 표시 될 사이트 명
* 실제 경로는 서버에 PDFIA 웹 프로그램의 설치 경로
* 바인딩 - 종류 : http 기본 설정(PDFIA 는 http 구성이 Default 입니다.)
예제
* 바인딩 - IP 주소 : 서버의 고유 아이피, IPv4 값으로 설정
* 바인딩 - 포트 : 기본 80 포트 사용(포트 사용 시 아래 내용 확인 요망)* 호스트 이름은 미리 설정된 도메인 명을 설정
- 도메인이 없을 경우 포트 설정으로 셋팅 가능
포트 사용 셋팅 시
- 사용 할 포트를 ‘고급 보안이 포함된 Windows 방화벽’ 프로그램의 인바운드 규칙에서 설정
주) 본 IIS 세팅은 일반적인 세팅 절차에다 PDFIA 설정 부분이 약간 가미된 내용이므로, 웹상의 IIS 세팅 절차를 참고하셔도 무방합니다.
* 인바운드 규칙 – 새 규칙 클릭
* 포트 선택
* TCP 선택 / 특정 로컬 포트 선택
- 고객사에서 미리 정의한 포트 입력(예: 10010)
* 연결 허용 선택
* 프로필은 기본 설정으로 선택(전체 선택)
* 이름과 설명을 고객사에 맞게 설정
* 포트 설정이 완료 되면 IIS 에 웹 사이트 추가 화면에서 Port 지정이 가능 합니다.* 포트 지정 시 IP 접속이 가능하며, 호스트 이름에 도메인을 넣어 도메인 매핑도 가능 합니다.
* IIS 셋팅 완료 후 모습
* IIS 관리자 경로
1. 윈도우 서버 관리자 – 도구 – IIS(인터넷 정보 서비스) 관리자 클릭
2. 제어판 - 관리 도구 - IIS(인터넷 정보 서비스) 관리자 클릭
* 고급 보안이 포함된 Windows 방화벽 경로
1. 윈도우 서버 관리자 – 도구 – 고급 보안이 포함된 Windows 방화벽 클릭
2. 제어판 - 관리 도구 - 고급 보안이 포함된 Windows 방화벽 클릭
* IIS 에서 Input IP 제어하는 법
1. PDFia Server 가 Public 일 경우, 연동 할 IP 이외의 접근을 제어하기 위해서는 IIS 에서 IP 설정이 가능 합니다. 2. IIS 셋팅 후 아래와 같이 IP 주소 및 도메인 제한을 클릭 합니다.
3. 아래와 같이 상세 화면의 우측에 기능 설정 편집을 클릭합니다.
4. IP alc 도메인 제한 설정 편집 창에서 지정되지 않은 클라이언트에 대한 액서스를 ‘거부’로 설정 후 저장 합니다.(default : 허용)
5. 허용 할 IP 및 도메인을 설정 합니다.
6. 아래와 같이 허용 된 도메인 또는 IP 만 PDFia 서버에 접근이 가능 합니다.