将图像添加到现有PDF,java
我一直在尝试使用iText 7将图像添加到PDF文档中 我创建的用于添加图像的函数采用ImageData类型,然后将其添加到画布上的矩形中,并将其添加到PDF中。然而,我不断地得到错误 线程主java.lang.RuntimeException中的异常:应用程序启动方法中的异常 然后 原因:java.io.FileNotFoundException:pdf.pdf无法对打开用户映射节的文件执行请求的操作 功能代码为:将图像添加到现有PDF,java,java,javafx,itext,Java,Javafx,Itext,我一直在尝试使用iText 7将图像添加到PDF文档中 我创建的用于添加图像的函数采用ImageData类型,然后将其添加到画布上的矩形中,并将其添加到PDF中。然而,我不断地得到错误 线程主java.lang.RuntimeException中的异常:应用程序启动方法中的异常 然后 原因:java.io.FileNotFoundException:pdf.pdf无法对打开用户映射节的文件执行请求的操作 功能代码为: protected void ExportToPdf(ImageData im
protected void ExportToPdf(ImageData img) throws IOException {
PdfDocument pdfDoc = new PdfDocument(new PdfReader("pdf.pdf"), new PdfWriter("pdf.pdf"));
PdfCanvas canvas = new PdfCanvas(pdfDoc.getFirstPage());
PageSize ps = PageSize.A4;
Rectangle page = new Rectangle(ps.getWidth(),ps.getHeight());
canvas.addImage(img, page, true);
pdfDoc.close();
`
我的主要意见如下:
public static void main(String[] args) throws IOException { //adds values to maps for the program to use
//starts PDF writer
PdfWriter writer = new PdfWriter("pdf.pdf");
//Initialize PDF document
PdfDocument pdf = new PdfDocument(writer);
// Initialize document
Document document = new Document(pdf);
pdf.addNewPage();
document.close();
writer.close();
pdf.close();
完整程序获取场景并将其转换为图像,然后将其输入要添加到PDF的函数中。其代码为:
WritableImage img = new WritableImage(1000, 700);
scene.snapshot(img);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(img, null);
ImageData imgData = ImageDataFactory.create(SwingFXUtils.fromFXImage(img, null), null);
ExportToPdf(imgData);
任何帮助都将是惊人的,谢谢。问题已经出现了
PdfDocument pdfDoc = new PdfDocument(new PdfReader("pdf.pdf"), new PdfWriter("pdf.pdf"));
Itext不支持写入正在读取的同一文件。只需写入一个临时文件,并在完成时用它替换原始文件即可