Aspose.PDF FOSS for Python Functies

Aspose.PDF FOSS for Python Functies

Aspose.PDF FOSS voor Python Functies

Aspose.PDF FOSS voor Python is een pure-Python bibliotheek voor het maken, openen, wijzigen en opslaan van PDF-documenten. Deze pagina geeft een overzicht van de belangrijkste capaciteitsgebieden en de klassen die als toegangspunten dienen. Elk gebied wordt uitgebreid behandeld op een eigen ontwikkelaarsgids-pagina.


Document- en paginabeheer

Document is het root-object voor elke bewerking. Construeer het zonder argumenten om een nieuw, leeg document te starten, of roep load_from() aan om een bestaand document te lezen vanaf een pad, bytes of stream. document.pages maakt de mutabele PageCollection beschikbaar, en Page.add_text plaatst gepositioneerde tekst op een pagina.

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")

Tekstextractie en zoeken

PdfExtractor bindt zich aan een document en haalt tekst pagina voor pagina op. bind_pdf() opent de bron, extract_text() voert de extractie uit, en get_text() retourneert het opgehoopte resultaat.

from aspose_pdf import PdfExtractor

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

Voor gepositioneerd, per-fragment zoeken en vervangen, exposeert TextFragmentAbsorber overeenkomende TextFragment-objecten met text_search_options die de hoofdlettergevoeligheid en reguliere-expressie-matching regelen.


Pagina renderen naar afbeeldingen

Document.save_page_as_image rendert een enkele pagina direct naar een PNG- of TIFF-bestand met een configureerbare DPI. Voor toegang op lager niveau retourneert Page.render een RasterizedPage met ruwe pixelgegevens via get_pixel() en pixels.

from aspose_pdf import Document

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

Formulieren en interactieve velden

AcroForm velden worden beheerd via Document.form, een Form façade. Form.add_text_field() (en de checkbox, radio, list en combo box equivalenten) maakt een nieuw veld aan dat gekoppeld is aan een pagina en een widgetrechthoek, en retourneert een Field. Form.fields geeft een lijst weer van elk veld dat momenteel in het document aanwezig is.

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")

Beveiliging, versleuteling en handtekeningen

Document.encrypt beschermt een document met een gebruikerswachtwoord (nodig om het te openen) en een eigenaarwachtwoord (nodig om permissies te wijzigen); decrypt() en change_passwords() beheren de beveiliging van een reeds geopend document. is_encrypted rapporteert de huidige status.

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")

Digitale handtekeningverificatie wordt afgehandeld door PdfSignature.validate, die een ValidationResult retourneert die vertrouwen- en intrekkingsstatus beschrijft, en SigningUtils biedt certificaat- en PKCS#7/CAdES-ondertekeningshulpmiddelen.


PDF/A en PDF/UA naleving

Document.validate_pdfa voert een heuristische PDF/A nalevingscontrole uit en retourneert een PdfAValidationResult; convert_to_pdfa() probeert het document naar dat niveau te herstellen. validate_pdfua() en auto_tag() bieden de gelijkwaardige toegankelijkheidscontrole en automatische structuurboom-tagging voor 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")

Tips en best practices

  • Wijzig het object dat rechtstreeks wordt geretourneerd door document.pages, page.annotations of document.form — bewerkingen die op een aparte kopie van een pagina of veld worden gemaakt, worden niet weerspiegeld wanneer je save() aanroept.
  • PageCollection is nul-geïndexeerd in deze Python binding (document.pages[0] is de eerste pagina).
  • Vang InvalidPasswordException en PdfParseException op vóór de bredere AsposePdfException bij het aanroepen van load_from() op niet-vertrouwde invoer, zodat je anders kunt reageren op een slecht wachtwoord dan op een beschadigd bestand.
  • Roep document.optimize() of compress_streams() aan vóór save() op sterk bewerkte documenten om ongebruikte bronnen te verwijderen en de bestandsgrootte te verkleinen.
  • Geef een begrensde PdfLoadLimits door aan load_from() bij het verwerken van PDF’s van een niet-vertrouwde bron, om het geheugen- en objectaantal tijdens het parseren te beperken.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
