因此,我尝试生成一个可能包含许多页面的报告,具体取决于用户输入和数据。
here 总结了类似的错误,但它并未被视为问题的实际解决方案。
我的功能:
public void generateReport()
{
final String path = "/sdcard/testreport.pdf";
try
{
Document document = new Document();
writer = PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();
// many lines code related to report generation
writer.setOpenAction(action);
status = GetReport(document);
document.close(); //RunTimeException here.
}
catch (Exception e)
{
e.printStackTrace();
}
但是我收到 RunTimeException 作为-
日志
04-16 19:34:01.928: W/System.err(14248): java.lang.RuntimeException: The page 1 was requested but the document has only 0 pages.
04-16 19:34:01.929: W/System.err(14248): at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1208)
04-16 19:34:01.929: W/System.err(14248): at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:776)
04-16 19:34:01.929: W/System.err(14248): at com.itextpdf.text.Document.close(Document.java:420)
04-16 19:34:01.929: W/System.err(14248): at com.wassap.main.ReportsActivity.generateReport(ReportsActivity.java:541)
只有提前知道页面是否存在,我才不知道如何关闭文档。
最佳答案
这个问题已经很老了,但是答案可能会帮助其他人以后遇到这个问题。
我也遇到了同样的错误。就我而言,我创建的 PDF 只有 1 页,但我创建的 PdfAction 正在调用 PdfAction.GotoLocalPage(2, pdfDest, writer)
。由于没有页面 2,因此抛出“页面已请求”错误。
如果您的错误是有 0 页,我想知道您是否遇到了某些错误,导致您的 PDF 代码无法运行,因此无法在生成的 PDF 中创建任何页面。
另一个想法是,我在您包含的示例代码中没有看到 document.NewPage()
调用。也许有多种方法可以创建新页面,但这就是我手动添加新页面的调用。如果您没有任何这些调用,也许这就是 PDF 中没有页面的原因?
关于java - 已请求第 1 页,但文档只有 0 页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16039919/