【发布时间】:2017-08-26 08:04:11
【问题描述】:
我正在使用 Rails pdfkit gem 来呈现多页 pdf 文件。呈现的 pdf 文件按预期选择 CSS(SCSS) 样式和分页符。但是,当我尝试在生产中渲染相同的 pdf 文档时,样式似乎只加载了一些 CSS 规则而忽略了其他规则,例如父容器的 width 和 height 声明。这是父容器元素的 CSS (SCSS):
.policy_pdf{
font-family: Arial, sans-serif;
.pdf-page{
width:98%;
height:17.1in;
margin:auto;
page-break-after:always;
...
@media screen{
border: 1px dotted red;
}
page-break-after:always;
}
...
}
和 PDFKit 初始化器:
PDFKit.configure do |config|
config.default_options = {
:page_size => 'Legal',
}
end
文档周围的红线是我引入的一条 CSS 规则,用于显示页面边缘在生产中的呈现方式。
环境
开发和生产(Digital Ocean Droplet)都使用相同版本的 Ubutnu (16.04)。
你有什么尝试?
-
起初我认为我用于
pdf-kit的一些 CSS 类(例如.page)在编译时会被一些冲突的规则覆盖,所以我尝试使用唯一的类名,例如.pdf-page而不是 @987654334 @。 -
然后我尝试看看它是否与SCSS编译有关。但是同一个样式表中的嵌套边框和背景颜色声明正在被“拾取”并呈现得很好。编译后的
application.css中的policy-pdf块看起来也正确。 -
禁用
smart-shrinking会使 PDF 看起来更加“崩溃”。 -
按照this 帖子中的建议对
html标记应用尺寸/宽度CSS 规则(内联和通过外部样式表):
线索:
生产和开发都运行相同版本的wkhtmltopdf (~> 0.12.2)。然而,运行wkhtmltopdf -V,返回wkhtmltopdf 0.12.2.1(with patched qt)
【问题讨论】:
-
对我来说切换到新服务器会使文档看起来不同。看起来我错过了一些字体,但我不确定。我正在研究它
标签: css ruby-on-rails pdf wkhtmltopdf pdfkit