Coder Social home page Coder Social logo

diegoveloper / quickprinter Goto Github PK

View Code? Open in Web Editor NEW
120.0 13.0 26.0 281 KB

[Quick Printer] Created for the purpose of serving as a channel among other applications that require printing data on receipt printers using ESC / POS commands.

quickprinter android android-library android-escpos escpos escpos-printer esc-pos printer receipt-printer pos-printers

quickprinter's Introduction

Quick Printer

Android POS Printer (ESC/POS)

Created for the purpose of serving as a channel among other applications that require printing data on receipt printers using ESC/POS commands.

Installation

If you can't download/install the app from Google Play https://play.google.com/store/apps/details?id=pe.diegoveloper.printerserverapp , try using this link: https://apkpure.net/es/quick-printer-esc-pos-print/pe.diegoveloper.printerserverapp

Introduction

Quick printer is an Android application that allows you to add and configure receipt printers (POS printers) through different connection types:

  • Wifi local network
  • Bluetooth
  • USB (OTG)

The most important thing is that it allows you to print the text you share from any application, so you can print your favorite texts.

And if you're a developer, you can integrate your application in a super simple way so you can print tickets, receipts, etc.

The application supports many types of thermal and matrix printers such as EPSON, BIXOLON, STAR MICRONICS, CITIZEN, etc.

Usage

The steps for using the application will be detailed below:

1. Download Quick Printer from the playstore here

Configure your printers using the Tutorial inside de app.

2. Share Text from any application installed

When the application selection dialog appears, select 'Quick Printer'.  
The selected text will be printed on your previously configured printer.

NON Developers

If you are a user without knowledge of programming, you can use the app just sharing text, try sharing text from any app, like SMS, Whatsapp, Browser(copy the Text you need, NOT the URL), etc.

  • Select the Text

  • Press SHARE
  • Select Quick Printer

You can use any command from these list: https://github.com/diegoveloper/quickprinter#commands-supported

Developers

If you are a developer and want to integrate your Android application with 'Quick Printer', read the following instructions:

  • Using Sharing Intents

You can share plain text using shared Intents with the appropriate commands, below the simplest example.

       String textToPrint = "Your text here"; 
       Intent intent = new Intent("pe.diegoveloper.printing"); 
        //intent.setAction(android.content.Intent.ACTION_SEND);  
       intent.setType("text/plain"); 
       intent.putExtra(android.content.Intent.EXTRA_TEXT,textToPrint); 
       startActivity(intent); 

When the selection dialog appears, select 'Quick Printer'.

  • Using Sharing Intents with commands

You can specify different printer commands in your sharing text to take advantage of your printer. This is an example of how to use the commands.

       String textToPrint = "<BIG>Text Title<BR>Testing <BIG>BIG<BR><BIG><BOLD>" +
               "string <SMALL> text<BR><LEFT>Left aligned<BR><CENTER>" +
               "Center aligned<BR><UNDERLINE>underline text<BR><QR>12345678<BR>" +
               "<CENTER>QR: 12345678<BR>Line<BR><LINE><BR>Double Line<BR><DLINE><BR><CUT>";  
       Intent intent = new Intent("pe.diegoveloper.printing"); 
       //intent.setAction(android.content.Intent.ACTION_SEND);  
       intent.setType("text/plain");  
       intent.putExtra(android.content.Intent.EXTRA_TEXT,textToPrint);  
       startActivity(intent);  

These commands generate this ticket

Commands supported

