Create PDF file Extension. Layout to PDF

Hello friends,

this is an extension to Create PDF files with the content of a Layout component (VerticalArrangement, HorizontalArrangement, …).

This extension is based on:
https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html

https://developer.android.com/reference/android/graphics/pdf/PdfDocument.PageInfo.Builder

I have built two versions of this extension: the Simple and the multi-page version.

1.- Create PDF. Simple version.


  • On Screen1 we fill a form. When Click on the “Create Pdf” Button, we pass the data to Screen2 using a TinyDB .
  • Screen2 receives the data as a list and shows a VerticalArrangement1 (yellow) with all the information. With the extension KIO4_PdfS the file is created: (/mnt/sdcard/) “comida.pdf” with the content of VerticalArrangement1 .
  • On Screen3 we can “Read” the contents of the file (/mnt/sdcard/) “comida.pdf” , using an Image component.
  • With this version we can only build PDF files with one page .
  • You can download the extension KIO4_PdfS.aix from:
    Create Build Crear App Inventor Extensiones Extensions Crear PDF. Leer PDF.

p284C_extension_crear_pdf.aia (24.5 KB)

To adapt the pdf to the different screen sizes, I have added the block: Density

32 Likes

2.- Create PDF. Multi-page version.

  • With this extension we can Create multi-page PDF files .
  • On Screen1, Click on the “Create Pdf” Button and fill a form. When filled Click on the “Add Page” Button.
  • All the information on the form will be displayed in the VerticalArrangement2 (yellow color).
  • We can add more pages using the “Add Page” Button.
  • When we finish adding page Click on the “Finish” Button. All pages will be saved in the file (/mnt sdcard/) "comida.pdf"
  • Using the “ReadPdf” Block, we can Read the content of the pages of the Pdf file in an Image component. (The first page is 0)
  • You can download the extension KIO4_Pdf.aix from:
    Create Build Crear App Inventor Extensiones Extensions Crear PDF. Leer PDF.

p284C_extension_crear_pdf_paginas.aia (26.5 KB)

Regards,
Juan Antonio Villalpando
More extensions:
http://kio4.com/appinventor/index.htm#extensiones

7 Likes

can it turn webview to pdf is the webview is in a layout?

2 Likes

You can convert to PDF the content of components (Label, WebView,…) directly or inside a Layout. Is very important the dimensions width and height:

https://developer.android.com/reference/android/graphics/pdf/PdfDocument.PageInfo.Builder

p284C_extension_pdf_view.aia (13.8 KB)

pdfk6

4 Likes

Directly with a TexBox component:

pdfk7

p284C_extension_pdf_view2.aia (14.5 KB)

2 Likes

Why showing this error

2 Likes

Show your blocks - doesn’t look like you set the layout correctly ?

1 Like

Here is the block

1 Like

AddPage is not asynchronous and can be a slow process to immediately put the Reload block.

I didn’t understand. Did I wrong anything in my block

2 Likes

bild

2 Likes

But that’s eror are showing in screen initialized

1 Like

Try with button click event as opposed to when webviewer .PageLoaded

1 Like

Update:

  • When the page is finished adding, the following event is triggered: AddedPage
    pdf20

  • ReadPdf: if my_file.pdf is in asset, you can write:
    pdfName: android_asset/my_file.pdf (to Build .apk).

com.KIO4_Pdf.aix:

http://kio4.com/appinventor/284C_extension_crear_pdf.htm#pdf2

after the file is generated, how do I share the pdf in another application?

File pdf is created in SdCard,
/mnt/sdcard/your_file.pdf

You can read, share, send… that file with other app.

1 Like

How can i a webview convert to pdf file?

Insert WebView in VerticalArrangement

1 Like

Give me the blocks plz

Check the first post:
1.- Create PDF. Simple version.
In the CreatePdf — layout block: VerticalArrangement1

In the Design part you put inside VerticalArrangement1 the WebView