A5 Paper Size Printing from email settings

Hi Team,

I know this has been discussed a lot in forums but are you planning to introduce A5 printing anytime in future soon?

It would be really good if you can provide A5 printing option either from email settings or some other way around.

Thanks in Advance

@lubos & @Tut requesting your update on this.

I have nothing to do with development decisions. I’m a forum moderator, not part of the development process. Personally, however, I doubt you will see such a change, as it would impact every many transaction forms and reports for which there is already inadequate page space.

I just change the paper size under the actual printer settings when I need to print on A5.
Works fine for me, except for when I forget to change it back…

1 Like

Very interesting. Others have reported that does not work for them.

Never worked for me. It’s basically zooming out making text very small to read when using this method.

1 Like

@PRASOON_AGARWAL Yes, it does shrink everything to fit to the page, but it is still readable. If the fonts etc. stayed the same size as A4 a lot of the information such as descriptions and codes would not fit without word wrapping resulting in a longer invoice etc. that may not fit on a single A5 page.

What’s the use case for this feature?

Just adding A5 won’t probably do what you think it should do. All the themes are designed for A4 size. With A5 everything would be half-size which would be more difficult to read.

This is one major set back or minus for manager, aside that and few other ones manager is cool to use. You guys should try to improve on this feature to be able to print on small POS printer, of course as a programmer i know it can be done with some effort. Main while kudos to the dev team

1 Like

Manager does support this.
You just need to write (or get a programmer to write) a custom theme for the documents you actually need to print in A5. Use larger fonts so it is readable to your required standard. Of course you will have to deal with the compromise, less writing fits on a smaller page if you maintain the print size.

Thanks for the info. I’m a python programmer and I am OK with Javascript and html, will that be good enough to try out custom theme

Themes are written in Liquid. See https://www.manager.io/guides/10368.

Thanks, the link was very useful

Could you please share the Code for A5 theme if you are working on this.I don’t have any understanding of programming.

Thanks in advance, appreciate your effort.

@PRASOON_AGARWAL, your post was edited to remove your email address. If you wish to communicate privately with another forum member, use the personal message feature.

I don’t have an A5 to test with but wouldn’t your printer be able to resize it appropriately? Alternatively your PDF software would be able to print it downscale to A5 also.

Not sure if this is still helpful but I wrote mine after reading this post last month and it should work for all

For POS 58 Printer - Receipt Theme

Setup: Go to the Themes section of Manager settings page, click on the New Theme button, copy the code below and paste in the Theme Textarea then Choose a name of your choice for the theme and click Create to save.

Usage: Go to Forms Default section of Manager settings page, look for Payment or Receipt and click Edit scroll down and Mark the Check box for Custom Theme, then Select the Theme you just added from the dropdown under the Custom Theme check box.

<table style="background-color: #FFFFFF: width: 50px; color: #000000; text-transform: UPPERCASE">
{% assign description = null %}
{% assign amount = null %}
<thead>
 <tr>
  <td>
    <div style="text-align: center; width: 250px; word-wrap: break-word; margin-top: 3; margin-bottom: 30px">
        <div style="font-size: 20px; font-weight: bold; margin: 5px 0 10px 0">{{ business.name }}</div>
        <div>{{ business.address | replace: "\n", " " }}</div>
        <div style="font-weight: bold; font-size: 15px; padding: 5px; text-align: center; margin-bottom: 0px color: #000000; margin-top: 30px">{{ title }}</div>
        <div style="font-weight: bold; margin-top: 20px">Customer Name: <span style="font-weight: normal">{{ recipient.name }}</span></div>
    </div>
  </td>
</tr>
<tr>
  <td>
    <div style="text-align: center; width: 250px; word-wrap: break-word; margin-bottom: 30px">
      {% for field in fields %}
      <div style="display: inline-block">
        <div style="font-weight: bold; float: left; margin-right: 5px">{{ field.label }}: </div>
        <div style="float:left; margin-bottom: 10px; margin-right: 5px">{{ field.text }}</div>
      </div>
      {% endfor %}
  </td>
</tr>
<tr>
  <div style="width: 250px; word-wrap: break-word; margin-bottom: 30px">
    <div style="max-width: 100%; margin: 0 auto">

    </div>
    <td style="font-weight: bold; color: #000000; text-align: left; padding-left: 0px; padding-right: 0px; width: inherit; margin: 0 auto;">
      <div style="width: 280px;">
       {% for column in table.columns %}
            {% case column.label %}
                {% when 'Description' %}
                    {% assign description = forloop.index0 %}
                    <span style="display: block; word-wrap: break-word; width: 70%; float:left">{{ column.label }}</span>
                {% when 'Total' or 'Amount' %}
                    {% assign amount = forloop.index0 %}
                    <span style="display: block; word-wrap: break-word; width: 30%; float:left">Amount</span>
            {% endcase %}
        {% endfor %}
      </div>
    </td>
  </div>
