将 HTML 导出为 PDF 时出现中文和日文字符编码问题

2024-05-25

我运行一个基于 Web 的时间线制作工具,让用户可以用 HTML/JavaScript 创建时间线,然后将其导出到 PDF 文件以便在完成后进行打印。

我有几个用户报告了当时间线包含某些 Unicode 字符时将时间线导出为 PDF 时出现的问题。例如,下面是显示网页和生成的 PDF 文件的屏幕截图:

我一直在尝试理解为什么某些 Unicode 字符块(如 Block Elements 和 Georgian)会导出,但中文和日文不会导出。此外,当我在本地计算机上执行导出时,导出工作正常,但在 Heroku 上导出时会导致上述输出。

有谁知道可能是什么原因造成的?

为了完整起见,后端采用 Ruby on Rails,并使用 PDFKit gem 将 HTML 页面转换为 PDF,并且该站点托管在 Heroku 上。


听起来可能是服务器上的字体问题。时间线的网页版本可以正确呈现,因为运行浏览器的客户端计算机上显然拥有正确的字体。另一方面,PDF 是在服务器上生成的,因此必须使用服务器可用的字体。

如果是这种情况,那么使用服务器上存在且支持正确 CJK 字符的字体应该可以解决此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 HTML 导出为 PDF 时出现中文和日文字符编码问题 的相关文章

  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • Rails Searchkick / Elasticsearch has_many 和belongs_to 关联

    我尝试使用 Searchkick 运行搜索并基于多个模型返回 我的书本模型包含这个 class Book lt ActiveRecord Base searchkick has many book subjects has many sub
  • 使用 Minitest 测试自定义验证器

    我有多个带有电子邮件验证的模型 因此 我将验证提取到自定义验证器中 我按照以下教程做到了这一点导轨指南 http guides rubyonrails org active record validations html custom va
  • 设备注册控制器获取零资源的自定义操作

    基本上我想要有两个单独的操作来更改密码和更改电子邮件 而不是只有一个 我已经更新了我的路由以指向继承自 Devise RegistrationsController 的新控制器 我的路线 rb devise for users contro
  • Twitter Bootstrap 中下拉链接的模态

    我正在尝试从下拉菜单中的链接进行模式启动 该模式似乎已启动 网站变为灰色 但看不到 来自不在下拉列表中的常规链接的模态工作得很好 我对 jquery 进行了愚弄 但由于我是 jquery 的新手 所以没有任何结果 这是我的网站代码
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 自定义通用 Rails 错误消息

    我们的 Rails 应用程序被设计为链接到多个客户端数据库的单个代码库 根据子域 应用程序确定要连接到哪个数据库 我们使用液体模板为每个客户定制演示文稿 我们无法为每个客户定制通用的 我们很抱歉 出了点问题 消息 谁能推荐一种方法让我们能够
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在 ActiveAdmin 或打印解决方案中动态更改分页

    我是 Activeadmin 和 Rails 的新手 我需要一些帮助 我有一个分页模型 我想允许用户更改分页值或完全禁用它 这样它就可以打印 到打印机 所有记录 或过滤后的记录 我知道我可以在 before filter 中使用 per p
  • 为什么 Rails 中的区域设置充当全局(使用 Thin 时)?

    我刚刚意识到在控制器中设置区域设置的推荐 Rails 方法 before filter set locale def set locale I18n locale params locale I18n default locale end
  • C# 无法将欧元符号打印到文件中(使用 Excel 打开时)

    我在使用 Web api 控制器的 get 方法时遇到问题 此方法返回一个 HttpResponseMessage 对象 该对象具有带有 csv 文件的 HttpContent 其中包含欧元符号 当该方法返回文件时 不会打印欧元符号 该方法
  • Rails - 安装 Spree 时出现问题

    我在 Rails 应用程序中安装 Spree 时遇到问题 当我运行 gem spree 时 按照说明http spreecommerce com documentation getting started html http spreeco
  • 多次部署后 Heroku Slug 大小

    我有一个红宝石 on Rails非常接近 slug 大小限制 300mb 的应用程序 我已经尽可能地减小了尺寸 slugignore但还没有得到我想要的结果 一时兴起 我尝试创建一个新的Heroku应用程序并向其部署相同的 git 存储库
  • 如何在生产服务器中运行 sidekiq?

    我有一个带有apache passenger的服务器 我将如何奔跑sidekiq在生产中 运行所需的任何配置 bundle exec sidekiq Thanks bundle exec sidekiq d L log sidekiq lo
  • 带回形针、导轨的水印图像 4

    我一直在尝试按照中列出的答案向我的图像添加水印带有回形针的水印 https stackoverflow com questions 13517757 watermark with paperclip 水印 rb module Papercl
  • 无法使用 Rails 6 Actiontext 渲染 youtube 嵌入 iframe

    我已经设置了一个自定义嵌入模型 这样我就可以将 Instagram 或 YouTube 嵌入等内容添加到我网站上的 ActionText 内容中 它适用于 Instagram 嵌入 但不适用于 YouTube 作为参考 我要显示的 yout
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 创建一个默认为零的工厂关联?

    在factories rb 文件中使用FactoryGirl gem 如何创建一个关联默认为nil 的工厂 我正在思考以下几点 Factory define user do factory factory association post
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • rspec 中的模拟方法链

    有一系列方法可以获得user目的 我试图模拟以下内容以返回user in my Factory Girl current user AuthorizeApiRequest call request headers result 我可以模拟该

