SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Plus de Vincenzo Barone

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...Vincenzo Barone
 
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 wayVincenzo Barone
 
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)Vincenzo Barone
 
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 SetupVincenzo Barone
 
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 CodeVincenzo Barone
 
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...Vincenzo Barone
 
Rocky Burt Subtyping Unleashed
Rocky Burt   Subtyping UnleashedRocky Burt   Subtyping Unleashed
Rocky Burt Subtyping UnleashedVincenzo 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
 
Wageindicator Foundation: a Case Study
Wageindicator Foundation: a Case StudyWageindicator Foundation: a Case Study
Wageindicator Foundation: a Case StudyVincenzo Barone
 
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 DevelopmentVincenzo Barone
 
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...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
 
Wichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org InfrastructureWichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org InfrastructureVincenzo Barone
 
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 FutureVincenzo Barone
 
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 WillVincenzo Barone
 
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 @ NovellVincenzo Barone
 
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 Vincenzo Barone
 
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...Vincenzo Barone
 
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)Vincenzo Barone
 
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 ScratchVincenzo Barone
 

Plus 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
 

Dernier

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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...Drew Madelung
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 Processorsdebabhi2
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Dernier (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

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