同步 WinRT:在版本 12.2.0.36 中工作的代码异常,现在在版本 13.1.0.21 上不起作用



我在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系统中发生。NullReferenceException":{"对象引用未设置为对象的实例。"}

使用此StackTrace:

位于Syncfusion.Pdf.Graphics.PdfBitmap.SetColorSpace()位于的Syncfusion.Pdf.Graphics.PdfBitmap.Save()Syncfusion.Pdf.Graphics.PdfGraphics.DrawImage(PdfImageimage,Singlex、 单y、单宽、单高)Gap_metro.Pages.PdfPage.d_25.MoveNext()

版本之间是否发生了任何可能导致我出错的更改?还是我做错了什么?

当前Essential PDF Winrt支持以下图像格式。1.Jpeg2.PNG3.抖音4.Gif

请在不将其转换为jpeg的情况下尝试PNG图像,我已经附上了示例项目供您参考,请尝试并告诉我结果。

http://www.syncfusion.com/downloads/support/forum/118851/InsertingImage613405857.zip

问候,

Karthikeyan.C

最新更新