我使用iTextPdf将数据附加到pdf中,但我希望将修改后的文件保存到文件对象中,以便将该文件发送到客户端服务器。
代码:
package doc;
import java.io.FileOutputStream;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class Doc_demo {
public static void main(String args[]){
try {
//Create PdfReader instance.
PdfReader pdfReader =
new PdfReader("C:\\Users\\user1\\iTextPDFSamples\\user1\\SAMPLE_A071W471.pdf");
//Create PdfStamper instance.
PdfStamper pdfStamper = new PdfStamper(pdfReader,
new FileOutputStream("C:\\Users\\user1\\iTextPDFSamples\\user1\\ModifiedTestFile.pdf"));
//Create BaseFont instance.
BaseFont baseFont = BaseFont.createFont(
BaseFont.TIMES_ROMAN,
BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
//Get the number of pages in pdf.
int pages = pdfReader.getNumberOfPages();
//Iterate the pdf through pages.
for(int i=1; i<=1; i++) { //i<=pages
//Contain the pdf data.
PdfContentByte pageContentByte =
pdfStamper.getOverContent(i);
//Set text font and size.
pageContentByte.setFontAndSize(baseFont, 8);
pageContentByte.beginText();
pageContentByte.setTextMatrix(379, 615);
pageContentByte.showText("SN01234567890");
pageContentByte.endText();
pageContentByte.beginText();
pageContentByte.setTextMatrix(450, 615);
pageContentByte.showText("European Union");
pageContentByte.endText();
}
//Close the pdfStamper.
pdfStamper.close();
System.out.println("PDF modified successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}代码工作正常。
pdfStamper.close();本行将将修改后的文件保存到给定位置,但如何将其转换为file对象。
发布于 2022-08-10 13:09:02
解决了这个问题:
文件tempFile = File.createTempFile("Tempfile",".pdf");
创建了一个tempfile文件,并将其用于pdfstamper的
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(tempFile));这解决了这个问题。
https://stackoverflow.com/questions/73304632
复制相似问题