使用 0.79 和 0.7.2 生成的 PDF 看起来与我的原始 HTML 略有不同。添加 show_as_html 标志会按预期显示它,但是内联样式在 PDF 中的处理方式与 HTML 预览中的处理方式不同。
具体来说,我遇到的问题是字母间距声明,它也有一个浮点数没有正确呈现。因此,例如在具有字母间距的右侧 float 元素上,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>
这是进行渲染的代码:
render :pdf => 'file_name',
:template => 'template.html.erb',
:layout => 'pdf.html'
这是呈现的 HTML:http://jsfiddle.net/wX4DQ/
这是输出的 PDF:http://imgur.com/sdUPM
我注意到 wkhtmltopdf 上有一些错误报告关于这似乎是相关的。这可能是这个问题的罪魁祸首,什么是可以接受的解决方法?
我尝试过不同的字体,但我真的必须使用 Helvetica。
关于这里做什么或合理的解决方法的任何建议?
最佳答案
有很多事情会导致文本渲染和字母间距出现问题。如果您使用的是二进制文件,请尝试获取针对 QT 编译的二进制文件。如果您自己编译了 wkhtmltopdf,请确保您编译它的系统安装并注册了一组合适的字体,否则字体看起来不正确。
此外,这一点 css 可以提供帮助,尤其是在复制/粘贴某些字符之间有随机额外空格时:
body { text-rendering: optimize-speed; }
关于wkhtmltopdf - 带有 Wicked PDF 和字母间距问题的 HTML 到 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12009670/