jida...@jidanni.org writes: > Is there something I can do in .xpdfrc to work around this? > Is there something I can do as a Debian user? > Is there a different way to read such pdfs on Debian? > Do you all just use Adobe to read them? >
You can apply this patch to poppler. This will affect all fonts rendered in xpdf.
--- a/poppler/CairoFontEngine.cc +++ b/poppler/CairoFontEngine.cc @@ -174,7 +174,6 @@ return gFalse; font_face = cairo_ft_font_face_create_for_ft_face (face, - FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP); if (cairo_font_face_set_user_data (font_face, &_ft_cairo_key, @@ -324,7 +323,6 @@ _ft_open_faces = l; l->font_face = cairo_ft_font_face_create_for_ft_face (tmpl.face, - FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP); if (cairo_font_face_set_user_data (l->font_face, &_ft_cairo_key,
In fact Freetype2 had developed a heuristic based on the font name to detect broken 'dyn' fonts and turn on bytecode interpreter accordingly. But this method will fail on many PDFs because the embedded fonts often have their name mangled. IMHO there are some possible solutions: 1. Turn on/off hinting by config via application or environment variable or X resources, etc. 2. Improve the Freetype2 heuristic to better detect the broken fonts and let poppler rely on it. 3. Maybe it's possible to allow a subset of bytecodes that only apply on broken fonts without interfering normal fonts? Dunno, have to ask freetype gurus. - Kanru -- A badly written book is only a blunder. A bad translation of a good book is a crime. -- Gilbert Highet