[英]Android API PdfDocument not writing data in file using writeTo(outputStream)
[英]Writing PDF File using Android PdfDocument API
我正在使用以下代码使用Android PDFDocument API( https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html )从View编写PDF。
码
/**
* Writes given PDFDocument using content view.
*
* @param pdfDocument PDFDocument to be written.
*/
private void writePDFDocument(final PdfDocument pdfDocument) {
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(PDF_PAGE_WIDTH, PDF_PAGE_HEIGHT, 1).create();
// start a page
PdfDocument.Page page = pdfDocument.startPage(pageInfo);
// draw view on the page
int measureWidth = View.MeasureSpec.makeMeasureSpec(page.getCanvas().getWidth(), View.MeasureSpec.EXACTLY);
int measuredHeight = View.MeasureSpec.makeMeasureSpec(page.getCanvas().getHeight(), View.MeasureSpec.EXACTLY);
contentView.measure(measureWidth, measuredHeight);
contentView.layout(0, 0, page.getCanvas().getWidth(), page.getCanvas().getHeight());
contentView.draw(page.getCanvas());
// finish the page
pdfDocument.finishPage(page);
}
问题
如果正在编写A4大小的PDF。
因此,如果我的视图大小大于PDF大小,则如何自动将其写入第二页,现在,如果视图大小大于pdf页面大小,这些视图将被截断。
提前致谢。
我认为您在这里有两个选择。 一种是缩放环境以使视图适合一页。 另一种是手动“平铺”或“分页”视图。 您将需要计算所需的页面数,然后在页面之间转换画布
contentView.draw(page.getCanvas());
pdfDocument.finishPage(page);
page.getCanvas().translate(595,842);
page = document.startPage(pageInfo);
contentView.draw(page.getCanvas());
//etc.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.