Click or drag to resize

PDF 문서 생성

PdfDocument 오브젝트를 사용해 간단히 PDF 문서를 정의하고 생성할 수 있습니다. PDF 본문은 HTML로 기반으로 생성되므로 HTML 문서만 제작되어 있다면 간단하게 PDF 문서를 생성할 수 있습니다.

PdfDocument 오브젝트는 HTML을 입력으로 받고, 몇몇 PDF 속성 값을 지정한 후 PDF Builder로 PDF 생성 요청을 보냅니다. PDF Builder는 PDF 문서를 생성하고 그 결과를 PdfDocument 오브젝트로 반환합니다.

PDF 문서 정의하기

PdfDocument 오브젝트를 생성한 후 프로퍼티에 값을 지정해 PDF 문서를 정의할 수 있습니다. 가장 기본이되는 프로퍼티는 BodyHtml로 PDF 본문으로 사용될 HTML 문서를 지정하는 프로퍼티입니다. 다음 코드는 서버에 저장되어 있는 content.htm 파일을 읽어 BodyHtml에 지정하는 예제입니다. LoadTextFromFile 메서드는 htm 파일과 같은 텍스트 파일에서 데이터를 읽어 문자열로 반환하는 보조 메서드입니다. 서버 언어 설정과 HTML 문서의 문자셋 충둘 문제를 피하기 위해서는 HTML 작성시 utf-8로 작성하고 utf-8+BOM 형식으로 저장하는 것이 좋습니다.

ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.BodyHtml = pdfDoc.LoadTextFromFile("C:\Template\content.htm")

PDF 문서 첫 페이지로 표지를 사용하기를 원한다면 CoverHtml 프로퍼티에 표지용 HTML을 명시할 수 있습니다. 사용될 용지 크기는 PageSize (또는 PageWidthPageHeight)를 사용해 지정할 수 있습니다.

ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.CoverHtml = pdfDoc.LoadTextFromFile("C:\Template\cover.htm")
pdfDoc.BodyHtml = pdfDoc.LoadTextFromFile("C:\Template\content.htm")
pdfDoc.PageSize = "A4"
HTTP URL 기반으로 PDF 문서 정의하기

BodyHtml 프로퍼티에는 HTML 문서 대신 HTML을 반환하는 HTTP URL을 지정할 수 있습니다. URL이 지정될 경우 해당 페이지를 랜더링한 후 PDF로 변환하게 됩니다. URL은 반드시 http:// 또는 https://로 지정되어야 하며, PDF 문서에 한글이 올바르게 출력되기 위해서는 웹페이지는 반드시 utf-8로 제작되어야 합니다.

ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.BodyHtml = "http://www.tabslab.com/"
Note Note

탭스 업로드 버전 4.7.3 이후부터 사용 가능한 기능입니다.

웹페이지 내에 명시되어 있는 링크는 반드시 http://(https://)로 시작하는 완전한 URL이어야 합니다. 내부적으로 임시 폴더에 다운로드한 후 PDF 변환이 이루어지므로 상대 경로가 지정되어 있을 경우 로컬 디스크 내의 위치를 가리키게 되므로 정상적인 링크로 처리되지 않습니다.

PDF 생성과 저장

PDF 문서 정의를 마쳤다면 실질적인 PDF 문서 생성을 담당하는 PDF Builder 서비스와 연결할 필요가 있습니다. Connect 메서드를 호출해 PDF Builder 서비스와 연결합니다. 연결에 실패했다면 PDF Builder 서비스 시작하기 문서를 참조해 서비스가 준비되어 있는지 확인합니다. 연결에 성공했다면 Write 메서드를 호출해 PDF 문서를 생성합니다. PDF 생성을 마쳤다면 Close 메서드를 호출해 연결을 종료하고 사용한 리소스를 반환합니다.

ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.CoverHtml = pdfDoc.LoadTextFromFile("C:\Template\cover.htm")
pdfDoc.BodyHtml = pdfDoc.LoadTextFromFile("C:\Template\content.htm")
pdfDoc.PageSize = "A4"

If pdfDoc.Connect(19975, 30) Then
    retCode = pdfDoc.Write("C:\result\output.pdf")
    If retCode = 0 Then
        Response.Write "<p>PDF 문서가 성공적으로 생성되었습니다.</p>"
    Else
        Response.Write "<p>PDF 문서를 생성하는데 실패하였습니다. 오류 코드: " & retCode & "</p>"
    End If
    pdfDoc.Close
Else
    Response.Write "<p>PDF 서버로 연결할 수 없습니다</p>"
End If

목차(TOC) 페이지 생성

PDF 문서에 목차 페이지를 추가하기 위해서는 본문 HTML을 추가하는 방법으로 BodyHtml 대신 AddTocHtml 메서드를 사용해야 합니다. 목차 정보는 별도로 정의하지 않고 HTML 문서의 H 태그 값이 목차로 구성됩니다.

toc.htm
<body topmargin="0">
  <h1>H1-1</h1>
  <p>h1-1 내용</p>

  <h2>H2-1</h2>
  <p>h2-1 내용</p>

  <h2>H2-2</h2>
  <p>h2-2 내용</p>

  <h1>H1-2</h1>
  <p>h1-2 내용</p>

  <h1>H1-3</h1>
  <p>h1-3 내용</p>
</body>
ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.AddTocHtml pdfDoc.LoadTextFromFile("C:\Template\toc.htm")
pdfDoc.TocHeaderText = "목 차"

위와 같은 toc.htm 문서와 AddTocHtml 메서드를 사용해 PDF 문서를 구성하면 아래 그림과 같은 목차 페이지가 자동으로 생성됩니다.

toc

TOC 페이지 생성을 원치 않는다면 AddTocHtml 메서드가 아닌 BodyHtml을 사용해 HTML 본문을 지정하면 됩니다.

책갈피 생성

책갈피 역시 목차와 동일하게 HTML 문서의 H 태그 값을 사용해 구성됩니다. 아래 코드와 같이 Outline 프로퍼티에 true 값을 지징하면 책갈피가 구성되어 PDF Reader에 함께 출력됩니다.

ASP
Set pdfDoc = Server.CreateObject("TABS.PdfDocument")
pdfDoc.AddTocHtml pdfDoc.LoadTextFromFile("C:\Template\toc.htm")
pdfDoc.TocHeaderText = "목 차"
pdfDoc.Outline = True

outline