SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Producing high-Quality
   office documents
      with Plone
  Plone Conference 2007, Naples, Italy


            Andreas Jung
        ZOPYX Ltd. & Co KG
     D-72070 Tübingen, Germany
    www.zopyx.com, info@zopyx.com
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


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


zopyx.com - SmartPrintNG
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

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)
zopyx.com - SmartPrintNG
Let‘s look under the hood
              of SmartPrintNG



zopyx.com - SmartPrintNG
A cross-format solution
                  Build 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
zopyx.com - SmartPrintNG
XSL-FO




zopyx.com - SmartPrintNG
Fix this




                           XSL-FO example


                  .....




zopyx.com - SmartPrintNG
XSL-FO wants XML,
            but we have only HTML!



zopyx.com - SmartPrintNG
All hail css2xslfo


                  Input: XML/CSS2 or XHTML/CSS

                  Output: XSL-FO document

                  Java-based

                  http://www.re.be/css2xslfo



zopyx.com - SmartPrintNG
From XSL-FO to
                            PDF & friends



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


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
zopyx.com - SmartPrintNG
Why not using any free
             XSL-FO processors ?




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




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



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

zopyx.com - SmartPrintNG
HTML-Fixer                        HTML-Tidy
            HTML
         aggregation
           adapter



                     HTML         css2xslfo (Java)                 XSL-FO xer
                   manipulator




                   Template/
                                   XINC (java)                      XFC (Java)
                  CSS chooser




                       Template                     Document
                       renderer                  (PDF, RTF, ODT,
                                                     DOCX)


               SmartPrintNG                 zopyx.convert
zopyx.com - SmartPrintNG
Content-type specific
                   configuration
     ZCML:
     <smartprintng:resourceDirectory
            interfaces=quot;Products.ATContentTypes.interface.interfaces.IATDocumentquot;
            directory=quot;documentquot;
     />




     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




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



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


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


zopyx.com - SmartPrintNG
SmartPrintNG Licensing

                  Free for non-commercial use

                       educational institutions

                       NGOs

                       charity organiziations

                  commercial license in preparation for
                  commercial usage


zopyx.com - SmartPrintNG
zopyx.com - SmartPrintNG
zopyx.com - SmartPrintNG
zopyx.com - SmartPrintNG

Más contenido relacionado

Más de Vincenzo Barone

Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Vincenzo Barone
 
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Vincenzo Barone
 

Más de Vincenzo Barone (20)

ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
 
How to market Plone the Web2.0 way
How to market Plone the Web2.0 wayHow to market Plone the Web2.0 way
How to market Plone the Web2.0 way
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
Wichert Akkerman   Plone Deployment Practices   The Plone.Org SetupWichert Akkerman   Plone Deployment Practices   The Plone.Org Setup
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
 
Philipp Von Weitershausen Untested Code Is Broken Code
Philipp Von Weitershausen   Untested Code Is Broken CodePhilipp Von Weitershausen   Untested Code Is Broken Code
Philipp Von Weitershausen Untested Code Is Broken Code
 
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
 
Rocky Burt Subtyping Unleashed
Rocky Burt   Subtyping UnleashedRocky Burt   Subtyping Unleashed
Rocky Burt Subtyping Unleashed
 
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
 
Wageindicator Foundation: a Case Study
Wageindicator Foundation: a Case StudyWageindicator Foundation: a Case Study
Wageindicator Foundation: a Case Study
 
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Tom Lazar   Using Zope3 Views And Viewlets For Plone 3.0 Product DevelopmentTom Lazar   Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
 
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
Xavier Heymans   Plone Gov   Plone In The Public Sector. Panel Presenting The...Xavier Heymans   Plone Gov   Plone In The Public Sector. Panel Presenting The...
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
 
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
 
Wichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org InfrastructureWichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org Infrastructure
 
