gpt4 book ai didi

wkhtmltopdf - 相同的配置不同的输出

转载 作者:行者123 更新时间:2023-12-04 16:05:58 25 4
gpt4 key购买 nike

我在我的项目中通过 snappy 使用 wkhtmltopdf。在我的本地机器上,输出是正确的:
https://www.dropbox.com/s/ml9cp2pa6d8wja5/Zaznaczenie_100.png?dl=0

但是当我将项目部署到服务器时,pdf看起来非常不同,可能视口(viewport)的宽度不同:
https://www.dropbox.com/s/8g0c29bzaxltyb9/170311_123139_4775.jpg?dl=0

两个系统都使用完全相同的配置来生成 pdf。

我的问题是:

  • 如何检查特定机器上 wkhtmltopdf 的默认配置是什么?
  • 如何更改视口(viewport)大小,以便我的输出在不同机器上完全相同?

  • 我手动设置输出页面的宽度和高度(分别为 21 厘米和 50 厘米)。我尝试了 DPI 参数的不同组合,但似乎没有效果。

    我正在使用 wkhtmltpdf PHP 包装器 - snappy - 但我检查并在控制台中得到相同的输出,所以问题是 wkhtmltopdf -相关的,而不是活泼的。

    最佳答案

    PDF 输出中看起来不同的主要内容之一是字体。 wkhtmltopdf 要求在您的操作系统上安装字体,就像浏览器需要它一样。字体间距和大小的差异可能会影响页面的布局。您应该首先查看您尝试在源文件中使用的字体并将它们安装在您的服务器上。一个好的开始是从 here 安装 Microsoft 的核心字体。 ,或来自您服务器的发行版的存储库。

    解决此问题的另一种方法是使用 @font-face源文件样式表中的指令从 URL 链接到字体,而无需在服务器上安装它们:

    @font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
    }

    对于 Google 的网络字体,您可以改为导入它们的样式表:
    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" />

    要检查的另一件事是您的工作站和服务器上的 wkhtmltopdf 版本。运行 wkhtmltopdf --version会告诉你你当前安装的版本。可能是您的服务器运行的是过时版本的 wkhtmltopdf。安装具有所需功能的最新版本 wkhtmltopdf 的最简单方法是来自 here ,您可以在其中为任何发行版下载静态链接的 Linux 二进制文件。

    最后一件事是使用不同的 --margin-top , --margin-right , --margin-bottom--margin-left论据。还有一个名为 --viewport-size 的标志。这可能有助于提供更好的结果。
    wkhtmltopdf --viewport-size 1024x768 page.html output.pdf

    但是,如果您在工作站和服务器上使用相同版本的 wkhtmltopdf,那么这些配置选项应该不会产生影响,正如您所说的那样,您已经在两者上使用了相同的配置。

    关于wkhtmltopdf - 相同的配置不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42770774/

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