Было бы неплохо, если бы Prawn мог встраивать существующие PDF-файлы в создаваемый PDF-файл. В моем конкретном случае это было бы полезно для встраивания рисунков, логотипов и других видов векторных изображений в PDF-файлы, созданные Prawn.
Сейчас #image
от Prawn не поддерживает никакие векторные изображения, только два растровых формата: JPEG и PNG. В LaTeX распространенными форматами, используемыми для векторных изображений, являются EPS и PDF (они изначально поддерживаются includegraphics
внутри pdftex
). SVG также очень распространены в других настройках (например, на веб-страницах).
Мне кажется, что поддержка PDF была бы самым простым способом поддержки векторных изображений в креветках. Поддержка EPS и SVG потребует написания декодеров или транскодеров для этих форматов.
IIUC, Prawn раньше поддерживал _templates_, которые можно было использовать для встраивания PDF-файлов, как было предложено @practicingruby в выпуске №91. Похоже, это уже не так.
Код подтверждения концепции от @yob для старой (2012 г.) версии Prawn можно найти по адресу https://github.com/yob/prawn/commits/pdf_images .
@gioele Для использования PDF-файлов в качестве формата изображения требуется анализатор PDF, которого нет у Prawn. Однако Prawn может использовать драгоценные камни pdf-reader
и prawn-templates
для использования PDF-файлов в качестве шаблона для страницы. Может быть, эту функциональность можно повторно использовать для поддержки изображений? @bvogel может знать об этом больше.
@gioele вы все еще можете использовать PDF-шаблоны через prawn-templates
, однако вы ограничены одним шаблоном на странице, и если вы хотите рисовать поверх шаблона, рекомендуется подогнать размер шаблона под требуемый размер страницы. . Код в основном создает дополнительный поток контента с помощью pdf-reader
, который находится в фоновом режиме. Общие последствия этого подхода превышают мой уровень понимания спецификаций PDF.
Есть гем prawn-svg для встраивания векторной графики.
Самый полезный комментарий
Есть гем prawn-svg для встраивания векторной графики.