Manipularea documentelor PDF în Java
Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF documente împărțirea, concatenarea, extragerea paginilor, inserarea intervalelor de pagini și redimensionarea conţinutului în pagini. PdfFileEditor şi cu ceilalţi, ContentsResizeParameters și de: ContentsResizeValue.
PdfFileEditor: Operațiuni de bază ale paginii
În ceea ce priveşte PdfFileEditor clasa este facilitatea centrală pentru operațiunile de nivel înalt ale fișierelor PDF. Oferă metode pentru concatenarea mai multor fișiere PDF, extragerea subseturilor de pagini., împărțirea unui document în pagini individuale și inserarea paginilor dintr-un singur document într-un altul la o poziţie specifică.
PdfFileEditor editor = new PdfFileEditor();
// Concatenate two documents into one
editor.concatenate("first.pdf", "second.pdf", "combined.pdf");
// Extract pages 2 through 5 to a new file
editor.extract("source.pdf", 2, 5, "extracted.pdf");
Metodele cheie includ:
concatenate(inputFiles, outputFile)fuzionează mai multe documente în ordineextract(inputFile, startPage, endPage, outputFile)exportă o gamă continuă de produseextract(inputFile, pageNumbers, outputFile)exportă un set neconjuntsplitToPages(inputFile)se desparte într-una singură.ByteArrayOutputStreampe paginăinsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)introduce o gamă de datedelete(inputFile, pageNumbers, outputFile)elimină pagini specificeappend(inputFile, portFile, startPage, endPage, outputFile)adaugă o gamă de pagini
Pentru fişiere mari, setUseDiskBuffer(true) Schimbă stocarea internă de la heap la disc.
Redimensionarea conținutului cu ConținuteleParametrii de redimensionare
PdfFileEditor.resizeContents() Adaptează conținutul în limitele paginii existente. Fiecare marjă stânga, dreapta, sus, jos and lățimea și înălțime conținut sunt specificată ca: ContentsResizeValue Instanțe, construite prin metode de fabricație ContentsResizeValue.percents(value) sau de: ContentsResizeValue.units(value).
try (Document doc = new Document("input.pdf")) {
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.percents(10), // left margin
ContentsResizeValue.percents(80), // content width
ContentsResizeValue.percents(10), // right margin
ContentsResizeValue.percents(10), // top margin
ContentsResizeValue.percents(80), // content height
ContentsResizeValue.percents(10) // bottom margin
);
editor.resizeContents(doc, params);
doc.save("resized.pdf");
}
Constructorul cu șase argumente pentru ContentsResizeParameters acceptă valorile din ordinea: stânga Margine, conţinutLățime, dreaptaMargine , de susMărgină, continutInălțimea, de josMargina. Toate cele șase trebuie să se adauge la 100% atunci când se utilizează valori bazate pe procente sau corespund paginii. dimensiuni atunci când se utilizează valorile punctuale absolute.
Redimensionarea paginilor specifice
Când doar un subset de pagini necesită redimensionare, supraîncărcarea care acceptă o matrice întreagă a numărului de pagina vizează aceste pagine lăsând restul neschimbate:
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.units(28), // left margin in points
ContentsResizeValue.units(540), // content width
ContentsResizeValue.units(28), // right margin
ContentsResizeValue.units(28), // top margin
ContentsResizeValue.units(786), // content height
ContentsResizeValue.units(28) // bottom margin
);
// Only resize pages 1 and 3
editor.resizeContents(doc, new int[]{1, 3}, params);
ContentsResizeValue.getValue() și de: isPercent() permite inspecția depozitelor de materiale, valoarea și determinarea dacă reprezintă un procent sau o numărare absolută de puncte.
Broșura și structura N-Up
PdfFileEditor include: makeBooklet() pentru impunerea paginilor în ordine de broșură cu două fețe, și de: makeNUp() Ambele metode acceptă căi de fişier sau fluxuri:
PdfFileEditor editor = new PdfFileEditor();
// Print as a folded booklet
editor.makeBooklet("input.pdf", "booklet.pdf");
// Tile 2 columns × 3 rows per sheet
editor.makeNUp("input.pdf", "nup.pdf", 2, 3);
PdfPageEditor: Controlul de zoom pe pagină
PdfPageEditor vizează proprietățile paginii individuale, cum ar fi nivelul de zoom. setZoom() acceptă un multiplicator de plutire care controlează mărirea inițială atunci când documentul este înregistrat. este deschisă într-un vizualizator:
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
Valori ale: 0.0 sau negative sunt respinse getZoom() rambursări 1.0 în aceste cazuri. Asta face ca … PdfPageEditor adecvate pentru pregătirea documentelor care trebuie deschise la o anumită oră. mărit pentru accesibilitate sau cazuri de utilizare a afișajului la chioșc.
Cum să începem?
Adăugați dependența Maven și importați pachetul de fațade:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>0.1.0-alpha</version>
</dependency>
import org.aspose.pdf.*;
import org.aspose.pdf.facades.*;
Aspose.PDF FOSS for Java is MIT-licensed and available at https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.