إنشاء ملف PDF معقد
Contents
[
Hide
]
ال مرحبًا بالعالم أظهر المثال خطوات بسيطة لإنشاء مستند PDF باستخدام Python و Aspose.PDF. في هذه المقالة، سنلقي نظرة على إنشاء مستند أكثر تعقيدًا باستخدام Aspose.PDF لـ Python. على سبيل المثال، سنأخذ مستندًا من شركة وهمية تدير خدمات عبّارات الركاب. سوف تحتوي وثيقتنا على صورة وشظيتين نصيتين (رأس وفقرة) وجدول.
إذا قمنا بإنشاء مستند من البداية، فنحن بحاجة إلى اتباع خطوات معينة:
- قم بإنشاء مثيل مستند كائن. في هذه الخطوة، سننشئ مستند PDF فارغًا مع بعض البيانات الوصفية ولكن بدون صفحات.
- إضافة صفحة إلى كائن المستند. لذلك، ستحتوي وثيقتنا الآن على صفحة واحدة.
- إضافة صورة إلى الصفحة.
- قم بإنشاء جزء من النص لرأس الصفحة. بالنسبة للرأس، سنستخدم خط Arial بحجم الخط 24pt والمحاذاة المركزية.
- إضافة رأس إلى الصفحة فقرات.
- قم بإنشاء جزء من النص للحصول على وصف. بالنسبة للوصف، سنستخدم خط Arial بحجم الخط 24pt والمحاذاة المركزية.
- أضف وصفًا إلى فقرات الصفحة.
- جدول الإنشاء والتصميم. قم بتعيين عرض العمود والحدود والحشو والخط.
- إضافة جدول إلى الصفحة فقرات.
- احفظ مستندًا “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")