рельсы драгоценный креветок, изображение и якорь - PullRequest
9 голосов
/ 28 ноября 2011

Можете ли вы сказать мне, как вставить изображение, которое будет ссылкой, например, на страницу 20? Я знаю, как сделать с нормальным текстом:

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

и затем на странице 20 у меня есть

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

а как это сделать с изображением?

Ответы [ 2 ]

5 голосов
/ 31 мая 2013

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

  • Вставить изображение в bounding_box (страница cursor находится в этой точке внизу изображения)
  • Переместить курсор назад вверх изображения
  • Вставить текстовую ссылку поверх изображения (в моем случае я только использовал столько вертикальных полос '|', чтобы покрыть изображение)
  • Подтвердите визуально, что интерактивная область ссылок примерно совпадает с границами изображения
  • Сделайте текстовую ссылку прозрачной, и вуаля, похоже, вы нажимаете на изображение.

Вот некоторый пример кода (измерения не точные; было много настроек):

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

Излишне говорить, что этот опыт заставил меня немного больше взглянуть на Злой PDF , чтобы сделать то, что, я думаю, я хочу сделать с PDF-файлами.

Я уверен, что существует лучшее / более элегантное решение, поэтому я не планирую рассматривать этот мой окончательный ответ.

5 голосов
/ 31 мая 2013

Креветка не поддерживает эту функцию. На самом деле, даже если вы поместите formatted_text_box поверх изображения и заполните его пробелами, оно все равно не будет работать. Якорь должен включать текст для работы. Если вы не возражаете против текста на изображении, это может быть решением.

Собственный файл readme с креветкой:

Prawn не является и никогда не будет генератором HTML в PDF.

После устранения многих недостатков Prawn я перешел на использование wicked_pdf для создания PDF-файлов в Ruby on Rails и был очень доволен этим. Если вы можете сделать это в html & css, это можно сделать с помощью wicked_pdf.

...