2010-06-01 4 views
2

Я пытаюсь отобразить PDF из базы данных (byte []) для пользователя.PDF в виде текста в браузере

Я использую следующий код для рендеринга PDF. Это дает мне PDF как двоичный текст, как показано ниже. Вместо открытия в приложении PDF это рендеринг PDF в виде текста.

Response.Buffer = true; 
     Response.Charset = ""; 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     //Response.AddHeader("Content-Length", fileToDownload.Length.ToString()); 
     //Response.AddHeader("Content-Disposition", "inline; name=RemoteUserGuide.pdf"); 
     Response.AppendHeader("content-length", fileToDownload.Length.ToString()); 
     Response.ContentType = "application/pdf"; 
     Response.BinaryWrite(fileToDownload); 
     Response.Flush(); 
     ////Response.Close(); 
     Response.End(); 

UPDATE: эта страница приложения правильно отображает PDF в CHROME, но все же отображает текст в IE. (не проверяйте FF3 на сервере). Возможно, это проблема с некоторыми браузерами?

Любые идеи? alt text http://img442.imageshack.us/img442/9242/pdfdisplay.jpg

+0

Где находится код? –

+0

Какой браузер вы используете? – VMAtm

+0

Пожалуйста, см. Мое обновление ... спасибо. – spt3210

ответ

3

Поврежденная установка adobe делает это. переустановите Adobe Reader на целевую (клиентскую) машину.

Иногда программа Adobe Installer выходит из строя и делает это.

+0

Проблема была повреждена. Он работает нормально после переустановки. Благодаря! – spt3210

+0

Поскольку мы короткие штатные, программисты работают в справочной службе в дни, где меньше охвата. Вы получаете полную картину, вместо того, чтобы болтаться в башне программирования слоновой кости! – ggonsalv

+0

Я не могу согласиться больше, служба поддержки будет действительно хорошим опытом для разработчика. Несколько недель назад я был в службе поддержки Microsoft и был поражен разнообразием знаний, которые есть у этих ребят. Он просто не может приходить с какой-либо подготовкой или чтением книг. – spt3210

0

Убедитесь, что тип MIME для расширения .pdf в IIS (Internet Information Services) установлен на «application/pdf».

+1

Он устанавливает тип содержимого вручную. –

+0

Является ли это идентичным поведением, чем то, что IIS добавляет к ответу? – Koen

1

Если вы уверены, что ваш браузер может просматривать PDF, то вы должны использовать @PAGE ContentType="application/pdf" директивы вместо Response.ContentType = "application/pdf";

Также вы должны использовать Response.AddHeader("content-disposition", "filename=\"document.pdf\""); для установки Имени файла

+0

Я думаю, что OP не имеет имени файла. – NotMe

+0

Пробовал с именем файла все тот же. – spt3210

0

Как другие говорили, пробуйте установить MIME-тип/заголовок для приложения/pdf, если это не работает, последнее, что закрывает ваш браузер и снова открывает ту же страницу, у меня была эта проблема перед FPDF (библиотека генерации PDF-файлов в PHP), это похоже на кеш браузера MIME страницы (php) и сохранить ее навсегда, закрыв браузер и вновь открыв его, он будет работать # 1.

Смежные вопросы