PDF export of Plone content based on the weasyprint library.
Project description
plone.pdfexport
Provides PDF export functionality for Plone content.
Features
Exports Documents, Event, News items and other custom content.
Can be customized via CSS in the PDF Export control panel.
Long tables which will be rendered on more than one page, will have the thead repeated on every page.
One can use Plone body tag CSS classes to define CSS rules for specific Plone content.
This add-on is based on the great WeasyPrint library.
Translations
This product has been translated into
english
german
Installation
Install plone.pdfexport by adding it to your buildout:
[buildout] ... eggs = plone.pdfexport
and then running bin/buildout
Note: for Python 2 (Plone 5.1) you have to pin some packages:
weasyprint = 0.42.3 cairocffi = 0.9.0 tinycss2 = 0.6.1 soupsieve = 1.9.6 cssselect2 = 0.2.2
Usage
After installing the add-on you can call the “aspdf” view on any Plone content.
http://localhost:8080/Plone/news/aspdf
for testing, you can add the GET parameter “html=1” to see the HTML version before it get rendered into a PDF.
http://localhost:8080/Plone/news/aspdf?html=1
We provide portrait and landscape mode with separate page setting for each mode:
@page {
margin: 2.75cm 1.4cm 1.4cm 1.4cm;
size: landscape;
@top-center {
font-size:12px;
color:#666666;
content: "Beautiful Plone content, deserves a beautiful PDF export!";
}
@bottom-left {
font-size:12px;
color:#666666;
content: "provided by derico.de";
}
@bottom-right {
font-size:12px;
color:#666666;
content: "Page " counter(page);
}
}
You can set which mode is the default. To use a different mode, you can add a request parameter:
http://localhost:8080/Plone/front-page/aspdf?mode=landscape
http://localhost:8080/Plone/front-page/aspdf?mode=portait
Contribute
Issue Tracker: https://github.com/plone/plone.pdfexport/issues
Source Code: https://github.com/plone/plone.pdfexport
Support
If you are having issues, please let us know.
License
The project is licensed under the GPLv2.
Contributors
Maik Derstappen, md@derico.de
Changelog
2.2 (2024-07-21)
Add Banner image field, render banner in page headers [MrTango]
2.1 (2022-11-04)
fix python_requires definition [MrTango]
require Py >=3.7 and remove restapi down pinning [MrTango]
2.0 (2021-10-26)
Provide both page mode’s (landscape and portrait) with a default setting and switch thru a request mode parameter [MrTango]
1.1 (2021-10-08)
- Improved image handling, now support also original images (without @@images/scales).
[MrTango]
1.0 (2021-10-06)
Improve German translations [MrTango]
Improve error handling and add more tests [MrTango]
1.0b1 (2021-07-15)
Resolve images internally in a custom WeasyPrint url_fetcher, this removes the need to resolves url’s for WeasyPrint, which was problematic with permissions or https cert issues [MrTango]
1.0a4 (2021-07-14)
Don’t use optimize_images=True in weasyprint for now, it only works in Py3 versions [MrTango]
1.0a3 (2021-07-14)
Add print_image_scale to control panel and use custom image scale for PDF export [MrTango]
1.0a2 (2021-07-14)
Fix missing lead image viewlet in PDF export [MrTango]
Merge content css classes with body tag classes instead of overriding them [MrTango]
1.0a1 (2021-07-13)
Initial release. [MrTango]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.