[PATCH] GDI32: accept TTF-fonts without OS2 table
Wolfgang Walter
wine at stwm.de
Tue Nov 13 07:14:03 CST 2018
Am Samstag, 10. November 2018, 08:13:40 schrieb Nikolay Sivov:
> On 11/10/18 2:11 AM, Wolfgang Walter wrote:
> > Hello Nikolay!
> >
> > On Friday, 9 November 2018 18:45:50 CET you wrote:
> >> On 11/9/18 4:24 PM, Wolfgang Walter wrote:
> >>> Signed-off-by: Wolfgang Walter <wine at stwm.de>
> >>> ---
> >>>
> >>> fonst partially embedded in PDFs often do not contain an OS2 table.
> >>> Wine did not accept these fonts and uses another fonts as replacement
> >>> This leads often to completely unreadable documents as the glyp index
> >>> does
> >>> not match the one of the choosen replacement font.
> >>>
> >>> This patch accepts such fonts and inserts checks where wine assumed
> >>> that the OS2 table does exist.
> >>>
> >>> Regards,
> >>
> >> Hi, Wolfgang.
> >>
> >> Thanks for the patch. Could you also open a bug report with a sample PDF
> >> and viewer application that you're fixing?
> >>
> >> I'm interested in adding some tests for that case, for directwrite too.
> >
> > Sorry, I can't do that: the software is proprietary and I therefor cannot
> > upload it. It is an ERP-software with an integrated PDF-viewer. This
> > software is used by most of Germany's Studentenwerke.
> >
> > I also can't provide the PDFs though I have > 100000 of them. They all
> > contain personal data as they are confirmations of enrollment of the
> > Technical University of Munich. I'll see if I can get one from the
> > University generated from fake data but I don't know if they will do that
> > for me.
>
> Ok, I understand. Do you know if it's using AddFontMemResourceEx()?
> (should be visible with +font log).
I'll look at that.
>
> Regarding documents, if fonts they are using are freely to distribute,
> it would be enough if you extracted font blob from one of them.
It is not a free font.
The font in the PDF contains only those characters used in the document, so I
suppose it is created on the fly when the PDF is created.
>
> If it's not possible, do you know which tables are still there in
> embedded font?
As they pass (in function new_ft_face of dlls/gdi32/freetype.c) this code:
if (!pFT_Get_Sfnt_Table( ft_face, ft_sfnt_hhea ) ||
!pFT_Get_Sfnt_Table( ft_face, ft_sfnt_head ))
{
TRACE("Font %s/%p lacks either an HHEA or HEAD table.\n"
"Skipping this font.\n", debugstr_a(file), font_data_ptr);
goto fail;
}
They must have
ft_sfnt_hhea
ft_sfnt_head
Regards,
--
Wolfgang Walter
Studentenwerk München
Anstalt des öffentlichen Rechts
More information about the wine-devel
mailing list