我有一个PDFsharp生成的PDF文档,并在WCF客户端中正确显示。该文档由一页组成,而该页又包含一个图像。这方面的代码是:
PdfDocument d = new PdfDocument();
d.Info.Title = "Temporary Passport Document";
d.Info.Title = applicant.ApplID + " " + initials + " - Passport";
PdfPage p = new PdfPage();
d.AddPage(p);
XGraphics gfx = XGraphics.FromPdfPage(p);
XImage img = XImage.FromFile(passport.AttachmentPath);
p.Width = img.Size.Width + 40;
p.Height = img.Size.Height + 40;
gfx.DrawImage(img, 20, 20);
PDF文档使用以下代码保存到byte[]中(d是PDFSharp文档,passport.PassportScan是byte[]):
MemoryStream ms = new MemoryStream();
d.Save(ms, false);
passport.PassportScan = ms.ToArray();
byte[]被发送到WCF服务以保存它。因此,我将byte[]转换回PDFsharp文档,并尝试用以下代码保存它:
PdfDocument d = new PdfDocument(new MemoryStream(pPassport.PassportScan));
d.Save(RecruitAidPathRoot + "100104 - JPD - John Paul Doe\\" + "JPD - file.pdf");
当执行最后一行时,我得到错误“无法保存没有页面的PDF文档”。
文档由客户端的1页组成,所以服务中的文档也应该包含1页,对吗?
提前谢谢。
发布于 2015-10-22 03:02:25
您正在调用的方法具有以下签名:public PdfDocument(Stream outputStream)
该说明内容如下:
使用指定的流创建新的PDF文档。在关闭文档之前,将不会使用该流,此时文档将自动保存。不要为使用此构造函数创建的文档调用Save(),只需调用Close()。若要打开现有的PDF文件,请使用PdfReader类。
使用PdfReader类的Open:public static PdfDocument Open(Stream stream)
。
https://stackoverflow.com/questions/33277991
复制