0

これは、(wkhtmltopdf の utf-8 に必要な) urw-fonts に相当する Debian は何ですか? と密接に関連しています (および同じ問題に由来し ます)。

しかし、これはそれ自体で有効な質問だと思います。リンクで説明されているように、wkhtmltopdf (Debian のコマンドライン経由) を使用して、多言語の utf-8 html ドキュメントを pdf に変換しようとしています。おそらく wkhtmltopdf が必要なフォントを見つけられない、またはアクセスできないため、いくつかの言語が正しくレンダリングされず、白または黒の四角形として表示されます。

質問:システム (Debian) のどこで wkhtmltopdf はフォントを探しますか? また、特定のコマンドを指定して (可能であれば) どのフォントを探しているかを確認するにはどうすればよいですか?

4

1 に答える 1

2

フォントは の下にあり/usr/share/fonts/ます。

このコマンドは、コマンドがfooアクセスするフォントを表示します。

strace -e open -o >(sed -n '/^open("\/usr\/share\/fonts\//p') foo

straceシステムコールを示します。-e openファイルを開くためのシステムコールのみを表示することを意味します。-o >(sed -n '/^open("\/usr\/share\/fonts\//p')出力を sed に出力することを意味します。これは、 でファイルを開くための syscall のみを出力します/usr/share/fonts/

一部のプログラムでは、冗長出力をオンにして、使用されているフォントが示されている場合は stderr を確認すると便利です。

特定の問題については、HTML ファイルのエンコーディングが正しく指定されていることも確認してください。

たとえば、strace からの出力を見てください。

open("/usr/share/fonts/X11/Type1/n019004l.pfb", O_RDONLY) = 8

openこれは、ac プログラムで使用する方法と同じ形式です。/usr/share/fonts/X11/Type1/n019004l.pfbファイルへのパスです。O_RDONLY読み取り専用で開くことを意味します。8は操作が成功したことを意味し、結果のファイル記述子は 8 です。open man ページを参照してください。

于 2016-10-10T16:17:10.330 に答える