C# Syncfusion WinRT:在版本12.2.0.36中工作的代码出现异常,该版本现在没有';t在版本13.1.0.21上工作
我在syncfusion foruns上问过这个问题,但我想我也会在这里尝试一下 不久前,我参与了一个项目,该项目使用WinRT 12.2.0.36版的Syncfusion 它有一些pdf操作,比如在pdf中添加图像。经过一些努力,它开始工作了,代码的部分是这样的C# Syncfusion WinRT:在版本12.2.0.36中工作的代码出现异常,该版本现在没有';t在版本13.1.0.21上工作,c#,windows-8,windows-runtime,windows-store-apps,syncfusion,C#,Windows 8,Windows Runtime,Windows Store Apps,Syncfusion,我在syncfusion foruns上问过这个问题,但我想我也会在这里尝试一下 不久前,我参与了一个项目,该项目使用WinRT 12.2.0.36版的Syncfusion 它有一些pdf操作,比如在pdf中添加图像。经过一些努力,它开始工作了,代码的部分是这样的 //... foreach (var image in this.images) //image is type Windows.Ui.Xaml.Controls.Image {
//...
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
}
/。。。
foreach(this.images中的var image)//image的类型为Windows.Ui.Xaml.Controls.image
{
var bitmap=image.Source作为ImageSource;
var index=bitmaps.IndexOf(位图);
var signature=signatures.ElementAt(索引);
var bytes=wait signature.Data.EncodePngToJpeg();//返回转换为jpg的png图像的字节
PdfImage-PdfImage;
使用(var memoryStream=新的memoryStream(字节))
{
pdfImage=pdfImage.FromStream(memoryStream);
}
var transform=image.RenderTransform作为复合转换;
var x=(image.Margin.Left+transform.TranslateX+horizontalpoffset)*100/pdfViewer.Zoom-10;
变量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;
如果(页码<0)
pagn=0;
var ss=pdfViewer.getDegenantSoftype();
var hh=ss.ElementAt(3);
浮动垂直偏移=(浮动)hh.VerticalOffset;
浮动顶点2=(顶点*100/pdfViewer.Zoom)-(页码)*(页高*1.325f));
var page=pdfDocument.Pages[pagn];
var graphics=page.graphics;
var-width=image.width;
var height=image.height;
//浮动宽度=(浮动)宽度;
//浮动高度=浮动高度;
fWidth=165f*0.50f;
FHheight=110f*0.50f;
图形.比例变换(0.75f,0.75f);
graphics.DrawImage(pdfImage,(float)x,(float)y+VertOff2,fWidth,fHeight);//目前基本的PDF Winrt支持以下图像格式。
1.Jpeg
2.巴布亚新几内亚
3.争吵
4.Gif
请尝试不转换为jpeg的PNG图像,我已经附加了供您参考的样本项目,请尝试这个,让我知道结果
问候,
C我想出来了,问题是这一行:PdfImage PdfImage;