如何解决格式像浮动div这样的元素
| 我将数据存储在结构化XML中,希望使用XSLT(或其他替代方法)使其更具可读性。目标文档应该在同一行中具有左右对齐的许多文本实例,并且我需要具有div float之类的行为:<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;\" />
这样,当两者的文本长度都大于容器宽度时,将写入“左文本” DIV,然后在其下方写入“右文本” DIV。
我无法使用XSLT制作HTML文件,因为它将用于打印,并且我还需要一种在分页符处具有“保持在一起”功能的语言(如果分页符出现在分页符的中间)元素,则应在元素之前中断)。具有支持自动调整其列大小的表(例如HTML表)将是一大优势,但并非必需。
我当时正在研究XSL-FO,但是找不到支持这些功能的免费渲染器。我曾考虑过使用XSL制作WordML文件,但还没有找到关于它的任何教程。拥有Word(或Open Office)文档会很好,因为我可以进行一些小的调整。另外,我正在考虑使用LaTex。
你能建议我什么?
编辑:我正在检查一些我不知道的CSS功能(几年来没有被它弄乱),它确实具有一些与打印相关的功能(page-break-inside: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。
我在这里没有提供任何参考,因为您可以使用Google轻松找到所需的内容。
关于浮法
DITA-OT提供了一个特定的XSL-FO转型,称为PDF2,其XSL-FO处理器是RenderX。 RenderX当前支持fo:float,所以我想您将可以找到自己的方式。可能是您需要重写某些PDF2模板,这绝对比实现自己的PDF转换简单。
请注意,RenderX是可行的,只要您可以接受每页上的小脚印即可。否则,您应该花一些钱。
, 我绝对会坚持使用XSL-FO和Apache Fop。我对获得的结果感到非常满意,而且唯一一次遇到困难的地方是有人认为尝试并使其生成Word文档是一个好主意。我从未见过这样的效果。实际上,我对每个人都对PDF或PS格式的输出感到满意。
请详细说明FOP在浮点数和分页符方面的不足之处吗?很难知道这是特定于这些功能的问题还是特定于具有Word / RTF / HTML输出格式的那些功能。
最后,在工作/开放办公室心态中,我避免这样做。如果您要努力使文档生成自动化,请花一些时间来纠正它,因此没有手动步骤。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。