Duncan Booth Kupu, Past Present And Future
Duncan Booth   Kupu, Past Present And FutureDuncan Booth   Kupu, Past Present And Future
Duncan Booth Kupu, Past Present And Future
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
Jared Whitlock Open Source In The Enterprise Plone @ Novell
Jared Whitlock   Open Source In The Enterprise    Plone @ NovellJared Whitlock   Open Source In The Enterprise    Plone @ Novell
Jared Whitlock Open Source In The Enterprise Plone @ Novell
 
Paul Everitt Community And Foundation Plones Past, Present, Future
Paul Everitt   Community And Foundation   Plones Past, Present, Future Paul Everitt   Community And Foundation   Plones Past, Present, Future
Paul Everitt Community And Foundation Plones Past, Present, Future
 
Thomas Moroz Open Source And The Open Society Using Plone To Build Commun...
Thomas Moroz   Open Source And The Open Society   Using Plone To Build Commun...Thomas Moroz   Open Source And The Open Society   Using Plone To Build Commun...
Thomas Moroz Open Source And The Open Society Using Plone To Build Commun...
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Roberto Allende Plone Cono Sur Creating A Plone Users Group From Scratch
Roberto Allende Plone Cono Sur   Creating A Plone Users Group From ScratchRoberto Allende Plone Cono Sur   Creating A Plone Users Group From Scratch
Roberto Allende Plone Cono Sur Creating A Plone Users Group From Scratch
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

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

  • 1. Producing high-Quality office documents with Plone Plone Conference 2007, Naples, Italy Andreas Jung ZOPYX Ltd. & Co KG D-72070 Tübingen, Germany www.zopyx.com, info@zopyx.com
  • 2. 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 zopyx.com - SmartPrintNG
  • 3. 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 zopyx.com - SmartPrintNG
  • 4. 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 zopyx.com - SmartPrintNG
  • 5. 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) zopyx.com - SmartPrintNG
  • 6. Let‘s look under the hood of SmartPrintNG zopyx.com - SmartPrintNG
  • 7. A cross-format solution Build 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 zopyx.com - SmartPrintNG
  • 9. Fix this XSL-FO example ..... zopyx.com - SmartPrintNG
  • 10. XSL-FO wants XML, but we have only HTML! zopyx.com - SmartPrintNG
  • 11. All hail css2xslfo Input: XML/CSS2 or XHTML/CSS Output: XSL-FO document Java-based http://www.re.be/css2xslfo zopyx.com - SmartPrintNG
  • 12. From XSL-FO to PDF & friends zopyx.com - SmartPrintNG
  • 13. 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 zopyx.com - SmartPrintNG
  • 14. 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 zopyx.com - SmartPrintNG
  • 15. Why not using any free XSL-FO processors ? zopyx.com - SmartPrintNG
  • 16. 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 zopyx.com - SmartPrintNG
  • 17. 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 zopyx.com - SmartPrintNG
  • 18. 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 zopyx.com - SmartPrintNG
  • 19. HTML-Fixer HTML-Tidy HTML aggregation adapter HTML css2xslfo (Java) XSL-FO xer manipulator Template/ XINC (java) XFC (Java) CSS chooser Template Document renderer (PDF, RTF, ODT, DOCX) SmartPrintNG zopyx.convert zopyx.com - SmartPrintNG
  • 20. Content-type specific configuration ZCML: <smartprintng:resourceDirectory interfaces=quot;Products.ATContentTypes.interface.interfaces.IATDocumentquot; directory=quot;documentquot; /> 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 zopyx.com - SmartPrintNG
  • 21. 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 zopyx.com - SmartPrintNG
  • 22. 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 zopyx.com - SmartPrintNG
  • 23. Image support supports images inside Plone and external images converted internally to PNG open issues: images resolution selection fitting images into a fixed layout zopyx.com - SmartPrintNG
  • 24. SmartPrintNG Licensing Free for non-commercial use educational institutions NGOs charity organiziations commercial license in preparation for commercial usage zopyx.com - SmartPrintNG