Bug 64867 - Provide PDF rendering with PPTX2PNG
Summary: Provide PDF rendering with PPTX2PNG
Status: RESOLVED FIXED
Alias: None
Product: POI
Classification: Unclassified
Component: SL Common (show other bugs)
Version: 4.1.x-dev
Hardware: All All
: P2 normal (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-02 23:49 UTC by Andreas Beeker
Modified: 2020-11-28 18:12 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Beeker 2020-11-02 23:49:53 UTC
Using the pdfbox-graphics2d [1] library, it's easy to provide PDF slideshow rendering. Not all features of bitmap based rendering are supported but the results for the usual test documents look really good.


[1] https://github.com/rototor/pdfbox-graphics2d
Comment 1 Andreas Beeker 2020-11-02 23:57:15 UTC
Applied via r1883074
Comment 2 Andreas Beeker 2020-11-03 00:22:37 UTC
Add additional dependencies via r1883075
Comment 3 Emmeran Seehuber 2020-11-22 15:39:03 UTC
I've just released pdfbox-graphics2d version 0.29 with the fix for drawing an image while a transparent color is active and an AlphaComposite is active.

Please fill issues in the GitHub repository for any missing features / not working Paint mappings. I did a quick look in the POI sources, and found some custom Paint's. Those have to be mapped explicit - if you can provide me with some sample .pptx files which "trigger" these paints I'll try to map them.
Comment 4 Andreas Beeker 2020-11-28 18:12:54 UTC
Thank you for releasing pdf-graphics2d again - I've just integrated it.

The set of (missing) fill features would be:
- texture paint with aligned patterns 
- gradient fills
- WMF / EMF raster operations - see the new ROP2Table/ROP3Table examples-classes *)

My idea to implement missing features is, to have a second BufferedImage-based Graphics2D context which I use to extract bitmaps for those known unsupported features



*) ..., which composite pattern (HwmfROP2/3Composite) I try to integrate now. But failing to cover already working renderings ...