我尝试学习如何为我的 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();
最佳答案
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();`
getContentView()
未从正确的类中调用,请检查 here
Activity 类不存在 getOutputStream()
。如果您想要做的是将内容复制到文件中,您可能应该创建一个新文件,然后将输出复制到该文件。- 所有代码都需要包含在一个方法中,然后从
onCreate()
方法调用。
有关为 Android 生成 PDF 的更多信息,请查看 [此链接]。 3
关于java - Android PDF生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627691/