我计划使用内置的android pdf库。在我的应用程序中,我需要显示一个pdf报告,它可能包含几页。用户应该能够打印这些页面。用printdocumentadapter打印看起来很简单,但我不清楚创建pdf的最佳方法是什么。我知道你可以用一个简单的视图/画布生成一个pdfdocument,或者采用更“低级”的方法来绘制线条、文本、绘画等。我看到了三种可能性:为每个页面创建一个视图。用户可以根据需要在视图之间导航并打印。但是,我不清楚如何为每个页面/视图生成pdf。我的意思是,如果我正在查看页面/视图1,是的,我可以很容易地从中创建一个pdf,但是其他页面呢?是的,我可以把它放在内存中,但我发现如果屏幕上没有显示它们,它们会创建空的pdf。我不想让用户单独打印每一页。创建pdf文档(低级方法),集成pdf阅读器,然后从那里显示/打印pdf。为用户可以浏览的每个页面创建一个视图。调用print选项时,再次生成pdf文档(低级方法)显然,选择1是首选方法,但我不清楚如何做到这一点。当然,我可能会错过一些东西在这里,所以任何帮助将不胜感激! 最佳答案 然而,这是相对的。这实际上是一个你觉得使用哪个库/框架更方便的问题,因为每个库/框架都提供相同的功能,但都有自己的缺点。例如,与我一起工作的人有以下几项:你必须买一张许可证以作商业用途(见What is latest version of itext that is not AGPL?);android打印框架-在打印之前没有内置的pdf预览,正如您在第2项中提到的那样(您可以使用内置的PdfRenderer尽管对于api 21+;也可以参见Display PDF within app on Android?)。另一个缺点是disturbing system dialogs当您想“静默”保存/打印时:甚至official documentation声明“您可以使用任何pdf生成库生成pdf文档并将其传递给android打印框架进行打印。”当您将用户留下的视图保留在内存中时,出现空PDF的原因是它们的0维,因为它们没有被布局(请参见Android: PdfDocument generates empty pdf)。如果你试图夸大用户尚未访问的视图,也会发生同样的情况…实际上,您对此无能为力,这就是...but what's unclear to me is what is the best way to create the pdf...的工作原理。在这种情况下,我建议您为用户当前正在与之交互的每个内容视图预先创建...Yes I can have this in memory, but what I've found is if they aren't actively being displayed on screen, they create empty pdfs...页面,只要确保在画布上绘制视图时视图仍处于展开状态。对于当前未列出的视图,请使用“低级方法”。一旦打印请求通过输出Android到I don't want to have the user print each page individually.。