我的要求是从.net mvc框架中开发的Web应用程序将pdf中的发票直接打印到本地打印机。
我需要做的事情就像shipstation正在使用SHIPSTATION CONNECT
是否使用
之类的流程REMOTE PRINTER SHARING CODEPROJECT
或使用WMI库远程共享打印机。
任何专家的想法都会帮助我和我的程序员构建解决方案。我不期待代码或勺子喂食,但想知道正确方向开始这个过程和方法。
提前感谢您的帮助!
问候
答案 0 :(得分: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();
工作示例:
如果要从服务器打印,则需要发送服务器请求,例如: www.mysite.com/print.aspx?file=invoice.pdf
要通过服务器打印它,你有两个解决方案,第一个是调用其他进程来完成它,就像你在这个答案中看到的那样:
第二个是使用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 :(得分:1)
检查printnode.com可能会有所帮助。想要做同样的事情你想要的东西。服务不是免费的,或者你可以使用谷歌云打印来构建它。
答案 2 :(得分:0)
实际上有一个库,PrintJS