Создание простого XFinium PDF на iOS, содержащего изображение - PullRequest
0 голосов
/ 05 июня 2018

Мы используем XFinium в нашем приложении C # Xamarin Forms для iOS.У меня был некоторый тестовый код, который создавал бы PDF с парой фрагментов текста, и он работал правильно.Однако, когда я попытался включить изображение, полученный PDF-файл не содержит изображения, и Acrobat Reader выдает «Ошибка на этой странице».Данное изображение является ресурсом в моем приложении (не загружается с URL-адреса).

string path = Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
string file = System.IO.Path.Combine(path, "report.pdf");
PdfFixedDocument document = new PdfFixedDocument();
PdfStandardFont helveticaBold = new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 16);
PdfPage page = document.Pages.Add();
page.Width = 8 * 72 + 36;
page.Height = 11 * 72;
PdfBrush blackBrush = new PdfBrush(PdfRgbColor.Black);
page.Graphics.DrawString("Hello", helveticaBold, blackBrush, 20, 50);
string imageFileName = "UI_Assets_Image.png";
FileStream imageStream = System.IO.File.Open(imageFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
PdfPngImage image = new PdfPngImage(imageStream);
Debug.WriteLine("   image is " + image.Width + " x " + image.Height);
// Reports 1373 x 417 which is correct so I believe it is
// loading the image correctly
// Draw image in the page width
PdfSize size = page.Graphics.DrawImage(image, 36, 75, 540, 166);
Debug.WriteLine("   DrawImage() returned " + size.Width + " x " + size.Height);
// Reports 540 x 166 which seems reasonable
using (FileStream stream = System.IO.File.Create(file))
{
    document.Save(stream, null);
}

Если я не включу изображение, файл PDF в порядке.

1 Ответ

0 голосов
/ 05 июня 2018

Проблема возникает из-за того, что изображение PNG не является правильным изображением PNG, оно было оптимизировано в процессе сборки для использования с методами и классами iOS.Если вы отключите оптимизацию PNG в настройках проекта, изображение должно корректно отображаться в файле PDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...