Размер изображения XSL-FO Проблема с PDFS
-
27-09-2019 - |
Вопрос
У меня есть большое количество XML-документов, которые создаются в Docbook, и через Maven публикуются как в формате HTML, так и в форме PDF. Почести работает нормально, а HTML выглядит нормально. Проблема у меня есть в размере изображений в версии PDF. Изображения представляют собой коллекцию скриншотов, некоторые являются полноэкранным экраном, некоторые около 2/3 3-го ширины и высота, а другие являются небольшими полями поиска. Очевидно, что мне нужно сделать массивный рефактором атрибутов Imagedata. Мне было интересно, что я должен рефакторовать это? Я ищу способ создать до 4 «типов» изображений и для них, чтобы обеспечить их собственный размер. Пример изображения выглядит так:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png" scalefit="0" width="100%"/>
</imageobject>
</mediaobject>
</section>
И он работает только для некоторых размеров моего скриншота.
Я играл с Scalefit, шириной и Contentwidth / CondentHeight, и они, кажется, решают разные порции проблемы. Должен ли я искать в просмотр в области просмотра?
ПРИМЕЧАНИЕ. Не существует опасения разрыва генерации HTML, так как я могу включить «исключать свойства» в XSL.
Решение
У тебя есть @scalefit="0"
постараться с @scalefit="1"
:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png"
scalefit="1" width="100%" contentdept="100%"/>
</imageobject>
</mediaobject>
</section>
Вот несколько руководств для использования атрибутов масштабирования.
Чтобы масштабировать графику до заданной ширины, установите ContentWidth в элементе imagedata к этому размеру, например, contentwidth = "8.5см". Если вы укажете номер без единиц, предполагается, что пиксели.
Чтобы масштабировать графику, чтобы соответствовать доступной ширине в печатном выходе, используйте ширину = «100%» и Activesfit = «1» атрибуты. Для текста с отступом, как в списке, доступная ширина от текущего отступа к правой марже.
Чтобы сохранить графику для печатного вывода при его естественном размере, если только не слишком велико, чтобы соответствовать доступной ширине, в этом случае термит его, чтобы соответствовать, использовать SCALEFIT = «1», ширину = «100%» и ContentDepth = "100% «Атрибуты.
...
- Некоторые процессоры XSL-FO не поддерживают все эти атрибуты. Вам может потребоваться экспериментировать, чтобы увидеть, что работает. Например, FOP версия 0.20.5 обрабатывает ширину, как если бы она была контентами, и игнорирует любой реальный атрибут контента.
Другие советы
Это не строго то, что вы спрашиваете, но вы нормализовали настройки DPI в ваших файлах изображений? Хотя игнорируется в HTML-рендеринге, они имеют решающее значение в Docbook-> рендеринга PDF.
Когда я имел дело с этим в прошлом, исправляя DPI, оставила меня без необходимости дополнительно настроить источник Dockook.