Workflow 1. upload a PDF file 2. preprocessing on the server 3. add widgets, links etc. in web editor 4. save and create package 5. publish to mobile devices 6. download package and display content Publisher
Preprocessing • run asynchronously as a queued task • extract metadata from uploaded file • create page thumbnails (with ImageMagick) • find any existing links • mark as unpublished
Links • PDF annotations are messy • 4 (or more?) different representations • indirect objects all the way down • reversed coordinates • peculiar edge cases still not covered
Final package • encrypted PDF + media assets • digitally signed archive • publication = push notification to devices • mobile application downloads the package and displays content
Conclusion • sadly, 3 different toolkits are necessary to get the job done PyPDF2 ReportLab pdftk Extract links Yes No* No Draw links No Yes No Merge and preserve links No No Yes *Open Source version
Credits • Businessperson designed by Devochkina Oxana from The Noun Project • Servers designed by Daniel Campos from The Noun Project • Maru - http://sisinmaru.blog17.fc2.com/