This question has been flagged
2 Replies
4235 Views

I wish to include a barcode on my printed checks.  The barcode will be the suppliers reference number. 

Using OpenOffice to edit my check (Accounting Voucher - Print Check (Bottom)) I've added the following line: 

[[<barCode code="code128" barHeight="30">voucher.reference</barCode>]]

This code prints nothing. 

I've also tried:

[[<barCode code="code128" barHeight="30">[[voucher.reference]]</barCode>]]

Which prints:  </barCode>]]

What am I doing wrong?  Many Thanks!

Nate

Avatar
Discard
Author

My apologies for not including my platform information. I'm running OpenERP 7 on Debian Wheezy. I'm using the OpenOffice Report Designer (base_report_designer).

Best Answer

The answer to your question depends on which version of Odoo you are using, which report engine you are using, and what kind of barcode you want to display. I'm going to assume v7.0, RML, and UPC128.

The reason it doesn't work is because the UPC128 font (a barcode is a font) is not supported by the ReportLabs implementation used in Odoo 7.0. If you want to achieve this, you need to implement UPC128 in ReportLabs the same way EAN13 and a few others are. This is quite technical. The alternative is to get on Odoo Online to benefit from the new QWeb report engine. You will be able to use different fonts more easily. Otherwise, wait for v8 if you absolutely need to deploy on premise.

Avatar
Discard
Author

My apologies for not including my platform information. I'm running OpenERP 7 on Debian Wheezy. I'm using the OpenOffice Report Designer (base_report_designer) for my reporting engine. Interestingly, I can generate product labels with barcodes on them, which makes me think everything I need should be there. Perhaps this would be the quite technical way your talking about. I've held off on going to version 8 because OpenERP/Odoo seems to be heading down a path where they are withholding or depreciating key functionality to encourage users to use the SaaS version. One example would be the ability to easily add a module (and not use Odoo's server) from the GUI in v6 is missing in v7. Also not providing the scripts to allow people to easily move to the next version seems to really not be in the spirit of opensource. Nate

- Your code sample shows that you are trying to use UPC128 barcodes. This is different than the default product labels available out-of-the-box that are using EAN13 barcodes. This seems to be the reason why one works and the other doesn't.
- What was possible in v6 is still possible in v7. What was possible in v6 was to install modules that are located in your addons folder from the UI. This is still possible in v7. The problem in v6 is that users would go online, download modules they would find here and there, import them, install from the UI, then complain because they get errors. The reason is because they didn't make sure that the version of the module they downloaded was compatible with the versions of all the other modules, nor that they had downloaded all the required dependencies of the modules they wanted to install. We could then hear "Odoo doesn't work". The way to solve this was to set up a service platform (the Apps platform) that Odoo maintains and ensures to users that they will not face such problems. This is a service, Odoo charges for it. If you don't want to pay for it, you are still free to do everything like in v6 (with the risk of facing errors if you don't know precisely what you are doing).
- The spirit of open source is free as in freedom, not free as in free services. More information here: https://www.odoo.com/blog/1/post/119

Author

So could I include an EAN13 barcode easily? I don't think my barcode scanner will care between the two formats. My other thought was to use the Free3of9 barcode font. I totally get the free does not mean free services. I just feel sometimes that Odoo purposefully encumbers the "free software" to the service. As far as differences between importing modules between 6 & 7, it seems a better way could of been found. In version 7 you are limited to using the app service, or a really complex manual install. Regardless I obviously like the product and am wanting to contribute code when and where I can. I just want to make sure that my contributions will be made freely available to others.

Best Answer

you can use pyBarcode, a python library to generate the barcode image.

 

Avatar
Discard
Author

Thanks Ahmad. Initially this seems like a great ideal, however, when I start thinking about how to implement it, it would seem that it would make the check printing process much more complex. I'm assuming pyBarcode will generate a graphic file and then that file will somehow need to be referenced on the check.