Command Description
<BR> breakline
<SMALL> small text size
<MEDIUM1> medium text size
<MEDIUM2> medium text size
<MEDIUM3> medium text size
<BIG> big text size
<BOLD> bold text
<LEFT> text aligned to the left
<RIGHT> text aligned to the right
<CENTER> text aligned to center
<UNDERLINE> text with underline
<NORMAL> turn off bold and underline
<LINE> A single line of text
<DLINE> Double line of text
<LINE0> A single line of text without breakline
<DLINE0> Double line of text without breakline
Table Mode Send your text separated by ;; e.g: Header1;;Header2;;Header3
Item1;;Item2;;Item3
<CUT> Cut the paper
<AWAKE> Ping to the printer (Doesn't print anything, just awake the printer)
<LOGO> Print the logo configured on your printer
<LOGO2> (OPTIONAL for some printers) Print the logo configured on your printer
<INVERSE> Turn on white/black reverse mode
<DRAWER> Open the cash drawer connected to the printer
<COMMAND> Use ESC/POS commands to print. Eg: 0x1B,0x40
(premium feature)
<QR>your text<BR> Print a QR code of your text(premium feature)
<QR-S>your text<BR> Print a QR (small size) code of your text(premium feature)
<QR-M>your text<BR> Print a QR (medium size)code of your text(premium feature)
<QR-L>your text<BR> Print a QR (large size)code of your text(premium feature)
<BARCODE128>your numbers<BR> Print a Barcode128 of your numbers(premium feature)
<IMAGE>http://url_of_image<BR> Print an Image from your URL (Default 200x200)
<IMAGE>file:///storage/emulated/0/Download/YourImage.png<BR> Print an Image from your Local File URL (Default 200x200)
<IMAGEwXh>http://url_of_image<BR> Print an Image with custom size(w= width,h= height, e.g: <IMAGE300x200>) from your URL (premium feature)

Some examples for Barcode and QR:

      //barcode128
    String commands = "<center><BIG>hello barcode<br>Testing barcode<barcode128>5331698000418<br><cut>";
    
    //qr
    String commands2 = "<center><BIG>hello qr<br>Testing qr<QR>MyName10<br><cut>";
      
    
  • Getting the print result

If you want to get the printing result you should use startActivityForResult instead of startActivity, below is the sample code

Old versions of Android

Call the printer

        Intent intent = new Intent("pe.diegoveloper.printing"); 
        //intent.setAction(android.content.Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(android.content.Intent.EXTRA_TEXT,"your text to print here");
        startActivityForResult(intent,YOUR_REQUEST_CODE);  

Receive the data

        @Override
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       // super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == YOUR_REQUEST_CODE){
            if (resultCode == RESULT_OK){
                //Printing is ok
            } else {
                if (data != null) {
                    String errorMessage = data.getStringExtra("errorMessage");  
                    //Printing with error
                }
            }
          }
        }

New versions of Android

Call the printer

        Intent intent = new Intent("pe.diegoveloper.printing"); 
        intent.setType("text/plain");
        intent.putExtra(android.content.Intent.EXTRA_TEXT,"your text to print here");
        myActivityResultLauncher.launch(intent);
       

Receive the data

              
           ActivityResultLauncher<Intent> myActivityResultLauncher = registerForActivityResult(
           new ActivityResultContracts.StartActivityForResult(),
           result -> {
               if (result.getResultCode() == Activity.RESULT_OK) {
                   //Printing is ok

               } else {
                   Intent data = result.getData();
                   if (data != null) {
                       String errorMessage = data.getStringExtra("errorMessage");
                       //Printing with error
                   }
               }
           });
  • Printing on a specific printer by alias

If you want to send the data to a specific printer (replacing printer selection), You can do following the snippet code

       String data = "<PRINTER alias='your_printer_alias'> YOUR CUSTOM DATA <BR><CUT>"; 
       Intent intent = new Intent("pe.diegoveloper.printing"); 
      // intent.setAction(android.content.Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  

If you want to print the same commands on multiple printers, you can use multiple alias separated by ,.

       String data = "<PRINTER alias='alias1, alias2, alias3'> YOUR CUSTOM DATA <BR><CUT>";   
  • Printing on a specific printer by group

We introduced groups, now you can add groups and assign it to any printer, so multiple printers can be part of a group (replacing printer selection), You can do following the snippet code

       String data = "<PRINTER group='your_printer_group'>YOUR CUSTOM DATA <BR><CUT>"; 
       Intent intent = new Intent("pe.diegoveloper.printing"); 
      // intent.setAction(android.content.Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  
  • Printing your receipt 'n' times

