![](/img/trans.png)
[英]Which libraries should I install for work with System.Drawing.Common in ASP NET Core application inside Alpine-based image
[英].NET Core System.Drawing.Common PrintDocument doesn't work on Linux
在Linux上使用System.Drawing.Common时,我在使用PrintDocument时遇到问题,更具体地说,问题出在PrinterSettings.Unix中使用的PrintingServices.LoadPrinterSettings。
这里的错误内容:
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [1]
执行请求时发生未处理的异常。 System.NullReferenceException:对象引用未设置为对象的实例。 在System.Drawing.Printing.PrintingServices.LoadPrinterSettings处(字符串打印机,PrinterSettings设置)
在Windows上,一切正常,因为PrintDocument使用解决方案为Windows做准备。
码:
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = printerName;
pd.OriginAtMargins = true;
pd.DefaultPageSettings.Landscape = true;
pd.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
pd.PrintPage += new PrintPageEventHandler(Pd_PrintPage);
pd.Print();
我正在使用:
System.Drawing.common(4.5.1)
.NET Core 2.1
libc6-dev和libgdiplus已安装在Linux上
Linux-Debian 9
有人可以帮忙吗?
这很可能是System.Drawing.Common中的问题。 Linux上的打印代码已从Mono移植而来,并没有引起太多关注。
如果您可以创建一个“最小存储库”,我认为最好的选择是在https://github.com/dotnet/corefx上提交问题(或者甚至更好,发送PR)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.