Это xpost от https://answers.unity.com/questions/1548350/pdfsharp-working-in-editor-but-not-in-build.html.
Я работаю над проектом в Unity, и из сборки мне нужно иметь возможность экспортировать данные в PDF.
Для экспорта в PDF я использую PDFSharp версия 1.32.3057.
Настройки проигрывателя следующие:
- Unity 2018.1.0f2
- Версия сценариев Runtime: .NET 4.x Эквивалент
- Скриптовый бэкэнд: Mono
- Уровень совместимости API: .NET Standard 2.0
Для создания PDF я использую следующий код:
string in_img = "C:\\test.jpg"
string out_pdf = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop), "test.pdf");
PdfDocument doc = new PdfDocument();
PdfPage page = doc.AddPage();
page.Height = XUnit.FromInch(26.67f);
page.Width = XUnit.FromInch(15f);
page.Orientation = PdfSharp.PageOrientation.Landscape;
using (XGraphics gfx = XGraphics.FromPdfPage(page)) {
using (XImage image = XImage.FromFile(in_img)) {
gfx.DrawImage(image, 0, 0, 3840, 2160);
}
}
doc.Save(out_pdf);
doc.Close();
Запуск кода в редакторе создает PDF-файл, как и ожидалось.
Сборка кода и запуск сборки, однако, приводят к следующей ошибке:
TypeLoadException: Could not load type of field 'PdfSharp.Drawing.XGraphics:gfx' (12) due to: Could not resolve type with token 01000047 (from typeref, class/assembly System.Drawing.Graphics, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) assembly:System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a type:System.Drawing.Graphics member:(null) signature:<none>
at PdfExport.Start () [0x00077] in C:\...\Unity PDF Test\Assets\PdfExport.cs:27
Я уже искал в Google и Stackoverflow, чтобы найти подсказку, чтобы исправить ошибку. До сих пор безуспешно. Я надеюсь, что кто-то может указать мне правильное направление.
В чем причина ошибки? И что мне нужно сделать, чтобы это исправить?