#Region  Project Attributes 
	#ApplicationLabel: B4A Example
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region
#BridgeLogger : True
Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim pdf As PDFDocument
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private Button1 As Button
	Private ImageView1 As ImageView

	Dim xs As B4XView
	Dim access As Accessiblity
	
	Dim rp As RuntimePermissions
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("pdfPageLayout1")
	
	rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE)
	rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
	
	
	Activity.Title = "Pusat Laporan"
	Log(access.GetUserFontScale)
	ImageView1.Bitmap = LoadBitmap(File.DirAssets, "credences2.png")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
	If Permission = rp.PERMISSION_READ_EXTERNAL_STORAGE Then
'		Log("read")
	End If
	
	If Permission = rp.PERMISSION_WRITE_EXTERNAL_STORAGE Then
'		Log("write")
	End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	Log(ImageView1.Width)
	Log(ImageView1.Height)
End Sub


Sub Button1_Click
	pdf.Initialize("")
	Dim info As PageInfo
	Dim r As Rect
	r.Initialize(0,0,595,842)
	info.Initialize(595,842,1,r)
	
	Dim p As Page = pdf.startPage(info)
	Dim c As Canvas = p.Canvas
	
	Dim srcrec As Rect
	srcrec.Initialize(360,0,ImageView1.Width,ImageView1.Height)

	Dim dstrec As Rect
	dstrec.Initialize(400,30,400+150, 30+150)

	c.DrawBitmap(ImageView1.Bitmap,Null,dstrec)
	
	Dim own_header As TextRec
	own_header.Initialize("Pemilik Akun",100, 100,12, Colors.Black)
	own_header.draw(p, 20, 100)
	
	Dim owner As TextRec
	owner.Initialize("Rafi Mochamad Fahreza", 200, 200, 14, Colors.Blue)
	owner.draw(p, 20, 115)
	
	Dim adr_header As TextRec
	adr_header.Initialize("Alamat",100, 100,12, Colors.Black)
	adr_header.draw(p, 20, 145)
	
	Dim address As TextRec
	address.Initialize("Prima Harapan Regency", 200, 250, 14, Colors.Blue)
	address.draw(p, 20, 160)
	
	DateTime.DateFormat = "dd/MM/yyyy"
	
	Dim statement As TextRec
	statement.Initialize("Tanggal Cetak "&DateTime.Date(DateTime.Now), 200, 200, 16, Colors.Black)
	statement.draw(p, 380, 200)
	
	c.DrawLine(10, 250.0, 585.0, 250.0, Colors.DarkGray, 1.0)
	
	'header dari table
	Dim nocicilan As TextRec
	nocicilan.Initialize("Cicilan", 200, 200, 14, Colors.Black)
	nocicilan.draw(p, 20, 265)
	
	Dim tgl_cicil As TextRec
	tgl_cicil.Initialize("Tanggal Pembayaran", 200, 200, 14, Colors.Black)
	tgl_cicil.draw(p, 150, 265)
	
	Dim bayar_cicil As TextRec
	bayar_cicil.Initialize("Jumlah Pembayaran", 200, 200, 14, Colors.Black)
	bayar_cicil.draw(p, 400, 265)
	
	'Isi datanya
	For n = 1 To 24
		Dim n_cicil As TextRec
		n_cicil.Initialize(n, 200, 200, 12, Colors.Black)
		n_cicil.draw(p, 20, 280+(n*20))
	
		Dim n_tanggal As TextRec
		n_tanggal.Initialize(Rnd(1, 30)&"/"&Rnd(1,12)&"/2020", 200, 200, 14, Colors.Black)
		n_tanggal.draw(p, 150, 280+(n*20))
	
		Dim n_bayar As TextRec
		n_bayar.Initialize("Rp. "&Rnd(500000, 1500000), 200, 200, 14, Colors.Black)
		n_bayar.draw(p, 400, 280+(n*20))
	Next
	
	pdf.finishPage(p)
	
	pdf.writeTo(Starter.Provider.SharedFolder,"LaporanTagihan.pdf")
	Log(Starter.Provider.GetFileUri("LaporanTagihan.pdf"))
	Dim i As Intent
	i.Initialize(i.ACTION_VIEW, "")
	Starter.Provider.SetFileUriAsIntentData(i, "LaporanTagihan.pdf")
	i.SetType("application/pdf")
	StartActivity(i)
End Sub

Sub DrawMultilineText(Canv As Canvas, Text As String, x As Float, y As Float, Typeface1 As Typeface, textSize As Float, Color As Int, Align1 As String, Space As Float)
	Dim lineHeight As Float = Canv.MeasureStringHeight(Text, Typeface1, textSize)
	For Each line As String In Regex.Split(CRLF, Text)
		Canv.DrawText(line, x, y, Typeface1, textSize, Color, Align1)
		y = y + lineHeight + Space
	Next
End Sub