</tr>
</thead>
<tbody>
  {% for row in table.rows %}
  <tr>
  <div style="width: 250px; word-wrap: break-word; margin: 0px 0px 20px 0px; clear: both">
    <div style="max-width: 100%; margin: 0 auto">
      <td style="color: #000000; text-align: left; padding-left: 0px; padding-right: 3px; width: inherit; margin: 0 auto;">
        <div style="width: 280px">
        {% for cell in row.cells %}
            {% case forloop.index0 %}
                {% when description %}
                    <span style="display: block; word-wrap: break-word; width: 70%; float:left">{{ cell.text }}</span>
                {% when amount %}
                    <span style="display: block; word-wrap: break-word; width: 30%; float:left">{{ cell.text }}</span>
            {% endcase %}
        {% endfor %}
        </div>
      </td>
    </div>
  </div>
 </tr>
  {% endfor %}
{% for total in table.totals %}
<tr>
  <div style="width: 300px; word-wrap: break-word; clear: both">
    <div style="max-width: 100%; margin: 0 auto">
      <td style="text-align: left; font-weight: bold; font-size: 13px">
        <div style="width: 250px">
          <span style="display: block; float:left; width: 70%; margin-top: 20px; margin-bottom: 15px;">{{ total.label }}:</span>
          <span style="display: block; float:left; width: 30%; margin-top: 20px; margin-bottom: 15px;">{{ total.text }}</span>
        </div>
      </td>
    </div>
  </div>
</tr>
{% endfor %}
<tr>
  <div style="width: 300px; word-wrap: break-word; margin-bottom: 20px">
    <div style="max-width: 100%; margin: 15px auto 0 auto">
      <td>
        <div style="padding-left: 2px; width: 280px; word-wrap: break-word">
          {% for field in custom_fields %}
          <div style="font-weight: bold; margin-top: 15px">{{ field.label }}</div>
          <div style="padding-bottom: 20px; margin-top: 15px">{{ field.text | newline_to_br }}</div>
          {% endfor %}
        </div>
      </td>
      </div>
    </div>
</tr>
<tr>
  <div style="width: 300px; word-wrap: break-word; margin: 0px 0px 10px 0px">
    <div style="max-width: 100%; margin: 15px auto 15px auto">
      <td>
        <div style="padding-left: 4px; width: 250px; word-wrap: break-word; text-align: center">
          <p><b>Thank you for choosing {{ business.name }}.</b></p>
        </div>
      </td>
      </div>
    </div>
 </tr>
</tbody>
</table>
2 Likes

No this does not return desired result. it will shrink the printed document but the text and all other on the printed document would be so small almost unreadable even at this it still cuts out some part.

1 Like

I created a second one for invoices because i needed three columns in my invoice printout which is description, qty and amount. Qty column does not work on receipt as it is not available for preview even in the built in theme. Find it below;

For POS 58 Printer - Invoice Theme

Setup: Go to the Themes section of Manager settings page, click on the New Theme button, copy the code below and paste in the Theme Textarea then Choose a name of your choice for the theme and click Create to save.

Usage: Go to Forms Default section of Manager settings page, look for Sales Invoice and click Edit scroll down and Mark the Checkbox for Custom Theme, then Select the Theme you just added from the dropdown under the Custom Theme checkbox.

