Is there such a solution in B4A?
I found a similar solution on stackoverflow, but my knowledge is not enough to create B4A code.
I found a similar solution on stackoverflow, but my knowledge is not enough to create B4A code.
Public Sub pdfToBMP(pdf_path As String) As Bitmap 'ignore
Try
Dim parcel As JavaObject
parcel.InitializeStatic("android.os.ParcelFileDescriptor")
Dim f As JavaObject
f.InitializeNewInstance("java.io.File",Array As String(pdf_path))
Dim p As Object = parcel.RunMethod("open",Array(f, 268435456))
Dim pdfRenderer As JavaObject
pdfRenderer.InitializeNewInstance("android.graphics.pdf.PdfRenderer",Array(p))...
Thanks, but I need B4A.
[B4X] [B4Xpages] PDF to Image (B4XBitmap)
I often needed to turn a PDF into an image, most of the time to have it printed on a thermal printer. I was looking for simple and cross-platform methods. This is an example that allows you to get an image with Windows / Android / iOs from a PDF file NB. For Windows it is necessary to...www.b4x.com
Dim pdfr As PdfRenderer
Public Sub pdfToBMP(pdf_path As String) As Bitmap 'ignore
Try
Dim parcel As JavaObject
parcel.InitializeStatic("android.os.ParcelFileDescriptor")
Dim f As JavaObject
f.InitializeNewInstance("java.io.File",Array As String(pdf_path))
Dim p As Object = parcel.RunMethod("open",Array(f, 268435456))
Dim pdfRenderer As JavaObject
pdfRenderer.InitializeNewInstance("android.graphics.pdf.PdfRenderer",Array(p))
Dim page As JavaObject = pdfRenderer.RunMethod("openPage",Array(0))
Dim bmp As Bitmap
bmp.InitializeMutable(page.RunMethod("getWidth",Null),page.RunMethod("getHeight",Null))
Dim cv As Canvas
cv.Initialize2(bmp)
Dim Rect1 As Rect
Rect1.Initialize(0, 0, page.RunMethod("getWidth",Null), page.RunMethod("getHeight",Null))
cv.DrawRect(Rect1, Colors.white, True,5dip)
page.RunMethod("render",Array(bmp, Null, Null,2))
page.RunMethod("close",Null)
pdfRenderer.RunMethod("close",Null)
[B] Dim Out As OutputStream
Out = File.OpenOutput(Path , "tiquete.png", False)[/B]
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
Return bmp
Catch
' B4XPages.MainPage.Herramienta.Print_erro("Error en impresion" ,"AVISE ESTE ERROR","PDF-E-0012")
End Try
End Sub
Public Sub pdfToBMP (pdf_path As String) As Bitmap 'ignore
Try
Dim parcel As JavaObject
parcel.InitializeStatic("android.os.ParcelFileDescriptor")
Dim f As JavaObject
f.InitializeNewInstance("java.io.File",Array As String(pdf_path))
Dim p As Object = parcel.RunMethod("open",Array(f, 268435456))
Dim pdfRenderer As JavaObject
pdfRenderer.InitializeNewInstance("android.graphics.pdf.PdfRenderer",Array(p))
Dim page As JavaObject = pdfRenderer.RunMethod("openPage",Array(0))
Dim bmp As Bitmap
bmp.InitializeMutable(page.RunMethod("getWidth",Null),page.RunMethod("getHeight",Null))
Dim Rect1 As Rect
Rect1.Initialize(0, 0, page.RunMethod("getWidth",Null), page.RunMethod("getHeight",Null))
page.RunMethod("render",Array(bmp, Null, Null,2))
page.RunMethod("close",Null)
pdfRenderer.RunMethod("close",Null)
Return bmp
Catch
Log(LastException)
End Try
End Sub