3

我有大量在 docbook 中创建的 XML 文档,并通过 maven 以 html for 和 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 中打开“排除属性”。

4

2 回答 2

4

严格来说,这并不是您要问的,但是您是否对图像文件中的 DPI 设置进行了规范化?尽管在 HTML 渲染中被忽略,但它们在 docbook->PDF 渲染中至关重要。

当我过去处理过这个问题时,修复 DPI 让我无需进一步调整 DocBook 源。

于 2010-11-24T01:04:06.510 回答
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.5cm"。如果指定不带单位的数字,则假定为像素。

  • 要缩放图形以适应打印输出中的可用宽度,请使用 width="100%" 和 scalefit="1" 属性。对于列表中的缩进文本,可用宽度是从当前缩进到右边距。

  • 要将打印输出的图形保持在其自然大小,除非它太大而无法适应可用宽度,在这种情况下将其缩小以适应,请使用 scalefit="1"、width="100%" 和 contentdepth="100% “ 属性。

...

  • 一些 XSL-FO 处理器不支持所有这些属性。您可能需要进行试验才能看到有效的方法。例如,FOP 版本 0.20.5 将宽度视为 contentwidth 并忽略任何真正的 contentwidth 属性。

http://www.sagehill.net/docbookxsl/ImageSizing.html

于 2010-11-25T02:40:18.993 回答