Gibt es eine Möglichkeit, ein PDF aus Java zu bearbeiten?
Ich habe ein PDF-Dokument, das Platzhalter für Text enthält, die ich mit Java ersetzen muss, aber alle Bibliotheken, die ich sah, erstellt PDF von Grund auf und kleine Bearbeitungsfunktionen.
Gibt es sowieso ich kann ein PDF bearbeiten oder ist das unmöglich?Bearbeiten von PDF-Text mit Java
20
A
Antwort
11
Sie können es mit iText tun. Ich habe es mit folgendem Code getestet. Es fügt einen Textblock und einen roten Kreis über jeder Seite einer vorhandenen PDF-Datei hinzu.
/* 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
Werfen Sie einen Blick auf iText und this sample code
+0
dieses Beispiel erfordert Felder in der bestehenden PDF Leider. Siehe meine Antwort. – bluish
-1
Sie können mit Itext eingeschränkte Bearbeitung tun, aber PDF ist ein End-Dateiformat, so dass Sie nichts zu komplex machen können. Ich habe einen Artikel geschrieben, der einige der Einschränkungen erklärt: PDF format and style information.
2
Verwandte Themen
- 1. Bearbeiten von JPEG-EXIF-Daten in Java
- 2. Bearbeiten von Windows-Dateiberechtigungen in Java
- 3. Java - Ein Array von JLabels bearbeiten
- 4. Bearbeiten von Dateien mit Vorlage
- 5. Bearbeiten von Wasserzeichenbildern mit Go
- 6. Java/.NET-Aufgaben, die Bibliothek bearbeiten
- 7. Lesen und bearbeiten Sie die Datei von Java
- 8. ImageSearchDll.dll in Java verwenden (von AutoIt) bearbeiten: JNA
- 9. Java - Lesen, Bearbeiten und Schreiben von WAV-Dateien
- 10. Java, um die vorhandene Datei zu bearbeiten
- 11. Datei in .jar mit Java öffnen und bearbeiten?
- 12. Wie können Sie ein Word-Dokument mit Java bearbeiten?
- 13. Bearbeiten Build-Beschreibung in Jenkins durch Java
- 14. Bearbeiten von Web.Config Verbindungszeichenfolgeneinstellungen mit Wix
- 15. Bearbeiten von HTML mit einem WYSIWYG-Editor
- 16. Bearbeiten von Musiken Tag mit myid3 Bibliothek
- 17. Bearbeiten von Datensätzen mit MVVM/MVVM-Light
- 18. Bearbeiten von MySQL-Einträgen mit PHP
- 19. Coffeescript zum Bearbeiten von DOM mit jQuery
- 20. Bearbeiten von PDF-Attributen mit sed
- 21. Bearbeiten von XML in Flex mit e4x
- 22. Bearbeiten von Excel-Tabellen mit Python
- 23. Bearbeiten von Daten aus XML mit PHP
- 24. Bearbeiten von .NET-Ressourcen mit Reflection?
- 25. Bearbeiten und Erstellen von Dingen mit Adressleiste?
- 26. Bearbeiten von überspanntem Text
- 27. Bearbeiten von HTML-Tabellenzeilendaten
- 28. Bearbeiten von C#, während
- 29. Java-XML-Knoten Bearbeiten ohne Node.getTextContents()
- 30. So bearbeiten Sie eine Java-Map
Dieses Beispiel überlagert die Seite mit Ihrem neuen Text und der Ellipse. Gibt es eine Möglichkeit, den Text an Ort und Stelle zu ändern? Gibt es eine Möglichkeit, nach einem Token zu suchen und es durch meinen Text zu ersetzen, anstatt es zu überlagern? – Vihung
Guter Punkt, ich möchte es auch wissen! – bluish
Fehler ....... Fatales Signal 7 (SIGBUS), Code 2, Fehler addr 0xa290903f in tid 25590 (om.pdfgenerator) –