Build1=Default,smm.pdf
File1=layout.bal
FileGroup1=Default Group
Group=Default Group
Library1=bitmapsasync
Library10=sql
Library11=xui
Library12=bitmapcreator
Library2=contentresolver
Library3=core
Library4=okhttputils2
Library5=pdfrenderer2
Library6=phone
Library7=printb4a
Library8=randomaccessfile
Library9=runtimepermissions
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~~\n~SetApplicationAttribute(android:requestLegacyExternalStorage,true)~\n~AddPermission(android.hardware.usb.accessory)~\n~AddPermission(com.usb.sample.USB_PERMISSION)~\n~AddApplicationText(~\n~~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~~\n~)~\n~CreateResource(xml, device_filter.xml,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~
Module1=Starter
Module2=usbservice
NumberOfFiles=1
NumberOfLibraries=12
NumberOfModules=2
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: ALIBABA
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#AdditionalJar : jna
#AdditionalJar : jna-platform
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Private xui As XUI
Dim printer As PrintB4A
Dim pdf As PDFRenderer
Private cc As ContentChooser
Dim timr As Timer
Public rp As RuntimePermissions
Public safedir As String
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
Private ImageView1 As ImageView
Private EditText1 As EditText
Private Button3 As Button
Private Button2 As Button
Private Label1 As Label
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
printer.Initialize("")
printer.SetClean
printer.usbDriverCheck
timr.Initialize("Timer1", 1000)
timr.Enabled = True
safedir=rp.GetSafeDirDefaultExternal("")
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
rp.CheckAndRequest(rp.PERMISSION_READ_EXTERNAL_STORAGE)
End Sub
Sub Timer1_Tick
Label1.Text = "isConnected : " &printer.isConnected
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
cc.Initialize("CC")
cc.Show("application/pdf", "Choose pdf File")
Wait For CC_Result (Success As Boolean, Dir As String, FileName As String)
If Success Then
File.Copy(Dir, FileName,File.DirInternal,"pdf.pdf")
Log(File.Exists(File.DirInternal,"pdf.pdf"))
pdf.Initialize("pdf",File.DirInternal,"pdf.pdf")
Dim b As Bitmap =pdf.renderPageforPrint(0)
ImageView1.Bitmap=b
Dim Out As OutputStream
Out = File.OpenOutput( File.DirDefaultExternal , "tk001.png", True)
b.WriteToStream(Out, 100, "PNG")
Out.Close
Dim C() As Byte = BitmapToBMP(LoadBitmap(File.DirDefaultExternal, "tk001.png"))
File.WriteBytes(File.DirDefaultExternal, "test.bmp", C)
End If
End Sub
Private Sub Button2_Click
Log("imprime text3")
' If EditText1.Text.Trim.Length>3 Then
printer.SetClean
printer.PrintString(EditText1.Text,0)
' End If
End Sub
Private Sub Button3_Click
printer.PrintDiskImagefileBA(ImageView1.Bitmap)
printer.PrintDiskImagefileBA(LoadBitmapSample(File.DirDefaultExternal,"test.bmp",600%x,600%y))
End Sub
Sub Activity_PermissionResult (Permission As String, Result As Boolean)
If Permission = rp.PERMISSION_WRITE_EXTERNAL_STORAGE Then
ToastMessageShow("Permition write external storage"& Result,True)
'Log(rp.PERMISSION_WRITE_EXTERNAL_STORAGE &" "&Result)
End If
If Permission = rp.PERMISSION_READ_EXTERNAL_STORAGE Then
ToastMessageShow("Permition READ external storage"& Result,True)
'Log(rp.PERMISSION_READ_EXTERNAL_STORAGE &" "&Result)
End If
End Sub
Sub BitmapToBMP (img As B4XBitmap) As Byte()
Dim Padding As Int = 4 - ((img.Width * 3) Mod 4)
If Padding = 4 Then Padding = 0
Dim HeaderSize As Int = 40
Dim offset As Int = HeaderSize + 14
Dim size As Int = offset + img.Width * img.Height * 3 + img.Height * Padding
Dim raf As RandomAccessFile
Dim buffer(size) As Byte
raf.Initialize3(buffer, True)
raf.WriteBytes(Array As Byte(Asc("B"), Asc("M")), 0, 2, raf.CurrentPosition)
raf.WriteInt(size, raf.CurrentPosition)
raf.CurrentPosition = raf.CurrentPosition + 4
raf.WriteInt(offset, raf.CurrentPosition)
raf.WriteInt(HeaderSize, raf.CurrentPosition)
raf.WriteInt(img.Width, raf.CurrentPosition)
raf.WriteInt(img.Height, raf.CurrentPosition)
raf.WriteShort(1, raf.CurrentPosition)
raf.WriteShort(24, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
raf.WriteInt(0, raf.CurrentPosition)
Dim bc As BitmapCreator
bc.Initialize(img.Width, img.Height)
bc.CopyPixelsFromBitmap(img)
Dim a As ARGBColor
For y = bc.mHeight - 1 To 0 Step -1
For x = 0 To bc.mWidth - 1
bc.GetARGB(x, y, a)
raf.WriteByte(a.b, raf.CurrentPosition)
raf.WriteByte(a.g, raf.CurrentPosition)
raf.WriteByte(a.r, raf.CurrentPosition)
Next
For i = 0 To Padding - 1
raf.WriteByte(0, raf.CurrentPosition)
Next
Next
raf.Close
Return buffer
End Sub