wkhtmltopdf 相关问题

一个shell实用程序,使用Webkit呈现引擎和Qt将HTML转换为PDF。

无法在 Rails 中使用 wkhtmltopdf 写入临时文件

我正在使用 Terrapin 从 Rails 内的命令行执行 wkhtmltopdf。 Terrapin::CommandLine.path = "/usr/bin/wkhtmltopdf" pdfCommand = Terrapin::CommandLine.new("xvfb-run wkhtmlt...

回答 0 投票 0

避免表格行内分页

当我通过 wkhtmltopdf 将 html 转换为 PDF 时,我想避免 html 中表格行内的分页符。我使用 page-break-inside:avoid 与 table - 它的作品,但我有很多行, 然后不工作。 如果设置

回答 13 投票 0

wkhtmltopdf:PDF 字体词典中的字形宽度不一致

我用 PHP 库创建我的发票宽度 wkhtmltopdf,我的最终目标是用这些 PDF 创建一个 factur-X。但是当我尝试审核我的 PDF 时,我遇到了这个错误: 规格ISO_19005_3 条款 6.2.11....

回答 0 投票 0

dockerfile golang alpine 安装 wkhtmltopdf

我尝试在高山上使用这张图片。 dockerfile 看起来像这样 来自 surnet/alpine-wkhtmltopdf:3.16.2-0.12.6-full as wkhtmltopdf FROM golang:1.19-alpine3.17 作为构建器 # 添加一些必要的

回答 0 投票 0

在 Go 语言中使用 wkhtmltopdf 将数据传递到页脚

我正在使用 go-wkhtmltopdf 包通过 go lang 生成 PDF。我使用下面的代码在 PDF 的每一页上显示页脚。我想将一些动态数据传递给页脚以显示 sam...

回答 2 投票 0

pdfkit 保存空 pdf

我在 Mac 上运行,成功下载并安装了 pdfkit 和 wkhtmltopdf(通过 pkg)。 我使用 bs4 访问一些 html 页面并想将它们保存为 pdf 格式。 我使用 pdfkit.from_url 但它 ...

回答 0 投票 0

不能在 aws lambda python(windows)中将 wkhtmltopdf 与 docker 一起使用

我参考了以下许多有用的链接: 无法在容器化的 AWS lambda 中使用 wkhtmltopdf 我如何在 aws lambda 中使用 python pdfkit 和 wkhtmltopdf? 但是我在

回答 0 投票 0

symfony snappy bundle pdf 生成的加载时间非常长

我在 symfony 4.4 上有一个项目,它仅在本地使用 WhtmlToPDF 和 knp snappy bundle 一切正常,pdf 生成仅需 3 秒,但一旦我切换到 FTP,加载就...

回答 0 投票 0

当文本中有特殊字符时,Scala-HTML 模板会中断

我正在 play 框架中使用 wkhtmltopdf 库生成 pdf。在 HTML 模板中,每当它遇到带有特殊字符的文本时,如“谢谢 XYZ............---------”

回答 0 投票 0

Python 在没有 wkhtmltopdf 的情况下将 HTML 转换为 PDF

根据研究,我们可以使用 pdfkit 和 wkhtmltopdf 将 HTML 转换为 pdf 不幸的是,我无法在当前的 Linux 服务器上安装 wkhtmltopdf。 寻找像其他 pytone packag 一样的替代解决方案...

回答 1 投票 0

Ubuntu 中的 Python/wkhtmltopdf PDF 生成生成的文件大小是 Windows 上相同文件的 20 倍

我正在使用 Python 3.10 的“pdfkit”(1.0.0),它在后台调用“wkhtmltopdf”(0.12.6),以使用代码生成的 HTML 作为源来生成 PDF。 HTML 有一个 base64 编码的 ttf 字体嵌入...

回答 0 投票 0

将 wkhtmltopdf 与 php 一起使用时,特殊字符在 PDF 标题中不起作用,但在 PDF 内容中起作用

我正在使用 wkhtmltopdf 为 Laravel 应用程序中的内容生成 pdf。 控制器.php 我正在使用 wkhtmltopdf 为 Laravel 应用程序中的内容生成 pdf。 Controller.php <?php /** * @todo */ public function pdf($regionCode, $langCode, Model $model) { $locale = LocalisationServiceProvider::getLocale($regionCode, $langCode); $pdfFileName = $this->buildPdfFileName($model->id, $locale); if (Storage::disk('root')->exists('public/storage/wkhtmltopdf/' . $pdfFileName)) { return response()->file(public_path('/storage/wkhtmltopdf/' . $pdfFileName)); } $view = view('model.pdf', compact('model', 'locale')); $viewRendered = $view->render(); $pdf = new Pdf([ 'binary' => env('WKHTMLTOPDF_BINARY_PATH'), 'ignoreWarnings' => ('production' === env('APP_ENV')), 'disable-smart-shrinking', 'title' => $model->title . ' - Site.pdf', 'encoding' => 'utf-8', ]); $pdf->addPage($viewRendered); if (!$pdf->saveAs(public_path('/storage/wkhtmltopdf/' . $pdfFileName))) { $error = $pdf->getError(); // @todo log return response('An error occured', 500); } if (!$pdf->send($model->title . ' - Site.pdf', true)) { $error = $pdf->getError(); return response('An error occured', 500); } } /** * @todo */ public function buildPdfFileName($id, $locale) { return 'foobar_' . $id . '_' . $locale . '.pdf'; } pdf.blade.php <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> </head> <body> <div id="canvas" class="position-relative"> @hasSection('header') <header id="header"> @yield('header') </header> @endif @hasSection('main') <main role="main" id="main-content"> @yield('main') </main> @endif </div> </body> </html> PDF 看起来不错(除了 CSS 问题,另当别论)。在我的本地机器上,发送到浏览器选项卡的 PDF 也显示了正确的浏览器选项卡标题,这意味着特殊字符在浏览器选项卡中正确显示(如变音符号)。当我想保存文件时,操作系统的保存提示中建议的文件名是相同的,看起来也不错。 然而,在生产中,浏览器选项卡中的标题会丢失所有特殊字符,而在保存文件时,它会再次提示正确的文件名。因此,例如“können”在浏览器选项卡中显示为“knnen”,但保存提示显示“können”。 在两台机器上运行wkhtmltopdf 0.12.6 (with patched qt). 我在之前的线程中发现的所有内容都是将 utf 编码添加为元并将其添加为选项,我都这样做了并且在本地它确实有效。 PS:buildPdfFileName仅用于本地保存和加载的内部pdf名称,不是标题/文件名建议。 可能是你的代码运行的生产环境的编码问题。 特别是,因为您说您的操作系统在从生产环境中下载文件名时会正确处理文件名,所以在生产环境中您应该检查呈现网页/pdf 的脚本是否设置了正确的编码以将输出发送到浏览器(在你的情况下是 pdf)。 通常,浏览器使用网页传递的编码。 你可以试试这些尝试: 除了在呈现的 HTML 中设置 Content-Type 之外,在将任何输出发送到浏览器之前,尝试在 PHP 脚本中设置它。 尝试对标题进行编码:'title' => urlencode($model->title . ' - Site.pdf'), 将其设置为 wkhtmltopdf 选项: $pdf = new Pdf([ 'binary' => env('WKHTMLTOPDF_BINARY_PATH'), 'ignoreWarnings' => ('production' === env('APP_ENV')), 'disable-smart-shrinking', 'title' => $model->title . ' - Site.pdf', // 'encoding' => 'utf-8', 'options' => array( 'encoding' => 'utf-8' ), ]); 显示 PDF 时,大多数浏览器会在选项卡标题中显示 PDF 标题(定义时)。 要设置 PDF 标题,您正在使用 title 选项,该选项在命令行上传递给 wkhtmltopdf。 首先,您应该检查$model->title是否以UTF-8编码。 此问题的另一个可能解释是 PHP 进程没有定义LANG 环境变量。在这种情况下, 默认语言环境是C,它只支持ASCII编码。所有非 ASCII 字符都被认为是无效的。修复它的一种方法是在运行 wkhtmltopdf 之前添加它: putenv('LANG=de_DE.UTF-8'); 或者,您可以通过 <title> HTML 标签定义 PDF 标题。只需删除 title 选项并将 <title> 标记添加到您的 HTML 页面。这是最可靠的解决方案,因为它避免了在命令行上传输非 ASCII 字符。 确保 HTML 内容的字符编码设置为 UTF-8,这是网络上使用最广泛的字符编码。您可以在 HTML 元标记中指定编码,就像您在代码中所做的那样: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 确保在传递给 Pdf 构造函数的选项数组中将编码选项设置为 UTF-8: $pdf = new Pdf([ 'binary' => env('WKHTMLTOPDF_BINARY_PATH'), 'ignoreWarnings' => ('production' === env('APP_ENV')), 'disable-smart-shrinking', 'title' => $model->title . ' - Site.pdf', 'encoding' => 'utf-8', ]); 如果上述步骤没有解决问题,请在调用 wkhtmltopdf 时尝试使用值为 utf-8 的 --encoding 命令行选项。您可以将此选项添加到 .env 文件中的二进制设置: WKHTMLTOPDF_BINARY_PATH=/usr/local/bin/wkhtmltopdf --encoding utf-8 这将确保 wkhtmltopdf 在将 HTML 内容转换为 PDF 时使用 UTF-8 编码。 最后,确保 PDF 中使用的字体支持您正在使用的特殊字符。某些字体可能没有所有字符的字形,这可能导致它们在 PDF 中显示不正确。 我认为这与无关 PDF 或 用户语言或 服务方式 传统上不在 URLS 中使用非拉丁 UTF 字符,因为它们需要转换为不同操作系统、位置、应用程序等的“安全”范围,而拉丁美洲历来对通用资源位置友好。这里相同的文件 2 个不同的浏览器 2 个不同的结果 在当地发现仍然有2种不同的结果 每个浏览器负责选择选项卡标题,注意这里中间的选项卡与所有其他选项卡相同,但浏览器询问我是否希望将其从德语更改为英语。最后一个示例显示在下载的 PDF 返回到浏览器之前,标签是“无标题”,没有 HTML 载体。 所以对于你的回答,操作系统在生产过程中处理文件名,这里一切都很好,但浏览器根据加载的 html 标题自行决定,或者第二个任何其他覆盖,如用户选择选项卡名称或重新加载的提示。 PDF,其中 PDF 字符串将被 wkHTML 正确注入为 PDF BOM-UTF-16BE,如/Title (þÿ T i t e l k ö n n e n f u n k t i o n i e r e n) 然后由浏览器将其转换为类似人类可读的字符串英语,德语 UTF-8 URL 编码或随便吧

回答 4 投票 0

有没有办法通过python高度压缩PDF文件?

我使用在 django 服务器上运行的 pdfkit 库通过 python 生成了一个 PDF 文件。 生成的 pdf 大小为 43.2 MB。 pdf 中的总页数 = 15。 每页有 70 张图片,每张图片大小 = 623

回答 0 投票 0

通过 wkhtmltopdf 将 pdf 从 html 转换为 html 文件中的大量图像的问题

我们目前正在使用 wkhtmltopdf 工具从 HTML 内容生成 PDF。在 PDF 生成过程中,我们面临着在将近 40 多张图像后无法打印图像的问题。 我附上了一个H...

回答 1 投票 0

Wkhtmltopdf 适合整个页面宽度的输出

尽管 html 不是适合 PDF 页面所需的尺寸,但我怎样才能使 wkhtmltopdf 适合它的输出到页面的宽度?例如,一个 248 像素宽的页面适合 2...

回答 1 投票 0

通过 wkhtmltopdf 将 pdf 从 html 转换为 html 文件中的大量图像的问题

我们目前正在使用 wkhtmltopdf 工具从 HTML 内容生成 PDF。在 PDF 生成过程中,我们面临着在将近 40 多张图像后无法打印图像的问题。 我附上了一个H...

回答 0 投票 0

如何将绘图与其他 HTML 内容一起导出为 pdf?

我尝试了 3 个将 HTML 转换为 PDF 的库,即 xhtml2pdf、weasyprint 和 wkhtmltopdf。 我的 HTML 中包含绘图,它们是离线绘图,即。从 plotly.off 生成的图表...

回答 3 投票 0

symfony + knp_snappy:加载失败并阻止访问错误

Symfony 5.4 和 knp_snappy (1.9) 与 wkhtmltopdf (12.6) 出现故障。该应用程序使用 Webpack-Encore (1.16)。这是我的开发环境中不存在的错误(带有 ...

回答 0 投票 0

Symfony 2 KnpSnappy 包错误

我正在尝试实现 Knp SNappy Bundle 以将 html 页面显示为来自我的控制器的 pdf。 我遇到了这个错误: 退出状态代码“1”表示出了点问题: stderr:“正在加载页面...

回答 4 投票 0

html 表格行内容仅在阿拉伯语中与其他行重叠

我有一个带有表格的 html 文件,您可以将其下载为 PDF。当内容长度达到除阿拉伯语以外的所有语言的预期长度时,每一行都会换行。我在 t 尝试了不同的东西...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.