gpt4 book ai didi

Delphi 6 OleContainer SaveAsDocument 在 Windows 7/Word 2010 中创建损坏的文件,在 XP/Word 2003 中正常

转载 作者:行者123 更新时间:2023-12-01 23:43:36 25 4
gpt4 key购买 nike

我正在开发旧版 Delphi 6(Build 6.240,Update Pack 2)应用程序,该应用程序在 Windows XP 和 Office 2000 - 2003 上运行良好。

我们的客户现在希望能够在带有 Office 2010 的 Windows 7 上运行该应用程序。

该代码似乎仍然成功创建了 Word 合并文档,并将其保存到 Oracle 数据库中的 BLOB 字段,并且可以成功地在 Word 2010 中从数据库中重新打开该文档。

问题是应用程序随后需要创建文档的 PDF 版本(使用 PDF-XChange),因此它使用 OleContainer.SaveAsDocument 将文档写入磁盘上的临时文件。尝试在 Word 2010(甚至 Word 2003)中打开此文档会显示“文件转换”对话框,以“选择使文档可读的编码”。所有选项似乎都无法使文档可读(即使它们这样做,仍然会出现问题,因为这是一个自动化过程)。

使用 CreateObject('Word.document.8', false) 建立 OleConnection我还尝试了其他值而不是 8 - 9、10、11 和 14,当 12 或只是“Word.document”运行时会导致“无效类字符串”错误,但效果与 8 相同,即无法打开保存的文档在Word 中。

所以,问题是 - 如何将 Windows 7 上的 Delphi 6 中的 OleContainer 中的 Word 文档与 Word 2010 保存为可由 Word 重新打开的格式?

最佳答案

据我所知,OleContainer 无法保存 .docx 文件。总是腐 eclipse 他们。我通过使用容器的 OleObject 变量解决了这个问题,这样我就可以直接访问 Words 过程。下面是一个例子:

OleContainer.OleObject.SaveAs(DocumentName);

OleContainer.OleObject.Saved := True;

我看到您提到您正在使用 .doc,但希望这无论如何都会对您有所帮助。

关于Delphi 6 OleContainer SaveAsDocument 在 Windows 7/Word 2010 中创建损坏的文件,在 XP/Word 2003 中正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com