How to create a nice-looking report in PDF
ERP5 PDF Form allows easy creation of reports with an arbitrary and unrestricted layout - you can take any pdf document you like and place dynamically filled slots on it. It is particularly useful for filing tax forms, can also be used to produce nice-looking financial statements and other documents.
1. Create a pdf with slots
Get Scribus (>=1.3.1 - version 1.3.0 can crash when placing image frames, version >= 188.8.131.52 is required to use some utf-8 fonts in the form). Some recent rpm could be found at http://download.opensuse.org/repositories/home:/mrdocs/
If your tax form has multiple pages, split it into separate files (can be gifs, jpegs or any other graphic formats).
Create a document in Scribus; place an image frame on the whole page, then set your form as the frame's background).
Draw fields on your document:
- draw a PDF Field
right-click on it, select "PDF Options" -> "Field Properties"
- make it a text field, name it, set border to none
- Save as .sla, export as .pdf.
If you want to have the same fonts in the pdf file and scribus file, you must export the fonts during the pdf creation step (using 'Fonts' tab in the 'save as pdf' window).
If you don't have some very specifics property (like transparency , 128 bits encryption, ...) you must select PDF 1.3 compatibility to have the best compatibility and avoid fonts problems.
2. Create a form
Add "ERP5 PDF Form", selecting your pdf file (you can change it later by going to the "edit" tab and uploading another file).
Go to the "Edit Cell TALES" tab - you should see all the fields you created in your pdf. Fill them with appropriate formulas, either pure TALES or the "python:" ones. The expressions recognize "here" and "request" global variables.
To make filling formulas in easier, you can generate a form with field names shown as field values (click on "Display Cell Names" tab).
3. Use it
You can use your form as any other executable content type (as target in dialog form, for example). The result will be a pdf file shipped straight to the user's browser.