2015-06-27 191 views
7

我的要求是打印PDF格式的發票直接從本地打印機從在.net mvc框架開發的Web應用程序。打印從Web應用程序直接打印到本地打印機

我需要確切不喜歡shipstation與SHIPSTATION CONNECT

SHIPSTATION CONNECT

做是否使用過程像

REMOTE PRINTER SHARING CODEPROJECT

或使用WMI庫遠程共享打印機。

任何專家的想法都會幫助我和我的程序員構建解決方案。我不希望代碼或勺子餵食,但想知道在正確的方向開始這個過程和方法。

在此先感謝您的幫助!

問候

+0

我試圖在棧中搜索解決方案,並沒有找到任何解決方案附近this.There有一些Java的例子,但我需要專家意見的C#來實現這一目標。 – sunny

+0

打印機連接在哪裏?到服務器或客戶端? – Proxytype

+0

本地連接到客戶端的打印機。但是一旦從本地打印機打印的Web應用程序按下打印按鈕。 – sunny

回答

1

你可以寫從本地打印機打印javascript函數,

w=window.open(); 
w.document.open(); 
w.document.write("<html><head></head><body>"); 
w.document.write("HI"); 
w.document.write("</body></html>"); 
w.document.close(); 
w.print(); 
w.close(); 

工作示例:

http://jsfiddle.net/xwgq5ap4/

,如果你想從你需要將服務器打印發送服務器請求例如: www.mysite.com/print.aspx?file=invoice.pdf

服務器打印出來,你有2個解決方案,第一種是打電話給其他進程來完成它就像你可以在這個答案,請參閱:

Print Pdf in C#

二是編寫使用的PrintDocument自己的實現命名空間,例如:

namespace PrintPDF 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      PdfDocument doc = new PdfDocument(); 
      doc.LoadFromFile("sample.pdf"); 

      //Use the default printer to print all the pages 
      //doc.PrintDocument.Print(); 

      //Set the printer and select the pages you want to print 

      PrintDialog dialogPrint = new PrintDialog(); 
      dialogPrint.AllowPrintToFile = true; 
      dialogPrint.AllowSomePages = true; 
      dialogPrint.PrinterSettings.MinimumPage = 1; 
      dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count; 
      dialogPrint.PrinterSettings.FromPage = 1; 
      dialogPrint.PrinterSettings.ToPage = doc.Pages.Count; 

      if (dialogPrint.ShowDialog() == DialogResult.OK) 
      { 
       doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage; 
       doc.PrintToPage = dialogPrint.PrinterSettings.ToPage; 
       doc.PrinterName = dialogPrint.PrinterSettings.PrinterName; 

       PrintDocument printDoc = doc.PrintDocument; 
       dialogPrint.Document = printDoc; 
       printDoc.Print(); 
      } 

     } 
    } 
} 

原來從free 3rd party library

+0

非常感謝您的努力。它沒有像我們想要的那樣工作。我們要求將PDF文件直接打印到本地打印機,而無需在瀏覽器或隱藏窗格中打開文件。它應該像shiptation所實現的桌面打印一樣。您可以在此處看到HTTP://help.shipstation。com/customer/portal/articles/1818589 – sunny

+0

我們在發佈本文和我們已經嘗試過的示例提供的示例之前,徹底搜索了stackoverflow。 – sunny

+0

在你的例子中,你必須點擊打印按鈕來最終打印。我們不需要額外的步驟。只需要通過與shipstation.Station一樣的通過,就像桌面打印一樣。 – sunny

0

校驗PR採取intnode.com可能有一些幫助。看起來像做同樣的事情你想要的。該服務不是免費的,或者你可以使用谷歌雲打印建立相同的。