首页 > 解决方案 > MuPDF 插入页面失败

问题描述

我需要创建一个新的 PDF 文档。我在 MuPDF 库中找到了一些与此相关的代码,并尝试了以下方法。我只是按照这里的例子https://github.com/ArtifexSoftware/mupdf/blob/master/docs/examples/pdf-create.js

PDFDocument pdf = new PDFDocument();
PDFObject font = pdf.addFont(new Font("Times-Roman"));
pdf.addObject(font);

// Create content stream.
Buffer buffer = new Buffer();
buffer.writeLine("10 10 280 330 re s");
buffer.writeLine("q 200 0 0 200 50 100 cm /Im0 Do Q");
buffer.writeLine("BT /Tm 16 Tf 50 50 TD (Hello, world!) Tj ET");

PDFObject page = pdf.addPage(new Rect(0,0,300,350), 0, font, buffer);
pdf.insertPage(-1, page);
pdf.save(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"/output.pdf", "pretty,ascii,compress-images,compress-fonts");

将页面插入 pdf 文档时出现以下错误。

2021-01-25 16:08:24.306 32539-32539/com.artifex.mupdf_test E/MessageQueue-JNI: Exception in 
MessageQueue callback: handleReceiveCallback
2021-01-25 16:08:24.309 32539-32539/com.artifex.mupdf_test E/MessageQueue-JNI: 
java.lang.IndexOutOfBoundsException: at is not a valid page
    at com.artifex.mupdf.fitz.PDFDocument.insertPage(Native Method)
    at com.artifex.mupdf_test.ChooseDocActivity.onListItemClick(ChooseDocActivity.java:599)

我无法弄清楚这是什么问题,我被困了好几天。非常感谢您的帮助。

标签: androidpdfpdf-generationmupdf

解决方案


推荐阅读