Aspose.PDF FOSS for Python Özellikleri
Aspose.PDF FOSS for Python Özellikleri
Aspose.PDF FOSS for Python, PDF belgelerini oluşturmak, açmak, değiştirmek ve kaydetmek için saf-Python bir kütüphanedir. Bu sayfa, ana yetenek alanlarını ve bunların giriş noktası olarak işlev gören sınıfları inceler. Her alan, kendi geliştirici rehberi sayfasında derinlemesine ele alınır.
Belge ve Sayfa Yönetimi
Document, her işlem için kök nesnedir. Yeni, boş bir belge başlatmak için hiçbir argüman vermeden oluşturun veya mevcut bir belgeyi bir yol, baytlar veya akıştan okumak için load_from() çağırın. document.pages, değiştirilebilir PageCollection‘ı ortaya çıkarır ve Page.add_text, bir sayfada konumlandırılmış metin yerleştirir.
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")Metin Çıkarma ve Arama
PdfExtractor, bir belgeye bağlanır ve metni sayfa sayfa çeker. bind_pdf() kaynağı açar, extract_text() çıkarımı gerçekleştirir ve get_text() birikmiş sonucu döndürür.
from aspose_pdf import PdfExtractor
extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()Konumlandırılmış, parça başına arama ve değiştirme için, TextFragmentAbsorber, eşleşen TextFragment nesnelerini text_search_options ile, büyük/küçük harf duyarlılığı ve düzenli ifade eşleştirmesini kontrol ederek ortaya çıkarır.
Sayfa Görüntülerine Dönüştürme
Document.save_page_as_image tek bir sayfayı doğrudan bir PNG veya TIFF dosyasına, yapılandırılabilir DPI’de işler. Daha düşük seviyeli erişim için, Page.render get_pixel() ve pixels aracılığıyla ham piksel verileri içeren bir RasterizedPage döndürür.
from aspose_pdf import Document
document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)Formlar ve Etkileşimli Alanlar
AcroForm alanları, bir Form arayüzü olan Document.form aracılığıyla yönetilir. Form.add_text_field() (ve onay kutusu, radyo, liste ve kombobox eşdeğerleri) bir sayfaya ve bir widget dikdörtgenine bağlı yeni bir alan oluşturur ve bir Field döndürür. Form.fields, belgede şu anda bulunan tüm alanları listeler.
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")Güvenlik, Şifreleme ve İmzalar
Document.encrypt, bir belgeyi kullanıcı parolası (açmak için gerekli) ve sahibi parolası (izinleri değiştirmek için gerekli) ile korur; decrypt() ve change_passwords(), zaten açık bir belgede korumayı yönetir. is_encrypted, mevcut durumu raporlar.
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")Dijital imza doğrulaması, güven ve iptal durumu açıklayan bir ValidationResult döndüren PdfSignature.validate tarafından yönetilir ve SigningUtils, sertifika ve PKCS#7/CAdES imzalama yardımcıları sağlar.
PDF/A ve PDF/UA Uyumluluğu
Document.validate_pdfa bir sezgisel PDF/A uyumluluk kontrolü yürütür ve bir PdfAValidationResult döndürür; convert_to_pdfa() belgeyi o seviyeye yönlendirmeye çalışır. validate_pdfua() ve auto_tag(), PDF/UA için eşdeğer erişilebilirlik kontrolü ve otomatik yapı-ağacı etiketlemesi sağlar.
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")İpuçları ve En İyi Uygulamalar
- Nesneyi doğrudan
document.pages,page.annotationsveyadocument.formtarafından döndürülen şekilde değiştirin — bir sayfanın veya alanın ayrı bir kopyasında yapılan düzenlemeler,save()çağırdığınızda yansıtılmaz. PageCollection, bu Python bağlamında sıfırdan başlar (document.pages[0]ilk sayfadır).- Güvenilmeyen girdi üzerinde
load_from()çağırırken daha genişAsposePdfExceptionöncesindeInvalidPasswordExceptionvePdfParseException‘i yakalayın, böylece hatalı bir parolaya karşı, bozuk bir dosyaya karşı farklı bir şekilde tepki verebilirsiniz. - Yoğun düzenlenmiş belgelerde
save()‘den öncedocument.optimize()veyacompress_streams()‘i çağırarak kullanılmayan kaynakları kaldırın ve dosya boyutunu küçültün. - Güvenilmeyen bir kaynaktan PDF işlenirken
load_from()‘e sınırlı birPdfLoadLimitsgeçirin, böylece ayrıştırma sırasında bellek ve nesne sayısını sınırlayın.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
save() değişmemiş düzenlemeler içeren bir dosya üretir | Düzenlemeler, document.pages, annotations veya form tarafından elde edilen nesne yerine bir sayfa, ek açıklama veya alan kopyasına yapıldı | Bu koleksiyonlar tarafından doğrudan döndürülen nesneyi değiştirin |
InvalidPasswordException load_from() üzerinde | Belge şifre korumalı ve şifre girilmedi ya da yanlış şifre sağlandı | Doğru şifreyi girin: document.load_from(path, password="...") |
validate_pdfa(), convert_to_pdfa() sonrasında hâlâ bir font hatası rapor ediyor | Sağlanan font_lookup_directory içinde eşleşen bir font dosyası bulunamadı | Eksik fontu arama dizinine ekleyin veya dönüştürmeden önce FontRepository ile kaydedin |
| Oluşturulan görüntü boş görünüyor | save_page_as_image() ya da render()‘e yanlış sayfa indeksi verildi | pages sıfır indekslidir — indeksi doğrulayın ve PdfExtractor‘in o sayfa için metin döndürüp döndürmediğini kontrol edin |
Form.add_text_field() ile eklenen alan sayfada görünmüyor | Widget dikdörtgeni sayfanın media_box dışına düşüyor | Dikdörtgen koordinatlarının Page.media_box içinde olduğundan emin olun |
FAQ
Aspose.PDF Python için FOSS, ticari bir PDF motoruna bağlı mı?
Hayır. Sıfırdan, saf-Python PDF motoru olup MIT lisansı altında yayınlanmıştır. Tek çalışma zamanı bağımlılıkları cryptography ve asn1crypto‘dir, şifreleme ve imza doğrulama için kullanılır.
Mevcut bir PDF’i açmak yerine sıfırdan bir PDF oluşturabilir miyim?
Evet. Document() argümansız çağrıldığında boş, bellek içi bir belge oluşturur; kaydetmeden önce sayfa eklemek için document.pages.add()‘i çağırın.
Bir sayfayı hangi raster formatlarına renderlayabilirim?
Page.render ve Document.save_page_as_image PNG veya TIFF raster çıktısı üretir; döndürülen RasterizedPage ayrıca get_pixel() ve pixels özelliği aracılığıyla ham piksel verilerini sunar.
Paket-özgü hatalar için hangi istisna yakalanmalı?
Catch AsposePdfException. Her paket-özel hata — ayrıştırma (PdfParseException), parola ve şifreleme (PdfSecurityException, InvalidPasswordException), ve doğrulama (PdfValidationException) başarısızlıkları — bundan türetilir.
Sonra nereye gitmeliyim?
Getting Started, kurulum, lisanslama ve ilk çalışan örneği kapsar. Bu geliştirici kılavuzu, formlar, gömülü dosya ekleri, yazı tipi keşfi ve taslak/yer imi oluşturma gibi belge yönetimi konularına devam eder.
API Reference Özet
| Sınıf/Yöntem | Açıklama |
|---|---|
Document | Kök nesne — PDF oluşturma, yükleme, kaydetme ve yönetme |
Document.pages | Belgenin değiştirilebilir PageCollection |
Document.load_from / Document.save | Bir yol, bayt veya akıştan okuyun ya da ona yazın |
Document.encrypt / Document.decrypt | Parola koruması ekleyin ya da korumayı kaldırın |
Document.validate_pdfa / Document.convert_to_pdfa | Heuristik PDF/A uyumluluk kontrolü ve dönüşüm |
Document.validate_pdfua() / Document.auto_tag | PDF/UA erişilebilirlik kontrolü ve yapı otomatik etiketleme |
Page.add_text | Bir sayfaya konumlandırılmış metin ekle |
Page.render | Bir sayfayı RasterizedPage‘a renderle |
PdfExtractor | Sayfa metnini ve gömülü ekleri çıkar |
PdfFileEditor | Dosyalar arasında sayfaları birleştir, böl, ekle ve sil |
Form / Field | AcroForm konteyner ve bireysel form alanları |
PdfSignature / SigningUtils | Dijital imza doğrulama ve oluşturma |
AsposePdfException | Her paket-özel istisna için temel sınıf |