繁体   English   中英

XSL:FO内联和精美打印

[英]XSL:FO inline and pretty print

我正在尝试使用xsl:fo创建pdf。 我陷入内联元素的问题。 我需要用一个粗体字写一行。 例如:

我需要这个要大胆。

我可以用以下代码做到这一点:

<fo:block>
    <fo:inline>I need </fo:inline><fo:inline font-weight="bold">this</fo:inline><fo:inline> to be bold</fo:inline>
</fo:block>

但是,由于我以编程方式编写xml,因此它会被漂亮地打印出来(我可以将其禁用,但随后它将在一行上,并且这是人类不可读的。)

像这样格式化时不起作用:

<fo:block>
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
</fo:block>

生成pdf时,在文本之间会留出较大的水平间距。

您知道如何进行这项工作吗? 非常感谢。

我同意@Andremonly。

检查是否未在任何祖先FO上设置white-space-collapse="false" (请参阅https://www.w3.org/TR/xsl11/#white-space-collapse )。

还有其他影响空白处理的属性。 您会看到以下哪些匹配项?

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <fo:layout-master-set>
  <fo:simple-page-master master-name="page" 
   margin="0.1in" page-height="4in" page-width="3in">
   <fo:region-body region-name="body" margin="6pt"/>
  </fo:simple-page-master>
 </fo:layout-master-set>
 <fo:page-sequence master-reference="page">
  <fo:flow flow-name="body">
    <fo:block>
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-collapse="false">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-treatment="preserve">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-treatment="preserve" white-space-collapse="false">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block linefeed-treatment="preserve">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-collapse="false" linefeed-treatment="preserve">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-treatment="preserve" linefeed-treatment="preserve">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
    <fo:block white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="preserve">
    <fo:inline>I need </fo:inline>
    <fo:inline font-weight="bold">this</fo:inline>
    <fo:inline> to be bold</fo:inline>
    </fo:block>
  </fo:flow>
 </fo:page-sequence>
</fo:root>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM