XSL-fo pdf 的图像大小问题
-
27-09-2019 - |
题
我有大量的 XML 文档,这些文档是在 docbook 中创建的,并通过 maven 以 html 和 pdf 形式发布。各代工作正常,html 看起来也不错。我遇到的问题是 pdf 版本中图像的大小。这些图像是屏幕截图的集合,有些是全屏的,有些是大约 2/3 的宽度和高度,还有一些是小搜索框。显然,我需要对图像数据的属性进行大规模重构。我想知道我应该将其重构为什么呢?我正在寻找一种方法来创建最多 4 种“类型”的图像,并让它们强制执行自己的尺寸调整。图像的示例如下所示:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png" scalefit="0" width="100%"/>
</imageobject>
</mediaobject>
</section>
它仅适用于我的某些屏幕截图尺寸。
我尝试过scalefit、width和contentwidth/contentheight,它们似乎解决了问题的不同部分。我也应该查看视口吗?
笔记:不用担心破坏 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>
这是使用缩放属性的一些指导。
要将图形缩放到给定的宽度,请将Imagedata元素中的ContentWidth设置为该大小,例如ContentWidth =“ 8.5cm”。如果指定一个没有单元的数字,则假定为像素。
要缩放图形以适合印刷输出中的可用宽度,请使用width =“ 100%”和scalefit =“ 1”属性。对于缩进的文本,如列表中,可用宽度是从当前缩进到右边缘的。
除非它太大而无法适合可用的宽度,否则将图形保持在自然尺寸的图形上,在这种情况下,将其缩小以适合它,使用scalefit =“ 1”,width =“ 100%”和contentDepth =“ 100% “ 属性。
...
- 一些XSL-FO处理器不支持所有这些属性。您可能需要进行试验才能查看什么有效。例如,FOP版本0.20.5将宽度视为contentwidth,而忽略了任何实际的contentWidth属性。
其他提示
这是不严格,你在问什么,但你有没有在标准化的图像文件的DPI设置?虽然在HTML渲染忽略,他们在docbook-> PDF渲染的关键。
当我已经处理了这个在过去,固定DPI给我留下了不需要进一步的调整DocBook的来源。