我正在向现有的pdf添加文本。
到目前为止,我的代码会将文本添加到文件中,但它会删除之前在pdf上的原始内容,有人知道如何解决这个问题吗?使得添加的文本在新页面上,而pdf的原始内容在另一页面上。
String field1 = ("/Users/Desktop/") + selectedFile.getName();
System.out.println(field1);
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(field1));
PdfPage page = pdfDoc.addNewPage();
PdfCanvas pdfCanvas = new PdfCanvas(page);
Rectangle rectangle = new Rectangle(1,1, 600, 843);
pdfCanvas.rectangle(rectangle);
pdfCanvas.stroke();
Canvas canvas = new Canvas( pdfCanvas, pdfDoc, rectangle);
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter text to add");
String addText = myObj.nextLine(); // Read user input
Paragraph p = new Paragraph(addText);
Scanner myObj1 = new Scanner(System.in); // Create a Scanner object
PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
p.setFont(font);
canvas.add(p);
pdfDoc.close();
canvas.close();发布于 2021-04-13 22:59:04
使用PdfDocument pdfDoc = new PdfDocument(new PdfWriter(field1)),您将始终创建包含新内容的新文档。您现在忽略了原始内容。您必须在图章模式下打开PDF。
请参考iText接口:https://api.itextpdf.com/iText7/java/7.1.4/com/itextpdf/kernel/pdf/PdfDocument.html
构造函数和说明
PdfDocument(PdfReader reader)在阅读模式下打开PDF文档。
PdfDocument(PdfReader reader, DocumentProperties properties)在阅读模式下打开PDF文档。
PdfDocument(PdfReader reader, PdfWriter writer)在盖章模式下打开PDF文档。
PdfDocument(PdfReader reader, PdfWriter writer, StampingProperties properties)在图章模式下打开PDF文档。
PdfDocument(PdfWriter writer)在写入模式下打开PDF文档。
以写入模式打开PdfDocument(PdfWriter writer, DocumentProperties properties)文档。
https://stackoverflow.com/questions/67074833
复制相似问题