如何使用 Prawn 将 base64 字符串转换为 PNG,而不保存在 Rails 中的服务器上

2024-01-05

所以我尝试使用 Prawn gem 将画布的 PNG 图像嵌入到 PDF 中。 Base64字符串是使用canvas的toDataURL()函数生成的。由于图像只需要在 PDF 中,我试图避免将其保存在服务器上。 Params[:base64string] 已正确传递到服务器。

但是,我正在尝试使用

image = Prawn::Images::PNG.new(base64string)

创建图像,但我得到 NoMethodError: undefined method `unpack' for nil:NilClass。

有什么想法我做错了什么或者应该如何正确完成?


found here https://groups.google.com/forum/?fromgroups=#!topic/prawn-ruby/zDh_dytNgfg:

虾想要一个文件路径而不是编码的图像数据。您可以使用临时文件:

require 'prawn'
require 'tempfile'
require 'active_support' # for base64

Prawn::Document.generate('/tmp/test.pdf') do
  file = Tempfile.new('image')
  file.write ActiveSupport::Base64.decode64(image)
  file.close

  image file.path
end

希望这可以帮助!

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

如何使用 Prawn 将 base64 字符串转换为 PNG,而不保存在 Rails 中的服务器上 的相关文章

  • 如何在 Ruby 中将 DateTime.now 转换为 UTC?

    如果我有d DateTime now 如何将 d 转换为 UTC 带有适当的日期 DateTime now new offset 0 将在标准 Ruby 中工作 即没有 ActiveSupport
  • 如何使用 form_for 将参数传递给控制器​​ ruby​​ on Rails

    我有一个用户模型和一个课程模型 用户登录后可以自己上传课程 但是 我希望管理员能够为用户上传 以防用户不够精明 我的想法是对用户上传和管理员上传使用相同的创建操作 并使用 if 语句 管理员将在用户 id视图页面中为他上传之前选择用户 然后
  • 自动将 JSON 对象映射到 Ruby 中的实例变量

    我希望能够自动将 JSON 对象解析为实例变量 例如 使用此 JSON require httparty json HTTParty get http api dribbble com players simplebits gt shots
  • Rails 中对多个域/子域的支持

    我有一个 Rails 应用程序 它的设置与 Tumblr 类似 也就是说 您可以选择 1 子域名托管 your username myapp com 2 域名托管 your username com 两者都会转发到使用我的应用程序创建的该用
  • Rails 中 WHERE 子句中的 ALL 运算符

    关联关系如下图所示 InstructorStudent has many fees Fee belongs to instructor student 我想要获得在所有给定数组中具有每月详细信息的指导学生 如果其中任何一个中不存在每月详细信
  • 使用哈希时 fetch 与 [] ? [复制]

    这个问题在这里已经有答案了 来自鲁比 科恩斯about hashes rb 为什么你可能想使用 fetch代替 当访问哈希键时 默认情况下 使用 如果存在则检索哈希值 如果不存在则返回 nil Using fetch给你一些选择 请参阅文档
  • 如何将属性保存到 has_many :通过连接表,没有现有记录可供构建

    我有一个表单 可以使用以下命令创建新的子记录和新的父记录accepts nested attributes for 孩子和家长都有一个has many through像这样的关联 class Child lt ActiveRecord Ba
  • has_many 关系中的 Active Record 对象何时保存?

    我正在使用 Rails 1 2 3 是的 我知道 并且对如何使用感到困惑has many适用于对象持久性 为了举例 我将使用它作为我的声明 class User lt ActiveRecord Base has many assignmen
  • 如何使用 Cucumber 和 Rspec 测试 Rails 3 引擎?

    如果这个问题有点主观 我深表歉意 我正在尝试找出使用 Cucumber 和 Rspec 测试 Rails 3 引擎的最佳方法 为了测试引擎 需要 Rails 3 应用程序 这是我目前正在做的事情 通过运行以下命令将 Rails 测试应用程序
  • 处理 Rails 2.1.x 中的 RoutingError 的最佳方法?

    我正在使用Rails 2 1 中的routing rb 代码 并尝试让它达到这样的程度 我可以对找不到合适路径时抛出的RoutingError 异常执行一些有用的操作 这是一个有点棘手的问题 因为有一些 URL 类别纯粹是糟糕的 azenv
  • 为什么递归会出现“堆栈级别太深”?

    我有这个红宝石代码 def get sum n return 0 if n lt 1 n 3 0 n 5 0 n get sum n 1 get sum n 1 continue execution end puts get sum 999
  • Rails error_messages 帮助器

    这是一段很常见的代码 First name br error messages是一个辅助方法 但我很难找到它的文档 为什么呢 我在这里找到它们 error messages 具有相同的参数错误消息 http apidock com rail
  • 使用 Paperclip 保存文件而不上传

    我有一个简短的问题 是否可以保存文件而不实际通过表单上传 例如 假设我正在查看电子邮件中的附件 并且我想使用回形针保存它们 我该怎么做呢 我是否必须在某处手动调用 save file 或类似的东西 任何帮助将非常感激 我有一个 rake 任
  • 通过纱线安装 bootstrap 的 Rails 找不到字体

    我有一个带 Bootstrap 的 Rails 5 应用程序 我用纱线安装了它 我做了以下事情 yarn add bootstrap bootstrap 3 3 7 version 3 3 7 resolved https registry
  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • Ruby on Rails:有关 validates_presence_of 的问题

    我的基于 ActiveRecord 的模型中有一个关系 如下所示 belongs to foo 我的模型应该始终在其中定义 foo 才能有效 我的问题是 当使用 validates presence 时 使用哪一个是合适的 validate
  • 如何让 DateTime.parse 返回您所在时区的时间?

    我需要这个 require date DateTime parse Mon Dec 27 6 30pm 返回 EDT 时区下午 6 30 的日期时间 但返回 UTC 时间 如何获取 EST 日期时间或将 UTC 日期时间转换为下午 6 30
  • Mac + Ruby:无法访问 Socket 的 ioctl?怎么修?

    一天中的好时光 红宝石代码 def hw address iface sock Socket new Socket AF INET Socket SOCK DGRAM 0 buf iface pack a16h16 sock ioctl S
  • jRails 是 Rails + jQuery 必须的吗?

    我是rails新手 使用rails 2 3 10 并且想使用jquery 特别是jquery ui 该项目是一个全新的项目 我计划使用 jquery ui 中的一些小部件 如 datapicker 和 selectable 等 我听说可以安

随机推荐

  • 自动从包中的sysdata.rda加载数据

    我花了很多时间寻找可能是一个非常基本的问题的答案 但我就是找不到解决我的问题的方法 我发现的最接近的是这次交流 https stat ethz ch pipermail r devel 2011 August 061786 html从几年前
  • Android studio - 模拟器:无法 statvfs() 路径错误

    当我想在 Android Studio 3 2 中通过模拟器运行我的 android 应用程序时 出现此错误 我只想运行 Hello world 示例 Emulator Couldn t statvfs path 我遇到了同样的问题 并意识
  • 使用预先存在的访问令牌通过 ASP.NET 创建 YouTube 服务

    我一直在开发一个网站 供用户将视频上传到共享的 YouTube 帐户以供以后访问 经过大量工作 我已经能够获得活动令牌和可行的刷新令牌 然而 初始化的代码YouTubeService对象看起来像这样 UserCredential crede
  • 为 webrtc 实现 janus 网关

    我正在按照 janus 文档构建视频 MCU 系统 我根据自述文件安装了它的所有依赖项 http janus conf meetecho com docs 之后当我使用运行脚本时sh install sh我收到以下错误 In file in
  • WebRTC 候选信息末尾的数据是什么?

    我使用 Chrome 中的 WebRTC API 以及我自己根据 W3C 规范和其他问题编写的 WebSocket 脚本设置了一个基本的视频聊天应用程序 但有时 当一台 PC 通过 WebSocket 连接将 ICE 候选信息发送到另一台
  • PyCharm 性能优于 CMD python 命令

    我正在开发一个用于串行通信的 python 脚本 我正在 pyCharm 4 5 python27 和 windows 中开发它 我刚刚意识到当我在 pyCharm 上执行它时 它比我使用命令时运行得更快 python main py or
  • 证明匹配语句

    为了解决一个练习 我有以下代表整数的定义 Inductive bin Type Zero bin Twice bin gt bin TwiceOne bin gt bin 这个想法是 Twice x is 2 x 两次一x is 2 x 1
  • Ruby:Windows 路径转换

    我经常在脚本中使用长路径 因为我在 Windows 上 所以我必须将这些长路径转换为 nix 样式 并使用斜杠而不是反斜杠 如果此后您复制该路径以转到该文件夹 这没什么困难 但很烦人 因为在资源管理器中您必须再次执行相反的操作 所以我做了一
  • 将带符号的十进制转换为使用二进制补码编码的十六进制

    我需要编码signed通过二进制补码表示法将整数表示为十六进制 例如我想转换 e g 24375 to 0xffffa0c9 到目前为止 我一直在以下几方面开展工作 parseInt 24375 toString 2 gt 10111110
  • F# 中的“表达式问题”可以解决吗?

    我一直在看一个有趣的video http channel9 msdn com Shows Going Deep C9 Lectures Dr Ralf Lmmel Advanced Functional Programming Type C
  • 语法错误或访问冲突:1140 GROUP 列的混合 laravel

    我已经编写了这个带有分页的查询 items Item select items sub category name category name sub category slug category slug gt join sub cate
  • 使用 apache mod_proxy 缺少 Doctype HTML 部署

    我有一个奇怪的问题 我的 Vaadin 应用程序在我的计算机 本地 上运行良好 我刚刚部署了网站 现在遇到了问题 The 第一行中的标签丢失 我不知道为什么 但我认为这会导致一些问题 因为网站正在以 Quirks 模式显示 有趣的是 当我在
  • 当用户关闭(弹出)窗口时调用一些 JavaScript

    当用户关闭窗口时可以调用一些JS吗 我搜索了 JS 事件处理程序 发现只有 onunload 它会在用户离开页面时调用脚本 而不必关闭窗口 预期用途是调用 AJAX 脚本来取消设置与弹出窗口相关的一些会话 可能有也可能没有更好的方法来实现这
  • OCaml:在 GTK 中嵌入 openGL

    我想将 openGL 图形嵌入 OCaml 中的 GTK 程序中 您对如何做到这一点有什么想法吗 编辑 Tk 似乎已经解决了问题Togl http togl sourceforge net 在我的 ubuntu 中 我有包 liblablg
  • 如何在ServiceStack中使用Dapper

    目前 我使用 OrmLite 进行数据库操作 我也计划使用 Dapper ORM 但是谁能告诉我如何将 DapperORM 集成到 ServiceStack 中 我是否需要使用 Dapper 和插件来实现 IDbConnection 和 I
  • getopt 不解析参数的可选参数

    在 C 中 getopt long 不会解析命令行参数参数的可选参数 当我运行程序时 可选参数无法被识别 就像下面运行的示例一样 respond praise John Kudos to John respond blame John Yo
  • 到底什么是幺半群同态?

    我读过有关幺半群同态的内容幺半群态射 乘积和余积 http blog higher order com blog 2014 03 19 monoid morphisms products coproducts 并且无法100 理解 作者说
  • 从 AKKeyboardView 创建 MIDI 文件

    目前我正在使用AKKeyboardView本质上连接到AKRhodesPiano对象 我想知道是否有一种简单的方法可以从中生成 MIDI 文件 我看到AKKeyboardView有noteOn and noteOff函数 这确实产生了MID
  • symfony2 + 学说:修改 `onFlush` 上的子实体:“无效参数数量:绑定变量的数量与令牌数量不匹配”

    我有一个1 m之间的关系Subitem and SubitemColor 现在我想将一些数据保存在onFlush修改一些数据SubitemColor 问题 执行控制器时我收到以下错误消息 您也可以在下面看到 执行 INSERT INTO S
  • 如何使用 Prawn 将 base64 字符串转换为 PNG,而不保存在 Rails 中的服务器上

    所以我尝试使用 Prawn gem 将画布的 PNG 图像嵌入到 PDF 中 Base64字符串是使用canvas的toDataURL 函数生成的 由于图像只需要在 PDF 中 我试图避免将其保存在服务器上 Params base64str