如何解决Android PdfDocument无法从recyclerView打印全部内容
我正在尝试使用android API PdfDocument创建PDF文件。
如果内容较少(在屏幕可见范围内)-我的代码可以正常工作。
如果recyclerView包含更多项目(超过屏幕高度)-所有内容都不会以PDF打印。
这是我的代码:
public void exportDataPDF(View view) {
PrintAttributes printAttrs = new PrintAttributes.Builder().
setColorMode(PrintAttributes.COLOR_MODE_COLOR).
setMediaSize(PrintAttributes.MediaSize.ISO_A2).
setResolution(new PrintAttributes.Resolution("MyPrinterId",PRINT_SERVICE,50,50)).
setMinMargins(new PrintAttributes.Margins(5,5,5)). //PrintAttributes.Margins.NO_MARGINS
build();
PdfDocument pdfDocument = new PrintedPdfDocument(this,printAttrs);
int pageNumber = 1;
//Get Content View.
View contentView = findViewById(R.id.recyclerView);
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(contentView.getWidth(),contentView.getHeight(),pageNumber).create();
// create a new page from the PageInfo
PdfDocument.Page page = pdfDocument.startPage(pageInfo);
// draw view on the page
Canvas pageCanvas = page.getCanvas();
pageCanvas.scale(1f,1f);
int pageWidth = pageCanvas.getWidth();
int pageHeight = pageCanvas.getHeight();
int measureWidth = View.MeasureSpec.makeMeasureSpec(pageWidth,View.MeasureSpec.EXACTLY);
int measuredHeight = View.MeasureSpec.makeMeasureSpec(pageHeight,View.MeasureSpec.EXACTLY);
contentView.measure(measureWidth,measuredHeight);
contentView.layout(0,pageWidth,pageHeight);
contentView.draw(pageCanvas);
// do final processing of the page
pdfDocument.finishPage(page);
try {
FileOutputStream fileOutputStream = openFileOutput(exportFileName,MODE_PRIVATE);
pdfDocument.writeTo(fileOutputStream);
fileOutputStream.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
有人可以帮助我以PDF格式打印recyclerView项目的所有内容。我不想使用iText等外部库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。