Manipulação de documentos PDF em Java

Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF documentos divisão, concatenation, extração de páginas, inserir intervalos de página e A Comissão Europeia tem em vista a criação de um sistema de gestão do conteúdo. PdfFileEditor E com os seus companheiros, ContentsResizeParameters e a) ContentsResizeValue.

PdfFileEditor: Operações de página principal

A Comissão PdfFileEditor A classe é a instalação central para operações de arquivo PDF de alto nível. Ele fornece métodos para concatenar vários arquivos PDF, extrair subconjuntos de páginas, Dividir um documento em páginas individuais e inserir páginos de um mesmo documento. para outro num local específico.

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

Os principais métodos incluem:

  • concatenate(inputFiles, outputFile) funde vários documentos em ordem.
  • extract(inputFile, startPage, endPage, outputFile) exporta uma gama contínua de produtos
  • extract(inputFile, pageNumbers, outputFile) exporta um conjunto não contíguo
  • splitToPages(inputFile) Divide-se em um só ByteArrayOutputStream por página
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) inserir um intervalo
  • delete(inputFile, pageNumbers, outputFile) remova páginas específicas
  • append(inputFile, portFile, startPage, endPage, outputFile) acrescenta um intervalo de páginas

Para arquivos grandes, setUseDiskBuffer(true) muda o armazenamento interno do heap para disco.

Redimensionamento de conteúdo com contêineresimilar parâmetros

PdfFileEditor.resizeContents() ajusta o conteúdo dentro dos limites das páginas existentes. Cada margem esquerda, direita, cima e baixo ?? e a largura e altura do conteúdo são: especificado como: ContentsResizeValue instâncias, construídas através dos métodos de fábrica ContentsResizeValue.percents(value) ou a) 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");
}

O constructor de seis argumentos para ContentsResizeParameters aceita valores no ordem: margem esquerda, conteúdo Largura, direita Margem superiorMargem inferior, contêineresaltura, baixoMarge. Todos os seis devem somar 100% quando se utilizam valores baseados em percentagens, ou corresponder à página. dimensões, quando se utilizam valores de ponto absolutos.

Redimensionamento de páginas específicas

Quando apenas um subconjunto de páginas requer redimensionamento, a sobrecarga que aceita uma matriz inteira de números de página direciona essas páginos deixando o 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() e a) isPercent() permitir a inspecção dos produtos armazenados. valor e determinar se representa uma percentagem ou um número absoluto de pontos.

Livro e N-Up Layout

PdfFileEditor Inclui: makeBooklet() para a imposição de páginas em ordem de livreto duplo, e a) makeNUp() Para a fixação de várias páginas por folha. Ambos os métodos aceitam caminhos de arquivo ou fluxos:

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 por página

PdfPageEditor direciona-se a propriedades de página individuais, como o nível do zoom. setZoom() Aceita um multiplicador de flutuação que controla a ampliação inicial quando o documento é aberto num visor:

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

Valores de: 0.0 ou negativos são rejeitados getZoom() Renda de rendimentos 1.0 Nesses casos. Isto torna o PdfPageEditor Apto para a preparação de documentos que devem ser abertos num momento específico. A ampliação para acessibilidade ou casos de utilização do display no quiosque.

Começar a Fazer

Adicione a dependência Maven e importe o pacote de fachadas:

<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