Introduction
Aspose.PDF FOSS for Java is an MIT-licensed Java library for creating and manipulating PDF belgeleri. MIT lisansı altında GitHub’da mevcuttur ve API anahtarı gerektirmez Kütüphane, tam PDF’yi kapsayan 527 sınıfı sunar. belge yapısından notlara, etkileşimli formlara ve sayfa renderine kadar ayrıntılar;, Kripto işlemleri için.
Kütüphane çevresinde inşa edilmiştir. Document Sınıf, bu da ana giriş noktasıdır. Tüm PDF işlemleri. yeni bir belge oluşturmak, sayfaya erişmek PageCollection, Metadata ile ilgili bilgi DocumentInfo,veya katalogun içine girerek getCatalog() ve getTrailer() Her şey bir ile başlar. Document Örnek olarak.
Hızlı Başlangıç
Maven bağımlılığına ekleyin pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
Kütüphane, tüm kamu API sınıflarını üç paket altında düzenler. bu paket beyanlarını API’yi kullanan herhangi bir Java kaynak dosyasına ekleyin:
// Core API — Document, Page, Annotation, Form, etc.
org.aspose.pdf.*
// Annotation subclasses
org.aspose.pdf.annotations.*
// Facade classes — PdfFileEditor, PdfAnnotationEditor, etc.
org.aspose.pdf.facades.*
Aspose.PDF FOSS for Java requires Java 11 or later. The source code and issue tracker mevcuttur ve https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.
Başlamaya başlar
Ayarı doğrulamak için bir minimum belge oluşturun ve kaydedin:
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("output.pdf");
System.out.println("Pages: " + pages.getCount());
}
O zamanlar Document sınıf yapımcısı mevcut erişim için bir dosya yolu veya akışı kabul eder dosyaları, ya da bir belgeyi boşaltmak için hiçbir argümanla çağırılamaz. sayfalar yönetilir yoluyla PageCollection,• Aşağıda erişilebilir Document.getPages().Her biri Page Açıklama kendi Geometre yoluyla getMediaBox(), getCropBox(),ve getRotate(),ve erişim sağlar kaynaklar, içerik operatörleri ve notlar.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
// page.getMediaBox() -> Rectangle with width/height
// page.getAnnotations() -> AnnotationCollection
doc.save("output.pdf");
}
O zamanlar PdfFileEditor Sınıf sağlar concatenate() Birden fazla belgeyi birleştirmek ve resizeContents() ile ContentsResizeParameters İçerik düzenini içeride ayarlamak için Mevcut sayfalar sınırları.
Annotations
Aspose.PDF FOSS for Java implements the full PDF annotation hierarchy rooted at the Abstrakt Annotation Konkret not türleri: WidgetAnnotation için Kontrol şekli , FreeTextAnnotation Yazı çağrısı için, HighlightAnnotation ve UnderlineAnnotation markup için ve CircleAnnotation ve CaretAnnotation için Grafik notları için.
Her bir yazı, A ile ilişkilendirilir. Page ve a Rectangle Yerini belirlemek için. Görsel özellikler kontrol ediliyor AppearanceCharacteristics,Açıklayanlar setBorder(), setBackground(), setRotate(),ve setCaption() Anonimlik - Anonasyonlar Bir sayfaya eklendi page.getAnnotations().add(annotation).
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
WidgetAnnotation w = new WidgetAnnotation(page, new Rectangle(0, 0, 100, 50));
w.getCharacteristics().setBorder(Color.fromRgb(1, 0, 0));
w.getCharacteristics().setCaption("Submit");
page.getAnnotations().add(w);
doc.save("annotated.pdf");
}
Interaktif Form Alanları
O zamanlar Form Sınıf, aracılığıyla erişilebilir Document.getForm(), tüm AcroForm alanlarını yönetir. Kütüphane sağlar ButtonField, CheckboxField, RadioButtonField, TextBoxField, ComboBoxField,ve ListBoxField doldurulabilir formlar oluşturmak için. FormEditor A’nın Bir bağlanmış belgede form alanları ile çalışmak için facade sınıfı.
Radyo düğmeleri grupları oluşturulur RadioButtonField,Bir sayfa kabul eden ve destekleyen addOption() seçenekleri eklemek için, her bir ile ilişkilendirilir Rectangle Görsel olarak için Yerleşim - The setValue() Programlı olarak bir seçenek seçilir.
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
RadioButtonField radio = new RadioButtonField(page);
radio.setPartialName("answer");
radio.addOption("Yes", new Rectangle(50, 50, 70, 70));
radio.addOption("No", new Rectangle(50, 80, 70, 100));
doc.getForm().add(radio, 1);
radio.setValue("Yes");
doc.save("form.pdf");
}
Güvenlik: AES Şifreleme
O zamanlar AESCipher Sınıflar şifreleme ve dekripsiyon için CBC modunda AES şifrelemesini uygular PDF belgelerine yerleştirilmiş veri byte array. AESCipher.encrypt(key, data) Geri döner Sifre yazısı ve AESCipher.decrypt(key, data) Orijinal şikayet metnini geri alıyorum. 4. Sürdürülebilir kontrol için, encryptWithIV(key, iv, plaintext) ve decryptWithIV(key, iv, cipherText) Deterjik bir operasyon sağlar.
PDF / A Uyumluluk Validasyonu
Kütüphane dahil ActionRules ve ActionFixes PDF/A uyumluluk doğrulama ve düzeltme için. ActionRules.validate() Kataloğunda, sayfada ve Widget girişleri için. ActionFixes Bu yöntemler gibi yöntemleri sunar, removeCatalogAA(), removePageAA(),ve removeWidgetAA() Uygunsuz eylem sözlükleri düzeltmek. Aynı şekilde, AnnotationRules ve AnnotationFixes Not tutarlılığı ile ilgili.
Etiket: başlıklar, ayaklar ve su işaretleri
O zamanlar Artifact sınıf modelleri sayfa dekorasyonları gibi başlıklar, ayaklar ve su işaretleri, ve arka plan resimleri. ArtifactCollection,sayfa kaynakları aracılığıyla erişilebilir, listelenmesini sağlar • Artifakt nesnelerinin kaldırılması. iterating page.getArtifacts() ve çağrısı ArtifactCollection.delete(artifact) değiştirmeden belirli eserleri kaldırır Belge içeriği doğrudan akıyor.
Page Rendering Hakkında
O zamanlar BmpDevice Sınıflar doğrudan BMP görüntü dosyalarına PDF sayfalarını atar process(page, outputPath).Bu, miniatür üretimi için yararlıdır, belge önizlemesi, veya görüntü tabanlı işleme boruları.