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.annotationsofdocument.form— bewerkingen die op een aparte kopie van een pagina of veld worden gemaakt, worden niet weerspiegeld wanneer jesave()aanroept. PageCollectionis nul-geïndexeerd in deze Python binding (document.pages[0]is de eerste pagina).- Vang
InvalidPasswordExceptionenPdfParseExceptionop vóór de bredereAsposePdfExceptionbij het aanroepen vanload_from()op niet-vertrouwde invoer, zodat je anders kunt reageren op een slecht wachtwoord dan op een beschadigd bestand. - Roep
document.optimize()ofcompress_streams()aan vóórsave()op sterk bewerkte documenten om ongebruikte bronnen te verwijderen en de bestandsgrootte te verkleinen. - Geef een begrensde
PdfLoadLimitsdoor aanload_from()bij het verwerken van PDF’s van een niet-vertrouwde bron, om het geheugen- en objectaantal tijdens het parseren te beperken.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
save() produceert een bestand met ongewijzigde bewerkingen | Er zijn bewerkingen uitgevoerd op een pagina, annotatie of veldkopie in plaats van op het object verkregen van document.pages, annotations of form | Pas 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 onjuist | Voer 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_directory | Voeg het ontbrekende lettertype toe aan de zoekmap, of registreer het bij FontRepository vóór het converteren |
| Gerenderde afbeelding lijkt leeg | Verkeerde 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 pagina | De widgetrechthoek valt buiten de media_box van de pagina | Bevestig 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/Methode | Beschrijving |
|---|---|
Document | Rootobject — maak, laad, sla op en beheer een PDF |
Document.pages | Het mutabele PageCollection van het document |
Document.load_from / Document.save | Lezen van of schrijven naar een pad, bytes of stream |
Document.encrypt / Document.decrypt | Wachtwoordbeveiliging toepassen of beveiliging verwijderen |
Document.validate_pdfa / Document.convert_to_pdfa | Heuristische PDF/A nalevingscontrole en conversie |
Document.validate_pdfua() / Document.auto_tag | PDF/UA toegankelijkheidscontrole en structuur-auto-tagging |
Page.add_text | Voeg gepositioneerde tekst toe aan een pagina |
Page.render | Render een pagina naar een RasterizedPage |
PdfExtractor | Extraheer paginatekst en ingesloten bijlagen |
PdfFileEditor | Pagina’s samenvoegen, splitsen, invoegen en verwijderen over bestanden heen |
Form / Field | AcroForm container en individuele formuliervelden |
PdfSignature / SigningUtils | Validatie en creatie van digitale handtekeningen |
AsposePdfException | Basisklasse voor elke packagespecifieke uitzondering |