第1页是请求,但文档只有0页

时间:2013-04-16 14:37:01

标签: java android document runtimeexception

所以我正在尝试根据用户输入和数据生成可能包含许多页面的报告。

类似的错误被总结为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)

如果事先知道页面是否在那里,我就不知道如何关闭文档了。

1 个答案:

答案 0 :(得分:0)

这个问题已经过时了,但是一个答案可能会帮助其他人稍后再碰到它。

我有同样的错误。就我而言,我创建的PDF只有1页,但我创建的PdfAction正在调用PdfAction.GotoLocalPage(2, pdfDest, writer)。由于没有第2页,因此抛出了“请求页面”错误。

如果您的错误是0页,我想知道您是否遇到导致PDF代码无法运行的错误,因此不会在生成的PDF中创建任何页面。

另一个想法是我在您包含的示例代码中看不到document.NewPage()调用。也许有多种方法可以创建新页面,但这是我手动添加新页面的调用。如果您没有任何这些电话,也许这就是为什么PDF中没有页面?