是否可以自动化以下操作: 通过编程引用MS Word Viewer打开文档并打印? 最好使用C#。
我猜如果可以打开它,那么很可能也可以打印它。
我尝试在Visual Studio中添加对COM对象的引用.. MS Office 11/12对象库,但MS Word库未列出?有什么想法吗?
我没有安装Office 200x
谢谢
是否可以自动化以下操作: 通过编程引用MS Word Viewer打开文档并打印? 最好使用C#。
我猜如果可以打开它,那么很可能也可以打印它。
我尝试在Visual Studio中添加对COM对象的引用.. MS Office 11/12对象库,但MS Word库未列出?有什么想法吗?
我没有安装Office 200x
谢谢
试试 Aspose.Words,它专为实现 Office 自动化而设计,无需依赖于安装 Word。它提供了一个不错的 API 来打开文档,然后执行一系列操作,例如打印、导出为 PDF 等多种结果。
也许会像这样:
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));
}
}
以下代码将打开Word视图,并将您传递给它的文件打开。
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("WORDVIEW.exe", fileName.ToString());
System.Diagnostics.Process.Start(info);
这是如何使用Word自动化服务
如果在服务器上运行,使用Interop程序集总是不好的主意Word自动化服务
它使用了SharePoint,而不是每个人都有。您还可以通过WebRequestMethod
将文件传递到网页,并将页面打印到可爱的pdf编写器或另一个驱动程序。只需使用MIME类型发送文件的字节即可。您可以在asp.net网页的页面加载中打印。
HKEY_CLASSES_ROOT\AcroExch.acrobatsecuritysettings.1\shell\Print\command
中,我有一个值""C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"" /p /h "%1" ...其中/p参数可能是告诉它打印的。 - ChrisW