我正在向现有的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
复制相似问题