Повторное использование того же SVG в PDF с wkhtmltopdf

У меня есть следующий HTML для преобразования в PDF с помощью wkhtmltopdf:

<html>
<head>
</head>
<body>
<object data="first.svg" width="100" height="100" type="image/svg+xml"></object>
<object data="second.svg" width="100" height="100" type="image/svg+xml"></object> 
<object data="third.svg" width="100" height="100" type="image/svg+xml"></object>
</body>
</html>

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

Как я могу повторно использовать в выходном PDF-файле уже существующие SVG в другом месте документа, не создавая новый в PDF-файле, тем самым увеличивая размер файла.


person Iacks    schedule 28.07.2010    source источник
comment
Вы спрашиваете о том, чтобы файл PDF загружал внешний файл SVG? Даже если бы вы могли это сделать, а я не думаю, что вы можете, это плохая идея. Весь смысл файлов PDF в том, что они полностью автономны.   -  person    schedule 21.02.2011
comment
когда веб-страница преобразуется в pdf, svg должен быть преобразован в собственный векторный код pdf. Это должно быть очень легко. Не уверен, что так делает wkhtltopdf, но я бы проверил его, прежде чем вы попытаетесь преждевременно оптимизировать.   -  person Russell Leggett    schedule 25.02.2011


Ответы (2)


Я не знаком с wkhtmltopdf, но структура файла PDF такова, что он содержит библиотеку «глифов» (соответствующих буквам, символам, орграфам и т. д.), которые повторно используются снова и снова в разных координатах.

Кажется очень вероятным, что вы могли бы превратить финальное изображение svg в глиф, но я боюсь, что у меня нет более подробной информации, чем это.

person tangentstorm    schedule 25.02.2011

Нашел этот пост в поисках поддержки wkhtmltopdf для векторной графики, и при первоначальном осмотре кажется, что есть лучший способ встраивания svg: тег img с шириной/высотой css для ограничения/установки размера. Красиво работает...

Я также пытался включить свой svg более одного раза - размер файла растет, растет и растет с каждым добавленным экземпляром. Полагаю, это логотип, который вам нужно добавить на свои страницы. Возможно, вы захотите рассмотреть возможность запуска файла через Pdftk и водяных знаков на ваших страницах:

http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

person ʍǝɥʇɐɯ    schedule 28.03.2011
comment
Это логотип. Будет ли передача этого через pdftk уменьшать размер файла за счет повторного использования одного и того же SVG снова и снова? - person Iacks; 05.04.2011
comment
В качестве водяного знака = одно и то же изображение на всех страницах будет одним объектом. Это часть спецификации PDF, так же, как добавление водяного знака в Word — вы не добавляете логотип на каждую страницу, а просто водяной знак, который отображается на каждой странице. - person ʍǝɥʇɐɯ; 27.04.2011
comment
Будет ли этот водяной знак снижать содержание? (Например, используется в качестве заголовка). И можно ли использовать более одного водяного знака? У меня будет 2-3 разных логотипа в зависимости от страницы, причем логотип на первой странице всегда будет отличаться от остальных. (Остальное обычно одинаково) - person Iacks; 03.05.2011
comment
Я не уверен, что маршрут с водяными знаками предназначен для вашего проекта, поскольку водяные знаки наносятся на весь документ, а с PDFtk есть возможность сделать это «штампом» (сверху) или «фоном» (под вашим основным содержанием) . Вы всегда можете попробовать объединить разные PDF-файлы, если логотип вашей главной страницы находится в другом месте. Процесс не должен размещать какой-либо контент на ваших страницах. Возможно, вы захотите поиграть с графическим интерфейсом и посмотреть, сможете ли вы добиться того, чего хотите, с помощью графического интерфейса. Если это выполнимо, вы можете заставить его работать в файле сценария. См.: pdfchain.sourceforge.net. - person ʍǝɥʇɐɯ; 04.05.2011