我正在使用Aspose.Email从这样的Outlook电子邮件中获取附件:
var mailMessage = Aspose.Email.Mail.MailMessage.Load(stream);
var attachments = Aspose.Email.Outlook.MapiMessage.FromMailMessage(mailMessage).Attachments;
var pdfAttachment = attachments.ToList()[attachmentIndexDesired];
然后,我将附件加载到DataLogics中,如下所示:
var pdfStream = new MemoryStream(pdfAttachment.BinaryData);
var pdfDocument = new Datalogics.PDFL.Document(pdfStream);
这里我得到以下异常:
PDF库错误:文件不以'%PDF开头 - '。错误号码:537001985
我无法在任何地方找到任何关于此错误的内容。
请注意,上面的初始流对象是* .msg Outlook文件,源自sharepoint SPFile。另请注意,如果流对象SPFile本身是PDF文件(而不是* .msg文件的附件),我可以将其加载到DataLogics中。
我知道DataLogics库正在抛出错误,但是我是如何得到可以更改/改进的附件以防止发生此错误的?
有什么想法吗?
答案 0 :(得分:0)
所以就在几分钟前,我试图从附件中抓取BinaryData并将其转换为我能读取的字符串,以便我可以直观地检查其内容。所以我这样做了。
(new StreamReader(new MemoryStream(curAttachment.BinaryData))).ReadToEnd()
当我这样做时,它打印了这个错误:
"Evaluation copy of Aspose.Email limits to extract only 3 attachments in the messages. Please contact sales@aspose.com to purchase a valid license."
有点奇怪,因为我正在使用我的生产许可证,但无论哪种方式我继续从父* .msg文件中删除了一些附件(它以前有4个)并尝试再次加载它。然后......噗......开始工作了。
似乎它应该抛出一个异常或其他东西,因为这会使这个问题更容易追踪。