Przypadki użycia
Ten przewodnik demonstruje rzeczywiste przypadki użycia Aspose.PDF FOSS dla Java, w tym generowanie dokumentów wsadowych, scalanie plików, bezpieczną dystrybucję, zbieranie danych z formularzy oraz archiwizację PDF/A. Aspose.PDF FOSS dla Java generuje wyjście PDF (tylko eksport).
Generowanie PDF wsadowe
Generuj wiele dokumentów PDF z danych w pętli, dodając jedną stronę na rekord i zapisując każdy do osobnego pliku. Ten wzorzec jest przydatny do generowania faktur, drukowania certyfikatów oraz tworzenia wyciągów:
List<ReportData> records = fetchReports();
for (ReportData data : records) {
try (Document doc = new Document()) {
PageCollection pages = doc.getPages();
Page page = pages.add();
doc.save("reports/" + data.getId() + ".pdf");
}
}Potok scalania PDF
Połącz miesięczne raporty PDF w jeden dokument rocznego podsumowania przy użyciu PdfFileEditor.concatenate(). Przekaż tablicę ścieżek plików wejściowych oraz ścieżkę wyjściową:
String[] monthly = {
"jan.pdf", "feb.pdf", "mar.pdf", "apr.pdf",
"may.pdf", "jun.pdf", "jul.pdf", "aug.pdf",
"sep.pdf", "oct.pdf", "nov.pdf", "dec.pdf"
};
PdfFileEditor editor = new PdfFileEditor();
editor.concatenate(monthly, "year-end.pdf");Włącz buforowanie na dysku przy użyciu setUseDiskBuffer(true) dla dużych zestawów plików:
editor.setUseDiskBuffer(true);Bezpieczna dystrybucja dokumentów
Zaszyfruj dokument przy użyciu hasła użytkownika i hasła właściciela przed dystrybucją. Hasło użytkownika jest wymagane do otwarcia pliku; hasło właściciela kontroluje uprawnienia, takie jak drukowanie:
try (PdfFileSecurity security = new PdfFileSecurity()) {
security.setInputFile("report.pdf");
security.setOutputFile("report-secured.pdf");
security.encryptFile("userPass", "ownerPass",
DocumentPrivilege.getForbidAll(), KeySize.x128);
}Zbieranie danych z formularzy
Odczytaj przesłane wartości pól formularza z wypełnionego PDF. Przejdź przez pola formularza i wypisz pełną nazwę oraz bieżącą wartość każdego pola:
try (Document doc = new Document("submitted-form.pdf")) {
Form form = doc.getForm();
for (WidgetAnnotation field : form.getFields()) {
System.out.println(field.getFullName() + " = " + field.getValue());
}
}Jest to przydatne przy przetwarzaniu wypełnionych formularzy aplikacyjnych bez konieczności posiadania osobnego serwera do przyjmowania formularzy.
PDF/A Długoterminowe archiwizowanie
Konwertuj standardowe dokumenty do formatu PDF/A-1b w celu regulacyjnego lub prawnego archiwizowania. Document.convert() stosuje reguły walidacji PDF/A i tworzy raport zgodności. Wynikiem jest samodzielny plik PDF/A spełniający wymagania ISO 19005:
try (Document doc = new Document("input.pdf")) {
doc.convert("pdfalog.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);
doc.save("archived.pdf");
}