从ASP.NET核心web应用程序打印PDF文档
我正在使用以下方法打印我的PDF文档。它在我本地的机器上运行得很好。但一旦我上传到Web服务器,我就会在打印时出错。我怀疑这是条路,但我不知道出了什么问题? 感谢您的帮助,因为我很快就要拔掉头发了 经过进一步调查,我发现我需要分配一个默认的本地打印机。 我的代码正在寻找web服务器打印机。有人能帮忙吗? 从web应用程序打印时,有什么我应该注意的吗? 我已在最终用户计算机上设置了默认打印机,但仍从该代码中获取错误? 我还需要在打印之前显示打印对话框 最后,我们可以从ASP.NET.core web应用程序打印到本地打印机吗?或者他们必须在同一个网络上 谢谢从ASP.NET核心web应用程序打印PDF文档,.net,asp.net-core,printing,.net,Asp.net Core,Printing,我正在使用以下方法打印我的PDF文档。它在我本地的机器上运行得很好。但一旦我上传到Web服务器,我就会在打印时出错。我怀疑这是条路,但我不知道出了什么问题? 感谢您的帮助,因为我很快就要拔掉头发了 经过进一步调查,我发现我需要分配一个默认的本地打印机。 我的代码正在寻找web服务器打印机。有人能帮忙吗? 从web应用程序打印时,有什么我应该注意的吗? 我已在最终用户计算机上设置了默认打印机,但仍从该代码中获取错误? 我还需要在打印之前显示打印对话框 最后,我们可以从ASP.NET.core we
private void PrintEntireCatologue()
{
var RowsData = DataGrid.CurrentViewData;
foreach (ClientDoc row in RowsData)
{
var PdfToPrint = row.DocPathAzure; /*get file name from database*/
var doctoprint = @".\wwwroot\Pdfdocs" + PdfToPrint; /*Get directory path*/
PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor();
documentProcessor.LoadDocument(doctoprint);
PdfPrinterSettings pdfPrinterSettings = new PdfPrinterSettings();
pdfPrinterSettings.PageOrientation = PdfPrintPageOrientation.Portrait;
documentProcessor.Print(pdfPrinterSettings);
}
toastService.ShowSuccess("Printing Complete.");
}
它在本地为您工作,因为该命令正在您的计算机上运行。部署应用程序时,该命令将在服务器上运行。你的C#代码永远不会到达客户;代码在构建时进行编译,甚至Blazor页面在发送到客户端之前也在服务器端进行编译。除非您可以使用客户端访问客户端的打印机,否则无法直接从服务器打印
我建议您创建一段JavaScript,从服务器下载文件,然后在客户端访问打印机
无论如何,您需要一个服务器来存储文档,还需要一个实用程序来获取文档并将文档发送到最终用户的打印机。您能更清楚地描述一下webapp和打印机的位置吗?似乎您有一台运行Web应用程序的服务器和一台具有默认打印机的最终用户PC,并且您希望将PDF从服务器打印到最终用户PC的打印机上?请您确认几件事好吗?1.在本地运行意味着调试更多或部署在IIS 2中。托管在web服务器上-这是否意味着在IIS 3上。是.Net core还是.Net framework?如果.Net core是“进程中”托管?@neohope是的,你明白了!在此期间,我的ISP(smarterasp.net)通知我,在这种情况下不允许打印。必须先下载文档,然后在客户端上打印。我有时要打印1000个(巨大的目录),所以我正在寻找一个只需点击一个按钮的解决方案。似乎唯一的方法是将它们全部压缩,然后下载ZIP文件,并在客户端PC上安装一个实用程序来完成这项工作。@mbshambharkar这是一个Blazor服务器应用程序。在本地运行时,我通过Visual studio 2019运行它,但它与打印机在同一个网络上,所以它工作正常。有时你需要考虑一下你的问题。如果我创建了一个web应用程序,自动向您的打印机发送一个10000页的文件,该怎么办。我打赌你不会高兴的。这些事情不起作用或不起作用是有原因的。@kevinBrown真的吗?该系统的所有用户都是预付一年费用的客户。他们打印的文档仅限于提供的文档,因此无法发送“10000”页的文档。第二,这将立即禁止该系统,他们将失去他们的付款。”neohope感谢你的提醒。是的,这似乎是唯一的出路。我将在Azure上获得一个VPS,它将允许我控制整个机器。