Aspose.PDF FOSS for Python Funktioner

Aspose.PDF FOSS for Python Funktioner

Aspose.PDF FOSS för Python funktioner

Aspose.PDF FOSS för Python är ett pure-Python bibliotek för att skapa, öppna, modifiera och spara PDF-dokument. Den här sidan ger en översikt över de viktigaste funktionsområdena och de klasser som fungerar som deras ingångspunkter. Varje område behandlas utförligt på sin egen utvecklarguide-sida.


Dokument- och sidhantering

Document är rotobjektet för varje operation. Konstruera det utan argument för att starta ett nytt, tomt dokument, eller anropa load_from() för att läsa ett befintligt från en sökväg, bytes eller stream. document.pages exponerar den muterbara PageCollection, och Page.add_text placerar positionerad text på en sida.

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

Textutdrag och sökning

PdfExtractor bindar till ett dokument och drar ut text sida för sida. bind_pdf() öppnar källan, extract_text() utför utdraget, och get_text() returnerar det ackumulerade resultatet.

from aspose_pdf import PdfExtractor

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

För positionerad, per-fragment sökning och ersättning exponerar TextFragmentAbsorber matchade TextFragment-objekt med text_search_options som styr skiftlägeskänslighet och reguljära uttryck-matchning.


Sidrendering till bilder

Document.save_page_as_image renderar en enskild sida direkt till en PNG- eller TIFF-fil med en konfigurerbar DPI. För lägre nivååtkomst returnerar Page.render en RasterizedPage med rå pixeldata via get_pixel() och 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är och interaktiva fält

AcroForm-fält hanteras via Document.form, en Form-fasad. Form.add_text_field() (och motsvarande kryssruta, radioknapp, lista och kombinationsruta) skapar ett nytt fält kopplat till en sida och en widgetrektangel, och returnerar en Field. Form.fields listar alla fält som för närvarande finns i dokumentet.

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

Säkerhet, kryptering och signaturer

Document.encrypt skyddar ett dokument med ett användarlösenord (som behövs för att öppna det) och ett ägarlösenord (som behövs för att ändra behörigheter); decrypt() och change_passwords() hanterar skyddet på ett redan öppnat dokument. is_encrypted rapporterar det aktuella tillståndet.

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

Digital signaturverifiering hanteras av PdfSignature.validate, som returnerar en ValidationResult som beskriver förtroende- och återkallningsstatus, och SigningUtils tillhandahåller certifikat- och PKCS#7/CAdES-signeringshjälpmedel.


PDF/A och PDF/UA efterlevnad

Document.validate_pdfa kör en heuristisk PDF/A efterlevnadskontroll och returnerar en PdfAValidationResult; convert_to_pdfa() försöker åtgärda dokumentet mot den nivån. validate_pdfua() och auto_tag() tillhandahåller den motsvarande tillgänglighetskontrollen och automatisk strukturträd-taggning för 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 och bästa praxis

  • Ändra objektet som returneras direkt av document.pages, page.annotations eller document.form — ändringar som görs i en separat kopia av en sida eller ett fält återspeglas inte när du anropar save().
  • PageCollection är nollindexerad i denna Python-bindning (document.pages[0] är den första sidan).
  • Fånga InvalidPasswordException och PdfParseException innan den bredare AsposePdfException när du anropar load_from() på opålitlig indata, så att du kan reagera annorlunda på ett felaktigt lösenord än på en korrupt fil.
  • Anropa document.optimize() eller compress_streams() innan save() på kraftigt redigerade dokument för att ta bort oanvända resurser och minska filstorleken.
  • Skicka en begränsad PdfLoadLimits till load_from() när du bearbetar PDF:er från en opålitlig källa, för att begränsa minne och objektantal under parsning.

Vanliga problem

ProblemOrsakLösning
save() producerar en fil med oförändrade redigeringarRedigeringar gjordes på en sida, annotation eller fältkopia snarare än objektet som erhölls från document.pages, annotations eller formÄndra objektet som returneras direkt av dessa samlingar
InvalidPasswordException på load_from()Dokumentet är lösenordsskyddat och inget lösenord, eller fel lösenord, angavsAnge det korrekta lösenordet: document.load_from(path, password="...")
validate_pdfa() rapporterar fortfarande ett teckensnittsfel efter convert_to_pdfa()Ingen matchande teckensnittfil hittades i den angivna font_lookup_directoryLägg till det saknade teckensnittet i uppslagskatalogen, eller registrera det med FontRepository innan konvertering
Renderad bild ser tom utFel sidindex skickades till save_page_as_image() eller render()pages är nollindexerad — bekräfta indexet och kontrollera om PdfExtractor returnerar text för den sidan alls
Fältet som lagts till med Form.add_text_field() visas inte på sidanWidget-rectangeln hamnar utanför sidans media_boxBekräfta att rektangelkoordinaterna ligger inom Page.media_box

FAQ

Beror Aspose.PDF FOSS för Python på en kommersiell PDF-motor?

Nej. Det är en från grunden, ren-Python PDF-motor som släpps under MIT-licensen. Dess enda körningsberoenden är cryptography och asn1crypto, som används för kryptering och signaturverifiering.

Kan jag bygga en PDF från grunden istället för att öppna en befintlig?

Ja. Document() utan argument skapar ett tomt, minnesbaserat dokument; anropa document.pages.add() för att lägga till sidor innan du sparar.

Vilka rasterformat kan jag rendera en sida till?

Page.render och Document.save_page_as_image producerar PNG- eller TIFF-rasterutdata; det returnerade RasterizedPage exponerar också rå pixeldata via get_pixel() och egenskapen pixels.

Vilket undantag bör jag fånga för paketspecifika fel?

Fånga AsposePdfException. Varje paket-specifikt fel — inklusive parsning (PdfParseException), lösenord och kryptering (PdfSecurityException, InvalidPasswordException) samt valideringsfel (PdfValidationException) — härrör från det.

Vart går jag härnäst?

Kom igång täcker installation, licensiering och ett första fungerande exempel. Denna utvecklarguide fortsätter med dokumenthanteringsämnen såsom formulär, inbäddade filbilagor, teckensnittsupptäckt och skapande av disposition/bokmärkning.


API Reference Sammanfattning

Klass/MetodBeskrivning
DocumentRotobjekt — skapa, ladda, spara och hantera en PDF
Document.pagesDokumentets mutabla PageCollection
Document.load_from / Document.saveLäs från eller skriv till en sökväg, byte eller ström
Document.encrypt / Document.decryptLösenordsskydda eller ta bort skyddet
Document.validate_pdfa / Document.convert_to_pdfaHeuristisk PDF/A efterlevnadskontroll och konvertering
Document.validate_pdfua() / Document.auto_tagPDF/UA tillgänglighetskontroll och automatisk strukturtaggning
Page.add_textLägg till placerad text på en sida
Page.renderRendera en sida till en RasterizedPage
PdfExtractorExtrahera sidtext och inbäddade bilagor
PdfFileEditorKombinera, dela, infoga och radera sidor i flera filer
Form / FieldAcroForm behållare och individuella formulärfält
PdfSignature / SigningUtilsDigital signaturvalidering och skapande
AsposePdfExceptionBas-klass för varje paket-specifikt undantag

Se även

 Svenska