Manipulation de documents PDF en Java
Aspose.PDF FOSS for Java provides a rich set of APIs for manipulating existing PDF documents — divisant, concatenant et extraitant des pages, insérant les rangs de page ; et réaffichage de contenu dans les pages. Ces capacités sont concentrées sur PdfFileEditor et ses classes de compagnon, ContentsResizeParameters et ContentsResizeValue.
PdfFileEditor : Opérations de page d’origine
Le PdfFileEditor classe est la facilité centrale pour les opérations de fichiers PDF à haut niveau. Il fournit des méthodes pour concatener plusieurs fichiers PDF, extraire les sous-sets de page, Diviser un document en différentes pages et insérer des pages d’un seul document. dans une autre 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");
Les méthodes clés comprennent :
concatenate(inputFiles, outputFile)- réunir plusieurs documents pour que lesextract(inputFile, startPage, endPage, outputFile)- Exporter une gamme contagieuseextract(inputFile, pageNumbers, outputFile)- Exportation d’un ensemble non cohérentsplitToPages(inputFile)- se diviser en uneByteArrayOutputStreampar pageinsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)- Insérer un rangedelete(inputFile, pageNumbers, outputFile)- Supprimer des pages spécifiquesappend(inputFile, portFile, startPage, endPage, outputFile)- Appendicez une page de portée
Pour les grands fichiers, setUseDiskBuffer(true) Transformer le stockage interne de la cache au disque.
Résumé de contenu avec contenusRésiméparamètres
PdfFileEditor.resizeContents() Ajuste le contenu dans les limites de page existantes. Chaque marge - gauche, droite, haut, bas - et la largeur et l’altitude du contenu sont spécifiée comme ContentsResizeValue Les modèles, construits par les méthodes de fabrication ContentsResizeValue.percents(value) ou 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");
}
Le constructeur de six arguments pour ContentsResizeParameters accepte les valeurs dans le commande: gaucheMargin, contenusL’aube, droiteMargine, topMarge, contentHeight, bottomMargen. Tous les six doivent être cumulés à 100% lors de l’utilisation des valeurs basées sur le pourcentage, ou correspondant à la page. Les valeurs de points absolus sont utilisées.
Réservation de pages spécifiques
Lorsqu’un sous-sets de pages ne nécessite que la reprise, le surcharge qui accepte une série complète de numéros de page cible ces pages tout en laissant les autres inéchangeables :
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() et isPercent() Permet de vérifier les stocks - déterminer si elle représente un pourcentage ou un nombre de points absolu.
Le Booklet et le N-Up Layout
PdfFileEditor incluent makeBooklet() Pour imposer des pages dans l’ordre de brochure à deux côtés et makeNUp() pour la mise à jour de plusieurs pages par feuille. les deux méthodes acceptent des voies de fichier ou Les 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 : Contrôle de Zoom par page
PdfPageEditor Il vise les propriétés individuelles de la page, telles que le niveau de zoom. setZoom() accepte un multiplier de flate qui contrôle la magnification initiale lorsque le document est Il est ouvert dans un spectateur :
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
Les valeurs de 0.0 ou négatifs sont rejetés - getZoom() Retourner 1.0 dans ces cas. Cela fait PdfPageEditor Il est adapté à la préparation de documents qui doivent être ouverts dans un la magnification pour l’accessibilité ou les cas d’utilisation de l’affichage du kiosk.
Pour commencer
Ajouter la dépendance Maven et importer le pack facades :
<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.