복잡한 PDF 만들기
Contents
[
Hide
]
더 헬로, 월드 예제에서는 Python과 Aspose.PDF 를 사용하여 PDF 문서를 만드는 간단한 단계를 보여 주었습니다.이 글에서는 Aspose.PDF for Python을 사용하여 좀 더 복잡한 문서를 만드는 방법을 살펴보겠습니다.여객 페리 서비스를 운영하는 가상 회사의 문서를 예로 들어 보겠습니다.문서에는 이미지, 텍스트 조각 2개 (머리글과 단락), 표 한 개가 포함됩니다.
처음부터 문서를 만들려면 특정 단계를 따라야 합니다.
- a 인스턴스화 문서 목적.이 단계에서는 페이지가 없는 일부 메타데이터가 포함된 빈 PDF 문서를 만들 것입니다.
- 추가 페이지 문서 객체에.자, 이제 문서는 한 페이지가 됩니다.
- 추가 이미지 페이지로.
- 만들기 텍스트 프래그먼트 헤더용.헤더에는 글꼴 크기가 24pt이고 가운데 정렬이 적용된 Arial 글꼴을 사용합니다.
- 페이지에 헤더 추가 문단.
- 만들기 텍스트 프래그먼트 설명을 위해.설명에는 글꼴 크기가 24pt이고 가운데 정렬이 적용된 Arial 글꼴을 사용합니다.
- 페이지 단락에 설명을 추가합니다.
- 테이블 만들기 및 스타일 지정열 너비, 테두리, 패딩 및 글꼴을 설정합니다.
- 페이지에 표 추가 문단.
- “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")