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



我在system.drawing.common上使用linux上的printDocument有问题,更具体地说,问题来自printingservices.loadprintersettings,在printersettings.unix中使用。

此处错误的内容:

microsoft.aspnetcore.diagnostics.exceptionhandlermiddleware [1]
执行请求时发生了一个未经治疗的例外。 System.NullReferenceException:对象引用未设置为实例 一个对象。在 system.drawing.printing.printingservices.loadprintersettings(字符串 打印机,打印机设置)

在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上的打印代码已从单声道移植,并且没有受到很多关注。

如果您可以创建"最小仓库",我认为最好的选择是在https://github.com/dotnet/corefx上提交问题(或者更好,请发送PR)。

最新更新