wkhtmltopdf 文档在开发与生产中的生成方式不同

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

以下用于生成 PDF 的布局设置为使用 Rails 应用程序

assets/public
目录中的 css 文件,因为
wicked-pdf
gem 需要静态链接。它针对每个环境进行调整 - 本地主机、远程开发和远程生产服务器(后两个引用为应用程序提供服务的域)。

<!DOCTYPE html>
<html>
<head>
<title></title>
    <meta charset='utf-8' />
    <%= wicked_pdf_stylesheet_link_tag "http://localhost:3000/assets/zapp_pdf.css" %>
    <%= stylesheet_link_tag "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome-64.css", media: "all", "data-turbolinks-track" => true %>
    <%= stylesheet_link_tag "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css", media: "all", "data-turbolinks-track" => true %>
</head>
<body>
    <%= yield %>
</body>
</html>

最初,使用

wicked_pdf_stylesheet_link_tag Rails.application.assets.find_asset('zapp_pdf.css').digest_path
调用引用,但随后又退回到完全静态的非指纹 css 文件

在所有三种情况下产生的结果都不同(并且与 css 文件的两种语法一致)

• 在远程开发服务器上,文本出现在适当的位置,但没有背景

• 在远程制作时,会出现背景样式,但没有文本

• 在本地主机上,所有元素均按预期显示(基本上是两个图像!

目前还不清楚为什么会出现三种不同的渲染效果……除非在开发模式下有选择地调用其他资产。到底是怎么回事?如何使用 wicked-pdf 调试这种情况?

更新实验扩展到使用引用单独服务器上的静态文件,以免出现一些奇怪的缓存效果。行为与上面相同 - 即三个上下文之间的 CSS 解释是不同的。

css ruby-on-rails wkhtmltopdf wicked-pdf
1个回答
0
投票

简短回答:

wkhtmltopdf
,既已存档又存在 Flexbox 问题(如本应用程序所依赖)的必须被丢弃。 同样的代码却得到了三种不同的效果图,这还是让我感到惊讶

替代方案是 PrawnDocRaptorFerrumGrover

每个人都有其障碍或挑战。

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