是否可以自動執行以下操作: 引用MS Word Viewer以編程方式打開文檔,然後將其打印出來? C#最好是MS Word Viewer C#.NET自動化
我猜如果可以打開它,那麼很可能打印它。
我已經嘗試在Visual Studio中添加對COM對象的引用。MS Office 11/12對象庫但MS Word庫未列出?有任何想法嗎?
我沒有辦公室200X安裝
歡呼
是否可以自動執行以下操作: 引用MS Word Viewer以編程方式打開文檔,然後將其打印出來? C#最好是MS Word Viewer C#.NET自動化
我猜如果可以打開它,那麼很可能打印它。
我已經嘗試在Visual Studio中添加對COM對象的引用。MS Office 11/12對象庫但MS Word庫未列出?有任何想法嗎?
我沒有辦公室200X安裝
歡呼
我們這樣做是通過使用Word Interop程序集。這需要安裝Word(在scenese後面啓動一個WINWORD進程),並且interop允許您在代碼中與它進行交互。
據我所知,這是做到這一點的唯一方法。
指的是免費的Microsoft Word Viewer,它允許您在沒有安裝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參數可能會讓它打印。 – ChrisW 2009-08-18 01:37:52
嘗試Aspose.Words,它的設計,讓辦公自動化,而不在具有安裝Word的依賴。它提供了一個很好的API來打開文檔,然後執行一系列操作,例如打印,導出到PDF和許多其他結果。
這是如何使用文字自動化服務
使用互操作程序集始終是一個糟糕的主意,如果它是一個使用的SharePoint這不是每個人都有服務器 Word Automation Services
上運行。您還可以通過WebRequestMethod
將文件發送到網頁,並將頁面打印到可愛的pdf編寫器或其他驅動程序。只需發送MIME類型的文件的字節。您將在asp.net網頁的頁面加載中打印。
以下代碼會打開Word視圖並將其傳遞給它。
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("WORDVIEW.exe", fileName.ToString());
System.Diagnostics.Process.Start(info);
試圖弄亂參數以及通過命令行打印(我不知道你是否可以)。
是的,在耗盡了每條大道之後,我發現Interop與Microsoft Viewer之間沒有辦法,這是非常令人沮喪的。
也許是這樣的:
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));
}
}
「M $」 - 我把它.NET開發是不是你的日常工作:-) – 2009-08-18 01:12:30
http://www.penny-arcade.com/comic/2002/ 7/22/ – Domenic 2009-08-18 01:12:50
如果您沒有安裝Office,那麼您爲什麼會期望安裝Office Automation? – 2009-08-18 01:55:12