Wicked PDF +字体+heroku+rails3.2

2023-11-24

我在用着邪恶_pdf使用 Rails 3.2.11 和 ruby​​ 1.9.3 从 HTML 生成 PDF 并部署到 Heroku。

我的 pdf.css.scss.erb:

<% app_fullhost = Constants["app_fullhost"] %>

@font-face {
  font-family:'DosisMedium'; font-style:normal; font-weight:500;
  src: url(<%=app_fullhost%>/app/font/dosis/Dosis-Medium.ttf) format('woff');
}

*, body {
  font-family: "DosisLight", 'Times New Roman', 'Arial', sans-serif;
} 

where app_fullhost是开发或生产中的确切宿主。

我的 pdf 布局包括:

%html{:lang => I18n.locale}
  %head
    %meta{:charset => "utf-8"}
    %title= content_for?(:title) ? yield(:title) : Settings.app_name
    = wicked_pdf_stylesheet_link_tag "pdf"

在生产中.rb 我有

config.assets.precompile +=%w(pdf.css)

这在开发中没有问题,但在 Heroku 上,pdf 文件无法加载所需的字体。我还尝试了不同的解决方案,例如在 production.rb 中添加这些解决方案:

config.assets.paths << "#{Rails.root}/app/assets/fonts"
config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) 
config.assets.precompile += %w(.svg .eot .woff .ttf) 

我也尝试更改(在 pdf.css.scss.erb 中):

@font-face {
  font-family:'Dosis'; font-style:normal; font-weight:500;
  src: url('Dosis-Medium.ttf') format('woff');
}

or

@font-face {
  font-family:'Dosis'; font-style:normal; font-weight:500;
  src: url(<%= asset_path('Dosis-Medium.ttf')%>) format('woff');
}

字体位于assets/fonts并且也在public/app/font/dosisHeroku 上的 url 正确响应:

..//myapp/app/font/dosis/Dosis-Medium.ttf" and 
..//myapp/assets/Dosis-Medium.ttf 

如何在 Heroku 上加载字体?


wkhtmltopdf,底层程序wicked_pdf,在通过 CSS 加载字体时是出了名的时髦。在某些系统上,它使用绝对路径,有时需要相对路径。即使你正确地获得了路径,它也可能会因不准确的 CSS 减速等而被抛出。仅就这一点而言,就有数十个与此相关的问题。

我发现的最好、最灵活和最便携的解决方案是对您尝试使用的字体进行 Base64 编码,并将其直接包含到 CSS 文件中:

