我在开发中成功使用wicked_pdf和SASS.我包括一个单一的.scss文件,其中包含一些import其他的规则.sass和.scss文件,通过这个帮手:
def wicked_pdf_stylesheet_link_tag(*sources)
sources.collect { |source|
"<style type='text/css'>#{Rails.application.assets.find_asset("#{source}.css").body}</style>"
}.join("\n").gsub(/url\(['"](.+)['"]\)(.+)/,%[url("#{wicked_pdf_image_location("\\1")}")\\2]).html_safe
end
Run Code Online (Sandbox Code Playgroud)
但是切换到生产应用程序仍然会查找未找到的导入文件.
我已经添加了第二个清单文件,要在production.rb(config.assets.precompile += %w(pdf.css))中进行预编译,其中包含一个require用于获取上述.scss文件的规则.这个文件编译得很好,但似乎帮助程序没有在生产中选择正确的文件,仍然看起来加载导入的.sass文件.
有谁有经验如何解决这个问题?PDF创建需要绝对路径,这使得此任务更加困难.
当我生成包含éèà等字符的文本的PDF时,我确实会得到有趣的字符.
我知道这必须与编码有关.
我在字符串上尝试使用force_encoding("UTF-8"),但这些字符没有成功.
乔尔
使用0.79和0.7.2生成的PDF看起来与我原来的HTML略有不同.添加show_as_html标志会按预期显示它,但是内联样式在PDF中的处理方式不同,然后它们在HTML预览中.
具体来说,我遇到的问题是字母间距声明,也没有正确呈现浮动.因此,例如在具有字母间距的右浮动元素上,PDF将使字符过多地与中心隔开,使得文本部分地离开屏幕而不是进一步向左突出以获得字母间距宽度的差异. .
以下是原始HTML代码段:
<table width="800" border="0">
<tr>
<td colspan="3"><span style="font-family:Helvetica, Arial, sans-serif;font-size:10pt;margin-top:18px;text-transform:uppercase;float: right;letter-spacing:2pt">Winter 2013</span></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
这是执行渲染的代码:
render :pdf => 'file_name',
:template => 'template.html.erb',
:layout => 'pdf.html'
这是呈现的HTML:http://jsfiddle.net/wX4DQ/
这是输出的PDF:http://imgur.com/sdUPM
我注意到有一些关于wkhtmltopdf的 bug报告似乎与此有关.这可能是这个问题的罪魁祸首,什么是可接受的解决方案?
我尝试过不同的字体,但我真的不得不使用Helvetica.
关于这里做什么或合理的解决方案的任何建议?
我想在mac osx上将HTML格式化为pdf.我写这个命令,
$ wkhtmltopdf --header-center "google" http://www.google.com google.pdf
Run Code Online (Sandbox Code Playgroud)
但我看到了错误,
The switch --header-center, is not support using unpatched qt, and will be ignored.Loading page (1/2)
Printing pages (2/2)
Done
Run Code Online (Sandbox Code Playgroud)
问题是什么?我该怎么办?
所以我昨天整天都在试图让PDF渲染正常工作.在尝试了Prawn和PDFKit后,我发现至少让它工作的问题与Mac OS 10.7上的wkhtmltopdf有关,但现在的问题是它完全忽略了我添加的针对pdf的任何样式,即打印介质类型和任何特殊模板.
这是我现在所处的一个垃圾箱:http://pastebin.com/LW16RYjW
尝试所有这些和其他几个对我不起作用:
我终于得到了这个设置:
不知道还能做什么,我将pdf_helper.rb物理复制到我的lib /目录中(我不知道为什么它之前没有,或者它是否应该捆绑(?))
任何人都可以告诉我为什么它似乎没有拿起控制器中的任何渲染选项,以及如何在不影响屏幕(html)版本的情况下注册样式?任何帮助将不胜感激.在此先感谢您的时间.
pdf-generation ruby-on-rails wkhtmltopdf wicked-pdf ruby-on-rails-3.2
我正在尝试使用wicked_PDF将HTML页面呈现为PDF.该页面包含我使用D3.js创建的几个图表.在PDF上,只有图表的轴可见.图表的主体是空白的.我试图将SVG转换为Canvas和PNG图像(使用Base64编码).在这两种情况下,图像都显示为HTML,但只有轴显示在PDF中.有什么建议?
我正在使用 Wicked PDF,它通过 wkhtmltopdf-binary gem 使用 Wkhtmltopdf 0.9.9.1。我有一个如下所述的表格(简化)
<div id="listing">
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
和样式如下所述(简化)
<style>
#listing table tr td {
width:200mm !important
}
#listing {
width:210mm;
height:297mm;
page-break-inside:auto;
}
</style>
Run Code Online (Sandbox Code Playgroud)
由于有 4 个单元格,每个单元格宽度为 200 毫米,因此表格应溢出到容器的右侧(容器的宽度为 A4 标准宽度 = 210 毫米)
为什么表格永远不会分成两页?我已经关注了一些与之相关的链接,但仍然没有取得好的进展。难道Wkhtmltopdf不支持水平溢出分页吗?我真的很感谢你的一些指点。
补充信息:
整个东西只是缩小以适应表格(自动缩放)。当我添加规则“overflow:hidden”时,表格会被截断,而不会继续到下一页。
预期的行为是:
如果 Wkhtmltopdf 不是正确的工具,我很高兴知道一些解决方法(如果有)或知道最好的工具。谢谢。
在检查 Rails Gem 存储库中是否存在类似问题以及 Stack Overflow 之后,我找不到问题的答案。
我正在尝试在 Rails 控制器中使用 wicked_pdf 渲染 pdf,但无论我做什么或我遵循的类似问题的推荐解决方案,标题都没有显示。
首先,这里是开发控制台输出:
***************WICKED***************
Rendering biddings/show.pdf.html.haml within layouts/pdf
Rendered biddings/show.pdf.html.haml within layouts/pdf (0.7ms)
Rendering biddings/header_pdf.html.haml within layouts/pdf_header
Rendered biddings/header_pdf.html.haml within layouts/pdf_header (1.9ms)
"***************[\"/home/tommy/.rvm/gems/ruby-
2.5.1@igalbids/bin/wkhtmltopdf\", \"-q\", \"--encoding\", \"UTF-8\",
\"--javascript-delay\", \"500\",
\"--disable-internal-links\", \"--disable-external-links\",
\"--orientation\", \"Portrait\", \"--margin-top\",
\"50\", \"--margin-bottom\", \"25\", \"--header-html\",
\"file:////tmp/wicked_header_pdf20180801-27285-b8y5sg.html\",
\"--footer-right\", \"Página [page] de [topage]\",
\"file:////tmp/wicked_pdf20180801-27285-1jfgdd7.html\",
\"/tmp/wicked_pdf_generated_file20180801-27285-1bkrvhx.pdf\"]***************"
Rendering text template
Rendered text template (0.1ms)
Sent data Licitación_2524.pdf (0.6ms)
Completed 200 OK in 2334ms (Views: 0.5ms | ActiveRecord: 64.4ms)
Run Code Online (Sandbox Code Playgroud)
如您所见,标题布局及其内容都在渲染和处理,但是它们并没有生成最终输出 PDF,我不知道为什么!看: …
ruby-on-rails wkhtmltopdf wicked-pdf ruby-on-rails-5 wkhtmltopdf-binary
我不确定我错过了什么,但我的 css 似乎并没有与 wicked_pdf 一起工作。我的文件中链接了一个图像,该图像有效,但缺少样式。
文件
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
Run Code Online (Sandbox Code Playgroud)
控制器
format.pdf do
render pdf: "day_report",
template: 'day/day_report',
page_size: 'A4'
end
Run Code Online (Sandbox Code Playgroud)
应用程序.html.erb
<head>
<title>Page Title</title>
<%= wicked_pdf_stylesheet_link_tag "styles" %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
Run Code Online (Sandbox Code Playgroud)
day_report.pdf.erb
<%= wicked_pdf_image_tag( 'logo.jpg', height: '100', width: '100') %>
<div class="page-header">
Day Report
</div>
Run Code Online (Sandbox Code Playgroud)
样式文件
.page-header {
padding: 40px 0;
background-color: red;
text-color: #fff;
}
Run Code Online (Sandbox Code Playgroud) 这里我不是在谈论带有 wicked_pdf_image_tag 的图像。这些运作良好。但是当我下载 pdf 时,它不会渲染图像。
它渲染得像一个小盒子。 点击这里
文件.html.haml
%img{src: "/assets/#{CONFIG[$skey]['main_logo_path']}"}
Run Code Online (Sandbox Code Playgroud)
文件.pdf.erb
<%= wicked_pdf_image_tag(CONFIG[$skey]['main_logo_path'],alt: "Logo", class: "mt-md mb-md") %>
Run Code Online (Sandbox Code Playgroud)
使用的宝石:
wicked_pdf (2.1.0)
wkhtmltopdf-binary (0.12.6.5)
Run Code Online (Sandbox Code Playgroud)
请帮忙!
wicked-pdf ×10
wkhtmltopdf ×6
css ×1
d3.js ×1
jquery ×1
page-break ×1
pdfkit ×1
production ×1
sass ×1