C# 如何使用iTextSharp保存图像实例以在WinC窗体中保存为PDF?
IDE:MicrosoftVisualStudio2010 站台:C 我正在尝试使用iTextSharp.text.image对象将需要以PDF格式显示的图像保存在内存流中,其中我收到一个错误,该错误表示字节数组不是可识别的图像格式 到目前为止,我一直在尝试:C# 如何使用iTextSharp保存图像实例以在WinC窗体中保存为PDF?,c#,winforms,itextsharp,C#,Winforms,Itextsharp,IDE:MicrosoftVisualStudio2010 站台:C 我正在尝试使用iTextSharp.text.image对象将需要以PDF格式显示的图像保存在内存流中,其中我收到一个错误,该错误表示字节数组不是可识别的图像格式 到目前为止,我一直在尝试: using (MemoryStream memoryStream = new MemoryStream()) { Document Doc = new Document(PageSize.A4, 10f, 10f, 10f, 0f
using (MemoryStream memoryStream = new MemoryStream())
{
Document Doc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(Doc, memoryStream);
Doc.Open();
chart1.SaveImage(memoryStream, ChartImageFormat.Png);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(memoryStream.GetBuffer());
img.ScalePercent(75f);
Doc.Add(img);
Doc.Close();
byte[] content = memoryStream.ToArray();
using (FileStream fs = File.Create("D:\\Test2.pdf"))
{
fs.Write(content, 0, (int)content.Length);
}
System.Diagnostics.Process.Start("D:\\Test2.pdf");
}
如果将memoryStream保存到文件中,会得到什么?它是一个有效的PNG文件吗?因为iText支持PNG,所以它应该能够识别图像,除非图像已损坏或不是真正的PNG。请看,我使用的是图表控件,该控件在保存为PDF之前以PNG格式保存…这不是我问题的答案。我不知道,你能建议我现在如何继续。。。谢谢你正在处理两个专有的摘要,一个图表和一个文档,以及两个不相关的二进制文件规范,PNG和PDF。您正试图将这两个抽象的实现阻塞到内存流的同一字节数组中。一般来说,以这种方式组合两个文件几乎不起作用。相反,您需要将图表保存到一个可能在内存中的文件中,这无关紧要,但iText不应参与此过程。然后,一旦你有了一个图像并对其进行了验证,你就可以把它添加到文档中。