save() produceert een bestand met ongewijzigde bewerkingenEr zijn bewerkingen uitgevoerd op een pagina, annotatie of veldkopie in plaats van op het object verkregen van document.pages, annotations of formPas het object aan dat direct door die collecties wordt geretourneerd
InvalidPasswordException op load_from()Het document is beveiligd met een wachtwoord en er is geen wachtwoord opgegeven, of het opgegeven wachtwoord is onjuistVoer het juiste wachtwoord in: document.load_from(path, password="...")
validate_pdfa() meldt nog steeds een lettertypefout na convert_to_pdfa()Er is geen overeenkomend lettertypebestand gevonden in de opgegeven font_lookup_directoryVoeg het ontbrekende lettertype toe aan de zoekmap, of registreer het bij FontRepository vóór het converteren
Gerenderde afbeelding lijkt leegVerkeerde pagina-index doorgegeven aan save_page_as_image() of render()pages is nul-indexed — bevestig de index en controleer of PdfExtractor überhaupt tekst retourneert voor die pagina
Veld toegevoegd met Form.add_text_field() verschijnt niet op de paginaDe widgetrechthoek valt buiten de media_box van de paginaBevestig dat de rechthoekcoördinaten binnen Page.media_box liggen

FAQ

Is Aspose.PDF FOSS voor Python afhankelijk van een commerciële PDF-engine?

Nee. Het is een vanaf nul gebouwde, pure-Python PDF-engine die is uitgebracht onder de MIT-licentie. De enige runtime-afhankelijkheden zijn cryptography en asn1crypto, gebruikt voor encryptie en handtekeningverificatie.

Kan ik een PDF vanaf nul bouwen in plaats van een bestaande te openen?

Ja. Document() zonder argumenten maakt een leeg, in-memory document; roep document.pages.add() aan om pagina’s toe te voegen vóór het opslaan.

Naar welke rasterformaten kan ik een pagina renderen?

Page.render en Document.save_page_as_image produceren PNG- of TIFF-rasteroutput; de geretourneerde RasterizedPage geeft ook ruwe pixelgegevens weer via get_pixel() en de pixels-eigenschap.

Welke uitzondering moet ik vangen voor pakketspecifieke fouten?

Vang AsposePdfException. Elke pakketspecifieke fout — inclusief parseren (PdfParseException), wachtwoord en encryptie (PdfSecurityException, InvalidPasswordException), en validatie (PdfValidationException) — is hiervan afgeleid.

Waar ga ik daarna naartoe?

Getting Started behandelt installatie, licenties en een eerste werkend voorbeeld. Deze ontwikkelaarsgids gaat verder met documentbeheeronderwerpen zoals formulieren, ingebedde bestandsbijlagen, lettertype-ontdekking en het maken van outlines/bladwijzers.


API Reference Samenvatting

Klasse/MethodeBeschrijving
DocumentRootobject — maak, laad, sla op en beheer een PDF
Document.pagesHet mutabele PageCollection van het document
Document.load_from / Document.saveLezen van of schrijven naar een pad, bytes of stream
Document.encrypt / Document.decryptWachtwoordbeveiliging toepassen of beveiliging verwijderen
Document.validate_pdfa / Document.convert_to_pdfaHeuristische PDF/A nalevingscontrole en conversie
Document.validate_pdfua() / Document.auto_tagPDF/UA toegankelijkheidscontrole en structuur-auto-tagging
Page.add_textVoeg gepositioneerde tekst toe aan een pagina
Page.renderRender een pagina naar een RasterizedPage
PdfExtractorExtraheer paginatekst en ingesloten bijlagen
PdfFileEditorPagina’s samenvoegen, splitsen, invoegen en verwijderen over bestanden heen
Form / FieldAcroForm container en individuele formuliervelden
PdfSignature / SigningUtilsValidatie en creatie van digitale handtekeningen
AsposePdfExceptionBasisklasse voor elke packagespecifieke uitzondering

Zie ook

 Nederlands