@Override
public void onWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, final WriteResultCallback callback) {
// Register a cancellation listener
cancellationSignal.setOnCancelListener(new CancellationSignal.OnCancelListener() {
@Override
public void onCancel() {
// If cancelled then ensure that the PDF doc gets thrown away
pdfDocument.close();
pdfDocument = null;
// And callback
callback.onWriteCancelled();
}
});
// Iterate through the pages
for (int currentPageNumber = 0; currentPageNumber < pageCount; currentPageNumber++) {
// Has this page been requested?
if(!pageRangesContainPage(currentPageNumber, pages)) {
// Skip this page
continue;
}
// Start the current page
PdfDocument.Page page = pdfDocument.startPage(currentPageNumber);
// Get the canvas for this page
Canvas canvas = page.getCanvas();
// Draw on the page
drawPage(currentPageNumber, canvas);
// Finish the page
pdfDocument.finishPage(page);
}
// Attempt to send the completed doc out
try {
pdfDocument.writeTo(new FileOutputStream(destination.getFileDescriptor()));
} catch (IOException e) {
callback.onWriteFailed(e.toString());
return;
} finally {
pdfDocument.close();
pdfDocument = null;
}
// The print is complete
callback.onWriteFinished(pages);
}
PrintShopPrintDocumentAdapter.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:bitesize-kitkat
作者:
评论列表
文章目录