java - Android PDF生成

标签 java android pdf-generation

我尝试学习如何为我的 Android 应用程序生成 PDF。
我按照官方文档进行操作,但代码不起作用。
编译器发现了我一些编译错误,但我所做的只是从代码中复制/粘贴代码。
请看一下代码并告诉我原因(:

 PrintAttributes printAttributes = new PrintAttributes.Builder().
         setMediaSize(PrintAttributes.MediaSize.ISO_A4)
         .setColorMode(PrintAttributes.COLOR_MODE_COLOR)
         .setMinMargins(PrintAttributes.Margins.NO_MARGINS)
         .build();


PrintedPdfDocument document = new PrintedPdfDocument(this, printAttributes);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}



// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(new Rect(0, 0, 100, 100), 1).create();

// start a page
PdfDocument.Page page = document.startPage(pageInfo);

// draw something on the page
View content = getContentView();
content.draw(page.getCanvas());

// finish the page
document.finishPage(page);
// add more pages
// write the document content
document.writeTo(getOutputStream());

// close the document
document.close();

最佳答案

  1. PageInfo.Builder 不采用您使用的参数。尝试更换

     PdfDocument.PageInfo pageInfo = 
             new PdfDocument.PageInfo.Builder(new Rect(0, 0, 100, 100), 1).create();
    

    PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(100,100,1).create();`
    

    请检查文档 PdfDocument.PageInfo.Builder

  2. getContentView() 未从正确的类中调用,请检查 here

  3. Activity 类不存在
  4. getOutputStream()。如果您想要做的是将内容复制到文件中,您可能应该创建一个新文件,然后将输出复制到该文件。

  5. 所有代码都需要包含在一个方法中,然后从 onCreate() 方法调用。

有关为 Android 生成 PDF 的更多信息,请查看 [此链接]。 3

关于java - Android PDF生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627691/

相关文章:

android - 如何默认突出显示 RecyclerView 的第一行,然后在选择其他行时删除突出显示?

android - FirebaseMessagingService 是否在设备重启后仍然存在?

java - 从 Okhttp 使用 One-Shot ResponseBody 会导致 Retrofit 出现问题

php - 从 PHP 站点修改 PDF 表单

java - 为什么我的地板不平整?

JAVA:两步 View 模式:我们如何使用两个 XSL 文件将转换 View 转换为两步 View 以获得所需的 HTML 输出?‽

java - 无法在 AMD 64 位平台 LWJGL 上加载 IA 32 位 .dll

java - 在静态工厂方法中使用重写方法创建实例时,如何访问封闭类中的私有(private)字段?

pdf-generation - gnuplot:无法识别的终端选项

java - 使用 Apache PDFBox 添加文本时如何移动到下一行