Manipulació de documents PDF en Java

Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF documents dividir, concatenar, extraure pàgines, inserir intervals de pàgines i La seva funció principal és la de modificar el contingut dins de pàgines. PdfFileEditor I les seves companyies, ContentsResizeParameters i de la ContentsResizeValue.

PdfFileEditor: Operacions de pàgines centrals

El PdfFileEditor classe és la instal·lació central per a operacions de fitxers PDF d’alt nivell. Proporciona mètodes per concatenar múltiples fitxers PDF, extraure subconjuntats de pàgines., Dividir un document en pàgines individuals i inserir pàgines d’un mateix document. en un altre a una posició específica.

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");

Els mètodes clau inclouen:

  • concatenate(inputFiles, outputFile) fusiona diversos documents en ordre.
  • extract(inputFile, startPage, endPage, outputFile) exporta una gamma contínua
  • extract(inputFile, pageNumbers, outputFile) exporta un conjunt no contigu
  • splitToPages(inputFile) es divideix en un ByteArrayOutputStream per pàgina
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) inserir un interval
  • delete(inputFile, pageNumbers, outputFile) elimina pàgines específiques
  • append(inputFile, portFile, startPage, endPage, outputFile) aplega un rang de pàgines

Per a arxius grans, setUseDiskBuffer(true) canvia l’emmagatzematge intern des de heap al disc.

Redimensionament de contingut amb contengutsParamètres de redimensió

PdfFileEditor.resizeContents() ajusta el contingut dins dels límits de la pàgina existent. Cada marge esquerra, dreta, superior, inferior and el contingut de la largura i l’alçada són Especificat com: ContentsResizeValue instàncies, construïdes mitjançant els mètodes de fabricació. ContentsResizeValue.percents(value) o de la seva 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");
}

El constructor de sis arguments per a ContentsResizeParameters accepta els valors en el ordre: marge esquerre, contingutLlarja, dretMarge, superiorMargin, contingutsAltura, inferiorMargen. Tots els sis han de sumar al 100% quan s’utilitzen valors basats en percentatges, o coincidir amb la pàgina. dimensions en l’ús de valors puntuales absoluts.

Redimensionar pàgines específiques

Quan només un subconjunt de pàgines requereix redimensionar-se, la sobrecarga que accepta una matriu entera de números de pàgina dirigeix a aquestes pàgines mentre deixa el rest inalterat:

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 la isPercent() permeten inspeccionar els productes emmagatzemats. valor i determinar si representa un percentatge o una contagem de punts absoluta.

Folleta i disseny de N-Up

PdfFileEditor inclou: makeBooklet() per a la imposició de pàgines en ordre d’encapsulat bipartit. i de la makeNUp() ambdues metòdes accepten pistes de fitxer o corrent:

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: Controle de zoom per pàgina

PdfPageEditor s’adreça a propietats de pàgines individuals com el nivell d’enfocament. setZoom() accepta un multiplicador de float que controla l’ampliació inicial quan el document s’obre en un visualitzador:

PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");

Valors de 0.0 o negatius són rebutjats getZoom() devolucions 1.0 en aquests casos. Això fa que PdfPageEditor adequat per a la preparació de documents que han d’obrir en un moment específic. ampliació per a casos d’ús de l’accessibilitat o de la pantalla del quiosc.

Com començar a treballar

Afegir la dependència Maven i importar el paquet de façanes:

<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.

Recursos relacionats