[size=13px] 做了一個系統,需要打印word,服務器上有打印模塊,打印之前是將打印的內容通過書簽的新式生成了一個新的word保存在服務器上,在客戶端訪問系統打印的時候出現了一些問題。客戶端調用的打印機是服務器上面的,不是客戶端電腦上的。
[/size]
打印代碼如下:
Microsoft.Office.Interop.Word.Application app = null;
Microsoft.Office.Interop.Word.Document doc = null;
object missing = System.Reflection.Missing.Value;
object templateFile = @"D:"+name;
try
{
app = new Microsoft.Office.Interop.Word.Application();
//WORD程序不可見
app.Visible = false;
//不彈出警告框
app.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
//app.ActivePrinter = "HP LaserJet M1319f MFP";
doc = app.Documents.Add(ref templateFile, ref missing, ref missing, ref missing);
//打印
if (type == "打印")
{
doc.PrintOut(ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing);
}
}
catch (Exception exp)
{
throw new Exception(exp.Message);
}
//銷毀word進程
finally
{
object saveChange = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
if (doc != null)
doc.Close(ref saveChange, ref missing, ref missing);
if (app != null)
app.Quit(ref missing, ref missing, ref missing);
}
12 个解决方案
#1
自己頂一個,在網上找了很多,基本上都是調用的服務器上的打印機打印的。
#2
怎么沒有人回答了。
#3
用js吧,客戶端js2句話就能打印。。。
#4
引用 1 樓 shengyongwang 的回復:
自己頂一個,在網上找了很多,基本上都是調用的服務器上的打印機打印的。
如果“網上”確實很多騙人文章,只能表示遺憾。
等你自己不至於隨便抄那些文章時,提出了真正具體問題,就會有人給你可操作性的回答。
#5
就你這個問題來說,你應該先放一放,過3個月再考慮。
不論是你看到的文章,還是你聽到的回答,可能都是想當然並且完全南轅北轍的,如出一轍。而你缺乏基本的分辨能力。
#6
可以用js打印,這是最簡單的方法了,在不就找web打印插件了,一般的插件都會安裝客戶端的程序配合js,比如lodop
#7
引用 5 樓 sp1234 的回復:
就你這個問題來說,你應該先放一放,過3個月再考慮。
不論是你看到的文章,還是你聽到的回答,可能都是想當然並且完全南轅北轍的,如出一轍。而你缺乏基本的分辨能力。
大牛,我現在急需找到解決辦法,因為項目中正在使用,遇到了問題需要解決。找了很多解決辦法,現在沒有辦法,所以才在網上尋找大牛的解決。
#8
君不知道BS應用中,是分客戶端代碼和服務端代碼的嗎?
你調用服務端代碼打印,當然是調用的服務器上的打印機了
#9
調用JS代碼打印,那么你需要解決的問題就是,如何在客戶端獲取你服務器上的WORD文件內容
IE在客戶機上,它是不能直接訪問服務器上的文件的,它也不允許直接訪問客戶機上的文件
所以不管你是用服務器的路徑在客戶機上打印,還是先把word文檔下載下來再調用JS,都是無法獲取文件內容的
你需要先在服務端將文件解析出來,然后將內容以html的方式輸出到IE上,JS腳本再把這個內容打印
思路就是如此,但願你能看懂
#10
引用 9 樓 Z65443344 的回復:
調用JS代碼打印,那么你需要解決的問題就是,如何在客戶端獲取你服務器上的WORD文件內容
IE在客戶機上,它是不能直接訪問服務器上的文件的,它也不允許直接訪問客戶機上的文件
所以不管你是用服務器的路徑在客戶機上打印,還是先把word文檔下載下來再調用JS,都是無法獲取文件內容的
你需要先在服務端將文件解析出來,然后將內容以html的方式輸出到IE上,JS腳本再把這個內容打印
思路就是如此,但願你能看懂
感謝,您的意思我明白了,現在就要轉換思路,考慮把word轉化成html了
#11
引用 5 樓 sp1234 的回復:
就你這個問題來說,你應該先放一放,過3個月再考慮。
不論是你看到的文章,還是你聽到的回答,可能都是想當然並且完全南轅北轍的,如出一轍。而你缺乏基本的分辨能力。
看到這個但牛很多回答的內容都是些有的沒的 有的人問問題是急需解決的 難道等着被辭退? js方法 或者 打印預覽 .printview()即可
#12
想知道樓主最后是怎么解決的!