web-dev-qa-db-ja.com

Webアプリケーションからローカルプリンターに直接印刷する

私の要件は、.net mvcフレームワークで開発されたWebアプリケーションからローカルプリンターに直接PD​​Fで請求書を印刷することです。

ShipstationがSHIPSTATION CONNECTと同じように正確に行う必要があります

配送の接続

それはのようなプロセスを使用していますか

リモートプリンタ共有CODEPROJECT

または、WMIライブラリを使用してプリンターをリモートで共有します。

エキスパートの考えがあれば、私と私のプログラマーがソリューションを構築するのに役立ちます。

助けてくれてありがとう!

よろしく

8
sunny

printnode.comをチェックすると、助けになるかもしれません。

2
Saurabh D

ローカルプリンターから印刷する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つの解決策があります。最初の解決策は、この回答でわかるように、他のプロセスを呼び出してそれを実行することです。

C#でPDFを印刷する

2つ目は、たとえば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();
            }

        }
    }
}

無料のサードパーティライブラリから取得したオリジナル

1
Proxytype