@font-face {
    font-family: 'OpenSans';
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wicked PDF +字体+heroku+rails3.2 的相关文章

  • 将下载的字体添加到 Tkinter

    我想下载一个开源字体并在我的 Python Tkinter 程序中使用它 如何告诉 Tkinter 从目录导入字体或将字体放在与程序相同的文件夹中 Note 我已经寻找答案一段时间了 甚至阅读了 Tkinter 的 API 参考 了解我能找
  • Rails:CSS 在开发和生产中似乎有所不同

    我有一个标准的 Rails 4 heroku 设置 有一点很奇怪 页面的不同元素在本地环境和生产环境中以不同的尺寸显示 例如 虽然 header height 设置为特定的像素值 但两个环境的高度不同 与内容的宽度相同 我将最大宽度设置为
  • 如何将模块化 Sinatra 应用程序部署到 Heroku?

    由于某种原因 我无法访问公共目录中的任何文件 未发现错误 我不会把public显然 URL 中的一部分 查看GitHub 上的 Lovers 源代码存储库 https github com mattdipasquale loversapp
  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • 使用 imagettftext 字体时出现问题

    这是当我更改有效网站的环境时收到的错误消息 Warning imagettftext function imagettftext Could not find open font 首先我以为这是因为缺乏文件权限 但事实并非如此 我检查了路径
  • Heroku 上的 Python 入门 - 未找到 pg_config 可执行文件

    我一直在关注文档 直到安装requirements txt 文件 尝试安装第 6 行 psycopg2 2 5 3 时总是失败 这是消息 Downloading unpacking psycopg2 2 5 3 from r require
  • Heroku:无法通过 Bundler 安装 gem

    我尝试使用以下命令将我的 Rails 应用程序推送到 Herokugit push heroku master f命令 我得到这个 Total 0 delta 0 reused 0 delta 0 remote Compressing so
  • 我应该在 Heroku 上的哪里存储敏感文件?

    这个问题可能有一个明显的答案 只是我没有想到 我知道敏感数据 例如安全凭证 最好通过 Heroku 的 CLI 使用环境变量存储在 Heroku 等服务上heroku config add 但敏感的怎么办files 比如证书 具体来说 我想
  • 警告:您的 git 版本是 1.9.3。存在严重的安全漏洞

    我在部署到 Heroku 期间收到有关 git 1 9 3 严重安全漏洞的警告 我尝试通过 homebrew 更新 git 但发现 git 最初并不是通过 homebrew 安装的 然后我通过自制程序安装了它 brew update bre
  • Heroku 上重启后 Better-SQLite3 数据库重置

    我有一个 Discord 机器人better sqlite3 https github com JoshuaWise better sqlite3硬币和 XP 数据库 直到两周前它一直工作得很好 现在 每次重新启动后 它只会恢复 XP 和硬
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • 如何更改 Flutter 中的默认字体系列

    如何更改应用程序的每个文本以使用特定字体 我可以使用以下命令单独更改它们TextStyle 但如何让我的应用程序默认使用特定字体 你能告诉我怎么做吗 您可以按照以下步骤更改 Flutter 应用程序的默认字体系列 1 将字体文件添加到项目文
  • Rails:CSRF 令牌不工作但已设置

    我在 Heroku 上有我的 Rails 3 应用程序 当我发送银行信息时 我得到 WARNING Can t verify CSRF token authenticity但我的 CSRF 令牌已设置 https gist github c
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Heroku 部署错误

    在 Windows 环境中 尝试部署到 Heroku 时出现以下错误 C Ruby lib ruby gems 1 8 gems heroku 1 9 13 lib heroku commands base rb 32 in 没有这样的文件
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • Gmail 无法在电子邮件上正确呈现字体

    我已经建立了一个 html 电子邮件并使用了 Google 字体 我已使用以下方法将字体包含在 head 标签中 if mso endif 并使用字体 即我这样做了
  • Rails 3.2:用 json 序列化中的空字符串替换 null 值

    我正在使用 Rails 3 2序列化 http www simonecarletti com blog 2010 04 inside ruby on rails serializing ruby objects with json 将 ru
  • 如何在文本区域中使用除“文本插入符号”之外的透明字体?

    我有一个简单的文本区域 我需要制作透明字母 同时允许文本插入符可见 当我应用以下规则时 我会得到隐形插入符 textarea background transparent opacity 0 当我键入不可见文本时 我需要看到文本插入符移动
  • 使用带有 Heroku 和 CNAME 的电子邮件

    我正在 HEROKU 托管应用程序上设置 MX 记录 但遇到了问题 我有两个 CNAME 设置 myapp herokuapp com www myapp herokuapp com 网站按照上面的设置运行良好 我现在尝试通过添加 Goog

随机推荐

  • DB2 中声明全局临时表与创建全局临时表

    正在创建一个GLOBAL TEMPORARY TABLE在 DB2 中 当我冲浪时 我有两种方式来创建 1 声明 2 创造 1 DECLARE GLOBAL TEMPORARY TABLE SESSION TEMP EMP EMPNO CH
  • blogger.com 博客的社交内容储物柜?是否可以

    如何将社交内容储物柜集成到博主博客中 我们在许多 WordPress 博客和网站中看到 但在 blogger com 博客中您看不到插件选项 有人有其他方法或类似的东西吗 我希望访问者在阅读我的帖子之前点赞 推特或 g thanks 我找到
  • 使用 sed 在匹配文本块后插入一行

    我尝试使用 sed 在以下文件中的 Block B 之后插入一行 Block A line 1 line 2 Block B line 1 line 2 Block C line 1 line 2 我使用的命令 sed Block B a
  • 在运行时设置 href 属性

    设置的最佳方法是什么href的属性 a 在运行时使用 jQuery 标记 另外 你如何获得的值href的属性 a 使用 jQuery 标记 要获取或设置 HTML 元素的属性 您可以使用element attr jQuery 中的函数 为了
  • javac 错误:仅在明确请求注释处理时才接受类名

    当我编译我的java程序时出现这个错误 error Class names EnumDevices are only accepted if annotation processing is explicitly requested 1 e
  • 尝试加载 Oracle 客户端库抛出 BadImageFormatException

    尝试从 net 连接到 Oracle 数据库时出现以下异常 尝试加载 Oracle 客户端库引发了 BadImageFormatException 用32位运行64位模式时会出现这个问题 安装了 Oracle 客户端组件 经过许多链接后 我
  • 如何正确声明自引用模板类型?

    如何声明引用自身的模板类型 template
  • 如何计算 R 中样条函数的导数?

    R 可以使用 splines 库中的 splinefun 生成样条函数 但是 我需要评估该函数的一阶和二阶导数 有没有办法做到这一点 例如 library splines x lt 1 10 y lt sin pi x just an ex
  • 在 Meteor-Cordova 应用程序中播放声音

    使用没有cordova的流星我可以在浏览器中使用以下命令播放声音 new Audio test mp3 play where test mp3位于公用文件夹中 但是 一旦我在设备上将我的应用程序作为 cordova 应用程序运行 我就无法播
  • 选择元素的增长方式与显示 Flex 中的输入元素的增长方式不同

    我出现了意想不到的行为在我的设置中 输入按预期水平增长 但在具有选择控件的行上 增长似乎被扭曲 我怀疑某些风格有所不同 但仔细检查后却一无所获 谷歌搜索没有给出任何信息 我找不到任何关于隐式边距或选择填充的信息 这是关于什么的以及我该如何杀
  • JavaScript 异常列表

    这次我没有任何问题 但出于好奇 我想知道 JavaScript 中有多少异常 例如我正在使用以下代码
  • 将 pandas csv 保存到子目录

    我试图将以下代码的输出保存到子目录中 for gp in g filename gp 0 csv print filename gp 1 to csv filename 我首先创建了子目录 os makedirs MonthlyDataSp
  • 俄语 mongodb 全文搜索

    我正在尝试在 mongodb 中使用全文搜索 gt db collection insert text gt db collection insert text gt db collection insert text gt db coll
  • 无法验证应用程序并将其提交到 Mac App Store

    我已经为 iOS 应用程序进行了无数次协同设计和提交 这次让我震惊的是 Mac App Store 我反复收到相同的错误消息 我的名字 是一个有效的身份 然而 您没有关联的包标识 我在堆栈溢出上认识到这两个主题 mas 代码签名身份私钥 a
  • 当使用 Object.create(null) 创建对象时 __proto__ 如何工作

    考虑以下 JavaScript 代码 var a Object create null a foo 1 var b Object create a console log b foo prints 1 console log b proto
  • 切换两个 INT 变量的大小写

    考虑以下代码 if xPoint gt 0 yPoint gt 0 m navigations Directions SouthEast else if xPoint gt 0 yPoint lt 0 m navigations Direc
  • 如何在UIView上设置渐变边框?

    在上面放置一个简单的边框非常容易UIView 您只需链接到QuartzCore 导入它并使用 self view layer borderColor UIColor redColor CGColor self view layer bord
  • 使用fork时内存是如何映射的?

    我是 fork 的新手 我到处都读到 当调用 fork 时 当前 调用 进程的精确副本就会启动 现在 当我运行以下代码时 应该有两个不同的进程 有两个不同的进程分配给它们的变量和函数的内存位置 include
  • 如何关闭 sbcl 中的调试器

    我目前正在尝试学习 common lisp 并且一直在使用 sbcl 我希望这是一个不错的实现选择 来自 ruby 和 irb 的我发现此时每个错误的自动转移到调试器有点烦人 有没有办法在我玩的时候暂时关闭它 Common Lisp 有一个
  • Wicked PDF +字体+heroku+rails3.2

    我在用着邪恶 pdf使用 Rails 3 2 11 和 ruby 1 9 3 从 HTML 生成 PDF 并部署到 Heroku 我的 pdf css scss erb font face font family DosisMedium f