andreas jung producing high quality documents with plone new approaches in exporting plone...

27
Producing high-Quality office documents with Plone Andreas Jung ZOPYX Ltd. & Co KG D-72070 Tübingen, Germany www.zopyx.com , [email protected] Plone Conference 2007, Naples, Italy

Upload: wooda

Post on 23-Jan-2015

3.012 views

Category:

Technology


5 download

DESCRIPTION

Exporting Plone content into different office formats like PDF, RTF or Openoffice is a common requirement. This session presents a new generic framework to export Plone content into all common office formats. Based on XSL-FO technology, SmartPrintNG provides flexible control over all aspects of the generated document. Custom stylesheets and templates can be applied to any Plone content. The same framework can be used to generate handouts from a S5 presentation or you supports you generated invoice or just to create a high-quality PDF from the current page just as you see it on the screen. The talk will give a brief introduction into XSL-FO technology, explains the internal processing chain of SmartPrint, shows how to create custom templates and stylesheets and tells you about the integration into Plone.

TRANSCRIPT

Page 1: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

Producing high-Quality office documents

with Plone

Andreas JungZOPYX Ltd. & Co KG

D-72070 Tübingen, Germanywww.zopyx.com, [email protected]

Plone Conference 2007, Naples, Italy

Page 2: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Available solutions for PDF

htmldoc-based solutions:

Plone2PDF

htmldoc is fast but it sucks: no CSS support, poor PDF quality

Reportlab-based solutions

fast, good quality, not straight-forward

Page 3: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

No out-of-the-box solution for Plone available:

for generating PDF and other office formats (Word, RTF, Open-Office)

stylesheet support

configurable templates and content aggregation

Page 4: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

exports Plone content to PDF, ODT, WML, RTF

per content-type configurable

content-aggregation

templates and styles

out-of-the-box working with any content-type

highly configurable and customizable

SmartPrintNG

Page 5: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Historical background

XSL-FO based approach in use for the Haufe iDesk plattform

iDesk: Zope 2-based cross-plattform framework for content-retrieval applications

in use since 2005

deployed to more than 150K customers(means: 150K customers running Zope on their Windows desktop)

Page 6: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Let‘s look under the hoodof SmartPrintNG

Page 7: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

A cross-format solutionBuild on top of XSL-FO technology

XSL-FO:

Extensible Stylesheet Language- Formatting Objects

a W3C recommendation

consider it as a XML-ish typesetting system similiar to TEX

much nicer output; supports hyphenation

Page 8: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

XSL-FO

Page 9: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

XSL-FO example

.....

Fix this

Page 10: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

XSL-FO wants XML,but we have only HTML!

Page 11: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

All hail css2xslfo

Input: XML/CSS2 or XHTML/CSS

Output: XSL-FO document

Java-based

http://www.re.be/css2xslfo

Page 12: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

From XSL-FO to PDF & friends

Page 13: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

XSL-FO processors

a XSL-FO processor converts a XSL-FO document to some output format

XINC (www.lunasil.com):

Output format: PDF

XFC (www.xmlmind.com):

Output formats: RTF, DOCX, WML, ODT

Page 14: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

XSL-FO processors (2)XFC and XINC:

Java-based -> cross-plattform

„it just works“ [tm]

commercial :-(

but worth their money

other converter are even more expensive

about 500-600 Euro/CPU core/server

Page 15: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Why not using any free XSL-FO processors ?

Page 16: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Why not using any free XSL-FO processors ?

Apache FOP (Formatting Objects Processor):

old FOP 0.4 sucked like hell

new FOP 0.9.X sucks less, moving slowly

only PDF support

Page 17: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Why not using any free XSL-FO processors ?

Apache FOP (Formatting Objects Processor):

old FOP 0.4 sucked like hell

new FOP 0.9.X sucks less, moving slowly

only PDF support

most XSL-FO converters are commercial

Page 18: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Why not using any free XSL-FO processors ?

Apache FOP (Formatting Objects Processor):

old FOP 0.4 sucked like hell

new FOP 0.9.X sucks less, moving slowly

only PDF support

most XSL-FO converters are commercial

quality has its price

Page 19: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

SmartPrintNG zopyx.convert

HTML-Fixer HTML-Tidy

css2xslfo (Java)

XFC (Java)XINC (java)

Document(PDF, RTF, ODT,

DOCX)

XSL-FO xerHTML manipulator

HTML aggregation

adapter

Template renderer

Template/CSS chooser

Page 20: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Content-type specific configuration

<smartprintng:resourceDirectory interfaces="Products.ATContentTypes.interface.interfaces.IATDocument" directory="document"/>

ZCML:

Filesystem:> ls -la document-rw------- 1 ajung users 540 Sep 5 18:53 Big.css-rw------- 1 ajung users 515 Sep 5 18:52 StandardStylesheet.css-rw------- 1 ajung users 820 Sep 5 18:50 StandardTemplate.pt-rw------- 1 ajung users 617 Sep 5 17:34 default.fo_css

Page 21: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

SmartPrintNG - more features

configure header & footer regions within HTML

support for counters (e.g. page counters)

conditional output for left and right pages

multi-column support

Page 22: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

zopyx.convert

encapsulates the complete XSL-FO conversion logic

wraps css2xslfo, XINC and XFC inside a Python Package

eats HTML

spits out PDF, RTF, ODT, DOCX

Page 23: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Image support

supports images inside Plone and external images

converted internally to PNG

open issues:

images resolution selection

fitting images into a fixed layout

Page 24: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

SmartPrintNG Licensing

Free for non-commercial use

educational institutions

NGOs

charity organiziations

commercial license in preparation for commercial usage

Page 25: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Page 26: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG

Page 27: Andreas Jung   Producing High Quality Documents With Plone   New Approaches In Exporting Plone Content Into Office Formats

zopyx.com - SmartPrintNG