PDF-файл, созданный из просмотра прокрутки с использованием PdfDocument, печатает только содержимое первой страницы, ост ⇐ Android
PDF-файл, созданный из просмотра прокрутки с использованием PdfDocument, печатает только содержимое первой страницы, ост
I want to generate a pdf document using Android's PdfDocument class by scrolling through contents of a scrollView.
Right now, correct number of pages are being generated but contents are printed only on first page of pdf. Other generated pages remain blank.
public void toPdf(ScrollView view) { PdfDocument document = new PdfDocument(); int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); int totalHeight = scrollView.getChildAt(0).getHeight(); int pageCount = (int) Math.ceil((double) totalHeight / pageHeight); PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, 1).create(); PdfDocument.Page page = document.startPage(pageInfo); Canvas canvas = page.getCanvas(); int savedContentOffset = view.getScrollY(); int savedContentInset = view.getPaddingBottom(); view.setClickable(false); view.setVerticalScrollBarEnabled(false); view.setHorizontalScrollBarEnabled(false); view.setPadding(0, 0, 0, 0); for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) { view.scrollTo(0, pageIndex * pageHeight); view.draw(canvas); document.finishPage(page); if (pageIndex < pageCount - 1) { pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, pageIndex + 2).create(); page = document.startPage(pageInfo); canvas = page.getCanvas(); } } view.scrollTo(savedContentOffset, 0); view.setPadding(0, 0, 0, savedContentInset); view.setClickable(true); view.setVerticalScrollBarEnabled(true); view.setHorizontalScrollBarEnabled(true); // save PDF to a file savePdfDocument(document); } I verified the position of scrollview is being updated correctly. I also tried adding delays between each scroll to ensure the view's contents are written in pdf but it did not help. I am not able to figure why are contents not being written to pdf on other pages except the first page. What am I missing here?
Источник: https://stackoverflow.com/questions/780 ... f-first-pa
I want to generate a pdf document using Android's PdfDocument class by scrolling through contents of a scrollView.
Right now, correct number of pages are being generated but contents are printed only on first page of pdf. Other generated pages remain blank.
public void toPdf(ScrollView view) { PdfDocument document = new PdfDocument(); int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); int totalHeight = scrollView.getChildAt(0).getHeight(); int pageCount = (int) Math.ceil((double) totalHeight / pageHeight); PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, 1).create(); PdfDocument.Page page = document.startPage(pageInfo); Canvas canvas = page.getCanvas(); int savedContentOffset = view.getScrollY(); int savedContentInset = view.getPaddingBottom(); view.setClickable(false); view.setVerticalScrollBarEnabled(false); view.setHorizontalScrollBarEnabled(false); view.setPadding(0, 0, 0, 0); for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) { view.scrollTo(0, pageIndex * pageHeight); view.draw(canvas); document.finishPage(page); if (pageIndex < pageCount - 1) { pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, pageIndex + 2).create(); page = document.startPage(pageInfo); canvas = page.getCanvas(); } } view.scrollTo(savedContentOffset, 0); view.setPadding(0, 0, 0, savedContentInset); view.setClickable(true); view.setVerticalScrollBarEnabled(true); view.setHorizontalScrollBarEnabled(true); // save PDF to a file savePdfDocument(document); } I verified the position of scrollview is being updated correctly. I also tried adding delays between each scroll to ensure the view's contents are written in pdf but it did not help. I am not able to figure why are contents not being written to pdf on other pages except the first page. What am I missing here?
Источник: https://stackoverflow.com/questions/780 ... f-first-pa
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение