Ошибка при использовании Aspose.Email для открытия встроенного вложения PDF с последующей загрузкой в ​​Datalogics

Я использую 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

Нигде ничего не могу найти по этой ошибке.

Обратите внимание, что исходный объект потока выше представляет собой файл Outlook *.msg и происходит из SPFile точки доступа. Также обратите внимание, что если объект потока SPFile сам по себе является файлом PDF (в отличие от вложения в файл *.msg), я могу без проблем загрузить его в DataLogics.

Я знаю, что библиотека DataLogics выдает ошибку, но есть ли что-то в том, как я получаю вложение, которое можно изменить/улучшить, чтобы предотвратить возникновение этой ошибки?

Любые идеи?


person franzcatch    schedule 17.02.2015    source источник


Ответы (1)


Итак, всего несколько минут назад я пытался получить 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) и попытался загрузить его снова. Потом... пуф... все заработало.

Похоже, вместо этого он должен генерировать исключение или что-то в этом роде, поскольку это значительно упростило бы отслеживание этой проблемы.

person franzcatch    schedule 18.02.2015
comment
Если это действующая лицензия для продукта Aspose.Email, то она не должна повреждать вложения PDF (3 или более). Сообщите об этом на форумах Aspose с образцом кода и файлом MSG. - person Saqib Razzaq; 19.02.2015