Aspose.PDF FOSS for Python Функції

Aspose.PDF FOSS for Python Функції

Aspose.PDF FOSS for Python Функції

Aspose.PDF FOSS for Python — це чиста-Python бібліотека для створення, відкриття, модифікації та збереження PDF-документів. Ця сторінка оглядає основні області можливостей та класи, які слугують їхніми точками входу. Кожна область докладно розглядається на окремій сторінці посібника розробника.


Керування документом і сторінками

Document є кореневим об’єктом для кожної операції. Створіть його без аргументів, щоб розпочати новий порожній документ, або викличте load_from(), щоб прочитати існуючий з шляху, байтів або потоку. document.pages надає доступ до змінного PageCollection, а Page.add_text розміщує позиційний текст на сторінці.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Витяг тексту та пошук

PdfExtractor прив’язується до документа і витягує текст сторінка за сторінкою. bind_pdf() відкриває джерело, extract_text() виконує витяг, а get_text() повертає накопичений результат.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Для позиційного пошуку та заміни за фрагментом TextFragmentAbsorber надає доступ до відповідних об’єктів TextFragment з text_search_options, що керує чутливістю до регістру та відповідністю регулярним виразам.


Відображення сторінок у зображення

Document.save_page_as_image рендерить одну сторінку безпосередньо у файл PNG або TIFF з налаштовуваною роздільною здатністю DPI. Для нижчого рівня доступу Page.render повертає RasterizedPage з необробленими даними пікселів через get_pixel() та pixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Форми та інтерактивні поля

AcroForm поля керуються через Document.form, фасад Form. Form.add_text_field() (а також еквіваленти чекбокса, радіо, списку та комбобокса) створює нове поле, пов’язане зі сторінкою та прямокутником віджету, повертаючи Field. Form.fields перераховує всі поля, що наразі знаходяться в документі.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Безпека, шифрування та підписи

Document.encrypt захищає документ за допомогою пароля користувача (необхідного для відкриття) та пароля власника (необхідного для зміни дозволів); decrypt() і change_passwords() керують захистом вже відкритого документа. is_encrypted повідомляє про поточний стан.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

Перевірка цифрового підпису здійснюється за допомогою PdfSignature.validate, який повертає ValidationResult, що описує статус довіри та відкликання, а SigningUtils надає допоміжні засоби для роботи з сертифікатами та підписами PKCS#7/CAdES.


PDF/A та PDF/UA відповідність

Document.validate_pdfa виконує евристичну PDF/A перевірку відповідності і повертає PdfAValidationResult; convert_to_pdfa() намагається виправити документ до цього рівня. validate_pdfua() і auto_tag() забезпечують еквівалентну перевірку доступності та автоматичне тегування структурного дерева для PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Поради та найкращі практики

  • Змініть об’єкт, що повертається безпосередньо document.pages, page.annotations або document.form — зміни, внесені у окрему копію сторінки або поля, не будуть відображені під час виклику save().
  • PageCollection індексується з нуля у цьому прив’язці Python (document.pages[0] — перша сторінка).
  • Зловіть InvalidPasswordException і PdfParseException до більш широкого AsposePdfException під час виклику load_from() на недовірених вхідних даних, щоб мати можливість реагувати по-різному на неправильний пароль і на пошкоджений файл.
  • Використайте document.optimize() або compress_streams() перед save() у сильно відредагованих документах, щоб видалити невикористані ресурси та зменшити розмір файлу.
  • Передайте обмежений PdfLoadLimits у load_from() під час обробки PDF-файлів з недовіреного джерела, щоб обмежити використання пам’яті та кількість об’єктів під час парсингу.

Поширені проблеми

ПроблемаПричинаВиправлення
save() створює файл з незмінними правкамиПравки були внесені до копії сторінки, анотації або поля, а не до об’єкта, отриманого з document.pages, annotations або formЗмініть об’єкт, який повертається безпосередньо цими колекціями
InvalidPasswordException на load_from()Документ захищений паролем, і не був вказаний пароль або був вказаний неправильнийВведіть правильний пароль: document.load_from(path, password="...")
validate_pdfa() все ще повідомляє про помилку шрифту після convert_to_pdfa()У наданому font_lookup_directory не знайдено відповідного файлу шрифтуДодайте відсутній шрифт до каталогу пошуку або зареєструйте його за допомогою FontRepository перед конвертацією
Відрендерене зображення виглядає порожнімНеправильний індекс сторінки передано до save_page_as_image() або render()pages індексується з нуля — підтвердіть індекс і перевірте, чи PdfExtractor взагалі повертає текст для цієї сторінки
Поле, додане за допомогою Form.add_text_field(), не відображається на сторінціПрямокутник віджету виходить за межі media_box сторінкиПереконайтеся, що координати прямокутника знаходяться в межах Page.media_box

FAQ

Чи залежить Aspose.PDF FOSS для Python від комерційного PDF-движка?

Ні. Це створений з нуля, чистий Python PDF-движок, випущений під ліцензією MIT. Його єдині залежності під час виконання — cryptography та asn1crypto, які використовуються для шифрування та перевірки підпису.

Чи можу я створити PDF з нуля замість відкриття існуючого?

Так. Document() без аргументів створює порожній документ у пам’яті; викличте document.pages.add(), щоб додати сторінки перед збереженням.

У які растрові формати можна вивести сторінку?

Page.render і Document.save_page_as_image генерують растровий вихід у форматах PNG або TIFF; повернутий RasterizedPage також надає необроблені дані пікселів через get_pixel() та властивість pixels.

Яке виключення слід ловити для помилок, специфічних для пакету?

Перехопити AsposePdfException. Кожна помилка, специфічна для пакету, — включаючи розбір (PdfParseException), пароль та шифрування (PdfSecurityException, InvalidPasswordException) та валідацію (PdfValidationException) — походить від неї.

Куди я йду далі?

Getting Started охоплює встановлення, ліцензування та перший робочий приклад. Цей посібник розробника продовжується темами управління документами, такими як форми, вбудовані вкладення файлів, пошук шрифтів і створення контурів/закладок.


API Reference Огляд

Клас/МетодОпис
DocumentКореневий об’єкт — створювати, завантажувати, зберігати та керувати PDF
Document.pagesЗмінна PageCollection документа
Document.load_from / Document.saveЧитати з або записувати у шлях, байти або потік
Document.encrypt / Document.decryptЗахистити паролем або зняти захист
Document.validate_pdfa / Document.convert_to_pdfaЕвристична перевірка відповідності PDF/A та конвертація
Document.validate_pdfua() / Document.auto_tagПеревірка доступності PDF/UA та автоматичне тегування структури
Page.add_textДодати позиціонований текст на сторінку
Page.renderВідобразити сторінку у RasterizedPage
PdfExtractorВитягнути текст сторінки та вбудовані вкладення
PdfFileEditorОб’єднувати, розділяти, вставляти та видаляти сторінки у різних файлах
Form / FieldAcroForm контейнер і окремі поля форми
PdfSignature / SigningUtilsПеревірка та створення цифрового підпису
AsposePdfExceptionБазовий клас для кожного виключення, специфічного для пакету

Дивіться також

 Українська