Подтвердить что ты не робот

Может ли креветка создавать PDF файлы со ссылками?

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

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

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

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

4b9b3361

Ответ 1

Если вы пытаетесь создать ссылку на внешнюю страницу (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 будет анализировать текст, переданный методу pdf.text, и найти html теги. Затем он будет использовать регулярные выражения для анализа текста цели и ссылки и, наконец, создать ссылку, подобную приведенной выше, с ограничивающим полем (первый параметр), который будет соответствовать тексту, который находится внутри тегов. Я не уверен, как вы могли добиться этого без формата креветки. Но вы можете создать ссылку, используя link_annotation.

Ответ 2

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

pdf.text "Website: <link href='http://www.stackoverflow.com'>stackoverflow</link>", :inline_format => true

Ответ 3

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

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

Вот метод:

link_annotation (rect, options = {})

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