On 17-07-06 07:39 AM, William Bader wrote:

> Interesting, I did not know about this command. Here's the output I get: > Courier 7 0 Nimbus Mono L Bold /usr/local/share/fonts/ghostscript/fonts/n022004l.pfb


If it shows /usr/local/share instead of /usr/share, it is coming from a package that you installed rather than a package that came with the distribution, and the problem could be customizations that you made to your system rather than problems with poppler.

On Fedora 25, /usr/share/fonts/default/Type1/n022023l.pfb is provided by urw-fonts

If it works for most people, the problem is probably something that you did to your system, and the easiest way to track it down might be getting the customized packages out of the path and then adding them back one by one until you find the one that causes the problem.

You can use an strace command like the one below to see everything that pdffonts touches

strace -e trace=open pdffonts file.pdf 2>&1 | less

Could you check that you have your distribution's fonts installed, then temporarily rename /usr/local to get it off the path, and then try pdffonts again?


OK I have rebuilt my image, now I have only a raw Debian Stretch with packages fontconfig, poppler-utils, strace, less and gsfonts-x11 (which seems to be the equivalent for urw-fonts). The situation is even worse now because only the Bold Oblique font gets selected now.

Here's the output of strace:

$ strace -e trace=open pdffonts ./courier.pdf -subst 2>&1
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpoppler.so.64", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/liblcms2.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libtiff.so.5", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libjpeg.so.62", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpng16.so.16", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnss3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnssutil3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libsmime3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libssl3.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libplds4.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libplc4.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnspr4.so", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libopenjp2.so.7", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libfontconfig.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libfreetype.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libjbig.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libexpat.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/usr/share/poppler/nameToUnicode", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/usr/share/poppler/nameToUnicode/Thai", O_RDONLY) = 4
open("/usr/share/poppler/nameToUnicode/Bulgarian", O_RDONLY) = 4
open("/usr/share/poppler/nameToUnicode/Greek", O_RDONLY) = 4
open("/usr/share/poppler/cidToUnicode", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 open("/usr/share/poppler/unicodeMap", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 open("/usr/share/poppler/cMap", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("./courier.pdf", O_RDONLY)         = 3
open("/etc/fonts/fonts.conf", O_RDONLY|O_CLOEXEC) = 4
open("/etc/fonts/conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
open("/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/11-lcdfilter-default.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf", O_RDONLY|O_CLOEXEC) = 6 open("/etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf", O_RDONLY|O_CLOEXEC) = 6 open("/etc/fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf", O_RDONLY|O_CLOEXEC) = 6 open("/etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf", O_RDONLY|O_CLOEXEC) = 6 open("/etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf", O_RDONLY|O_CLOEXEC) = 6 open("/etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/20-unhint-small-vera.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/30-metric-aliases.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/30-urw-aliases.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/40-nonlatin.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/45-latin.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/49-sansserif.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/50-user.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/51-local.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/57-dejavu-sans-mono.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/57-dejavu-sans.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/57-dejavu-serif.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/58-dejavu-lgc-sans-mono.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/58-dejavu-lgc-sans.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/58-dejavu-lgc-serif.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/60-latin.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/65-fonts-persian.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/65-nonlatin.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/69-unifont.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/70-no-bitmaps.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/80-delicious.conf", O_RDONLY|O_CLOEXEC) = 6
open("/etc/fonts/conf.d/90-synthetic.conf", O_RDONLY|O_CLOEXEC) = 6
open("/usr/share/fonts", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//3830d5c3ddfd5cd38a049b759396e72e-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/local/share/fonts", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//4c599c202bc5c08e2d34565a40eac3b2-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/X11", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//c855463f699352c367813e37f3f70ea7-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//57e423e26b20ab21d0f2f29c145174c3-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/truetype", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/type1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//d82eb4fd963d448e2fcb7d7b793b5df3-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/X11/Type1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//e13b20fdb08344e0e664864cc2ede53d-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/X11/encodings", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//707971e003b4ae6c8121c3a920e507f5-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/X11/util", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//fe547fea3a41b43a38975d292a2b19c7-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap/adobe-cns1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//f1f2465696798768e9653f19e17ccdc8-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap/adobe-gb1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//95530828ff6c81d309f8258d8d02a23e-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap/adobe-japan1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//d3e5c4ee2ceb1fc347f91d4cefc53bc0-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap/adobe-japan2", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//e52a45a1c8c8fe895fc0fc8c4e6999b8-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/cmap/adobe-korea1", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//188ac73a183f12857f63bb60a4a6d603-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/truetype/dejavu", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//d589a48862398ed80a3d6066f4f56f4c-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/type1/gsfonts", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4
open("/usr/share/fonts/X11/encodings/large", O_RDONLY|O_CLOEXEC) = 4
open("/var/cache/fontconfig//6333f38776742d18e214673cd2c24e34-le64.cache-4", O_RDONLY|O_CLOEXEC) = 4 name object ID substitute font substitute font file ------------------------------------ --------- ------------------------------------ ------------------------------------ Courier 7 0 Nimbus Mono L Bold Oblique /usr/share/fonts/X11/Type1/n022024l.pfb Courier-Bold 8 0 Nimbus Mono L Bold Oblique /usr/share/fonts/X11/Type1/n022024l.pfb Courier-Oblique 9 0 Nimbus Mono L Bold Oblique /usr/share/fonts/X11/Type1/n022024l.pfb Courier-BoldOblique 10 0 Nimbus Mono L Bold Oblique /usr/share/fonts/X11/Type1/n022024l.pfb





------------------------------------------------------------------------
*From:* poppler <[email protected]> on behalf of Pierre-Luc Samuel <[email protected]>
*Sent:* Wednesday, July 5, 2017 3:47 PM
*To:* [email protected]
*Subject:* Re: [poppler] Question regarding font selection


On 17-07-05 01:10 PM, Jason Crain wrote:
> On Wed, Jul 05, 2017 at 10:45:07AM -0400, Pierre-Luc Samuel wrote:
>> On 17-07-04 06:43 PM, Albert Astals Cid wrote:
>>> El dimarts, 4 de juliol de 2017, a les 17:06:07 CEST, Pierre-Luc Samuel va
>>> escriure:
>>>> I am experiencing weird font substitution with pdftocairo and was
>>>> wondering what was the algorithm to match fonts when converting from
>>>> PDF.  The Courier font (regular) is being substituted "Nimbus Mono L
>>>> Bold", even if fc-match return the non-bold version.
>>>>
>>>> $ fc-match "Courier"
>>>> n022003l.pfb: "Nimbus Mono L" "Regular"
>>>>
>>>> $ fc-match "Courier:style=bold"
>>>> n022004l.pfb: "Nimbus Mono L" "Bold"
>>>>
>>>> What could be the reason behind this?
>>> The pdf font can be asking for bold even if the name doesn't contain bold.
>>>
>> Thanks for your answer Albert. I have attached a sample PDF and resulting >> SVG with the problem I'm encountering. I do not understand why the bold
>> font is selected for the first "Courier".
>>
>> pdftocairo version 0.56.0
> It works for me:
>
> $ pdffonts ~/courier.pdf  -subst
> name object ID substitute font substitute font file > ------------------------------------ --------- ------------------------------------ ------------------------------------ > Courier 7 0 Nimbus Mono L /usr/share/fonts/type1/gsfonts/n022003l.pfb > Courier-Bold 8 0 Nimbus Mono L Bold /usr/share/fonts/type1/gsfonts/n022004l.pfb > Courier-Oblique 9 0 Nimbus Mono L Regular Oblique /usr/share/fonts/type1/gsfonts/n022023l.pfb > Courier-BoldOblique 10 0 Nimbus Mono L Bold Oblique /usr/share/fonts/type1/gsfonts/n022024l.pfb
>
> With versions 0.48.0 and from git master.

Interesting, I did not know about this command. Here's the output I get:


name                                 object ID substitute
font                      substitute font file
------------------------------------ ---------
------------------------------------ ------------------------------------
Courier                                   7  0 Nimbus Mono L Bold
/usr/local/share/fonts/ghostscript/fonts/n022004l.pfb
Courier-Bold                              8  0 Nimbus Mono L Bold
/usr/local/share/fonts/ghostscript/fonts/n022004l.pfb
Courier-Oblique                           9  0 Nimbus Mono L Regular
Oblique /usr/local/share/fonts/ghostscript/fonts/n022023l.pfb
Courier-BoldOblique                      10  0 Nimbus Mono L Bold
Oblique /usr/local/share/fonts/ghostscript/fonts/n022024l.pfb

Pierre-Luc
_______________________________________________
poppler mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/poppler
poppler Info Page - freedesktop.org <https://lists.freedesktop.org/mailman/listinfo/poppler>
lists.freedesktop.org
Subscribing to poppler: Subscribe to poppler by filling out the following form. Use of all freedesktop.org lists is subject to our Code of ...




_______________________________________________
poppler mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to