If you want to print your receipt 'n' times, You can do following the snippet code

       String data = "<PRINTER repeat='4'> YOUR CUSTOM DATA <BR><CUT>"; 
       Intent intent = new Intent("pe.diegoveloper.printing");
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  
  • Other useful commands

If you want to receive some data from Quick Printer without prints anything, you can use these commands.

  • Get the alias List

       String data = "<PRINTER alias_list>"; 
       Intent intent = new Intent("pe.diegoveloper.printing");
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  
  • Get the group List

       String data = "<PRINTER group_list>"; 
       Intent intent = new Intent("pe.diegoveloper.printing");
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  
  • Avoid printing Dialog

       String data = "<PRINTER avoid_dialog>"; 
       Intent intent = new Intent("pe.diegoveloper.printing");
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  
  • Avoid error dialog when the printer fails

       String data = "<PRINTER avoid_error_button>"; 
       Intent intent = new Intent("pe.diegoveloper.printing");
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,data);
       startActivityForResult(intent,YOUR_REQUEST_CODE);  

Learn how to receive the data: https://github.com/diegoveloper/quickprinter#getting-the-print-result

  • Print from web

You can print directly from your website using schemas, for example if you want to print the following commands:

        String commands = "test printer<br><big>Big title<br><cut>";

You have to write this on your web page:

   <script>
function sendToQuickPrinter(){
    var text = "test printer<br><big>Big title<br><cut>";
    var textEncoded = encodeURI(text);
    window.location.href="quickprinter://"+textEncoded;
}

//if you are using latest version of chrome browser I recommend to use:
function sendToQuickPrinterChrome(){
    var text = "test printer<br><big>Big title<br><cut>";
    var textEncoded = encodeURI(text);
    window.location.href="intent://"+textEncoded+"#Intent;scheme=quickprinter;package=pe.diegoveloper.printerserverapp;end;";
    
}
</script>

<a onclick="sendToQuickPrinter();">Print Button</a>

All you need to do is specify the quickprinter schema:// followed by the encoded data (you could use encodeURI method from javascript) you want to print. If you are using Apache Cordova and want to print from web, You must add this line on your config.xml file :

 <allow-intent href="quickprinter://*" />

Testing printer from your chrome browser (Open this link from your android phone) https://quickprinter-d2410.firebaseapp.com/

  • AppInventor Integration

If you want to communicate AppInventor with QuickPrinter , you have to use these configuration:

Action: pe.diegoveloper.printing
DataType: text/plain
ExtraKey: android.intent.extra.TEXT
ExtraValue: your text to print
  • Flutter Integration

If you want to communicate Flutter with QuickPrinter , you can use this plugin https://pub.dev/packages/android_intent_plus and these configuration:

  AndroidIntent intent = const AndroidIntent(
                               action: 'pe.diegoveloper.printing',
                               type: 'text/plain',
                               arguments: {
                                  "android.intent.extra.TEXT": "test printer<br><big>Big title<br><cut>",
                                });
  await intent.launch();
  • Advance options (Premium features)

If you are suscribed to the 'Quick Printer' application, you can use this advanced options

       Intent intent = new Intent("pe.diegoveloper.printing"); 
       //intent.setAction(android.content.Intent.ACTION_SEND);
       intent.setType("text/plain");
       intent.putExtra(android.content.Intent.EXTRA_TEXT,etPrinterText.getText().toString());
       //premium features
       intent.putExtra("config_error_dialog",false); 
       intent.putExtra("config_color_background_dialog","#0000ff");
       intent.putExtra("config_color_text_dialog","#00ff00");
       intent.putExtra("config_text_dialog","Loading...");
       startActivityForResult(intent,YOUR_REQUEST_CODE);
Option Value Description
config_error_dialog (true/false) Default value is 'true', you can send 'false' if you don't want the 'Quick Printer' app handle the error if exists
config_color_background_dialog Color in hexadecimal Background color of the Printing dialog
config_color_text_dialog Color in hexadecimal Text color of the Printing dialog
config_text_dialog Text Text of the Printing dialog