随机推荐

  • 在 MongoDB 中删除时自动删除引用对象

    假设我有一个这样的架构 var Person new Schema name String var Assignment new Schema name String person ObjectID 如果我删除一个人 仍然可能会留下引用不存
  • 了解自加入

    我正在练习自加入这是我在编写查询时不明白的事情 我有一张桌子 employee 员工表包含三个记录 id employee manager id 1 Ola NULL 2 Ahmed 1 3 Tove 1 最后一列 manager id 引
  • Heroku 启动超时(错误 R10)

    每次我启动应用程序时 如果没有以下内容 它就无法超过 60 秒点 2012 05 06T22 41 11 00 00 heroku web 1 Stopping process with SIGKILL 2012 05 06T22 41 1
  • FAT32 格式存储上的文件系统链接

    我知道FAT32 还有FAT16 12都不支持符号链接 nor 硬链接 然而我想到了这个想法 FAT 规范描述了每个文件都与一个目录项相关联 根据我的理解 可以说目录中的文件条目以某种方式或其他方式points文件的内容 那么 如何定义两个
  • IntelliJ IDEA 13 + Tomcat 7 部署

    我尝试在 Tomcat7 上的 IDEA 中部署空的 Web 应用程序 Tomcat 停止在线工作 INFO Deploying web application directory C devel Servers apache tomcat
  • 解码 JavaScript Web 令牌 (JWT) 的到期日期?

    我无法理解应用程序中嵌入的 JWT 的到期日期格式 例如 1473912000 这翻译成什么 1473912000 毫秒 某个 x 日期 任何帮助将不胜感激 正如詹姆斯所指出的 该数字是自 1970 年 1 月 1 日以来的秒数 这被转换成
  • 想要并行运行非线程安全库 - 可以使用多个类加载器来完成吗?

    我从事的一个项目中 我们使用的库不能保证线程安全 实际上也不是 并且在 Java 8 流场景中是单线程的 它按预期工作 我们希望使用并行流来获得容易实现的可扩展性成果 不幸的是 这会导致库失败 很可能是因为一个实例干扰与另一实例共享的变量
  • 使用 VBA 将数据从 Excel 导出到现有 PowerPoint 幻灯片

    我正在编写一个小型 excel 插件来进行一些简单的数据分析 但不幸的是我不是 VBA 程序员 到目前为止我已经做了什么 从巨大的 Excel 工作簿中获取数据并执行计算 将结果写入预先格式化的 Excel 骨架 文件 我接下来想要做什么
  • 即使不改变对象和数组,也无法更改减速器中的嵌套对象

    我正在尝试更新减速器内的状态 我知道我不应该改变对象或嵌套对象 所以我使用map用于数组或对象的对象扩展 但似乎我无法真正更改深层嵌套的值 除了我无法更改状态这一事实之外 我真的不喜欢代码的外观 尤其是仅更改一个属性所需执行的循环数量 我觉
  • 如何在winform的中心设置控件?

    您好 我正在尝试在表单中心设置控件 即标签或文本框 当我最大化该形式时我需要这个 我可以静态或动态设置它吗 大家有什么想法请尽快告诉我 将控件放在中心并设置Anchor财产给None
  • 单元测试魔术方法

    当涉及到 PHP 中魔术方法的单元测试实现时 调用这些方法的推荐方法是什么 我看到三个可用选项 显式 直接调用它们 object gt get someValue 间接调用它们 使用任何旨在触发它们的操作 object gt someVal
  • 命令行字符串的最大长度

    在Windows中 命令行字符串的最大长度是多少 意思是如果我指定一个在命令行上接受参数的程序 例如abc exe name abc 我编写的一个简单的控制台应用程序通过命令行获取参数 我想知道最大允许数量是多少 来自微软文档 命令提示符
  • 能够在 WPF 网络浏览器中支持 Html5

    我的WPF浏览器不支持网页上的html5元素 我不知道如何实现对它的支持 我确实安装了 IE9 并且可以看到使用 IE 浏览的 html5 元素 非常感谢任何关于如何添加对 html5 支持的帮助 我实际上自己找到了解决方案 一切都在这个页
  • Web 应用程序架构 - 需要作业/任务队列吗?

    我目前正在设计一个 Web 应用程序 该应用程序将允许用户安排将针对 HTTP API 代表他们 执行的任务 这些任务可以重复出现 并且可用于调度的最小时间分辨率为一分钟 由于任务的性质 我认为异步执行它们是有意义的 但是 这部分的架构应该
  • 如何将一个div的内容克隆到另一个div

    我想使用jquery克隆将选定div的内容复制到另一个div 但我不想将它附加到任何地方 我的意思是 当我们用 jquery 克隆一个 div 时 如果我错了 请纠正我 我们必须设置它的位置 它将动态创建一个显示的新分区 但我想获取所选di
  • 在 powershell 3 中美化 json

    给定一个标准 json 字符串值 jsonString baz quuz cow moo cud foo bar 我怎样才能让这一切都漂亮的换行符 最好没有强力正则表达式 到目前为止我发现的最简单的方法是 jsonString Conver
  • Monitor.TryEnter(object) 和 Monitor.TryEnter(object, ref bool) 之间存在什么重要区别?

    这些代码片段的行为似乎应该相同 1 Monitor TryEnter 对象 if Monitor TryEnter lockObject try DoSomething finally Monitor Exit lockObject 2 M
  • 秋千布局:垂直流

    我应该使用什么 LayoutManager 来实现 FlowLayout 的转置版本 本质上 我想要一个垂直列表 如果它不能在一列中容纳所有组件 那么它会占据多列 item 1 item 2 item 3 item 4 item 5 ite
  • Java获取调用页面的URL

    为了让您了解情况 我们使用基于 Tomcat 6 0 29 的自定义服务器 我们正在使用 Java 和 Spring 进行开发 假设我有一个链接 您可以从http localhost 显示 http localhost display to
  • 将 HTML 导出为 PDF 时出现中文和日文字符编码问题

    我运行一个基于 Web 的时间线制作工具 让用户可以用 HTML JavaScript 创建时间线 然后将其导出到 PDF 文件以便在完成后进行打印 我有几个用户报告了当时间线包含某些 Unicode 字符时将时间线导出为 PDF 时出现的