Aspose.PDF FOSS for Python Funkciók
Aspose.PDF FOSS for Python funkciók
Aspose.PDF FOSS for Python egy tiszta-Python könyvtár PDF dokumentumok létrehozásához, megnyitásához, módosításához és mentéséhez. Ez az oldal áttekinti a fő képességi területeket és az azokhoz tartozó belépési pontként szolgáló osztályokat. Minden terület részletesen ki van dolgozva a saját fejlesztői útmutató oldalán.
Dokumentum- és oldalkezelés
Document a gyökérobjektum minden művelethez. Hozd létre argumentumok nélkül egy új, üres dokumentum indításához, vagy hívd a load_from() függvényt egy meglévő beolvasásához útvonalból, bájtokból vagy streame-ből. document.pages elérhetővé teszi a módosítható PageCollection objektumot, és a Page.add_text pozícionált szöveget helyez el egy oldalon.
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")Szövegkinyerés és keresés
PdfExtractor egy dokumentumhoz kapcsolódik, és oldalanként kinyeri a szöveget. bind_pdf() megnyitja a forrást, extract_text() végrehajtja a kinyerést, és get_text() visszaadja a felhalmozott eredményt.
from aspose_pdf import PdfExtractor
extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()Pozícionált, fragmentumonkénti keresés és csere esetén a TextFragmentAbsorber a megtalált TextFragment objektumokat teszi elérhetővé, a text_search_options pedig szabályozza a kis- és nagybetű érzékenységet és a reguláris kifejezés szerinti egyezést.
Oldal renderelése képekké
Document.save_page_as_image egyetlen oldalt közvetlenül PNG vagy TIFF fájlba renderel egy konfigurálható DPI értéken. Alacsonyabb szintű hozzáféréshez a Page.render egy RasterizedPage-t ad vissza nyers pixel adatokkal a get_pixel() és a pixels segítségével.
from aspose_pdf import Document
document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)Űrlapok és interaktív mezők
AcroForm mezőket a Document.form kezeli, egy Form felületet. Form.add_text_field() (és a jelölőnégyzet, rádiógomb, lista és kombinált mező megfelelői) új mezőt hoz létre, amely egy oldalhoz és egy widget téglalaphoz kapcsolódik, és egy Field-t ad vissza. Form.fields felsorolja a dokumentumban jelenleg lévő összes mezőt.
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")Biztonság, titkosítás és aláírások
Document.encrypt egy felhasználói jelszóval (a dokumentum megnyitásához szükséges) és egy tulajdonosi jelszóval (a jogosultságok módosításához szükséges) védi a dokumentumot; a decrypt() és a change_passwords() a már megnyitott dokumentum védelmét kezelik. is_encrypted jelenti az aktuális állapotot.
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")A digitális aláírás ellenőrzését a PdfSignature.validate végzi, amely egy ValidationResult-t ad vissza, amely leírja a megbízhatóságot és a visszavonási állapotot, és a SigningUtils tanúsítvány- és PKCS#7/CAdES aláírási segédeket biztosít.
PDF/A és PDF/UA megfelelőség
Document.validate_pdfa egy heurisztikus PDF/A megfelelőségi ellenőrzést hajt végre, és visszaad egy PdfAValidationResult; convert_to_pdfa() megkísérli a dokumentumot arra a szintre javítani. validate_pdfua() és auto_tag() biztosítják az ekvivalens hozzáférhetőségi ellenőrzést és az automatikus struktúra-fa címkézést a PDF/UA számára.
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")Tippek és bevált gyakorlatok
- Módosítsd a
document.pages,page.annotationsvagydocument.formáltal közvetlenül visszaadott objektumot — a lap vagy mező külön másolatán végzett módosítások nem jelennek meg, amikor meghívod asave()függvényt. PageCollectionnulla-indexelt ebben a Python kötésben (document.pages[0]az első oldal).- Észleld a
InvalidPasswordExceptionésPdfParseExceptionhibákat a szélesebb körűAsposePdfExceptionelőtt, amikorload_from()-t hívod megbízhatatlan bemenetre, hogy különböző módon reagálhass egy rossz jelszóra, mint egy sérült fájlra. - Hívd meg a
document.optimize()vagycompress_streams()függvényt asave()előtt erősen szerkesztett dokumentumokon, hogy eltávolítsd a nem használt erőforrásokat és csökkentsd a fájlméretet. - Adj át egy korlátos
PdfLoadLimits-t aload_from()-nek megbízhatatlan forrásból származó PDF-ek feldolgozásakor, hogy korlátozd a memória- és objektumszámot a feldolgozás során.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
save() egy fájlt hoz létre változatlan módosításokkal | Módosítások egy oldal, annotáció vagy mezőmásolat esetén történtek, a document.pages, annotations vagy form által kapott objektum helyett | Módosítsa a gyűjtemények által közvetlenül visszaadott objektumot |
InvalidPasswordException a load_from() | A dokumentum jelszóval védett, és nincs megadva jelszó, vagy a megadott jelszó helytelen. | Adja meg a helyes jelszót: document.load_from(path, password="...") |
validate_pdfa() továbbra is betűtípus hibát jelez convert_to_pdfa() után | A megadott font_lookup_directory között nem található megfelelő betűtípusfájl | Adja hozzá a hiányzó betűtípust a keresési könyvtárhoz, vagy regisztrálja a FontRepository segítségével a konvertálás előtt |
| A renderelt kép üresnek tűnik | Helytelen oldalkindeks lett átadva a save_page_as_image() vagy a render() számára | pages nulláról indul — erősítse meg a indexet, és ellenőrizze, hogy a PdfExtractor egyáltalán visszaad-e szöveget az adott oldalhoz |
A Form.add_text_field() által hozzáadott mező nem jelenik meg az oldalon | A widget téglalap kívül esik az oldal media_box | Erősítse meg, hogy a téglalap koordinátái Page.media_box belül vannak |
FAQ
A Aspose.PDF FOSS a Python számára függ-e egy kereskedelmi PDF motorra?
Nem. Ez egy nulláról indított, pure-Python PDF motor, amely az MIT licenc alatt kerül kiadásra. Egyetlen futásidejű függősége a cryptography és a asn1crypto, amelyeket titkosításhoz és aláírás-ellenőrzéshez használnak.
Építhetek PDF-et a semmiből ahelyett, hogy meglévőt nyitnék meg?
Igen. A Document() argumentumok nélkül egy üres, memóriában tárolt dokumentumot hoz létre; hívd meg a document.pages.add()-t az oldalak hozzáfűzéséhez a mentés előtt.
Milyen raszter formátumokra tudok egy oldalt renderelni?
A Page.render és a Document.save_page_as_image PNG vagy TIFF raszter kimenetet állít elő; a visszaadott RasterizedPage továbbá nyers pixel adatokat tesz elérhetővé a get_pixel() és a pixels tulajdonságon keresztül.
Milyen kivételt kell elkapni a csomagra specifikus hibák esetén?
Fogja el AsposePdfException. Minden csomagra jellemző hiba — beleértve a feldolgozást (PdfParseException), a jelszó- és titkosítási (PdfSecurityException, InvalidPasswordException) valamint az ellenőrzési (PdfValidationException) hibákat — ebből származik.
Hova menjek tovább?
A Getting Started lefedi a telepítést, a licencelést és egy első működő példát. Ez a fejlesztői útmutató a dokumentumkezelési témákkal folytatódik, például űrlapok, beágyazott fájlcsatolmányok, betűtípus-felfedezés és a vázlat/könyvjelző szerkesztése.
API Reference Összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Document | Gyökérobjektum — PDF létrehozása, betöltése, mentése és kezelése |
Document.pages | A dokumentum módosítható PageCollection |
Document.load_from / Document.save | Olvasás vagy írás egy útvonalra, bájtokra vagy adatfolyamra |
Document.encrypt / Document.decrypt | Jelszóval védeni vagy a védelmet eltávolítani |
Document.validate_pdfa / Document.convert_to_pdfa | Heurisztikus PDF/A megfelelőség-ellenőrzés és konverzió |
Document.validate_pdfua() / Document.auto_tag | PDF/UA hozzáférhetőség-ellenőrzés és struktúra automatikus címkézés |
Page.add_text | Pozícionált szöveg hozzáadása egy oldalhoz |
Page.render | Oldal renderelése egy RasterizedPage |
PdfExtractor | Oldal szövegének és beágyazott mellékleteinek kinyerése |
PdfFileEditor | Oldalak összefűzése, felosztása, beszúrása és törlése fájlok között |
Form / Field | AcroForm konténer és egyedi űrlapmezők |
PdfSignature / SigningUtils | Digitális aláírás ellenőrzése és létrehozása |
AsposePdfException | Alaposztály minden csomagspecifikus kivételhez |