NOTE: 'QR' command and these options are only availables for Premium Version. Free version print a message at the end of the ticket.

  • Buy a big number of licenses or unlimited licenses

    If you want to buy a big number of licenses and you don't want to your customers pay for them, please contact me.

  • Integrate Printer Driver directly in your code

'Quick Printer' is an app that is using a library developed by me. If you want integrate the library directly in your project, please contact me.

Demo Integration (Android Sample Project)

Link: https://github.com/diegoveloper/quickprinter-integration

Download the latest version of Quick Printer here

Contact me

Diego Velásquez López

Mobile Developer expert from Peru, author of the 'Quick Printer' and the library used by the app.
[email protected]

quickprinter's People

Contributors

diegoveloper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickprinter's Issues

Silent Printing

Hi, i hope this application can do silent printing without pop up dialog when printing

print persian

hello my friend thanks alot your software is very good but i have a problem with it i cant print persian or arabic(languge of iran country) please help me how can i print persian or arabic correctly

Some commands not working as expected

Hi Diego, first of all, congratulations on the project!
I'm sending commands to a Zebra and a Brother printer using ZPL mode, but commands like CENTER, RIGHT and IMAGE are not working. Is this an issue with the ZPL mode?
Could you please advise on that? Thank you!

Image with custom size not works <IMAGEwXh>

Hello,
That's great app and good way to do any job using Thermal Bluetooth Printer easy and quickly, thank you for that.

Command <IMAGE300x200>http://url_of_image.jpg<BR> not works correctly, result printed as text and not image

Problems printing image

Hi,

I'm trying to print an image, this is my code
<IMAGE>http://my-website.com/logo-grey-200.gif<BR>

but printer doesn't complete the job and stops the process.

If I comment out that line, printer complete it's job without any problems.

Horizontal print

Hello, I've been trying to make my printer, print a bank slip for a long time, but I can't use page mode, do you know any api or can you tell me how to do this ??

Subscription

What's the difference between using the app the free and premium version of the app?

...this isn't really an issue

Hello,

this isn't really an issue. I wanted to ask if you have a list of compatible thermal printers?
I've tried several now, most of them work. Only the "big" brands, like a printer from Epson, were bitchy. There was always the first letter cut off, so we always had to indent our text around a space. The "China Scrap" from from the East, like the ZJ-5802LD, work without any problems. Therefore a list in the Wiki here on Github would be a nice thing. There would be a lot of people involved in building a table.
I am planning to buy an Excelvan Bluetooth printer on eBay and don't know if it will work yet. But I would like to share my experience.

Best regards, ck

Image printing in the center

Hi can you guide me about the print the image in the center of the receipt. i am using 80mm paper with USB thermal printer black copper. i am trying to print the barcode and the image in the center,
I have tried justification, horizontal tab, everything

Cannot use newline in QR Code

Hi, I am printing from a website using javascript by opening an Intent.

From what I read, it should be possible to put newline character inside the QR Code, by using %0A character. I tried many encoding like %250A and also \n, but none of them works.

I built my text in javascript, then use encodeURI as in the example before opening the Intent.

Can you help me, thanks.

Sending any command results in LF + CUT

Sending any command to ://quickprinter results in LF + CUT.

Have Premium account. No advertisement in footer but still get LF + CUT.

Sending DRAWER also sends LF + CUT to the printer.

Sending NULL to ::/quickprinter also results in LF + CUT

Loses Network Connection

Set Quick Printer to Network printer, ESC/P mode. Uncheck "Ask for Printer" for auto print mode.

Sending receipts to network printer work fine until idle for 5 minutes. If idle for 5 mines, Quick Printer looses the connection and you have to retry 3 times to print. It always takes 3 "Retry" attempts to print and always prints on the 3rd attempt.

You can set you watch to this issue. 4 minutes = still working. 5 or more minutes = looses connection.

