1

So I am trying to generate a report that may contain many pages depending upon the user input and data.

Similar error was summarized here but its not seen to be the actual solution of the problem.

My function:

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();
  }

But I am getting RunTimeException as-

Log

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)

I am not getting the clue as of how to close the document only if to know in advance if the page is there.

4

1 回答 1

0

这个问题很老,但答案可能会帮助其他人以后遇到它。

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

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

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

于 2014-06-04T21:31:12.040 回答