Esiste un modo per modificare un PDF da Java?
Ho un documento PDF che contiene segnaposto per il testo che ho bisogno di essere sostituito usando Java, ma tutte le librerie che ho visto hanno creato PDF da zero e piccole funzionalità di modifica.
Esiste comunque la possibilità di modificare un PDF o è impossibile?Modifica del testo PDF utilizzando Java
20
A
risposta
11
È possibile farlo con iText. L'ho provato con il seguente codice. Aggiunge una porzione di testo e un cerchio rosso su ogni pagina di un PDF esistente.
/* 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
Date un'occhiata a iText e this sample code
+0
Purtroppo questo esempio richiede campi nel PDF esistente. Vedi la mia risposta. – bluish
-1
Si può fare l'editing limitata con iText ma PDF è un formato di file fine così non si può fare qualcosa di troppo complesso. Ho scritto un articolo che spiega alcuni dei limiti: PDF format and style information.
2
Problemi correlati
- 1. Modifica pagina pdf utilizzando pdfbox
- 2. Modifica del colore del testo in Java
- 3. Lettura/modifica dei metadati PDF utilizzando iTextSharp
- 4. PDF per immagini utilizzando Java
- 5. Converti documento Word in PDF utilizzando Java
- 6. ottenere testo paragrafo da pdf utilizzando itextsharp
- 7. Modifica metadati del file pdf con pypdf
- 8. Android Modifica mascheratura del testo
- 9. ProgressDialog: modifica delle dimensioni del testo
- 10. Java - PDFBox - Estrazione del testo
- 11. Conversione da PDF a Postscript utilizzando Java
- 12. Estrazione del testo pdf nell'obiettivo C
- 13. Selezione del testo PDF su iOS
- 14. Estrazione del testo PDF con iText
- 15. Approccio di estrazione del testo in PDF tramite l'OCR
- 16. Modifica pdf per modificare l'intestazione
- 17. Libreria Java Pdf Diff
- 18. PDFsharp modifica di un file pdf
- 19. Modifica collaborativa del testo in un'applicazione Web
- 20. JLabel sull'evento di modifica del testo
- 21. Eliminazione/modifica del testo cercato in Vim
- 22. Modifica diretta del testo in UITableViewCell?
- 23. Selezione del testo Modifica Ancore mancanti
- 24. Modifica del testo su un UISwitch
- 25. Modifica del testo incorporata in SVG
- 26. Modifica l'allineamento del testo per Eureka TextRow
- 27. Convalida modifica del testo in TextBox
- 28. Estrazione di testo da un file PDF utilizzando Python
- 29. Modifica del colore di sfondo e del colore del testo in una casella di testo
- 30. Scheda di testo del laboratorio di report Tabella PDF
Questo esempio si sovrappone alla pagina con il nuovo testo e l'ellisse. C'è un modo per modificare il testo in atto? C'è un modo per cercare, diciamo un token, e * sostituirlo * con il mio testo piuttosto che sovrapporlo? – Vihung
Buon punto, mi piacerebbe saperlo anche io! – bluish
errore ....... Segnale fatale 7 (SIGBUS), codice 2, errore addr 0xa290903f in tid 25590 (om.pdfgenerator) –