PDF-dokumentmanipulering i Java
Aspose.PDF FOSS för Java erbjuder ett rikt urval av API:er för att manipulera befintliga PDF-dokument — dela, sammanfoga, extrahera sidor, infoga sidintervall och ändra storlek på innehåll inom sidor. Dessa funktioner koncentreras i PdfFileEditor och dess kompagnonkläser ContentsResizeParameters och ContentsResizeValue.
PdfFileEditor: Grundläggande sidoperationer
Klassen PdfFileEditor är den centrala anläggningen för hög nivå PDF-filoperationer. Den tillhandahåller metoder för att sammanfoga flera PDF-filer, extrahera sidundergrupper, dela ett dokument i enskilda sidor och infoga sidor från ett dokument i ett annat på en specifik position.
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");
Viktiga metoder inkluderar:
concatenate(inputFiles, outputFile)— slår samman flera dokument i ordningextract(inputFile, startPage, endPage, outputFile)— exporterar ett sammanhängande intervallextract(inputFile, pageNumbers, outputFile)— exporterar en icke-sammanhängande uppsättningsplitToPages(inputFile)— delar upp i enByteArrayOutputStreamper sidainsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)— infogar ett intervalldelete(inputFile, pageNumbers, outputFile)— tar bort specifika sidorappend(inputFile, portFile, startPage, endPage, outputFile)— lägger till ett sidintervall
För stora filer byter setUseDiskBuffer(true) intern lagring från heap till disk.
Innehållsändring med ContentsResizeParameters
PdfFileEditor.resizeContents() justerar innehållet inom befintliga sidgränser. Varje marginal — vänster, höger, topp, botten — samt innehållets bredd och höjd anges som ContentsResizeValue-instanser, konstruerade via fabrikmetoderna ContentsResizeValue.percents(value) eller 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");
}
Den sex-argumentskonstruktorn för ContentsResizeParameters accepterar värden i följande ordning: leftMargin, contentsWidth, rightMargin, topMargin, contentsHeight, bottomMargin. Alla sex måste summeras till 100% när procentbaserade värden används, eller matcha sidans dimensioner när absoluta punktvärden används.
Ändra storlek på specifika sidor
När endast ett delmängd av sidorna behöver storleksändring, riktar den överlagrade metoden som accepterar en heltalsarray med sidnummer in på dessa sidor och lämnar resten oförändrade:
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() och isPercent() möjliggör inspektion av det lagrade värdet och att avgöra om det representerar en procentsats eller ett absolut antal punkter.
Broschyr- och N-Up-layout
PdfFileEditor inkluderar makeBooklet() för att arrangera sidor i tvåsidig broschyrordning och makeNUp() för att mosa flera sidor per ark. Båda metoderna accepterar filsökvägar eller strömmar:
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: Zoomkontroll per sida
PdfPageEditor riktar in sig på individuella sidegenskaper såsom zoomnivå. setZoom() accepterar en flyttalsmultiplikator som styr den initiala förstoringen när dokumentet öppnas i en visare:
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
Värden av 0.0 eller negativa avvisas — getZoom() returnerar 1.0 i dessa fall. Detta gör PdfPageEditor lämplig för att förbereda dokument som måste öppnas med en specifik förstoring för tillgänglighets- eller kioskskärmsbruk.
Komma igång
Lägg till Maven-beroendet och importera facades-paketet:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf-foss</artifactId>
<version>26.8.0</version>
</dependency>import org.aspose.pdf.*;
import org.aspose.pdf.facades.*;
Aspose.PDF FOSS för Java är MIT-licensierad och finns tillgänglig på https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java.