Having a popup retry defeats the auto print purpose. I can cure this issue by pinging ://quickprinter every few minutes however another issue exists with every command resulting in LF + CUT (Issue #13)

Buzzer

Hi,

I wondered whether it is possible for us to sound an external buzzer (if connected) using the app?

This would be support for the BELL (hex 07) call.

Thanks

Getting always RESULT_CANCELED

Hi! This app is amazing, saved us a lot of work, but we have been experiencing some troubles when we use the app on tablets.

Even if there is an error or the printing succeded, we get RESULT_CANCELED (0) in onActivityResult(), our tablet model is Samsung SM-T280, API 22; in other phones that we have the app works perfectly, just happens in this model.

Formatting issues

The first character of every line is being cut off, including in the test prints from the app. Also, there is an extra 0 inserted at the beginning of every print. Tested on a Star sp700 and star mCP31C.

Also, font sizing is not working correctly. Big, Medium and small all print the same size.

Printing Image on Thermal Printer

When I am trying to print an image (Which I just created in code). I use

file:///storage/emulated/0/testimage.png

But I get "Image not available" printed where it should print the image. I am still evaluating your API.

I plan to get a premium version if it works.

Thanks

tsp100III(lan) rastered mode

Tested out this app today with my tsp100III(lan) and it worked quite well for what I wanted to do. I just have one question:
When I select Raster mode in the printer setup my tsp100III prints out everything in plain text (including the commands like , , ect ). When I don't select Raster mode it does not print out anything, but it does do the command I put at the end of my ticket(open up cash register).

Is it possible to implement something that makes it so Raster mode does not put everything in plain text but lets us do some layouting? (possible premium feature?)

Is it possible to implement "hooks"?

Hello, I want something like hooks. So, I have another POS receipt printing application. But the application is not flexible, so I decided to develop a solution to print several rows after each receipt. Does it possible to set up some triggers on each printing to add some extra lines after each one?

How to print QR code and Text in the same time

hi im studen that currently studying about making app in android studio with kotlin. i want make a receipt for ticket app that i build , that consist of the qr code and text like "you are the first visitors and you have to pay 12k IDR " but i dont know how to print a bitmap and a text at hte same time , i've try to print the layout and convert it to bitmap but it cant (or i dont know how) set the paper size . but if i print it with documenttype the printer attribute (that i ll use for set the paper size) is work or can be used. so i think to fusion it , like how i can print the bitmap but i can set the papersize until i see your github , that can print the a receipt with QR and text . plizz tell me if yoou know

Print possible but always print Last Job.

Printing result is normal. But there is 1 big issue..

it always print the previous Job.
1st Print always no response.

Print from Web-
function sendToQuickPrinterChrome(){
var text = "test printer
Big title
";
var textEncoded = encodeURI(text);
window.location.href="intent://"+textEncoded+"#Intent;scheme=quickprinter;package=pe.diegoveloper.printerserverapp;end;";

UTF-8 Printing from web

Hey!

First of all, thanks for your amazing work. I'm using this snippet:

function sendToQuickPrinterChrome(text){
    var textEncoded = encodeURI(text);
    window.location.href="intent://"+textEncoded+"#Intent;scheme=quickprinter;package=pe.diegoveloper.printerserverapp;end;";
}

to print from a web application. Everything works just fine, the problem is that when I try to print UTF-8 characters. It seems QuickPrinter ignores them while printing. Any ideas?

Expo React Native Intent got error message "No data to print"

Hi, first of all, thanks a lot for this great app. I created an Android App to print EPSON TM printer by Expo React Native.

I got the Intent object return as:

"
Object {
"extra": Object {
"android.content.Intent.EXTRA_TEXT": "This is a test printing. If you see this paper, please contact FirstCom.",
"errorMessage": "No data to print",
},
"resultCode": 0,
}
"

and this is my js codes:

"pe.diegoveloper.printing",
{
type: "text/plain",
flags: 0,
packageName: "android.content.Intent.EXTRA_TEXT",
extra: {
"android.content.Intent.EXTRA_TEXT": data,
},
}
);

