Может ли креветка создавать PDF-файлы со ссылками? - PullRequest
16 голосов
/ 07 февраля 2010

Мне нужно встроить ссылку в сгенерированный PDF-файл в приложении ruby ​​on rails. Есть ли способ сделать это с креветками?

Читая об этом, выясняется, что формат креветок был ответом некоторое время, но 0.7.x сломал это.

prawn-format использует функцию link_annotate(rect, options={}) для создания ссылок. Какие параметры необходимо указать для создания ссылки в PDF-файле?

редактирование:
Я хотел бы увидеть пример кода, когда это делается у кого-либо.

Ответы [ 4 ]

21 голосов
/ 07 мая 2013

Я знаю, что это старый вопрос, но для тех, кто все еще натыкается на него, в текущих версиях Prawn вы можете использовать встроенный формат, например так:

pdf.text "Website: <link href='http://www.stackoverflow.com'>stackoverflow</link>", :inline_format => true
10 голосов
/ 23 февраля 2010

Если вы пытаетесь создать ссылку на внешнюю страницу (например, http://google.com),, вы можете использовать следующую ссылку, чтобы разместить ссылку размером 100x100, расположенную в 5, 5 слева внизу страницы , с рамкой 1px:

pdf.link_annotation([100, 100, 5, 5], :Border => [0,0,1], :A => { :Type => :Action, :S => :URI, :URI => Prawn::LiteralString.new("http://google.com") } )

Prawn Format проанализирует текст, переданный методу pdf.text, и найдет html a теги. Затем он будет использовать регулярные выражения для анализа целевого объекта и текста ссылки и, наконец, создаст ссылку, подобную приведенной выше, с ограничительной рамкой (первый параметр), которая будет соответствовать тексту внутри тегов. Я не уверен, как вы могли бы достичь этого без формата креветок. Но так вы можете создать ссылку, используя link_annotation.

1 голос
/ 08 февраля 2010

Начиная с Prawn 0.7, формат prawn полностью не поддерживается, и не будет работа с версиями Prawn 0.7+. Чувствовать бесплатно раскошелиться и починить, конечно же - домашняя страница формата креветок на github

Другой вариант - использовать встроенную поддержку низкоуровневых аннотаций в креветках: http://prawn.majesticseacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158

Вот метод:

link_annotation (rect, options = {})

удобный метод для создания ссылки аннотаций. прямоугольник должен быть массивом четыре числа, описывающие границы аннотация. Хэш опций должен включать либо: Dest (описывая целевой пункт назначения, обычно в виде строки, которая была записано в документе Dests дерево), или: A (описание действия для выполнить по нажатию на ссылку) или: PA (для описания URL-адреса для ссылки).

0 голосов
/ 08 апреля 2018

Я недавно сделал это так - прекрасно работает:

      formatted_text_box([{:text=>"Google", :link=>"https://google.com", :color=>"0000ee"}])
...