Манипулиране на PDF документи в Java

Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF документи разделяне, свързване на страниците, извличане на страници, вмъкване от размери за страниците и Размеряване на съдържанието в страниците. PdfFileEditor и неговите съдружници , ContentsResizeParameters и в) ContentsResizeValue.

PdfFileEditor: Основни операции на страницата

Съветът на ЕС PdfFileEditor класът е централното съоръжение за операции с PDF файлове на високо ниво. Той предоставя методи за свързване на множество PDF файлове, извличане на поднабори от страници., разделяне на документ на отделни страници и вмъкване на страници от един документ в друг на определена позиция.

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

Основните методи включват:

  • concatenate(inputFiles, outputFile) съчетава няколко документа в ред
  • extract(inputFile, startPage, endPage, outputFile) изнася непрекъснат обхват от продукти
  • extract(inputFile, pageNumbers, outputFile) изнася несъпътстващ сет
  • splitToPages(inputFile) се разделя на едно. ByteArrayOutputStream на страница
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) вмъква диапазон
  • delete(inputFile, pageNumbers, outputFile) премахва определени страници
  • append(inputFile, portFile, startPage, endPage, outputFile) добавя диапазон от страници

За големи файлове, setUseDiskBuffer(true) превключва вътрешното съхранение от купчина на диск.

Преразмеряване на съдържанието с параметри за размера на съдържанието

PdfFileEditor.resizeContents() адаптира съдържанието в рамките на съществуващите граници. Всяка граница ляво, дясно, горе, долу ?? и съдържанието ширина и височина са: специфицирани като: ContentsResizeValue инстанции, конструирани чрез фабрични методи; ContentsResizeValue.percents(value) или с други: 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");
}

Конструкторът от шест аргумента за ContentsResizeParameters приема стойностите в ред: леви марж, съдържание Ширина, деснимарж , горния Марж. Съдържание Височина, долниятМарж . Всички шест трябва да се съвпадат до 100%, когато се използват стойности на базата на процентни данни или да съответстват на страницата. измерения при използване на абсолютни точкови стойности.

Преизмерване на специфични страници

Когато само подмножество от страници изисква промяна на размера, претоварването, което приема цялостен масив от номера на страниците, насочва тези странички, като оставя останалите непроменени:

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() и в) isPercent() да позволи проверка на съхранявания стойност и определяне дали тя представлява процент или абсолютен брой точки.

Брошура и N-Up Layout

PdfFileEditor включва: makeBooklet() за налагане на страници в двустранен брошурен ред и в) makeNUp() за наклоняване на няколко страници в лист. И двата метода приемат файлови пътеки или потоци:

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: Задължително заглавяване на страницата

PdfPageEditor насочва към индивидуални свойства на страницата, като например ниво на увеличаване. setZoom() приема плаващ мултипликатор, който контролира първоначалното увеличение, когато документът е се отваря в прожектор:

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

Стойности на: 0.0 или отрицателни са отхвърлени getZoom() Доходи за отпускане на данъци 1.0 в тези случаи. Това прави… PdfPageEditor подходящи за изготвяне на документи, които трябва да се отварят в определен момент. увеличение за достъпност или случаи на използване на дисплеи в киоски.

Започваме

Добавете зависимостта Maven и импортирайте пакета фасади:

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

Свързани ресурси