2015-02-17 43 views
0
我使用Aspose.Email得到附件出Outlook電子郵件這樣的使用

錯誤,然後加載到Datalogics

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 Library Error: File does not begin with '%PDF-'. Error number: 537001985

在任何地方我都找不到這個錯誤。

請注意,上面的初始流對象是* .msg Outlook文件,並且源自共享點SPFile。還要注意,如果流對象SPFile本身是一個PDF文件(而不是附加到* .msg文件),我可以將它加載到DataLogics中。

我知道錯誤是由DataLogics庫引發的,但是有什麼關於如何獲取可以更改/改進的附件以防止發生此錯誤?

任何想法?

回答

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 [email protected] to purchase a valid license." 

的怪樣,但無論哪種方式,我說幹就幹,從父刪除一些附件*。 msg文件(它以前有4),並試圖再次加載它。然後......噗......它開始工作。

似乎它應該拋出一個異常或相反,因爲這將使這個問題更容易追蹤。

+0

如果它是Aspose.Email產品的有效許可證,那麼它不得破壞PDF附件(3個或更多)。請使用示例代碼和MSG文件在Aspose論壇中報告。 – 2015-02-19 08:33:07