所以我正在尝试根据用户输入和数据生成可能包含许多页面的报告。
类似的错误被总结为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)
如果事先知道页面是否在那里,我就不知道如何关闭文档了。
答案 0 :(得分:0)
这个问题已经过时了,但是一个答案可能会帮助其他人稍后再碰到它。
我有同样的错误。就我而言,我创建的PDF只有1页,但我创建的PdfAction正在调用PdfAction.GotoLocalPage(2, pdfDest, writer)
。由于没有第2页,因此抛出了“请求页面”错误。
如果您的错误是0页,我想知道您是否遇到导致PDF代码无法运行的错误,因此不会在生成的PDF中创建任何页面。
另一个想法是我在您包含的示例代码中看不到document.NewPage()
调用。也许有多种方法可以创建新页面,但这是我手动添加新页面的调用。如果您没有任何这些电话,也许这就是为什么PDF中没有页面?