Android PDF生成

时间:2016-04-14 15:32:50

标签: 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 个答案:

答案 0 :(得分:0)

  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()方法调用。
  6. 有关为Android生成PDF的详细信息,请查看[此链接]。3