studio - Android crea documento pdf desde la vista web con varias páginas
manual de programacion android pdf (2)
Estuve teniendo este mismo problema en los últimos días, así que encontré esta respuesta de Rakesh Gopathi, funcionó a la perfección. Realmente recomiendo a cualquiera que esté usando las clases nativas de PdfDocument para verificarlo.
Estoy usando el marco PdfDocument de Android ( enlace ) para crear un documento pdf a partir del contenido de mi sitio web. El pdf se crea bien, pero solo es un documento de una página. Cuando el contenido de la vista web es grande, necesito crear un documento de varias páginas. TODO LO QUE NECESITO ES DIVIDIR EL CONTENIDO DE WEBVIEW EN PÁGINAS. ¿Cómo puedo conseguir esto? No quiero usar iText ni ninguna biblioteca de terceros.
Necesito ayuda por favor Gracias por adelantado.
// create a new document
PdfDocument document = new PdfDocument();
// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
// draw something on the page
View content = myWebview;
content.draw(page.getCanvas());
// finish the page
document.finishPage(page);
FileOutputStream fos;
try {
fos = new FileOutputStream(fileNameWithPath, false);
// write the document content
document.writeTo(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// close the document
document.close();
Si desea crear varias páginas, simplemente llame a startPage () y finishPage () para cada página que desee crear en su documento.
Algo como esto :
// create document
PdfDocument document = new PdfDocument();
// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create();
// start 1st page
PdfDocument.Page page = document.startPage(pageInfo);
// draw something on the page
View content = myWebview;
content.draw(page.getCanvas());
// finish 1st page
document.finishPage(page);
// start 2nd page
PdfDocument.Page page = document.startPage(pageInfo);
// draw something on the page
View content = someOtherWebview;
content.draw(page.getCanvas());
// finish 2nd page
document.finishPage(page);
// and so on...
FileOutputStream fos;
try {
fos = new FileOutputStream(fileNameWithPath, false);
// write the document content
document.writeTo(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// close the document
document.close();