gpt4 book ai didi

css - Rails4 + PDFKit + 字体 + Heroku 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:30 25 4
gpt4 key购买 nike

几天以来,我一直在尝试使用 PDFkit 解决 heroku 上的字体问题,但似乎对我没有任何作用....

我已经做了一些解决方案,例如:从 Squirrel 转换 LucidaHW 并执行以下操作 ...

@font-face {
font-family: 'lucida_handwritingitalic';
src: url(data:application/x....

或该网站上带有 .font 的解决方案:http://www.mobalean.com/blog/2011/08/02/pdf-generation-and-heroku

或使用:

kit.stylesheets << "#{Rails.root.join("public","stylesheets", "pdf", "pdf.css.scss")}"

我还将我的 pdf.css.scss 移动到 vendor 文件夹,移动到 public 文件夹,什么都没有......

现在,我有点困惑,因为几乎所有这些都在开发模式下(在我的本地主机上)工作,但在 heroku 上却没有。我知道这不是关于该问题的第一张罚单,但没有人找到适合我的解决方案。

最佳答案

几个月前我遇到了类似的问题。这就是我现在正在做的事情,它对我来说效果很好:

1.以 base64 格式提供 Assets :

添加这个辅助方法:

def asset_data_base64(path)
asset = Rails.application.assets.find_asset(path)
throw "Could not find asset '#{path}'" if asset.nil?

base64 = Base64.encode64(asset.to_s).gsub(/\s+/, "")
"data:#{asset.content_type};base64,#{Rack::Utils.escape(base64)}"
end

在您的模板中,包括这样的 Assets :(该示例使用 haml)

  = stylesheet_link_tag(asset_data_base64('pdf/pdf.css'))
= javascript_include_tag(asset_data_base64('pdf/pdf.js'))

2.自定义字体

将所有字体移动到元素中的文件夹中。 (我把我的放在 vendor/assets/fonts 下)然后在你的 config/initializers

中添加一个新的初始化文件
if Rails.env.production?
font_dir = File.join(Dir.home, ".fonts")
Dir.mkdir(font_dir) unless Dir.exists?(font_dir)

Dir.glob(Rails.root.join("vendor","assets","fonts", "*")).each do |font|
target = File.join(font_dir, File.basename(font))
File.symlink(font, target) unless File.exists?(target)
end
end

Rails.root.join("vendor","assets","fonts", "*") 替换为您放置所有字体文件的文件夹路径。

然后在你的css中,不要使用font-face,直接使用字体名称,例如字体系列:Gotham;

此外,不要使用后备字体!在某些版本的 wkhtmltopdf 中,如果提供了后备字体,它总是使用后备字体。

=============================================

  1. 我从这里学到了 base64 技巧:https://github.com/mileszs/wicked_pdf/issues/257
  2. 在此处找到自定义字体解决方案:http://www.mobalean.com/blog/2011/08/02/pdf-generation-and-heroku

关于css - Rails4 + PDFKit + 字体 + Heroku 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com