使用Aspose.Email打开嵌入的PDF附件时出错,然后加载到Datalogics中

时间:2015-02-17 22:22:45

标签: pdf aspose

我正在使用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库正在抛出错误,但是我是如何得到可以更改/改进的附件以防止发生此错误的?

有什么想法吗?

1 个答案:

答案 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个)并尝试再次加载它。然后......噗......开始工作了。

似乎它应该抛出一个异常或其他东西,因为这会使这个问题更容易追踪。