TL; DR: если ваш потребительной случай 1) формирование как HTML и PDF данные (например, онлайн-счетов-фактур и т.д.), и 2) убедившись, что оба выглядят одинаково, то креветка на самом деле не лучший (что является тем же предложением в Readme Prawn).
В вашем случае вы можете проанализировать HTML-код с помощью Nokogiri или Upton и извлечь данные из таблицы HTML, а затем использовать его для создания представления PDF через креветку. Стили HTML не могут напрямую транслироваться в те, что используются Prawn, и поэтому даже с большим количеством кодовых конфликтов вы можете не добиться согласованности стилизации, что, я полагаю, из комментариев по ответу royalGhost
является результатом вы хотите. Кроме того, простое решение для анализа Nokogiri не будет работать, если ваша таблица HTML вложенна, а код разбора не подходит для этого. Например, рассмотрим следующее:
<table>
<tr>
<td>First Column, First Row</td>
<td>Second Column, First Row</td>
</tr>
<tr>
<table>
<tr>
<td>First Column, Second Row</td>
<td>Second Column, Second Row</td>
<td>Third Column, Second Row</td>
</tr>
</table>
</tr>
</table>
Затем в разборе фрагменте Руби, вы должны убедиться, что внутренняя <table>...</table>
разбирается в Prawn::Table
объекта, а не ряд Prawn::Table::Cell
объектов.
Любой вариант wkhtmltopdf
, такой как WickedPDF или PDFKit, предлагает гораздо более чистый способ достижения решения для преобразования HTML в PDF.
У вас есть два варианта:
- Ditch Креветки целиком и предпочитают решение выше.
- Используйте креветку, извлекая данные из HTML через Nokogiri/Upton и создавайте PDF-файл, и не беспокойтесь о том, что стиль такой же, как в представлении HTML.
Где находится таблица html (например, '
Не думаю, что
, но у меня есть это как строка ввода, и мне нужно вставить эту таблицу в pdf-документ, как мне с этим справиться? –