Tag:

HTML与虾

我试图使用虾生成日志条目的PDF,然后条目存储在bbcode([b]粗体[/ b]等…)并转换为html显示。 有没有办法在大虾中显示html?

虾表:块没有执行

我的rails / prawn代码遇到了一个非常奇怪的问题。 我正在生成一个表,并尝试使用以下代码更改第一行的字体样式: pdf.table(data) do rows.first.style(:font_style => :bold) end 生成表,但块中没有任何内容被执行。 我已经尝试在块中放置一个调试器语句,但它甚至都没有。 根据Googling发现的建议,我尝试添加一个块参数,例如: pdf.table(data) do |t| t.rows.first.style(:font_style => :bold) end 以及其他几个变化,但无济于事。 我通过更改config / environments.rb尝试了各种配置,但这也没有用。 具体来说,我的问题是,为什么块内的代码不执行? 我非常感谢任何人可能提出的任何建议。

印刷大虾生成pdf

使用prawn gem用于ruby-on-rails网页,是否可以向打印机设备发送打印请求以打印我用prawn生成的pdf页面?

如何处理file_as_string(由Prawn生成)以便Carrierwave接受它?

我正在使用Prawn从Rails应用程序的控制器生成PDF, … respond_to do |format| format.pdf do pdf = GenerateReportPdf.new(@object, view_context) send_data pdf.render, filename: “Report”, type: “application/pdf”, disposition: “inline” end end 这很好用,但我现在想将GenerateReportPdf移动到后台任务中,并将生成的对象传递给Carrierwave直接上传到S3。 工人看起来像这样 def perform pdf = GenerateReportPdf.new(@object) fileString = ??????? document = Document.new( object_id: @object.id, file: fileString ) # file is field used by Carrierwave end 如何处理Prawn( ????? )返回的对象,以确保它是Carrierwave可以读取的格式。 fileString = pdf.render_file ‘filename’将对象写入应用程序的根目录。 因为我在Heroku上这是不可能的。 […]

在虾中使用列表

我正在使用prawn来创建包含表格格式和一些列表的大量数据的pdf。 列表的问题是我只是使用文本作为列表,因为没有语义等同于ul> li列表,就像我在webfrointend中使用它们一样。 因此列表不合理。 使用多行的列表点看起来很狡猾,因为我不适合列表图标。 如何在虾中实现看起来不像垃圾的列表?

Prawn:自动将文本浮动到新页面

我有以下简单的代码来生成pdf。 def employe_details y = cursor bounding_box([0, y], :width => 16.cm) do @employe.each do |pr| txt = pr.week.to_s + ‘ ‘ txt += “work hours” text_box txt, size: 11, :at => [0.5.cm, cursor] move_down 0.4.cm end .#more similar texts . . end 问题是,这不会自动创建新页面。 当文本超出第一页时,文本的其余部分根本不显示,或者这些文本未显示在新页面中。 如何在文本到达页面末尾时自动将文本浮动到新页面? 更新:我的代码问题似乎与这一行:at => [0.5.cm, cursor] ,如果我删除位置然后它流向下一页,当我使用span时也会发生同样的情况。 如果我在span中使用带有文本的位置,那么它不会流到下一页,如果我将其删除,那么它将流向下一页。 那么我怎么能用这样的东西呢 text_box txt, size: […]

Ruby:使用group方法时,Prawn PDF内存不足

我想要以PDF格式显示大量产品,并带有类别标题。 如果某个类别不适合当前页面,我想将其移至下一页。 为此,我正在使用Prawn的组方法。 Product.all.group_by(&:category).each do |category, products| pdf.group do # Simplified the data a bit for this example pdf.text category pdf.table products.map{ |p| [p.title, p.price] } end end 这适用于少量产品,但是当我添加超过100左右时,它需要很长时间,然后以“未能分配内存”结束。 如果我不使用组方法,则需要大约30秒。 显然,组方法不能很好地管理其内存使用。 任何建议的解决方法将不胜感激。

虾+俄罗斯字体

我有一个Rails应用程序,我在那里使用Prawn gem。 我需要用它来生成带俄语字母的pdf(事实上混合了俄语和英语单词)。 我做了一项研究,发现前一段时间它相当棘手。 那现在怎么样,我该怎么做? def about respond_to do |format| format.html format.pdf do pdf = Prawn::Document.new pdf.text “не ну ни фига sebe” send_data pdf.render end end end

如何在不保存Rails服务器的情况下使用Prawn将base64字符串转换为PNG

所以我试图使用Prawn gem将Photoshop的PNG图像嵌入到PDF中。 Base64字符串是使用canvas’toDataURL()函数生成的。 由于图像仅在PDF中需要,我试图避免将其保存在服务器上。 Params [:base64string]正确传递给服务器。 但是,我正在尝试使用 image = Prawn::Images::PNG.new(base64string) 创建图像,但我得到NoM​​ethodError:nil的未定义方法`unpack’:NilClass。 我有什么想法或者应该如何正确地做到这一点?

在Prawn中使用堆叠边界框时自动启动新页面

我想在Prawn中模拟表的行为,但由于我可以在单元格内绘制的东西的限制,所以不能使用表。 所以我使用边界框来为每行内的元素创建上下文。 我遇到的问题与行有关。 我正在尝试这个: require ‘prawn’ Prawn::Document.generate(“test.pdf”) do move_down 50 bounding_box [0, cursor], width: bounds.width do 20.times do |i| stroke_bounds && start_new_page if (i+1) % 11 == 0 bounding_box [0, cursor], width: bounds.width, height: 50 do fill_color “cccccc” fill_rectangle [0, bounds.height], bounds.width, bounds.height end end stroke_bounds end end 但我觉得这非常hacky而且不是最优的,因为在start_new_page之后无法重新定位包含bounding_box(我希望它开始高一点),而且我必须手动指定页面的位置发生中断(在这种情况下每11个元素)。 我尝试使用bounds.parent.height并使用光标检查它是否到达结尾,但似乎即使在分页后, bounds.height增加。 您对如何改进此解决方案有任何建议吗?