【问题标题】:Adding an image to an existing PDF, java [duplicate]将图像添加到现有的 PDF,java [重复]
【发布时间】: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);

任何帮助都会很棒,谢谢。

【问题讨论】:

    标签: java javafx itext


    【解决方案1】:

    问题已经出现了

    PdfDocument pdfDoc = new PdfDocument(new PdfReader("pdf.pdf"), new PdfWriter("pdf.pdf"));
    

    Itext 不支持写入您正在读取的同一文件。只需写入一个临时文件并在完成后用它替换原始文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2018-10-01
      相关资源
      最近更新 更多