繁体   English   中英

.NET Core System.Drawing.Common PrintDocument在Linux上不起作用

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM