A year in LibreOffice s PDF support

Similar documents
Editing ReqIF-XHTML fragments with Writer

LibreOffice: Code Structure

LibreOffice's Android port By Miklos Vajna. Software Engineer at Collabora Productivity

Rendercontext & Double-Buffering

Real Time, Secure Collaboration

DIS: Design and imaging software

End User Guide. 2.1 View PDF documents on desktop Choose a file View PDF documents View PDF documents on mobile...

LibreOffice Interoperability Strong & Weak Points. Cor Nouws Nou&Off The Netherlands

Overview. Finding information and help Adobe Acrobat. Where to find it and why to use it. When converting from Word to Acrobat

1.1 PDFium Foxit PDF SDK PDFium version of Foxit PDF SDK Features Evaluation...

Calc Tiled Rendering in LibreOffice Online

Integrating LibreOffice with Gnome Documents

How to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements?

Acquiring Amazing Adobe Acrobat Skills using Acrobat Professional XI

Office Suites Seminar

Exploiting Concurrency

LibreOffice Online. client side development

Publishing Electronic Portfolios using Adobe Acrobat 5.0

Center for Faculty Development and Support Creating Powerful and Accessible Presentation

How. Can Acrobat Help My Bar Association? Catherine Sanders Reach ABA Legal Technology Resource Center

Mac OS X and PDF. The Real Story. Leonard Rosenthol Lazerware, Inc. Copyright , Lazerware, Inc.

Real Time, Secure Collaboration

The viewer makes it easy to view and collaborate on virtually any file, including Microsoft Office documents, PDFs, CAD drawings, and image files.

3D Apps 3D PDF Publisher for Revit

Central configuration management of LibreOffice in Windows server environment

Real Time, Secure Collaboration


Storing extension specific metadata in ODF documents EuroOffice Map Chart

Research Imaging Solutions. goo.gl/yp8j3c. extracting figures from PDFs

Version 1 test 11.46am. Drupal Training Manual

Google Apps for Education: The Basics

GOOGLE APPS. If you have difficulty using this program, please contact IT Personnel by phone at

The most common type of certificates are public key certificates. Such server has a certificate is a common shorthand for: there exists a certificate

Instructions for Using PDF Tests and Journals

Perfect PDF 9 Premium

ADD URL SEARCH ENGINE SUBMISSION YAHOO

Reader Release Notes. January 7, Release version: 3.1

esigner Release Notes

Creating an Animated Navigation Bar in InDesign*

Spotfire Security. Peter McKinnis July 2017

Overview of Writer Text Grid Formatting

How to create interactive documents

Quo Vadis Helpcontent? OLIVIER HALLOT The Document Foundation

Construction: High quality code for programming in the large

Using Graphics to Enhance A PowerPoint Presentation

Getting Started Guide. Chapter 10 Printing, Exporting, ing

Adobe Flash Course Syllabus

Improved MRC engine: speed, compression rate, output quality. Dramatically improved quality of produced documents by the MRC engine.

Salesforce.com Summer '10 Release Notes

Impress Guide Chapter 10 Printing, ing, exporting, and saving slide shows

This is a piece of software that allows the user to make presentations. Its user interface is radically different to that of PowerPoint.

Electronic PDF Instructions. Instructions for Tablets, Laptops and Desktops

Asia/Japan Activities

Prezi: Moving beyond Slides

Vulnerability Report

Standard File Formats

EPS Import Functionality for ReportLab

User Manual pdoc Signer

PDF Exporter Xpages Custom Control Documentation

UPLOAD DOC OR USING PHP STACK OVERFLOW

Open-Xchange Documents Minor Release v Feature Overview V1.0

Css Pdf Reader Software For Windows 7 64 Bit

End User Guide. 2.1 Getting Started Toolbar Right-click Contextual Menu Navigation Panels... 2

eidas-compliant signing of PDF

SSL247 SHA-2 MIGRATION

Creative Sewing Machines Workbook based on BERNINA Embroidery Software V8

Welcome to Foxit MobilePDF Business

DOWNLOAD OR READ : TOOLS FOR TEXT AND IMAGE ANALYSIS AN INTRODUCTION TO APPLIED SEMIOTICS PDF EBOOK EPUB MOBI

PDFelement 6 Solutions Comparison

6922 Hollywood Blvd Hollywood CA tel: fax: Release Notes

LibreOffice Online the missing link!

AlphaTrust PRONTO - Transaction Processing Overview

DOWNLOAD OR READ : WORD 10 FOR MAC OS X VISUAL QUICKSTART GUIDES PDF EBOOK EPUB MOBI

OpenOffice.org as a platform for developers

ADOBE 9A Adobe Acrobat Professional 8.0 ACE.

RAPIDMAP Geocortex HTML5 Viewer Manual

Create and edit word processing. Pages.

Tanium Endpoint Detection and Response. (ISC)² East Bay Chapter Training Day July 13, 2018

Cable Management The Next Generation

To Receive CPE Credit

IBM Sametime Web Client & Meeting Server - An Introduction to new features in version 9.0.1

BDM s Annotation User Guide

LIBREOFFICE TRAINING PROTOCOL

Using OIPI to Export to Files

User Manual. pdoc Pro Client for Windows. Version 2.1. Last Update: March 20, Copyright 2018 Topaz Systems Inc. All rights reserved.

LibreOffice and ODF The future of your office

UELMA Exploring Authentication Options Nov 4, 2011

Appendix A ACE exam objectives map

Line Spacing and Double Spacing...24 Finding and Replacing Text...24 Inserting or Linking Graphics...25 Wrapping Text Around Graphics...

Flex 3 Pre-release Tour

Digital Ink and Paint Week 5. Animation: Animated Symbols, Graphic Symbols vs Movie Clip Symbols, Bones, 3D Translation

Verizon Registration Process:

What you will learn 2. Converting to PDF Format 15 Converting to PS Format 16 Converting to HTML format 17 Saving and Updating documents 19

This User Guide will walk you through the following:

Files and Streams

PowerPoint 2010 Quick Start to a Presentation

Lab 2. CSE 3, Summer 2010 In this lab you will learn about file structures and advanced features of Microsoft Word.

FIREWORKS TRICKS AND TIPS CS6

MEDIA RELATED FILE TYPES

Acrobat 6.0 Standard - Basic Tasks

Transcription:

A year in LibreOffice s PDF support By Miklos Vajna Senior Software Engineer at Collabora Productivity 2017-10-13 @CollaboraOffice www.collaboraoffice.com

About Miklos From Hungary More blurb: http://vmiklos.hu/ Google Summer of Code 2010/2011 Rewrite of the Writer RTF import/export Writer developer since 2012 Contractor at Collabora since 2013 2 / 21

Thanks Collabora is an open source consulting company What we do and share with the community has to be paid by someone Sponsors of the work presented here are: Dutch Ministry of Defense in cooperation with Nou&Off Professional Media Group nv 3 / 21

New PDF features from the past year

PDF signature verification Open already signed PDFs Verify their signatures May be multiple signatures Own tokenizer sdext/boost, poppler, pdfium found suboptimal for this purpose 5 / 21

Signing of an existing PDF Signing as part of PDF export was already supported Here: incremental updates Use-case: Multiple signatures Signing PDF produced outside LO Signed PDF 1.5+ documents We produce 1.4 currently 6 / 21

PDF signing: SHA1 SHA256 PDF signature verification: Checking if the hash matches Validating the signing certificate SHA1 is relevant for the first step SHA1 is considered to be weak today ODF/OOXML signing already used SHA256 PDF signing is now up to date with them 7 / 21

PAdES support A set of additional restrictions over normal PDF signatures Brings the possibility, so that the signature is legally binding Signs the certificate (necessary, as there can be multiple certificates for the same private key) 8 / 21

PDF export of linked videos Export of media shapes to PDF Actual video is a URL Snapshot image by avmedia Free of flash not something Acrobat writes (but it can read it) 9 / 21

PDF export of embedded videos Embedding case: video in PDF can be viewed offline LO still just transfers the byte array 10 / 21

PDF export of text fill color Relevant for Impress/Draw, Writer already created a separate rectangle for this purpose Initial version, then one that handles rotation pdfium API For test purposes 11 / 21

pdfium to render PDF images Old way: import via poppler, an external process and ODF into Draw, then copy the Draw page as a metafile New way: render into a bitmap by pdfium Better rendering: e.g. embedded fonts Quality of Foxit Now part of Chrome 12 / 21

Roundtrip PDF images to PDF: reference XObjects Problem: pdfium renders to a bitmap Export back to PDF contains this bitmap Idea: use the reference XObject markup Can wrap a page from an existing PDF as an image 13 / 21

Roundtrip PDF images to PDF: form XObjects Problem: form XObject markup is ~only supported by Acrobat Solution: use form XObjects, which can refer to an existing PDF object Much more work, all references has to be recursively copied over from the original file References are unique identifiers, so all references have to be also rewritten At the end works nicely, supported ~everywhere 14 / 21

Roundtrip PDF images to PDF: form XObjects, down-conversion Additional problem: we write PDF 1.4, what if the PDF image is 1.5+? Turns out that the problematic markup has equivalent in PDF 1.4, just less optimal (no way to compress, etc.) Solution: use pdfium to down-convert 1.5+ to 1.4, and then feed that into the form XObject embedder 15 / 21

PDF export from Writer: the magic subtract flys option Writer compatibility option: paint order not only depends on z-order, but also on anchoring hierarchy Requires to not paint the full background in one go rounding errors, unexpected white lines Not enabled for new documents, but users still suffer Fixed a number of rounding errors in the PDF export Also there is now UI to disable the legacy behavior if you don t depend on it 16 / 21

How are these implemented?

Code pointers: PDF signature handling xmlsecurity has the doc signing bits: xmlsecurity/source/helper/pdfsignaturehelper.cxx xmlsecurity/source/pdfio/pdfdocument.cxx Shared sign a byte array code: svl/source/crypto/ PDF tokenizer: vcl/source/filter/ipdf/pdfdocument.cxx Used for PDF image roundtrip and signing 18 / 21

Code pointers: pdfium PDF image import filter: vcl/source/filter/ipdf/pdfread.cxx PDF image roundtrip, export code: vcl/source/gdi/pdfwriter_impl.cxx PDFWriterImpl::writeReferenceXObject() PDFWriterImpl::copyExternalResources() This is the recursive function, handling the object graph 19 / 21

Code pointers: PDF export & testcases PDF export shared bits: vcl/source/gdi/pdf* The PDF export is an output device you can draw on at the end Application-specific bits, like link handling: sw/source/core/text/enhancedpdfexporthelper.cxx sd/source/ui/unoidl/unomodel.cxx ImplPDF*() functions Testsuite: CppunitTest_vcl_pdfexport Parses the result with pdfium & asserts with its API 20 / 21

Summary PDF support in LibreOffice improved significantly in the past year: PDF signature handling pdfium integration PDF image roundtrip Various PDF export / testing improvements Thanks for the sponsors and for listening! :-) Slides: https://vmiklos.hu/odp 21 / 21