Just want to check, is there anything I put wrong?

I can't send the data to the app.

Appreciate if you could reply ASAP.

Is it possible to "silent" print using a foreground service?

The foreground services do not have activities. All the methods in the README they are calling methods from Activities super classes (e.g startActivityForResult and startActivity and registerForActivityResult)

Can we run the printer intent from a foreground service that does not have a running activity?
We already use the avoid_dialog and the alias properties to avoid an actual view opening. We are just struggling with how to call the intent. I am also new to android.

This issue looks similar, but downloaded the apk and could not install it. And I am running the latest app version either way.
Thanks for the great product.

<br> is double spacing between images

The < br > command should not add spacing between images. It should simply place the next image immediately below the one above, but it appears to be adding either one or two full spaces, resulting in large gaps in printed output (I'm printing from a web page via Javascript).

You can see the spaces in the attached jpg. The spacing I need to get rid of is marked "Spacing because of the < br >".

(I've added spaces between the < > brackets so that they will display OK on this issue.)

imgspaced

The code for printing each of the images is similar to this:

text = "< center >< image390x490 >" + url + "imgprint_600x600.jpg" + "< br >";

I've tried matching the command to the exact jpg size and also simply using instead of , and I still get the spacing.

Apparently, the < br > is necessary to tell quickprinter that the command is complete.

Does anyone have a solution that would stack the images one on top of the other without the extra spacing?

Thanks
Jimmy

Test print works but regular printing does not

I have the following problem with a printer called Woosim Porti-S:

The regular print test in the printer setup dialog works for the most part

  • Image 1: not printed
  • QR: printed as text: 1P0http://www.google.comk 1E0k 1C k 1Q0
  • PDF417: printed as text: k0P0abcde123456k 0Ak 0Bk 0C k 0D k 0E00k 0

But the "Testing Printer" page doesn't output anything for the "Normal Text" test commands.

Printer Mode: ESC/POS mode
Encoding: Euro (Default)

I don't have more details, since it's a customers printer and I can't test myself, but I can get other settings tested. What should I try?

<BOLD> tag is not working

I tried using bold tag but it is not working. e.g. here

<BR><BR><BOLD>Thank you for shopping with us!<BR><BR>

How to close print dialog

After calling window.location.href = "quickprinter://" + textEncoded; from the web page, Quick Printer displays the print dialog and the message "Printing" while performing the print function.

But if there is an error, or the printing is taking too long (for example, if the printer is unavailable) there is no [Cancel] button.

As an alternative, can I change the time the print dialog is taking to display the "Detail" dialog ([Retry], [Close], [Configur...]. Currently, it takes about 50-60 seconds. I would like to shorten that to 10 seconds.

Thanks

No Premium in Android 7.1.2

Hi.
I have a monthly subscription for testing. I have it installed on a Samsung Tablet Android 6.0.1 and it works in the premium version. On another tablet with Android 7.1.2, the premium version will not load. What do I have to do?

Print different receipts to different aliases with one print dialogue from the web

The alias feature allows me to print to different printers which is great, but if I want to print different receipts to each alias I need to wait 4 seconds before printing to to the second alias, and the print dialogue is shown twice. Is there a way to make a single call like....

`<PRINTER alias='kitchen'><BR>KITCHEN<BR><CUT><PRINTER alias='checkout'><BR>CHECKOUT<BR><CUT>"`

Multiple alignments in one line

Hi,

I'm trying to align text left and right in one line. An example could be a receipt, where on one line you have a name of an item and right-aligned price, e.g.:
Item_________$1.00
(with space instead of underscore).

So far I've used a workaround of adding spaces, but it would be great if
"Item<right>$1,00"
worked.

Integrating with erpnext

Hello Diego

This is a good one here...Please i am trying to test this with my erpnext application but can't figure out how to make this work with my android device.

Will appreciate your guide on this

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.