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 ordine
  • extract(inputFile, startPage, endPage, outputFile) exportă o gamă continuă de produse
  • extract(inputFile, pageNumbers, outputFile) exportă un set neconjunt
  • splitToPages(inputFile) se desparte într-una singură. ByteArrayOutputStream pe pagină
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) introduce o gamă de date
  • delete(inputFile, pageNumbers, outputFile) elimină pagini specifice
  • append(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.

Resurse conexe