urw-fonts的Debian等价物(wkhtmltopdf中的utf-8需要)吗?

问题描述 投票:4回答:1

我正在尝试使用wkhtmltopdf将具有多种语言(utf-8编码)的多种文本文本的html文档转换为pdf,并遇到此处所述的确切问题:

Squared characters issue on wkhtmltopdf

最受欢迎的答案是安装urw-fonts,对于许多遇到此问题的人来说似乎很有效。但是,当我在Debian apt仓库中搜索该软件包时,它什么也没找到。有人建议安装gsfonts-x11,但这并不能解决问题。

我的问题是:

是否存在wkhtmltopdf可以使用的相似/等效的Debian字体包来正确呈现utf-8字体?

谢谢!

utf-8 fonts debian wkhtmltopdf
1个回答
0
投票

在wkhtmltopdf中获取其他语言的呈现:

  1. 创建了一个文件夹:/ path / to / downloaded / fonts
  2. 创建fonts.conf(请参见下文)
/path/to/downloaded/fonts/fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/path/to/downloaded/fonts/</dir>
  <cachedir>/tmp/fonts-cache/</cachedir>
  <config></config>
</fontconfig>
  1. 将Google的Noto字体下载到/ var / task / fonts中。对于您需要的每种语言,可以下载其关联的语言ttf文件。

  2. 设置您的ENV变量:FONT_CONFIG_PATH=/path/to/downloaded/fonts/FONTCONFIG_FILE=/path/to/downloaded/fonts/fonts.conf

  3. 在目标HTML文件中,将meta标签设置在文档的开头:

<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

您可能会发现您需要添加其他字体,但可以在Google Noto Site。我使用了所有* -regular.ttf文件,以使容器更小。

如果您恰巧在AWS / amazonlinux2中这样做,则还需要设置:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/wkhtmltopdf;您可以使用以下方法确认库是否正确映射:ldd /path/to/wkhtmltopdf您的结果应如下所示:

        linux-vdso.so.1 (0x00007ffc7f5cf000)
        libXrender.so.1 => /var/task/lib/libXrender.so.1 (0x00007f1ea6db1000)
        libfontconfig.so.1 => /var/task/lib/libfontconfig.so.1 (0x00007f1ea6b74000)
        libfreetype.so.6 => /var/task/lib/libfreetype.so.6 (0x00007f1ea68d0000)
        libXext.so.6 => /var/task/lib/libXext.so.6 (0x00007f1ea66be000)
        libX11.so.6 => /var/task/lib/libX11.so.6 (0x00007f1ea6380000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f1ea616b000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f1ea5f67000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f1ea5d5f000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1ea5b41000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f1ea57bf000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f1ea547f000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f1ea5269000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1ea4ebe000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1ea6fbb000)
        libexpat.so.1 => /var/task/lib/libexpat.so.1 (0x00007f1ea4c8c000)
        libxcb.so.1 => /var/task/lib/libxcb.so.1 (0x00007f1ea4a64000)
        libXau.so.6 => /var/task/lib/libXau.so.6 (0x00007f1ea4860000)
        linux-vdso.so.1 (0x00007ffce59b0000)

如果路径错误,它将如下所示:

        libXrender.so.1 => not found
        libfontconfig.so.1 => not found
        libfreetype.so.6 => not found
        libXext.so.6 => not found
        libX11.so.6 => not found
        libz.so.1 => /lib64/libz.so.1 (0x00007f2f1fed9000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f1fcd5000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f2f1facd000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2f1f8af000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2f1f52d000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2f1f1ed000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2f1efd7000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2f1ec2c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2f200ee000)
© www.soinside.com 2019 - 2024. All rights reserved.