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 que
  • extract(inputFile, startPage, endPage, outputFile) - Exporta una gama contínua de
  • extract(inputFile, pageNumbers, outputFile) - Exporta un conjunto no contiguicio
  • splitToPages(inputFile) - Dividirse en uno ByteArrayOutputStream por página
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) - Insertar una gama
  • delete(inputFile, pageNumbers, outputFile) - Remove páginas específicas
  • append(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.

Recursos relacionados