java - 已请求第 1 页,但文档只有 0 页

标签 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)

只有提前知道页面是否存在,我才不知道如何关闭文档。

最佳答案

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

我也遇到了同样的错误。就我而言,我创建的 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/

相关文章:

java - 无法使用 Android 从 Google Cloud Storage url 下载图像

macos - 是否值得在只读文档类中对 autosavesInPlace 说"is"?

c# - 什么是好的企业级 pdf 生成解决方案?

javascript - document.write 不适用于此 block

java - 添加版权信息生成的java代码 - Jcodemodel

java.lang.NoClassDefFoundError : org/springframework/metadata/Attributes

java - ArrayList 列表在不应该的情况下被更改

android - Mapbox 示例 map 不适用于 Android Studio/Genymotion

java - 为什么在实现优先级队列时使用堆而不是二叉树?

android - 我应该将外部数据保存在目录 Android/data 还是 data/中?