我正在编写一个基本的文字处理应用程序,并尝试采用一种本机的“内部”格式,该格式是我的代码解析以呈现到屏幕上的格式。我希望它是XML,以便将来可以编写XSLT转换为ODF或XHTML或其他格式。
在寻找要使用的现有标准时,唯一有希望的标准就是ODF。但是,对于我所需要的来说,这看起来像是过大的杀伤力。我所需要的只是段落标签,字体选择,字体大小和装饰...仅此而已。即使是最小的ODF渲染器,我也要花费很长时间,而且我不确定是否值得这样做。
现在,我正在考虑制作自己的XML格式,但这并不是真正的好习惯。最好使用一个标准,尤其是从那时起,我也许可以找到以后可能已经需要的XSLT。
还是我应该硬着头皮实施ODF?
编辑:关于答案
我以前知道XSL-FO,但是由于规格过重,所以并没有真正考虑它。但是您是对的,一个子集将为我提供与我合作所需的一切,并为我提供成长的空间。非常感谢提醒。
另外,通过包含FOP或RenderX之类的渲染库,我可以免费生成PDF。不错...
由于您确定需要表示事物的表示方面,因此可能值得查看XSL-FO W3C 建议。这是一种成熟的页面描述语言,也是众所周知的 XSLT 的另一半(非常不合时宜)。
显然,整件事绝不是“轻量级”,但如果你只是合并了一个非常有限的子集——它甚至可能只是(为了匹配你的“段落标签、字体选择、字体大小和装饰”的规格)fo:block和常用字体属性,例如:
<yourcontainer xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:block font-family="Arial, sans-serif" font-weight="bold"
font-size="16pt">Example Heading</fo:block>
<fo:block font-family="Times, serif"
font-size="12pt">Paragraph text here etc etc...</fo:block>
</yourcontainer>
Run Code Online (Sandbox Code Playgroud)
与仅滚动自己的相比,这可能有一些优势。有一个开放的规范可供使用,所有这一切都意味着。它重用 CSS 属性作为 XML 属性(以类似于 SVG 的方式),因此许多格式细节看起来有些熟悉。如果您后来认为智能分页是一项必备功能,那么您将有一个升级路径 - 包括规范的更多部分,因为它们与您的应用程序相关。
您还可以从调查 XSL-FO 中获得另一件事 - 看看即使只是做段落和字体也可能非常复杂。尝试为各种不同的语言和用例进行文本布局和换行“正确的方式”对我来说似乎非常艰巨。
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |