多表程序化合并到ODF文档文件

时间:2010-02-02 18:04:40

标签: xml merge openoffice-writer

我使用docx格式与Microsoft Word 2007构建了自定义XML合并,允许用户访问模式中表示的字段并将其包含在Word DocX中。然后我打开文件,在整个文档中进行搜索/替换,将其关闭并在Word中完全合并。 由于专利诉讼失败,我们软件的新用户将无法创建文档,因为自定义XML架构已关闭。

我正在考虑在OpenOffice中做同样和/或类似的事情,但到目前为止,在网上找到任何接近的例子都避开了我。我需要有关如何将“标签”放入我可以找到和替换的文档中,或者从Open Office Writer中访问模式的信息。请注意,对常规邮件合并的引用(假定为平面合并文件)在我的情况下不起作用,因为我有多个表/一对多关系等。

任何链接或想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

在处理这个问题时,我提出了3个可能的解决方案。

1)使用数据表/字段合并。这将涉及设置一些数据源,每个表一个,然后进入幕后并使用XSLT或更强力的方法来查找/替换。
2)直接使用XSLT和文档中的样式。我很想告诉你我自己想出了这个,但它是IBM网站http://www.ibm.com/developerworks/edu/x-dw-x-xsltopenoff.html上的一篇文章。是的,你必须注册,但这是一个有趣的阅读。 3)将令牌放入文档并使用令牌进行查找/替换。这是我选择使用的方法。

我将在程序中使用解压缩实用程序打开文档,解压缩content.xml文件,根据令牌修改content.xml,将其关闭并在Open Office Write中启动。

选择的原因是我的用户需要能够从他们被授权的任何表中访问任何字段,但他们通常不会习惯于数据表和/或复杂样式表。允许他们投入 ~~ tablename.fieldname~无论他们想要什么,我都给予他们最大的灵活性和最小的开销。另外,我可以编写一个实用程序来帮助他们构建文档,以便他们可以拖放到文档中......至少这是当前的计划。

对于更精明的用户,我将实现一些额外的功能,如 ~~表名&安培;开始〜 ~~表名&安培;端〜 其中,只有在该表名中有记录时,才会打印开始和结束标记之间的文本。

还在早期的过程中,但想分享我的想法。 道格