rails gem prawn, image and anchor

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

Can you tell me how to insert image which will be a link to for example page 20? I know how to make with normal text:

text "<link anchor='page20'>Go to page 20</link>", :inline_format=>true 

and then on page 20 I have

add_dest('page20', dest_fit(page.dictionary)) 

but how to do this with image ?

回答1:

Prawn does not support this functionality. In fact, even if you placed a formatted_text_box over an image and fill it with white space, it still will not work. An anchor has to include text to work. If you don't mind having text over your image, then that might be a solution.

Prawn's own readme states:

One thing Prawn is not, and will never be, is an HTML to PDF generator.

After dealing with many of Prawn's shortcomings, I've switched to using wicked_pdf for my Ruby on Rails PDF generation and have been very happy with it. If you can do it in html & css, it can be done with wicked_pdf.



回答2:

Partly thanks to lightswitch05 for some prodding in the right direction, I've found a way to get the effect I want through this inelegant way:

  • Insert an image in a bounding_box (the page cursor is at this point at the bottom of the image)
  • Move the cursor back up to the top of the image
  • Insert a text link over the image (in my case I just used however many vertical bars '|' were needed to cover the image)
  • Confirm visually that the clickable link area is about the same as the boundaries of the image
  • Make the text link transparent, and voilà, it looks like you're clicking the image.

Here's some example code (measurements not exact; there was a lot of tweaking involved):

bounding_box([0, cursor], width: 35) do   image open("http://mysite.com/remote_image.jpg"),          fit: [35, 35],          align: :center   move_up 35   transparent(0) do     formatted_text([{       text: "|||", # placeholder       size: 40,       link: "http://example.com/"     }], align: :center)   end   # stroke_bounds end 

Needless to say, this experience has got me looking a bit more at Wicked PDF in order to do what I think I want to do with PDFs.

I'm sure a better/more elegant solution exists, so I'm not planning on considering this my final answer.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!