.NET Core System.Drawing.Common PrintDocument не работает в Linux - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть проблема с PrintDocument из System.Drawing.Common, когда я использую это в Linux, если быть более точным, проблема возникает из PrintingServices.LoadPrinterSettings, который используется в PrinterSettings.Unix

здесьсодержание ошибки:

Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware [1]
Произошло необработанное исключение при выполнении запроса.System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.в System.Drawing.Printing.PrintingServices.LoadPrinterSettings (String printer, PrinterSettings settings)

В 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

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 15 февраля 2019

Это, скорее всего, проблема в System.Drawing.Common.Код для печати в Linux был перенесен из Mono и не получил большого внимания.

Если вы можете создать «минимальное репо», я думаю, что лучшим вариантом будет подать проблему на https://github.com/dotnet/corefx (или даже лучше, отправить PR).

...