Xamarin:在Xamarin.forms中将图像转换为Pdf格式
将图像传递到inputstream时,我得到的错误宽度不能为null。因为我没有找到任何替代方法。基本上,我想在Xamarin.forms中将图像转换为Pdf格式,它支持UWP平台。 我正在为此使用xfinium pdf库Xamarin:在Xamarin.forms中将图像转换为Pdf格式,xamarin,uwp,Xamarin,Uwp,将图像传递到inputstream时,我得到的错误宽度不能为null。因为我没有找到任何替代方法。基本上,我想在Xamarin.forms中将图像转换为Pdf格式,它支持UWP平台。 我正在为此使用xfinium pdf库 public void ConvertJpegToPdf() { 尝试 { PdfFixedDocument document=新的PdfFixedDocument(); Xfinium.Pdf.PdfPage page=document.Pages.Add(); 页宽=8
public void ConvertJpegToPdf()
{
尝试
{
PdfFixedDocument document=新的PdfFixedDocument();
Xfinium.Pdf.PdfPage page=document.Pages.Add();
页宽=800;
页高=600;
var imageStream=GetStream();
PdfJpegImage jpeg=新的PdfJpegImage(imageStream)//
byte[]byteArray=Encoding.UTF8.GetBytes(“http://david.qservicesit.com/images/3.jpg”;
您无法通过这种方式获取图像流。您所使用的方法只能获取字符串的字节
。对于您的场景,您可以使用客户端获取图像流。请参阅以下代码:
public async Task<Stream> GetStream()
{
HttpClient client = new HttpClient();
HttpResponseMessage res = await client.GetAsync(new Uri("http://david.qservicesit.com/images/3.jpg"));
Stream stream = await res.Content.ReadAsStreamAsync();
return stream;
}
public async Task ConvertJpegToPdf()
{
try
{
PdfFixedDocument document = new PdfFixedDocument();
Xfinium.Pdf.PdfPage page = document.Pages.Add();
page.Width = 800;
page.Height = 600;
var imageStream = await GetStream();
PdfJpegImage jpeg = new PdfJpegImage(imageStream);
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
page.Graphics.DrawImage(jpeg, 0, 0, page.Width, page.Height);
Stream pdfStream = new MemoryStream();
document.Save(pdfStream);
}
catch (Exception ex)
{
throw ex;
}
}
public异步任务GetStream()
{
HttpClient=新的HttpClient();
HttpResponseMessage res=wait client.GetAsync(新Uri(“http://david.qservicesit.com/images/3.jpg"));
Stream=wait res.Content.ReadAsStreamAsync();
回流;
}
公共异步任务转换程序JPEGTOPDF()
{
尝试
{
PdfFixedDocument document=新的PdfFixedDocument();
Xfinium.Pdf.PdfPage page=document.Pages.Add();
页宽=800;
页高=600;
var imageStream=await GetStream();
PdfJpegImage jpeg=新的PdfJpegImage(imageStream);
pdfstandardfonthelvetica=新的PdfStandardFont(PdfStandardFontFace.helvetica,24);
PdfBrush笔刷=新的PdfBrush(PdfRgbColor.Red);
page.Graphics.DrawImage(jpeg,0,0,page.Width,page.Height);
Stream pdfStream=新内存流();
文件保存(pdfStream);
}
捕获(例外情况除外)
{
掷骰子;
}
}
public async Task<Stream> GetStream()
{
HttpClient client = new HttpClient();
HttpResponseMessage res = await client.GetAsync(new Uri("http://david.qservicesit.com/images/3.jpg"));
Stream stream = await res.Content.ReadAsStreamAsync();
return stream;
}
public async Task ConvertJpegToPdf()
{
try
{
PdfFixedDocument document = new PdfFixedDocument();
Xfinium.Pdf.PdfPage page = document.Pages.Add();
page.Width = 800;
page.Height = 600;
var imageStream = await GetStream();
PdfJpegImage jpeg = new PdfJpegImage(imageStream);
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);
page.Graphics.DrawImage(jpeg, 0, 0, page.Width, page.Height);
Stream pdfStream = new MemoryStream();
document.Save(pdfStream);
}
catch (Exception ex)
{
throw ex;
}
}