복잡한 PDF 만들기

Contents
[ ]

헬로, 월드 예제에서는 Python과 Aspose.PDF 를 사용하여 PDF 문서를 만드는 간단한 단계를 보여 주었습니다.이 글에서는 Aspose.PDF for Python을 사용하여 좀 더 복잡한 문서를 만드는 방법을 살펴보겠습니다.여객 페리 서비스를 운영하는 가상 회사의 문서를 예로 들어 보겠습니다.문서에는 이미지, 텍스트 조각 2개 (머리글과 단락), 표 한 개가 포함됩니다.

처음부터 문서를 만들려면 특정 단계를 따라야 합니다.

  1. a 인스턴스화 문서 목적.이 단계에서는 페이지가 없는 일부 메타데이터가 포함된 빈 PDF 문서를 만들 것입니다.
  2. 추가 페이지 문서 객체에.자, 이제 문서는 한 페이지가 됩니다.
  3. 추가 이미지 페이지로.
  4. 만들기 텍스트 프래그먼트 헤더용.헤더에는 글꼴 크기가 24pt이고 가운데 정렬이 적용된 Arial 글꼴을 사용합니다.
  5. 페이지에 헤더 추가 문단.
  6. 만들기 텍스트 프래그먼트 설명을 위해.설명에는 글꼴 크기가 24pt이고 가운데 정렬이 적용된 Arial 글꼴을 사용합니다.
  7. 페이지 단락에 설명을 추가합니다.
  8. 테이블 만들기 및 스타일 지정열 너비, 테두리, 패딩 및 글꼴을 설정합니다.
  9. 페이지에 표 추가 문단.
  10. “Complex.pdf” 문서를 저장합니다.
from datetime import timedelta
import aspose.pdf as ap


def run_complex(self):

    # Initialize document object
    document = ap.Document()
    # Add page
    page = document.pages.add()

    # Add image
    imageFileName = self.data_dir + "logo.png"
    page.add_image(imageFileName, ap.Rectangle(20, 730, 120, 830, True))

    # Add Header
    header = ap.text.TextFragment("New ferry routes in Fall 2029")
    header.text_state.font = ap.text.FontRepository.find_font("Arial")
    header.text_state.font_size = 24
    header.horizontal_alignment = ap.HorizontalAlignment.CENTER
    header.position = ap.text.Position(130, 720)
    page.paragraphs.add(header)

    # Add description
    descriptionText = "Visitors must buy tickets online and tickets are limited to 5,000 per day. \
    Ferry service is operating at half capacity and on a reduced schedule. Expect lineups."
    description = ap.text.TextFragment(descriptionText)
    description.text_state.font = ap.text.FontRepository.find_font("Times New Roman")
    description.text_state.font_size = 14
    description.horizontal_alignment = ap.HorizontalAlignment.LEFT
    page.paragraphs.add(description)

    # Add table
    table = ap.Table()

    table.column_widths = "200"
    table.border = ap.BorderInfo(ap.BorderSide.BOX, 1.0, ap.Color.dark_slate_gray)
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.BOX, 0.5, ap.Color.black)
    table.default_cell_padding = ap.MarginInfo(4.5, 4.5, 4.5, 4.5)
    table.margin.bottom = 10
    table.default_cell_text_state.font = ap.text.FontRepository.find_font("Helvetica")

    headerRow = table.rows.add()
    headerRow.cells.add("Departs City")
    headerRow.cells.add("Departs Island")

    i = 0
    while i < headerRow.cells.count:
        headerRow.cells[i].background_color = ap.Color.gray
        headerRow.cells[
            i
        ].default_cell_text_state.foreground_color = ap.Color.white_smoke
        i += 1

    time = timedelta(hours=6, minutes=0)
    incTime = timedelta(hours=0, minutes=30)

    i = 0
    while i < 10:
        dataRow = table.rows.add()
        dataRow.cells.add(str(time))
        time = time.__add__(incTime)
        dataRow.cells.add(str(time))
        i += 1

    page.paragraphs.add(table)

    document.save(self.data_dir + "Complex.pdf")