【发布时间】:2017-02-19 23:03:15
【问题描述】:
我一直在尝试使用 iText 7 将图像添加到 PDF 文档。
我创建的用于添加图像的函数采用 ImageData 类型,然后将其添加到画布上的矩形并将其添加到 PDF。但是,我不断收到错误
线程“main”java.lang.RuntimeException 中的异常:应用程序启动方法中的异常
然后
原因:java.io.FileNotFoundException: pdf.pdf(请求的操作无法在用户映射部分打开的文件上执行)
功能码为:
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);
任何帮助都会很棒,谢谢。
【问题讨论】: