代码之家  ›  专栏  ›  技术社区  ›  Ace

pdfs的XSL-fo图像大小问题

  •  3
  • Ace  · 技术社区  · 15 年前

    我有大量在docbook中创建的XML文档,通过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上玩过,它们似乎解决了问题的不同部分。我是不是也应该检查一下视口?

    注意:不必担心破坏html生成,因为我可以在XSL中启用“排除属性”。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Mads Hansen    15 年前

    你有 @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 treats 宽度,就好像它是contentwidth和 忽略任何真正的contentwidth 属性。

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

        2
  •  4
  •   Paul Roub jim    15 年前

    严格来说,这并不是你要问的问题,但是你是否已经规范了图像文件中的DPI设置?尽管在HTML呈现中被忽略,但它们在docbook->PDF呈现中至关重要。

    当我过去处理过这个问题时,修复DPI就不再需要进一步调整DoBook源了。