Invoice Printout in Thermal Printer

Hi
I bought thermal printer with paper size 40 mm diameter. I want to print the manager invoice in that.
Can anybody help for this, whether i have to theme are anything else.

Have a great day

Thanks in advance.

hire a local programmer to customize a theme.
Manager only accepts paper sizes which you can set in Email Settings under Settings.

sorry to interrupt this answer is very hash, there are lot of people who use thermal printers for receipts,
so if at least for receipts we can have some option that would be a great feature.

Hello @himayun19,

I do not believe that the answer given was intended to be harsh or negative in any way.

@sharpdrivetek pointed out a few key facts:

  • Manager does not currently support paper with a 40mm diameter.
  • Since this is not a programming forum, we regularly direct people to hire a local programmer for any issues that require manipulation of a theme … if that person is not able to modify themes themselves.

I can see that you also want to use a thermal printer for receipts. As mentioned above, unfortunately this is not currently possible with the default theme and a custom theme may be needed to achieve that.

It is possible that more printing options will be added to Manager in the future. However, in the meantime, it may be faster to seek out an alternative (e.g. custom theme) to achieve what you want.

We are all users here, let’s try to work together :slight_smile:

the themes available in Manager will not fit on a thermal printer.
making the already available themes to fit on a thermal printer will make the text unreadable.
users who need to use thermal printer may or may not print the whole data. the choice will vary from user to user. so it is better if the user develops a custom theme depending on their needs.

my suggestion is to create a theme which can be used for thermal printers, that way one will have an option to chose a theme whenever required for thermal printers. this will be a great feature to manager. again if possible

like i already said, what data should the theme include?
one user would want only the item name and rate. another user would want the tax rate to show. even another user would want the available credit of the customer to show.
so it would be impossible to make a default theme available.

I fully understand it is not possible. but if by chance anyone has a custom theme for thermal printer kindly share. thanks a lot.

Hi Every one- any update about thermal print?

Search the forum. Someone posted code for a custom theme recently.

Hi Tut, Thanks for your notification, but i can not find this , can i ask to share the link plz.

Thanks in advance.

This is the thread I was remembering: A5 Paper Size Printing from email settings - #17 by Previsam.

The example code discussion was buried in a topic with a somewhat different title from “thermal printer.”

Thermal Printing format

< style >
@media print {
html, body {
width: 100%;
-webkit-print-color-adjust: exact
}

@page {
size: 100% 100%; margin: 0% !important; padding: 0%;
}

< /style >

            <table style="margin-bottom: 20px; text-align: center;">
                <tr>
                    <td style="font-weight: bold; font-size: 32px">{{ title }}</td>
                    {% if business.logo != null %}<td class="text-end"><img src="{{ business.logo }}" style="max-height: 150px; max-width: 300px" /></td>{% endif %}
                </tr>
            </table>
            
            <table style="margin-bottom: 20px; text-align: center; font-size: 17px;">
                <tr>
                    {% if business.address != null %}
                    <td style="width: 1px; white-space: nowrap">
                        <div style="font-weight: bold; font-size: 22px"">{{ business.name }}</div>
                        <div>{{ business.address | newline_to_br }}</div>
                        {% for field in business.custom_fields %}
                        <div>{{ field.label }} {{ field.text }}</div>
                        {% endfor %}
                    </td>
                    {% endif %}
                </tr>
            </table>
            
            <table style="margin-bottom: 20px; font-size: 17px;">
                <tr>
                    <td class="text-end">
                        {% for field in fields %}
                        <div style="font-weight: bold">{{ field.label }}</div>
                        <div style="margin-bottom: 10px">{{ field.text }}</div>
                        {% endfor %}
                    </td>
                                                                                            <td style="width: 20px"></td>
                    <td class="border-start" style="width: 20px"></td>
                    <td>
                        <div style="font-weight: bold">{{ recipient.name }}</div>
                        <div>{{ recipient.address | newline_to_br }}</div>
                        <div>{{ recipient.identifier }}</div>
                    </td>
                </tr>
            </table>

            <div style="font-size: 14px; font-weight: bold; margin-bottom: 20px">{{ description }}</div>
        </td>
    </tr>
    <tr>
        {% for column in table.columns %}
        <td class="text-{{ column.align }} border-start{% if forloop.last == true %} border-end{% endif %}" style="font-weight: bold; padding: 5px 1px; border-bottom-width: 1px; border-top-width: 1px{% if column.nowrap %}; width: 80px{% endif %}">{{ column.label }}</td>
        {% endfor %}
    </tr>
    
</thead>
<tbody style="font-size: 17px;">
    {% for row in table.rows %}
    <tr>
        {% for cell in row.cells %}
        <td class="text-{{ table.columns[forloop.index0].align }} border-start{% if forloop.last == true %} border-end{% endif %}" style="padding: 5px 1px; {% if table.columns[forloop.index0].nowrap %}; white-space: nowrap; width: 80px{% endif %}">{{ cell.text | newline_to_br }}</td>
        {% endfor %}
    </tr>
    {% endfor %}
    <tr>
    {% for column in table.columns %}
        <td class="border-start{% if forloop.last == true %} border-end{% endif %}" style="border-bottom-width: 1px">&nbsp;</td>
    {% endfor %}
    </tr>
    {% for total in table.totals %}
    <tr>
        <td class="text-end" colspan="{{ table.columns | size | minus:1 }}" style="padding: 5px 1px{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.label }}</td>
        <td class="border-start border-end text-right" style="white-space: nowrap; border-bottom-width: 1px; padding: 5px 1px{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</td>
    </tr>
    {% endfor %}

    {% for field in custom_fields %}
    <tr>
        <td colspan="99">
            <div style="font-weight: bold; padding-top: 20px">{{ field.label }}</div>
            <div>{{ field.text | newline_to_br }}</div>
        </td>
    </tr>
    {% endfor %}

    <tr>
        <td colspan="99">
            {% if emphasis.text != null and emphasis.positive %}
            <div style="text-align: center; margin-top: 40px"><span style="color: #006400; border-width: 5px; border-color: #006400; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
            {% endif %}

            {% if emphasis.text != null and emphasis.negative %}
            <div style="text-align: center; margin-top: 40px"><span style="color: #FF0000; border-width: 5px; border-color: #FF0000; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
            {% endif %}
        </td>
    </tr>
</tbody>
1 Like