linux wine Word interop application.Documents.Open在word中打开文档但不将文档返回给客户端

时间:2013-08-30 11:25:52

标签: c# linux office-interop wine

由于太难以提及的原因,我希望能够在Wine下进行MS Office Automation。但是,下面的节点程序无法从WinWord实例获取文档对象,尽管WinWord已经在wine下运行该文档。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop.Word;

// This code is lifted from http://www.dotnetperls.com/word

namespace WordTest
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage WordTest word.doc");
                return;
            }
            String docname = args[0];
            try
            {
                Application application = new Application();
                Document document = application.Documents.Open(docname);

                // Loop through all words in the document. (We get an exception here)
                int count = document.Words.Count;
                for (int i = 1; i <= count; i++)
                {
                    // Write the word.
                    string text = document.Words[i].Text;
                    Console.WriteLine("Word {0} = {1}", i, text);
                }
                // Close word.
                application.Quit();
           }
           catch (Exception e)
           {
                Console.WriteLine("Exception {0}\nStacktrace\n{1}", e.Message, e.StackTrace);

           }
       }
   }
}

我尝试使用这些东西(不是上面的简单代码)无法使用OpenOffice或Apache POI等完成。

有什么想法吗?

这可能是相关的:

这个应用程序的.NET版本是2

WinWord版本是2007年

葡萄酒的版本是葡萄酒-1.5.6

linux的发布是openSUSE 12.2

Linux版本3.4.47-2.38-桌面#1 SMP预览5月31日星期五20:17:40 UTC 2013(3961086)x86_64 x86_64 x86_64 GNU / Linux

Cpu Intel(R)Core(TM)2 Duo CPU T9400 @ 2.53GHz

1 个答案:

答案 0 :(得分:1)

这是Wine中的已知错误。

您可以在此处阅读更多内容:http://osdir.com/ml/wine-bugs/2013-07/msg01794.html