<table style="background-color: #FFFFFF: width: 50px; color: #000000; text-transform: UPPERCASE">
{% assign description = null %}
{% assign qty = null %}
{% assign amount = null %}
<thead>
  <tr>
    <td>
     <div style="text-align: center; width: 250px; word-wrap: break-word; margin-top: 3; margin-bottom: 30px">
        <div style="font-size: 20px; font-weight: bold; margin: 5px 0 10px 0">{{ business.name }}</div>
         <div>{{ business.address | replace: "\n", " " }}</div>
        <div style="font-weight: bold; font-size: 15px; padding: 5px; text-align: center; margin-bottom: 0px color: #000000; margin-top: 30px">{{ title }}</div>
        <div style="font-weight: bold; margin-top: 20px">Customer Name: <span style="font-weight: normal">{{ recipient.name }}</span></div>
    </div>
   </td>
 </tr>
 <tr>
   <td>
       <div style="text-align: center; width: 250px; word-wrap: break-word; margin-bottom: 30px">
        {% for field in fields %}
       <div style="display: inline-block">
        <div style="font-weight: bold; float: left; margin-right: 5px">{{ field.label }}: </div>
        <div style="float:left; margin-bottom: 10px; margin-right: 5px">{{ field.text }}</div>
      </div>
      {% endfor %}
    </td>
  </tr>
   <tr>
  <div style="width: 250px; word-wrap: break-word; margin-bottom: 30px">
    <div style="max-width: 100%; margin: 0 auto">

    </div>
    <td style="font-weight: bold; color: #000000; text-align: left; padding-left: 0px; padding-right: 0px; width: inherit; margin: 0 auto;">
      <div style="width: 280px;">
       {% for column in table.columns %}
            {% case column.label %}
                {% when 'Description' %}
                    {% assign description = forloop.index0 %}
                    <span style="display: block; word-wrap: break-word; width: 53%; float:left">{{ column.label }}</span>
                {% when 'Qty' %}
                    {% assign qty = forloop.index0 %}
                    <span style="display: block; word-wrap: break-word; width: 17%; float:left">{{ column.label }}</span>
                {% when 'Total' or 'Amount' %}
                    {% assign amount = forloop.index0 %}
                    <span style="display: block; word-wrap: break-word; width: 30%; float:left">Amount</span>
            {% endcase %}
        {% endfor %}
      </div>
    </td>
    </div>
   </tr>
 </thead>
 <tbody>
{% for row in table.rows %}
<tr>
  <div style="width: 250px; word-wrap: break-word; margin: 0px 0px 20px 0px; clear: both">
    <div style="max-width: 100%; margin: 0 auto">
      <td style="color: #000000; text-align: left; padding-left: 0px; padding-right: 3px; width: inherit; margin: 0 auto;">
        <div style="width: 280px">
        {% for cell in row.cells %}
            {% case forloop.index0 %}
                {% when description %}
                    <span style="display: block; word-wrap: break-word; width: 53%; float:left">{{ cell.text }}</span>
                {% when qty %}
                    <span style="display: block; word-wrap: break-word; width: 17%; float:left">{{ cell.text }}</span>
                {% when amount %}
                    <span style="display: block; word-wrap: break-word; width: 30%; float:left">{{ cell.text }}</span>
            {% endcase %}
        {% endfor %}
        </div>
      </td>
    </div>
    </div>
   </tr>
   {% endfor %}
   {% for total in table.totals %}
  <tr>
  <div style="width: 300px; word-wrap: break-word; clear: both">
    <div style="max-width: 100%; margin: 0 auto">
      <td style="text-align: left; font-weight: bold; font-size: 13px">
        <div style="width: 250px">
          <span style="display: block; float:left; width: 70%; margin-top: 20px; margin-bottom: 15px;">{{ total.label }}:</span>
          <span style="display: block; float:left; width: 30%; margin-top: 20px; margin-bottom: 15px;">{{ total.text }}</span>
        </div>
      </td>
    </div>
  </div>
</tr>
{% endfor %}
<tr>
  <div style="width: 300px; word-wrap: break-word; margin-bottom: 20px">
    <div style="max-width: 100%; margin: 15px auto 0 auto">
      <td>
        <div style="padding-left: 2px; width: 280px; word-wrap: break-word">
          {% for field in custom_fields %}
          <div style="font-weight: bold; margin-top: 15px">{{ field.label }}</div>
          <div style="padding-bottom: 20px; margin-top: 15px">{{ field.text | newline_to_br }}</div>
          {% endfor %}
        </div>
      </td>
      </div>
    </div>
</tr>
<tr>
  <div style="width: 300px; word-wrap: break-word; margin: 0px 0px 10px 0px">
    <div style="max-width: 100%; margin: 15px auto 15px auto">
      <td>
        <div style="padding-left: 4px; width: 250px; word-wrap: break-word; text-align: center">
          <p><b>Thank you for choosing {{ business.name }}.</b></p>
        </div>
      </td>
      </div>
    </div>
</tr>
</tbody>
</table>

There are three major types of POS thermal printers, the smallest if POS-58, middle on is POS-70 and the biggest is POS-80.

The themes I shared are based on POS-58. If you need for other Thermal printer types please let me know.

If you know HTML and CSS you can simply increase the width: CSS property value until you get the desired size.

Thank you.

8 Likes

This is very helpful. Thank you

1 Like