PDF Documentos en Java
Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF documentos — dividir, concatenar, extraer páginas, insertar ramas de página y de la redistribución del contenido dentro de las páginas. estas capacidades se concentran en el PdfFileEditor y sus clases de compañeros ContentsResizeParameters y ContentsResizeValue.
PdfFileEditor: Operaciones de la página principal
El PdfFileEditor clase es la instalación central para las operaciones de archivos PDF de alto nivel. Proporciona métodos para concatenar varios archivos PDF, extraer subsetos de página, Dividir un documento en páginas individuales, y insertar páginas de un solo documento. en otro lugar en una posición 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");
Los métodos clave incluyen:
concatenate(inputFiles, outputFile)-Munificar varios documentos para queextract(inputFile, startPage, endPage, outputFile)- Exporta una gama contínua deextract(inputFile, pageNumbers, outputFile)- Exporta un conjunto no contiguiciosplitToPages(inputFile)- Dividirse en unoByteArrayOutputStreampor páginainsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)- Insertar una gamadelete(inputFile, pageNumbers, outputFile)- Remove páginas específicasappend(inputFile, portFile, startPage, endPage, outputFile)- Apendiza una página de rango
Para los grandes archivos, setUseDiskBuffer(true) Intercambiar el almacenamiento interno de la placa a la disco.
Contenido Resignando con contenidosResizeParametros
PdfFileEditor.resizeContents() ajusta el contenido dentro de los límites existentes. Cada margen —desde izquierda, derecha, arriba, abajo— y la anchura y altura del contenido son especificado como ContentsResizeValue Los modelos, construidos a través de los métodos de fábrica ContentsResizeValue.percents(value) o 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 seis argumentos para ContentsResizeParameters aceptan valores en el orden: leftMargin, contentsWidth, rightMargin, topM argin , contenidosHeight, bottomMargent. Todos los seis deben sumarse al 100% cuando se utilizan valores basados en porcentajes, o coinciden con la página. -Dimensiones cuando se utilizan valores de punto absoluto.
Recuperar páginas específicas
Cuando sólo un subset de páginas requiere re-signar, la sobrecarga que acepta una serie completa de números de página se dirige a esas páginas mientras deja el resto inalterado:
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() y isPercent() permiten inspeccionar el almacenamiento valor y determinar si representa un porcentaje o una cuota de puntos absolutos.
Temas y N-Up Layout
PdfFileEditor incluye makeBooklet() para imponer páginas en orden de boletín de dos lados y makeNUp() para la inclinación de varias páginas por hoja. ambas métodos aceptan los caminos de archivo o Los Streams:
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: Control de Zoom por página
PdfPageEditor Objetivo: Propiedades de página individuales como el nivel de zoom. setZoom() acepta un multiplicador de float que controla la magnificación inicial cuando el documento se Se abre en un espectador:
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
Valores de 0.0 o se rechazan los negativos, getZoom() Retorno 1.0 en esos casos. Esto hace que PdfPageEditor adecuado para la preparación de documentos que deben abrirse en un determinado la magnificación de los casos de acceso o uso del kiosk.
Empezando a
Añade la dependencia de Maven y importar el paquete de facadas:
<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.