我正在Wicked pdf中使用Rails 4应用程序生成pdf。我需要在pdf中渲染urdu字体。遵循Nikhil和Ashitaka的两个答案后,我从here下载了Jameel Noori Nastaleeq字体,将它们安装在我的本地文件中,并将其添加到assets/fonts
文件夹中。预编译资产后,在我的pdf.scss
@font-face {
font-family:"Jameel Noori Nastaleeq";
src:url("Jameel Noori Nastaleeq/Jameel Noori Nastaleeq.ttf");
font-weight: bold;
}
.urdu-font {
font-family: 'Jameel Noori Nastaleeq';
}
我的pdf查看文件如下
%head
%meta{:charset => "utf-8"}
= wicked_pdf_stylesheet_link_tag 'pdf'
%body.urdu-font
= render "custom_form"
其中_custom_form.pdf.haml部分包含包含urdu文本的输入字段。
Urdu字体在pdf和调试模式下都可以在本地正常工作,但是在部署时,它不能在pdf文件中正确显示,而在调试模式下可以很好地显示
。在调试模式下,我检查了字体资源的路径,即src:url(file:////home/deploy/<remote-location>/releases/20180622133137/public/assets/Jameel Noori Nastaleeq/Jameel Noori Nastaleeq-39c54f1646a6a4f68408f3a26400e457cb1e52226c284d8c4ab36a3363520e0f.ttf)
在这种html调试模式下,看起来不错,并且字体实际上可以很好地渲染。
P.S。我还看到了这个post,它正在使用googleapi
提供的远程字体。我已经尝试过了并且可以使用,但是我想使用本地字体资源。
答案 0 :(得分:0)
WickedPDF可以使大多数资产作为file://
引用,因为您的内容在使用wkhtmltopdf
呈现之前已被呈现到临时文件,但这确实给ajax调用和字体带来了一些问题。
您可以通过对字体资产进行base64编码并内联以下内容来绕过从file
加载问题:
url('<%= wicked_pdf_asset_base64('yourfile.ttf') %>')