Pdf FONET/FOP上标;内联容器根本不显示

Pdf FONET/FOP上标;内联容器根本不显示,pdf,xsl-fo,apache-fop,Pdf,Xsl Fo,Apache Fop,我正在开发一个FONET应用程序来生成一些简单的PDF报告;除了客户希望将注册商标符号正确提升到上标级别外,其他一切都正常工作 我在一个内联元素上尝试了text-altitude,但没有成功,所以在深入研究了互联网上糟糕的XSL:FO文档之后,我认为需要将其包装在FO:inline容器中。然而,这根本没有出现 我用这个来减少它: 从前 有三只小猪 他们和母亲住在一起。 一天清晨,他们醒来,母亲说, “你太大了 为了这所房子和你离开家的时间。” 并尝试运行它,但这也不会显示内联容器中的任何内容

我正在开发一个FONET应用程序来生成一些简单的PDF报告;除了客户希望将注册商标符号正确提升到上标级别外,其他一切都正常工作

我在一个内联元素上尝试了
text-altitude
,但没有成功,所以在深入研究了互联网上糟糕的XSL:FO文档之后,我认为需要将其包装在
FO:inline容器中。然而,这根本没有出现

我用这个来减少它:


从前
有三只小猪
他们和母亲住在一起。
一天清晨,他们醒来,母亲说,
“你太大了
为了这所房子和你离开家的时间。”
并尝试运行它,但这也不会显示
内联容器中的任何内容
;试过了,也没有显示容器中的任何内容,所以不仅仅是FONET问题

FONET是FOP 0.2的一个端口,用于
文本高度
内联容器


我错过了什么?在这个版本的FOP中是否可能获得上标效果?

您链接到的一致性页面显示不支持
fo:inline container
。它在最新的FOP()中仍然只有部分支持

我认为这是因为您试图让它工作,但将“有三只小猪”放在0.7英寸宽的空间中会使
fo:inline容器的区域变得又高又窄

好消息是,您不需要
fo:inline container
来生成上标。只需使用
fo:inline
baseline shift=“super”
(请参阅)

您可能还想考虑为上标文本减少<代码>字体大小< /代码>(因为FO格式化程序不会假设您也想要),并且在祖先Fo上添加<代码>行高移位调整=“忽略移位”< /代码>(参见),使得上标不会改变您的行高:

<fo:block line-height-shift-adjustment="disregard-shifts"
      margin="0.1in" padding="0.2in"
      border-width="1px" border-style="solid"
      background-color="#eeffff" color="#000000" 
      font-family="sans-serif" font-size="10pt">
  Once upon a time<fo:inline
    baseline-shift="super" font-size="0.8em">®</fo:inline>
  there were three little pigs<fo:inline
    baseline-shift="super" font-size="0.8em">®</fo:inline>
  who lived with their Mother.
  Early one morning they woke up and their mother said, 
  "<fo:inline font-style="italic" color="#ff22ff">you're too big
  for this house and its time you left home.</fo:inline>"
</fo:block>

曾几何时®
有三只小猪
他们和母亲住在一起。
一天清晨,他们醒来,母亲说,
“你太大了
为了这所房子和你离开家的时间。”
另请参见“全面XSL-FO教程和示例集合”中的“字符样式设置”,网址为



当FO格式化程序未实现基线移位时,最后一种方法是查找带有上标注册商标符号的字体。快速浏览Windows“Character Map”实用程序,发现“Calibri”有一个。

不幸的是,虽然基线移位在在线FOP 1.0处理器中工作得很好,但它不在FOP 0.2中,.NET库是它的一个端口,因此它在我的代码中不起作用。您还有其他上标技巧吗?对不起,没有。
基线移位
是为实现上标而设计的属性。你唯一的希望就是找到一种带有上标的注册商标符号的字体。通过Windows“角色映射”实用程序快速搜索显示,“Calibri”有一个。可能还有其他人。或者,您可以尝试实现更多XSL 1.1的其他FO格式化程序。Apache FOP 0,2.5于2003年7月18日发布。那是14年多以前的事了。你会为自己做一个真正的服务,使用可能在过去几年而不是十年或二十年前开发的软件。@KevinBrown大量的旧软件正是你所需要的,这做了我目前所需要的一切,除了上标。我被限制为0.2,因为.NET端口在该版本停止。@TonyGraham-使用Calibri有效,谢谢!把你的评论作为一个答案,我会这样做。
<fo:block line-height-shift-adjustment="disregard-shifts"
      margin="0.1in" padding="0.2in"
      border-width="1px" border-style="solid"
      background-color="#eeffff" color="#000000" 
      font-family="sans-serif" font-size="10pt">
  Once upon a time<fo:inline
    baseline-shift="super" font-size="0.8em">®</fo:inline>
  there were three little pigs<fo:inline
    baseline-shift="super" font-size="0.8em">®</fo:inline>
  who lived with their Mother.
  Early one morning they woke up and their mother said, 
  "<fo:inline font-style="italic" color="#ff22ff">you're too big
  for this house and its time you left home.</fo:inline>"
</fo:block>