Bug 64716 - wmf display error
Summary: wmf display error
Status: RESOLVED FIXED
Alias: None
Product: POI
Classification: Unclassified
Component: XSLF (show other bugs)
Version: 4.1.2-FINAL
Hardware: PC Mac OS X 10.1
: P2 normal (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-08 00:03 UTC by liming-coder
Modified: 2020-09-19 08:19 UTC (History)
0 users



Attachments
sample1.zip (35.63 KB, application/zip)
2020-09-08 00:03 UTC, liming-coder
Details
sample2.zip (234.99 KB, application/zip)
2020-09-14 22:05 UTC, liming-coder
Details
sample3_emf.zip (43.64 KB, application/zip)
2020-09-17 21:52 UTC, liming-coder
Details

Note You need to log in before you can comment on or make changes to this bug.
Description liming-coder 2020-09-08 00:03:16 UTC
Created attachment 37430 [details]
sample1.zip

hi,
the attached wmf files can't display correctly. 

thanks.
Comment 1 Andreas Beeker 2020-09-08 21:07:34 UTC
The rendered results looks good on the trunk on my machine. Actually I think your 2.png contains an error - 2'80 is probably wrong and should be 2x80 (2*h where h = 80).

Please follow the instruction link below and comment in this ticket, if it works or not:

http://poi.apache.org/components/slideshow/ppt-wmf-emf-renderer.html#Instructions+to+run

If it doesn't work, you can dump the wmf with the "-dump <file>" option and check the font records for the font typefaces - those should be available to your Java environment.

While doing the above, I noticed that one font name seems to be erroneous read by POI and I'll check how it's read correctly. Apart of that the fonts "Times New Roman", "Symbol", "System" plus the font not correctly interpreted.
Comment 2 Andreas Beeker 2020-09-08 21:37:49 UTC
Fixed the font typeface string loading via r1881567
The charset of the font is now used to read the typeface name.

Apart of that, the 宋体 font (i.e. the simsun font) was the missing font.
https://github.com/sonatype/maven-guide-zh/blob/master/content-zh/src/main/resources/fonts/simsun.ttc
Comment 3 liming-coder 2020-09-14 22:05:24 UTC
Created attachment 37455 [details]
sample2.zip

thanks every much. i found some other wmf display error. see attachment sample2.zip

thanks.
Comment 4 liming-coder 2020-09-14 22:11:41 UTC
sample1.zip is fixed in the nightly trunk.
Comment 5 Andreas Beeker 2020-09-15 22:57:35 UTC
Thank you for the sample2 - fixed it via r1881750

the current location is now moved to the end of the rendered string.

you need to download the euclid symbol font, for the braces to be displayed proper
Comment 6 liming-coder 2020-09-17 21:52:45 UTC
Created attachment 37456 [details]
sample3_emf.zip
Comment 7 liming-coder 2020-09-17 21:59:18 UTC
hi,

same2.zip now displays ok in the nightly trunk. 

sample3_emf.zip contains an emf picture which throws exception with the following error:
org.apache.poi.util.RecordFormatException: Undefined record of type: 2596720087 at 0
        at org.apache.poi.hemf.record.emf.HemfRecordIterator._next(HemfRecordIterator.java:74)
        at org.apache.poi.hemf.record.emf.HemfRecordIterator.<init>(HemfRecordIterator.java:38)
        at org.apache.poi.hemf.usermodel.HemfPicture.getRecords(HemfPicture.java:81)
        at org.apache.poi.hemf.usermodel.HemfPicture.getHeader(HemfPicture.java:72)
        at org.apache.poi.hemf.usermodel.HemfPicture.getBoundsInPoints(HemfPicture.java:145)
        at org.apache.poi.hemf.usermodel.HemfPicture.getSize(HemfPicture.java:154)

my code:
 HemfPicture emf = new HemfPicture(fis);
 Dimension2D dim = emf.getSize();
 ...

thanks.
Comment 8 Andreas Beeker 2020-09-19 08:19:35 UTC
(In reply to liming-coder from comment #7)
> sample3_emf.zip contains an emf picture which throws exception with the
> following error ...

Easy fix ... rename it to .wmf.
I've replaced the Renderer selection in PPTX2PNG based on the FileMagic via r1881838