gpt4 book ai didi

utf-8 - 什么是 Debian 的 urw-fonts(wkhtmltopdf 中的 utf-8 需要)?

转载 作者:行者123 更新时间:2023-12-03 20:22:35 24 4
gpt4 key购买 nike

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

Squared characters issue on wkhtmltopdf

最流行的答案是安装 urw-fonts,这似乎对许多有此问题的人有效。但是当我在 Debian apt 存储库中搜索这个包时,它没有找到任何东西。有人建议安装 gsfonts-x11,但这并没有解决问题。

我的问题是:

是否有类似/等效的 Debian 字体包可供 wkhtmltopdf 使用以正确呈现 utf-8 字体?

谢谢!

最佳答案

在 wkhtmltopdf 中获取其他语言渲染:

  • 创建了一个文件夹:/path/to/downloaded/fonts
  • 创建 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>
  • 将 Google 的 Noto 字体下载到/var/task/fonts 中。对于您需要的每种语言,您可以下载其关联的语言 ttf 文件。
  • 设置您的 ENV 变量:FONT_CONFIG_PATH=/path/to/downloaded/fonts/FONTCONFIG_FILE=/path/to/downloaded/fonts/fonts.conf
  • 在目标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)

    关于utf-8 - 什么是 Debian 的 urw-fonts(wkhtmltopdf 中的 utf-8 需要)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39921615/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com