Existe-t-il un moyen de modifier un PDF à partir de Java?
J'ai un document PDF qui contient des espaces réservés pour le texte que j'ai besoin d'être remplacé en utilisant Java, mais toutes les bibliothèques que j'ai vues ont créé PDF à partir de zéro et de petites fonctionnalités d'édition.
Y at-il de toute façon je peux éditer un PDF ou est-ce impossible?Modification du texte PDF à l'aide de Java
20
A
Répondre
11
Vous pouvez le faire avec iText. Je l'ai testé avec le code suivant. Il ajoute un morceau de texte et un cercle rouge sur chaque page d'un fichier PDF existant.
/* requires itextpdf-5.1.2.jar or similar */
import java.io.*;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.*;
public class AddContentToPDF {
public static void main(String[] args) throws IOException, DocumentException {
/* example inspired from "iText in action" (2006), chapter 2 */
PdfReader reader = new PdfReader("C:/temp/Bubi.pdf"); // input PDF
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream("C:/temp/Bubi_modified.pdf")); // output PDF
BaseFont bf = BaseFont.createFont(
BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); // set font
//loop on pages (1-based)
for (int i=1; i<=reader.getNumberOfPages(); i++){
// get object for writing over the existing content;
// you can also use getUnderContent for writing in the bottom layer
PdfContentByte over = stamper.getOverContent(i);
// write text
over.beginText();
over.setFontAndSize(bf, 10); // set font and size
over.setTextMatrix(107, 740); // set x,y position (0,0 is at the bottom left)
over.showText("I can write at page " + i); // set text
over.endText();
// draw a red circle
over.setRGBColorStroke(0xFF, 0x00, 0x00);
over.setLineWidth(5f);
over.ellipse(250, 450, 350, 550);
over.stroke();
}
stamper.close();
}
}
3
Jetez un oeil à iText et this sample code
+0
Malheureusement cet exemple requiert des champs dans le fichier PDF existant. Vois ma réponse. – bluish
-1
Vous pouvez faire de l'édition limitée avec iText mais PDF est un format de fichier final de sorte que vous ne pouvez pas faire quoi que ce soit trop complexe. J'ai écrit un article expliquant certaines des limitations: PDF format and style information.
2
Questions connexes
- 1. structure de données laide à la recherche java
- 2. Powershell: modification du texte
- 3. PDF à l'outil texte ou à la bibliothèque Java?
- 4. Modification du texte de validation-texte du fichier de ressources
- 5. Extrait du texte du PDF au signet
- 6. Lors de l'impression d'un document PDF à partir de Java, une partie du texte est pivotée
- 7. Java: ProcessBuilder Modification du chemin
- 8. extrait du texte à partir de fichiers pdf
- 9. Modification du texte de clabel dans Matplotlib
- 10. Conversion de PDF en PureEdge et modification du formulaire PureEdge
- 11. Date de modification du fichier en Java
- 12. Obtenez le texte brut du fichier PDF
- 13. Comment extraire le texte du document PDF
- 14. Bibliothèque PDF pour Java
- 15. Convertir du texte PDF en meilleure qualité
- 16. Suppression/modification du texte recherché dans Vim
- 17. Modification du texte d'un commutateur UIS
- 18. Modification du texte d'un bouton simple DevExpress
- 19. pdf extraction de texte
- 20. Modification d'un texte Div à la position du clic
- 21. JADE (Java) - Modification du conteneur d'agent
- 22. modification du fichier xml dans java
- 23. Modification/modification du sélecteur affecté à UINavigationBar.backItem
- 24. Obtention du texte supprimé à partir d'un composant de texte Java
- 25. Texte brut à partir de PDF à l'aide d'Air/ActionScript
- 26. Modification des propriétés d'un document PDF
- 27. Génération de fichiers PDF en Java à l'aide d'iText. Prise en charge de texte flottant libre
- 28. Modification de l'origine du bloc de texte dans WPF
- 29. Modification de la valeur du masque pour MaskedEditExtender à l'aide du script Java
- 30. Modification du texte du contrôle de la zone de texte d'une fenêtre
Cet exemple recouvre la page avec votre nouveau texte et l'ellipse. Y a-t-il un moyen de modifier le texte en place? Y a-t-il un moyen de rechercher, de dire un jeton, et de le * remplacer * par mon texte plutôt que de le superposer? – Vihung
Bon point, j'aimerais bien le savoir aussi! – bluish
erreur ....... Fatal signal 7 (SIGBUS), code 2, erreur addr 0xa290903f dans TID 25590 (om.pdfgenerator) –