![](/img/trans.png)
[英]Manipulating Word documents on server without Office installed (ASP.NET)
[英]Print Word document from Asp.net c# Without MS Office Installed
我需要在不安裝MS Office的情況下打印Word文檔。 我正在使用WordprocessingDocument操作Word文件。
現在我需要打印它。
我努力了:
System.Diagnostics.Process printProcess = new System.Diagnostics.Process();
printProcess.StartInfo.FileName = "D:/testWordPad1.docx";
printProcess.StartInfo.Verb = "Print";
printProcess.StartInfo.CreateNoWindow = true;
printProcess.Start();
printProcess.WaitForExit();
它可以在安裝了MS Office的我的本地系統中工作。 但是它在沒有安裝MS Office的服務器上不起作用。
它顯示了我:
沒有應用程序與此操作的指定文件相關聯-在System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
請給我您的建議。
為了打印文本文件[這似乎是您嘗試做的],您可以使用記事本的命令行參數[ 在此處閱讀更多內容]
以下內容會將文檔發送到默認打印機:
System.Diagnostics.Process printProcess = new System.Diagnostics.Process();
printProcess.StartInfo.FileName = "notepad.exe";
printProcess.StartInfo.Parameters = "/P D:\\testWordPad1.txt";
printProcess.StartInfo.CreateNoWindow = true;
printProcess.Start();
printProcess.WaitForExit();
如果要定義將文件發送到的打印機,請使用以下參數:
/ PT [文件名] [打印機名] [driverdll] [端口]
錯誤表示動詞不可用。 首先,您可以檢查可用的動詞,如下所示:
foreach (String verb in printProcess.StartInfo.Verbs)
{
System.Diagnostics.Debug.WriteLine(verb);
}
您確定服務器上有可用的打印工具嗎? 如果右鍵單擊服務器上的該文件,它是否在上下文菜單中顯示“打印”?
要在未安裝MS Office的Web服務器上打印.docx文件,最好使用第三方庫。 我嘗試了一個免費的組件 (nuget程序包), 該組件具有100個段落和5個表限制,適用於小型項目,並且可以正常工作。
using System;
using System.Collections.Generic;
using System.Text;
using Spire.Doc;
using System.Windows.Forms;
using System.Drawing.Printing;
namespace Doc_Print
{
class Program
{
static void Main(string[] args)
{
Document doc = new Document();
doc.LoadFromFile("sample.doc");
PrintDialog dialog = new PrintDialog();
dialog.AllowPrintToFile = true;
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
dialog.UseEXDialog = true;
doc.PrintDialog = dialog;
PrintDocument printDoc = doc.PrintDocument;
printDoc.Print();
if (dialog.ShowDialog() == DialogResult.OK)
{
printDoc.Print();
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.