In this tutorial we will cover how to create a PDF with many pages. The code automatically converts linears into pages of your pdf file.
Start by adding a button to save the linears as PDF files.
The next step is to navigate to that button's onClick event. In your onClick event, create a string variable with the name "path". If you're not sure what a string variable is, or how to create one, please check out this article.
Then place your blocks as shown in the blocks above.
In the first ASD block, use the following code:
try{ android.graphics.pdf.PdfDocument document = new android.graphics.pdf.PdfDocument(); android.graphics.pdf.PdfDocument.PageInfo pageInfo = new android.graphics.pdf.PdfDocument.PageInfo.Builder(1720, 1190, 4).create(); android.graphics.pdf.PdfDocument.Page page1 = document.startPage(pageInfo); View content1 = linearpage1; content1.draw(page1.getCanvas()); document.finishPage(page1); android.graphics.pdf.PdfDocument.Page page2 = document.startPage(pageInfo); View content2 = linearpage2; content2.draw(page2.getCanvas()); document.finishPage(page2); android.graphics.pdf.PdfDocument.Page page3 = document.startPage(pageInfo); View content3 = linearpage3; content3.draw(page3.getCanvas()); document.finishPage(page3); android.graphics.pdf.PdfDocument.Page page4 = document.startPage(pageInfo); View content4 = linearpage4; content4.draw(page4.getCanvas()); document.finishPage(page4);
In the above code, linearpage1, linearpage2, linearpage3 and linearpage4 are my linear IDs. In your case you can use linear1, linear2 etc.
If you would like to change the size of the PDF files change the dimensions by altering the text highlighted in blue
To add another page simply copy this section and repeat for as many pages as you want. Remember to change the page number as well as the linear.
android.graphics.pdf.PdfDocument.Page page5 = document.startPage(pageInfo); View content5 = linearpage5; content4.draw(page5.getCanvas()); document.finishPage(page5);
The next step is to set the path where the PDF file will be saved. The path should end with .pdf
Use the following logic:
To save the file in a specific folder, you can customize the path as follows
In the second add source directly block place the following code:
java.io.File myFile = new java.io.File(path); java.io.FileOutputStream fOut = new java.io.FileOutputStream(myFile); java.io.OutputStreamWriter myOutWriter = new java.io.OutputStreamWriter(fOut); document.writeTo(fOut); document.close(); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(), "Your file has been saved", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show(); }
The final logic should look as shown in the blocks below:
Once your blocks are set you can then run your app and try it out.
Comments