Я спросил об этом на сайте syncfusion foruns, но решил, что попробую и здесь.
Некоторое время назад я работал над проектом, который использовал Syncfusion для WinRT версии 12.2.0.36, в нем были некоторые манипуляции с pdf, такие как добавление изображений в pdf. После некоторых усилий он заработал, и часть кода была примерно такой
//...
foreach (var image in this.images) //image is type Windows.Ui.Xaml.Controls.Image
{
var bitmap = image.Source as ImageSource;
var index = bitmaps.IndexOf(bitmap);
var signature = signatures.ElementAt(index);
var bytes = await signature.Data.EncodePngToJpeg(); //returns bytes of png image converted to jpg
PdfImage pdfImage;
using (var memoryStream = new MemoryStream(bytes))
{
pdfImage = PdfImage.FromStream(memoryStream);
}
var transform = image.RenderTransform as CompositeTransform;
var x = (image.Margin.Left + transform.TranslateX + horizontalOffset) * 100 / pdfViewer.Zoom - 10;
var y = (image.Margin.Top + transform.TranslateY + verticalOffset) * 100 / pdfViewer.Zoom - 10;
var firstPage = pdfDocument.Pages[pdfViewer.PageNumber - 1];
var pageHeight = firstPage.Size.Height;
var pageWidth = firstPage.Size.Width;
var selpage = pdfViewer.PageNumber;
var pagn = selpage - 1;
if (pagn < 0)
pagn = 0;
var ss = pdfViewer.GetDescendantsOfType<ScrollViewer>();
var hh = ss.ElementAt(3);
float VertOff = (float)hh.VerticalOffset;
float VertOff2 = (VertOff * 100 / pdfViewer.Zoom) - ((pagn) * (pageHeight * 1.325f));
var page = pdfDocument.Pages[pagn];
var graphics = page.Graphics;
var width = image.Width;
var height = image.Height;
//float fWidth = (float)width;
//float fHeight = (float)height;
fWidth = 165f * 0.50f;
fHeight = 110f * 0.50f;
graphics.ScaleTransform(0.75f, 0.75f);
graphics.DrawImage(pdfImage, (float)x, (float)y + VertOff2, fWidth, fHeight); // <-- exception is here
}
это добавляло список изображений в PDF-документ в определенных местах, и после этого кода я сохранял и загружал.
затем я установил пробную версию WinRT (13.1.0.21) и начал получать это исключение
Первое случайное исключение типа 'System.NullReferenceException' произошло в Syncfusion.Pdf.WinRT.DLL System.NullReferenceException ': {"Ссылка на объект не установлена на экземпляр объекта."}
с этим StackTrace:
в Syncfusion.Pdf.Graphics.PdfBitmap.SetColorSpace () в Syncfusion.Pdf.Graphics.PdfBitmap.Save () в Syncfusion.Pdf.Graphics.PdfGraphics.DrawImage (изображение PdfImage, один x, один y, одна ширина, одна высота) в Gapp_metro.Pages.PdfPage.d__25.MoveNext ()
Изменилось ли что-нибудь между версиями, из-за чего я мог выдавать ошибку? Или я что-то не так делаю?