我有大量的XML文档,它们是在docbook中创建的,并且通过maven,以html for和pdf格式发布。几代人工作正常,html看起来很好。我遇到的问题是pdf版本中图像的大小。图像是截图的集合,一些是全屏的,一些是大约2 / 3rds的宽度和高度,其他是小搜索框。很明显,我需要对imagedata的属性进行大规模的重构。我想知道我该怎么重构它?我正在寻找一种方法来创建最多4种类型的图像,并为这些图像强制执行自己的尺寸调整。 图像的示例如下所示:
<section><title>Screenshot</title>
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/editNote.png" scalefit="0" width="100%"/>
</imageobject>
</mediaobject>
</section>
它仅适用于我的部分屏幕截图尺寸。
我玩过scalefit,width和contentwidth / contentheight,他们似乎解决了问题的不同部分。我也应该查看视口吗?
注意:因为我可以打开XSL中的“排除属性”,所以不用担心会破坏html生成。
答案 0 :(得分:4)
这不是您要求的严格要求,但您是否已将图像文件中的DPI设置标准化?虽然在HTML渲染中被忽略,但它们在docbook-&gt; PDF渲染中至关重要。
当我在过去处理这个问题时,修复DPI让我无需进一步调整DocBook源代码。
答案 1 :(得分:1)
您@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.5厘米”。如果你指定一个 没有单位的数字,假设为 是像素。
缩放图形以适合 打印输出中的可用宽度,使用 width =“100%”和scalefit =“1” 属性。对于缩进文本,如 列表,可用宽度来自 当前缩进到右边距。
保留打印输出的图形 在它的自然尺寸,除非它也是 大到适合可用的宽度,在 哪种情况缩小它适合,使用 scalefit =“1”,width =“100%”,和 contentdepth =“100%”属性。
...
- 某些XSL-FO处理器不支持 所有这些属性。你可能需要 试验看哪些有效。对于 例如,FOP版本0.20.5对待 宽度好像是contentwidth和 忽略任何真正的内容宽度 属性。