1. Produkty
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Java

Aspose.PDF FOSS for Java

Twórz i manipuluj dokumentami PDF z Java — z adnotacjami, polami formularzy, manipulacją stronami i zgodnością PDF/A. MIT-licensed.

Darmowa biblioteka Java na licencję MIT do tworzenia i manipulowania plikami PDF

Aspose.PDF FOSS dla Java jest biblioteką Java na licencji MIT służącą do tworzenia i pracy z dokumentami PDF. Dostarcza kompleksową klasę Document jako centralny punkt wejścia, wraz z pełnym wsparciem adnotacji, interaktywnych pól formularzy, manipulacji stronami, metadanymi oraz walidacją zgodności PDF/A.

Biblioteka udostępnia 527 klas obejmujących pełną specyfikację PDF: strukturę dokumentu poprzez Document, Page i PageCollection; adnotacje poprzez hierarchię Annotation (w tym WidgetAnnotation, FreeTextAnnotation i HighlightAnnotation); interaktywne formularze z Form, ButtonField, CheckboxField i RadioButtonField; renderowanie stron za pomocą BmpDevice; oraz sprawdzanie zgodności PDF/A poprzez ActionRules i ActionFixes. Szyfrowanie jest zapewnione przez AESCipher w trybie CBC.

Dodaj Aspose.PDF FOSS do swojego projektu Maven, używając groupId org.aspose i artifactId aspose-pdf. Biblioteka wymaga Java 11 lub nowszej i jest w pełni na licencji MIT. Aby uzyskać funkcje i wsparcie dla przedsiębiorstw, zobacz Aspose.PDF for Java — Enterprise Product.

Struktura dokumentu i zarządzanie stronami

  • ** API dokumentu:** Użyj klasy Document do tworzenia nowych dokumentów PDF. Do istniejących dokumentůw można uzyskać dostęp za pomocą konstruktorów Document(filePath) lub Document(stream) .
  • ** Zarządzanie stronami:** Dodawanie, dostęp i modyfikacja stroni za pośrednictwem PageCollection. Każdy Page ujawnia MediaBox, CropBox, rotację, zasoby i operatorów treści.
  • ** Metadane:** Czytanie i zapisywanie metadanych dokumentu za pośrednictwem DocumentInfo oraz XmpMetadata.
  • Struktura PDF: Dostęp do podstawowych obiektów PDF za pośrednictwem getParser(), getCatalog() i getTrailer().
  • Pliky wbudowane: Zarządzaj kolekcjami plików z getEmbeddedFiles().

Wspólne scenariusze przetwarzania dokumentów

  • Generacja PDF: Budowanie dokumentów programowo poprzez tworzenie Document i wypełnianie stron.
  • ** Analiza dokumentu:** Dostęp do istniejących plików w celu sprawdzenia metadanych lub wyliczania pól formularza.
  • ** Manipulacja stronami:** Zmień rozmiar, obróć lub zorganizuj strony za pomocą PdfFileEditor i API Page.
  • Przepływy pracy w serii: Wykonywanie spójnych transformacji na wielu dokumentach z serwerów.

Opis i pola formularza

  • Hierarchia adnotacji: Klasa abstrakcyjna Annotation jest bazą dla wszystkich adnotacji; typy konkretne obejmują WidgetAnnotation, FreeTextAnnotation, HighlightAnnotation i UnderlineAnnotation.
  • Formularze interaktywne: Uzyskaj dostęp do formularza dokumentu poprzez Document.getForm(), aby wyliczyć lub utworzyć instancje ButtonField, CheckboxField i RadioButtonField.
  • Wygląd widżetu: Kontroluj właściwości wizualne za pomocą AppearanceCharacteristics — kolor obramowania, tło, obrót i podpisy.
  • Edycja formularza: Użyj FormEditor i FormElement do manipulacji formularzem na wyższym poziomie.

Przegląd dokumentów i współpraca

  • Anotacje w opracowaniu: Dodaj do dokumentów zaznaczenie, podkreślenie lub komentarze z wolnym tekstem dla przeglądu przepływów pracy.
  • Formy interaktywne: Tworzyć dokumenty wypełniające przy pomocy radiowych guzików, pudełek kontrolnych i przycisków do przechwytywania danych.
  • Wykrywanie danych formularza: Odczytywanie wartości w przekazanych polach formularzy dla systemów z serwera.
  • ** Zgodność z archiwizacją:** Weryfikacja i naprawa dokumentów do długoterminowego archiwizowania za pomocą ActionRules oraz ActionFixes.

Operacje w zakresie bezpieczeństwa i treści

  • Szyfrowanie AES: Szyfruj i odszyfruj taśmy bajtów danych za pomocą AESCipher w trybie CBC (AESCipher.encrypt(key, data) i AESCipher.decrypt(key, data)).
  • ** Zarządzanie artefaktami:** Identyfikacja i manipulacja nagłówkami, stopami, znakami wodnymi oraz obrazami tła za pośrednictwem API Artifact i ArtifactCollection.
  • Zmiana rozmiaru zawartości: Zmień układ treści strony przy użyciu PdfFileEditor.resizeContents() i ContentsResizeParameters.
  • Walidacja zgodności: Weryfikuj zasady notyfikacji i działania w oparciu o standardy PDF/A za pomocą AnnotationRules oraz ActionRules.

Przypadki użycia zabezpieczenia dokumentów

  • Szyfrowane ładunki: Użyj AESCipher do szyfrowania sekcji danych wbudowanych w strumienie dokumentów.
  • ** Ochrona dokumentów:** Wykorzystanie ustawień zabezpieczeń w zakresie kontroli dostępu do przepływów pracy zgodnych z wymogami.
  • Watermarking: Wykrywanie i zarządzanie Artifact obiektami reprezentującymi wstrzykiwacze oraz dekoracje stron.
  • ** Zgodność z archiwizacją:** Uruchom ActionFixes i AnnotationFixes, aby istniejące dokumenty spełniały standardy archiwalne PDF/A-1b.

Tworzenie dokumentu z widżetami

Stwórz nowy dokument, dodaj stronę i przyłącz widżet z komentarzem.

try (Document doc = new Document()) ```java
try (Document doc = new Document()) {
    Page page = doc.getPages().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("output.pdf");
}

Tworzenie formularza przy pomocy przycisków radiowych

Dodaj grupę przycisków radiowych do formularza dokumentu i wybierz wartość programowo.

try (Document doc = new Document()) {
    Page page = doc.getPages().add();
    RadioButtonField radio = new RadioButtonField(page);
    radio.setPartialName("choice");
    radio.addOption("Option1", new Rectangle(50, 50, 70, 70));
    radio.addOption("Option2", new Rectangle(50, 80, 70, 100));
    doc.getForm().add(radio, 1);
    radio.setValue("Option2");
    doc.save("form.pdf");
}

Sprawdź wymiary stron dokumentu

Dostęp do istniejącego dokumentu i odczytać wymiary skrzynki multimedialnej pierwszej strony.

try (Document doc = new Document("input.pdf")) {
    double width = doc.getPages().get(1).getMediaBox().getWidth();
    double height = doc.getPages().get(1).getMediaBox().getHeight();
    System.out.println("Page size: " + width + " x " + height);
}
  

Zasoby Wsparcia i Nauki

 Polski