[ 
https://issues.apache.org/jira/browse/PDFBOX-4793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17052292#comment-17052292
 ] 

Christian Appl edited comment on PDFBOX-4793 at 3/5/20, 4:09 PM:
-----------------------------------------------------------------

Get well soon!!

I gave one of your first suggestions a shot (Ausschluss mapping), to verify, 
that it would theoretically work:

{code:java}
    private PriorityQueue<FontMatch> getFontMatches(PDFontDescriptor 
fontDescriptor,
                                                    PDCIDSystemInfo 
cidSystemInfo) {
        PriorityQueue<FontMatch> queue = new PriorityQueue<FontMatch>(20);

        for (FontInfo info : fontInfoByName.values()) {
            // ignore Malgun gothic
            if (info.getPostScriptName().startsWith("MalgunGothic")) {
                continue;
            }

            // filter by CIDSystemInfo, if given
            if (cidSystemInfo != null && !isCharSetMatch(cidSystemInfo, info)) {
                continue;
            }
{code}

And the issue was resolved - another Font was selected and the PDF rendered 
just fine.
 !screenshot-7.png! 

However: Is it really a good idea to flatout deny rendering with a specific 
font? Concerning the blacklist idea: I would expect, that this could cause 
issues with other documents (using korean letters).
I think I like your current idea better to differentiate using the bit flags.

*However:* Just giving the feedback - Yes, if the malgun font wasn't selected 
on my system, the PDF would render perfectly fine.


was (Author: capsvd):
Get well soon!!

I gace one of your first suggestions a shot (Ausschluss mapping), to verify, 
that it would theoretically work:

{code:java}
    private PriorityQueue<FontMatch> getFontMatches(PDFontDescriptor 
fontDescriptor,
                                                    PDCIDSystemInfo 
cidSystemInfo) {
        PriorityQueue<FontMatch> queue = new PriorityQueue<FontMatch>(20);

        for (FontInfo info : fontInfoByName.values()) {
            // ignore Malgun gothic
            if (info.getPostScriptName().startsWith("MalgunGothic")) {
                continue;
            }

            // filter by CIDSystemInfo, if given
            if (cidSystemInfo != null && !isCharSetMatch(cidSystemInfo, info)) {
                continue;
            }
{code}

And the issue was resolved - another Font was selected and the PDF rendered 
just fine.
 !screenshot-7.png! 

However: Is it really a good idea to flatout deny rendering with a specific 
font? Concerning the blacklist idea: I would expect, that this could cause 
issues with other documents (using korean letters).
I think I like your current idea better to differentiate using the bit flags.

*However:* Just giving the feedback - Yes, if the malgun font wasn't selected 
on my system, the PDF would render perfectly fine.

> Questionable fallback font for some embedded chinese fonts
> ----------------------------------------------------------
>
>                 Key: PDFBOX-4793
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4793
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.18
>            Reporter: Christian Appl
>            Priority: Major
>         Attachments: PDFJS-10699.pdf, image-2020-03-04-09-49-42-323.png, 
> image-2020-03-04-09-58-01-055.png, image-2020-03-04-10-09-25-343.png, 
> image-2020-03-04-10-31-03-065.png, pdf_font-zhcn.pdf, screenshot-2.png, 
> screenshot-3.png, screenshot-4.png, screenshot-5.png, screenshot-6.png, 
> screenshot-7.png
>
>
> *Issue:*
> I tried to render PDFs, that contain embedded chinese fonts. Neither the PDF 
> Debugger, nor printouts of the document (PDFPrintable), nor the PDFRenderer 
> can display/render the chinese glyphs correctly and will render placeholders 
> instead.
> *Assumptions:*
> I assume, that said embedded fonts are incomplete and don't contain all 
> glyphs, that would be required to render the text properly and therefore 
> PDFbox attempts to use the previously determined fallback font. (!?)
>  !image-2020-03-04-09-49-42-323.png! 
>  !image-2020-03-04-09-58-01-055.png! 
> And fails to find the glyphs in said fallback font.
> Which is not surprising, as the Fallback font "MalgunGothic-Semilight" 
> (Windows standard font) does not contain chinese characters.
>  !image-2020-03-04-10-09-25-343.png! 
> *Debugging:*
> I tried to understand how the fallback font is determined and what could be 
> done to solve this problem on my end. But I was unable to find a satisfying 
> solution.
> My best guess so far is, that the CIDFontMapping (FontMapperImpl) is to blame 
> for determining an unfit fallback font.
> Although it seems to check, whether required codepages are contained in a 
> fallback font, it still does rank the Malgun font as the topscorer and best 
> substitute font, even though it does clearly not contain all required 
> codepages.
> *My opinion:*
> This is troubling, as better fit fonts exist and could have been selected. 
> (ie.: Adobe Stong Std) And are indeed included in the CIDFontMapping, but 
> seemingly are scoring lower for some reason.
> *Further information:*
> I can not disclose the document in question, however I found a document 
> (pdf_font-zhcn.pdf) in another issue (PDFBOX-3132), that can be used to 
> reproduce the issue (ie.: by dropping it into the PDF Debugger)
>  !image-2020-03-04-10-31-03-065.png! 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to