簡體   English   中英

MS Word Viewer C#.NET自動化

[英]MS Word Viewer C# .NET automation

是否可以自動執行以下操作:引用MS Word Viewer以編程方式打開文檔然后打印它? C#理想情況下

我猜是否有可能打開它然后更有可能打印它。

我嘗試在Visual Studio中添加對COM對象的引用.MS Office 11/12對象庫但沒有列出MS Word庫? 有任何想法嗎?

我沒有安裝Office 200x

干杯

我們使用Word Interop程序集完成了它。 這需要安裝Word(在場景后面啟動一個WINWORD進程),並且interop允許您在代碼中與它進行交互。

據我所知,這是唯一的方法。

試試Aspose.Words ,它的設計允許Office自動化,而不依賴於安裝Word。 它提供了一個很好的API來打開文檔,然后執行一系列操作,如打印,導出到pdf和許多其他結果。

以下代碼將打開Word視圖,其中包含您傳遞給它的文件。

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

嘗試搞亂參數以及傳遞命令行打印(我不知道你是否可以)。

在使用了所有大道之后,我無法找到使用Microsoft Viewer的Interop,這非常令人沮喪。

也許是這樣的:

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));
    }
}

是指免費的Microsoft Word Viewer,它允許您查看Word文檔而無需實際安裝Word? 如果是這樣,我不相信有一種方法可以自動化查看器,因為它不會安裝Word COM自動化庫,這是您需要的。

這是如何使用word自動化服務

如果它在服務器Word Automation Services上運行,使用Interop程序集總是一個壞主意

這使用不是每個人都擁有的SharePoint。 您還可以通過WebRequestMethod將文件傳送到網頁,並將頁面打印到可愛的pdf編寫器或其他驅動程序。 只需使用mime類型發送文件的字節。 您將在asp.net網頁的頁面加載中打印。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM