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ínuaextract(inputFile, pageNumbers, outputFile)exporta un conjunt no contigusplitToPages(inputFile)es divideix en unByteArrayOutputStreamper pàginainsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)inserir un intervaldelete(inputFile, pageNumbers, outputFile)elimina pàgines específiquesappend(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.