Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 使用浮动div-like元素格式化语言_Xslt_Html_Latex_Xsl Fo_Wordml - Fatal编程技术网

Xslt 使用浮动div-like元素格式化语言

Xslt 使用浮动div-like元素格式化语言,xslt,html,latex,xsl-fo,wordml,Xslt,Html,Latex,Xsl Fo,Wordml,我将数据存储在结构化XML中,希望使用XSLT(或其他替代方法)使其更具可读性。目标文档应该有很多文本实例在同一行中左右对齐,我需要有类似div floats的行为: <div style="float: left;"> <p align=left> Left text. Left text. Left text. Left text. Left text. Left text. </p> </div> <div styl

我将数据存储在结构化XML中,希望使用XSLT(或其他替代方法)使其更具可读性。目标文档应该有很多文本实例在同一行中左右对齐,我需要有类似div floats的行为:

<div style="float: left;">
  <p align=left>
    Left text. Left text. Left text. Left text. Left text. Left text. 
  </p>
</div>

<div style="float: right;">
  <p align=right>
    Right text. Right text. Right text. Right text. Right text. Right text. 
  </p>
</div>
<div style="clear: both;" />

左文本。左文本。左文本。左文本。左文本。左文本。

右文本。右文本。右文本。右文本。右文本。右文本。

这样,当两者的文本长度都大于容器宽度时,将写入“Left text”DIV,然后将“Right text”DIV写入其下方的writer

我不能使用XSLT来生成HTML文件,因为它将在打印中使用,并且我还需要一种在分页时具有一些“保持一致”特性的语言(如果在元素的中间出现分页,它应该在元素之前断裂)。拥有支持自动调整列大小的表(如HTML表)将是一个巨大的优势,但不是必需的

我在研究XSL-FO,但找不到支持这些特性的免费渲染器。我曾考虑过使用XSL生成WordML文件,但还没有找到任何关于它的教程。有一个Word(或Open Office)文档会很棒,因为我可以做一些小的调整。另外,我正在考虑使用乳胶

你能给我提些什么建议吗


编辑:我检查了一些我不知道的CSS功能(多年来没有弄乱它),除了对浮动和表格自动布局的出色支持之外,它还有一些与打印相关的功能(内部分页符:avoid、@page等)。尽管打印功能没有得到广泛支持,Opera和IE确实支持它,我在IE9中运行了一些测试,它表现得非常好。因此,我将尝试将XSLT与HTML/CSS结合使用,因为它具备了我所需要的一切,并且具有更平滑的学习曲线(我已经了解一些CSS,并且多年来一直在使用HTML)。

我认为您应该通过使用一些众所周知的XML标准模式(如DITA或DOCBOOK)来确定解决问题的更通用方法

这些模式的优点是允许您编写自己的XML,并根据它们支持的输出格式根据需要呈现它。此外,它们是免费的,一旦你有了正确的源文件,你就可以很容易地获得PDF、RTF、WebHelp、HTML等等

因此,您需要:

  • 做决定,DITA还是DOCBOOK
  • 编写一个转换程序,获取XML并将其转换为特定的标准DITA或DOCBOOK
  • 决定用于管理您选择的标准的工具,并测试您可以从中获得的所有输出,看看哪一个更适合
如果您决定使用DITA,您有两个自由选择:

  • DITA-OT
  • 迪塔克
就个人而言,我会选择DITA和DITA-OT,因为它具有基于XSLT的插件和基于ANT的定制构建的灵活性。但两者都有其原因。我从DITA-OT开始,最后使用DITA-OT和DITAC

我没有把任何参考放在这里,因为你可以很容易地找到你需要使用谷歌


关于浮动

DITA-OT提供了一个特定的XSL-FO转换类型,称为PDF2,其XSL-FO处理器为RenderX。RenderX目前支持fo:float,所以我认为您将能够找到自己的方式。可能您需要覆盖一些PDF2模板,这肯定比实现自己的PDF转换更简单


请注意,只要每个页面上都有一个小的脚水印,RenderX是可行的。否则你应该花点钱。

我肯定会坚持使用XSL-FO和。我对我能用它得到的结果非常满意,我唯一看到它挣扎的时候是当有人认为尝试让它生成Word文档是个好主意时。我从来没见过这样能产生好的效果。事实上,我对onyl以PDF或PS格式生成的输出都很满意

请详细说明FOP在浮动和分页符方面的不足之处?很难知道这是特定于这些特性的问题,还是特定于Word/RTF/HTML输出格式的特性的问题


最后,我会避免在工作中使用tweek-it/开放办公室的心态。如果您要努力实现文档生成的自动化,请将时间花在正确的生成上,这样就没有手动步骤。

您真正需要什么建议?无法正确收集您的想法。简而言之,因为我是XML转换的初学者,所以我需要一个语言建议(免费),它允许我需要的两个特性(浮动和分页符)。XSL-FO似乎有不足之处(至少在没有FOP和XEP的情况下)。我不知道乳胶是否允许我这么做。我知道我可以在Word文档中(也可能在OO Writer中)实现这一点,所以XML到Word(或Writer)是一种选择,但我找不到任何关于这方面的好参考或教程。基本上,我需要帮助选择一种语言来学习。你的意思是说你想将XML文件的内容呈现到一个表中?我想以一种表示格式呈现XML,如HTML、XSL-FO、WordML等。我知道!!!。我想知道,如果要呈现XML,它是否会作为
HTML表
?顺便问一下,你知道php吗?FOP不支持fo:float,这是必须的,因为当前的文档经常使用这种样式(基于HTML/CSS),人们已经习惯了。除此之外,你选择的替代方案真的很糟糕:表的一半空间或列表项hacks的重叠。哇,我使用FOP已经很久了,我只是假设浮动在某种程度上是受支持的。我的错。对不起,我的第一个想法(甚至在开始学习XSL之前)是DocBook或DITA,但我发现它让人难以忍受,尤其是DocBook。由于我有浮子的设计限制,我认为它不会起作用。你知道DITA如何支持tha吗