Я работаю с элементом управления просмотра PDF-файлов ComponentOne (C1) silverlight.У него есть метод «LoadDocument», который принимает «Поток».
Я делаю HTTP-вызов из моего клиентского приложения, чтобы получить PDF-документ.Этот документ на стороне сервера был передан через File.ReadAllBytes (), а затем преобразован в строку base64 с помощью Convert.ToBase64String ().Эта строка отправляется по проводу обратно в мое приложение silverlight, где она затем обратно конвертируется обратно в байтовый массив с Convert.FromBase64String (val).Затем я создаю MemoryStream с этим байтовым массивом и передаю «LoadDocument ()» этот поток памяти.
Зритель ничего не рендерит.На ней отображаются панель инструментов и полосы прокрутки, но содержимое пустое, а кнопка сохранения недоступна, что указывает на то, что документ не загружен.Я точно знаю, что файл прошел через это, потому что размер байтового массива на клиенте соответствует предварительному преобразованию байтового массива на стороне сервера.
Вот мой код: (в интересах времени / пространства, я 'VE усеченный, удаление проверки и т. д.)
SERVERSIDE
string sendingToClient = Convert.ToBase64String(File.ReadAllBytes(filePath))
CLIENTSIDE
byte[] image = null;
image = Convert.FromBase64String(stringFromServerCall);
MemoryStream stream = new MemoryStream(image);
docViewer.LoadDocument(stream);
edit В качестве возможного обходного пути я попытался сохранить файл в изолированном хранилище с расширением «.pdf».Затем я использую IsolatedStorageFileStream для отправки в LoadDocument ().Я столкнулся с фактической ошибкой, теперь она говорит: «Исключение PdfParserException было обработано кодом пользователя: неверный формат файла (отсутствует заголовок pdf)» *
Может кто-нибудь пролить свет на этот заголовок PDF?