我正在向现有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();
使用PdfDocument pdfDoc = new PdfDocument(new PdfWriter(field1))
,您将始终创建具有新内容的新文档。您现在正在忽略原始内容。您必须以盖章模式打开PDF。
请参阅iText API: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)
以书写模式打开PDF文档。