【问题标题】:MS Word Viewer C# .NET automationMS Word 查看器 C# .NET 自动化
【发布时间】:2015-05-16 05:29:28
【问题描述】:

是否可以自动执行以下操作: 引用 MS Word 查看器以编程方式打开文档然后打印它? 理想情况下是 C#

我猜如果可以打开它,那么很可能可以打印它。

我已尝试在 Visual Studio 中添加对 COM 对象的引用 .. MS Office 11 / 12 对象库但未列出 MS Word 库?有什么想法吗?

我还没有安装 Office 200x

干杯

【问题讨论】:

标签: c# ms-word automation ms-office


【解决方案1】:

我们通过使用 Word 互操作程序集来做到这一点。这需要安装 Word(在后台启动 WINWORD 进程),并且互操作允许您在代码中与它进行交互。

据我所知,这是唯一的方法。

【讨论】:

    【解决方案2】:

    试试Aspose.Words,它旨在实现 Office 自动化,而不依赖于安装 Word。它提供了一个很好的 API 来打开文档,然后执行一系列操作,例如打印、导出为 pdf 和许多其他结果。

    【讨论】:

      【解决方案3】:

      可能是这样的:

      class Program
      {
          static void Main(string[] args)
          {
              PrintDocument(@"C:\test.docx", 2);
              Console.ReadKey();
          }
      
          [DllImport("USER32.DLL")]
          public static extern bool SetForegroundWindow(IntPtr hWnd);
      
          private static void PrintDocument(string name, int copies)
          {
              var process = System.Diagnostics.Process.Start(new ProcessStartInfo
              {
                  FileName = name,
                  UseShellExecute = true
              });
      
              process.WaitForInputIdle();
              SetForegroundWindow(process.MainWindowHandle);
      
              SendKeys.SendWait("^p"); // send CTRL+P
              SendKeys.SendWait(copies.ToString()); // send number of copies
              SendKeys.SendWait("~"); // send ENTER
      
              // -- or send all in one
              //SendKeys.SendWait(string.Format("^p{0}~", copies));
          }
      }
      

      【讨论】:

        【解决方案4】:

        以下代码将使用您传递给它的文件打开 Word View。

        System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("WORDVIEW.exe", fileName.ToString());
        System.Diagnostics.Process.Start(info);
        

        尝试弄乱参数以及传递命令行打印(我不知道你是否可以)。

        是的,在用尽所有途径之后,我发现无法与 Microsoft 查看器进行互操作,这非常令人沮丧。

        【讨论】:

          【解决方案5】:

          指的是免费的 Microsoft Word 查看器,它允许您在没有实际安装 Word 的情况下查看 Word 文档?如果是这样,我不相信有一种方法可以使查看器自动化,因为它不安装 Word COM 自动化库,而这正是您所需要的。

          【讨论】:

          • 有时程序支持另一种方式,例如DDE 或命令行参数,告诉他们打印一些东西。您可能会在注册表中看到它,例如在我的HKEY_CLASSES_ROOT\AcroExch.acrobatsecuritysettings.1\shell\Print\command 我有一个值 ""C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h "%1" ... 其中 /p 参数大概告诉它打印。
          【解决方案6】:

          这是如何使用文字自动化服务

          如果在服务器上运行,使用互操作程序集总是一个坏主意 Word Automation Services

          这使用并非每个人都有的 SharePoint。您还可以通过WebRequestMethod 将文件发送到网页,然后将页面打印给可爱的 pdf 编写器或其他驱动程序。只需发送具有 mime 类型的文件字节。您将在 asp.net 网页的页面加载中打印。

          【讨论】:

            猜你喜欢
            • 2010-09-14
            • 1970-01-01
            • 2017-05-23
            • 1970-01-01
            • 1970-01-01
            • 2016-03-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多