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