Aspose.PDF FOSS for Python Funkce
Aspose.PDF FOSS pro Python Funkce
Aspose.PDF FOSS pro Python je čistá-Python knihovna pro vytváření, otevírání, úpravy a ukládání PDF dokumentů. Tato stránka přehledně představuje hlavní oblasti schopností a třídy, které slouží jako jejich vstupní body. Každá oblast je podrobně rozebrána na své vlastní stránce vývojářské příručky.
Správa dokumentů a stránek
Document je kořenový objekt pro každou operaci. Vytvořte jej bez argumentů pro zahájení nového, prázdného dokumentu, nebo zavolejte load_from() pro načtení existujícího z cesty, bajtů nebo proudu. document.pages zpřístupňuje měnitelný PageCollection a Page.add_text umisťuje text na stránku na určených pozicích.
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")Extrahování textu a vyhledávání
PdfExtractor se váže na dokument a postupně získává text stránku po stránce. bind_pdf() otevře zdroj, extract_text() provede extrakci a get_text() vrátí nasbíraný výsledek.
from aspose_pdf import PdfExtractor
extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()Pro vyhledávání a nahrazování na pozicích, po fragmentu, TextFragmentAbsorber zpřístupňuje odpovídající TextFragment objekty s text_search_options, který řídí citlivost na velikost písmen a shodu regulárních výrazů.
Vykreslování stránek do obrázků
Document.save_page_as_image vykresluje jednu stránku přímo do souboru PNG nebo TIFF s nastavitelným DPI. Pro nižší úroveň přístupu Page.render vrací RasterizedPage s nekomprimovanými daty pixelů prostřednictvím get_pixel() a pixels.
from aspose_pdf import Document
document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)Formuláře a interaktivní pole
AcroForm pole jsou spravována přes Document.form, což je Form fasáda. Form.add_text_field() (a ekvivalenty zaškrtávacího políčka, přepínače, seznamu a rozbalovacího seznamu) vytváří nové pole spojené se stránkou a obdélníkem widgetu, vrací Field. Form.fields vypisuje všechna pole, která jsou v dokumentu aktuálně.
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")Zabezpečení, šifrování a podpisy
Document.encrypt chrání dokument uživatelským heslem (nutným k jeho otevření) a heslem vlastníka (nutným ke změně oprávnění); decrypt() a change_passwords() spravují ochranu u již otevřeného dokumentu. is_encrypted hlásí aktuální stav.
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")Ověřování digitálního podpisu zajišťuje PdfSignature.validate, který vrací ValidationResult popisující stav důvěry a odvolání, a SigningUtils poskytuje pomocníky pro certifikáty a podepisování PKCS#7/CAdES.
PDF/A a PDF/UA Soulad
Document.validate_pdfa provádí heuristickou kontrolu shody PDF/A a vrací PdfAValidationResult; convert_to_pdfa() se pokouší dokument opravit na tuto úroveň. validate_pdfua() a auto_tag() poskytují ekvivalentní kontrolu přístupnosti a automatické označování strukturovaného stromu pro 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")Tipy a osvědčené postupy
- Upravte objekt vrácený přímo
document.pages,page.annotationsnebodocument.form— úpravy provedené na samostatné kopii stránky nebo pole se neprojeví, když zavolátesave(). PageCollectionje v tomto svázání Python indexováno od nuly (document.pages[0]je první stránka).- Zachyťte
InvalidPasswordExceptionaPdfParseExceptionpřed širšímAsposePdfExceptionpři voláníload_from()na nedůvěryhodném vstupu, abyste mohli reagovat odlišně na špatné heslo než na poškozený soubor. - Zavolejte
document.optimize()nebocompress_streams()předsave()u silně upravovaných dokumentů, abyste odstranili nepoužívané zdroje a zmenšili velikost souboru. - Předávejte omezený
PdfLoadLimitsdoload_from()při zpracování PDF z nedůvěryhodného zdroje, aby se omezila spotřeba paměti a počet objektů během parsování.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
save() vytváří soubor s nezměněnými úpravami | Úpravy byly provedeny na stránce, anotaci nebo kopii pole místo objektu získaného z document.pages, annotations nebo form | Upravte objekt vrácený přímo těmito kolekcemi |
InvalidPasswordException na load_from() | Dokument je chráněn heslem a nebylo zadáno žádné heslo nebo bylo zadáno špatné heslo | Zadejte správné heslo: document.load_from(path, password="...") |
validate_pdfa() stále hlásí chybu písma po convert_to_pdfa() | V poskytnutém font_lookup_directory nebyl nalezen odpovídající soubor písma | Přidejte chybějící písmo do adresáře pro vyhledávání nebo jej zaregistrujte pomocí FontRepository před konverzí |
| Vykreslený obrázek vypadá prázdně | Byl předán nesprávný index stránky do save_page_as_image() nebo render() | pages je indexováno od nuly — potvrďte index a zkontrolujte, zda PdfExtractor vůbec vrací text pro tuto stránku |
Pole přidané pomocí Form.add_text_field() se na stránce neobjevuje | Obdélník widgetu leží mimo media_box stránky | Potvrďte, že souřadnice obdélníku jsou v rámci Page.media_box |
FAQ
Závisí Aspose.PDF FOSS pro Python na komerčním PDF enginu?
Ne. Jedná se o od základů vytvořený, čistý-Python PDF engine vydaný pod licencí MIT. Jeho jedinými runtime závislostmi jsou cryptography a asn1crypto, používané pro šifrování a ověřování podpisů.
Mohu vytvořit PDF od začátku místo otevření existujícího?
Ano. Document() bez argumentů vytvoří prázdný, paměťový dokument; zavolejte document.pages.add() pro přidání stránek před uložením.
Do jakých rastrových formátů mohu stránku vykreslit?
Page.render a Document.save_page_as_image vytvářejí rastrový výstup PNG nebo TIFF; vrácený RasterizedPage také poskytuje surová data pixelů prostřednictvím get_pixel() a vlastnosti pixels.
Jakou výjimku bych měl zachytit pro chyby specifické pro balíček?
Zachyťte AsposePdfException. Každá chyba specifická pro balíček — včetně parsování (PdfParseException), hesla a šifrování (PdfSecurityException, InvalidPasswordException) a validace (PdfValidationException) — vychází z ní.
Kam mám jít dál?
Getting Started pokrývá instalaci, licencování a první funkční příklad. Tento vývojářský průvodce pokračuje tématy správy dokumentů, jako jsou formuláře, vložené soubory příloh, vyhledávání písem a tvorba osnov/záložek.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
Document | Kořenový objekt — vytvářet, načítat, ukládat a spravovat PDF |
Document.pages | Mutabilní PageCollection dokumentu |
Document.load_from / Document.save | Číst z nebo zapisovat do cesty, bajtů nebo proudu |
Document.encrypt / Document.decrypt | Zaheslovat nebo odstranit ochranu |
Document.validate_pdfa / Document.convert_to_pdfa | Heuristická kontrola shody PDF/A a převod |
Document.validate_pdfua() / Document.auto_tag | Kontrola přístupnosti PDF/UA a automatické tagování struktury |
Page.add_text | Přidat umístěný text na stránku |
Page.render | Vykreslit stránku do RasterizedPage |
PdfExtractor | Extrahovat text stránky a vložené přílohy |
PdfFileEditor | Spojovat, rozdělovat, vkládat a mazat stránky napříč soubory |
Form / Field | AcroForm kontejner a jednotlivá pole formuláře |
PdfSignature / SigningUtils | Validace a tvorba digitálního podpisu |
AsposePdfException | Základní třída pro každou výjimku specifickou pro balíček |