TCPDF выводит странные символы в IE8 - PullRequest
0 голосов
/ 27 июня 2010

Сегодня я начал экспериментировать с PHP-генераторами на основе PHP. Я попробовал TCPDF, и он по большей части работает нормально, хотя кажется, что он немного медленный. Но когда я загружаю файл PHP, который генерирует мой PDF-файл в Internet Explorer 8, я вижу строки и строки странных символов. Однако Chrome распознает его как PDF.

Я предполагаю, что мне нужно установить специальный тип MIME, чтобы сообщить IE, что он должен интерпретировать вывод страницы как файл PDF. Если да, как я могу это сделать?

Ответы [ 5 ]

2 голосов
/ 27 июня 2010

Помещение типов MIME "application / pdf" или "application / octet-stream" может помочь. имейте в виду, что «application / octet-stream» приведет к загрузке файла и может помешать его открытию в браузере.

если вам интересно, вы можете сделать это так:

header('Content-type: application/octet-stream');
1 голос
/ 03 августа 2010

У меня тоже была эта проблема, но что я сделал, чтобы она заработала, я добавил

 exit();

в конце вывода PDF.

0 голосов
/ 30 июля 2010

Я обнаружил, что это тоже проблема, и для меня все зависит от кода:

if (php_sapi_name( != 'cli') {

в строке 7249 файла tcpdf.php.
Я прокомментировал это утверждение «if» (и связанное с ним «}»), и все отлично работает для моего другого браузера и ie8 Надеюсь, это поможет

0 голосов
/ 06 июля 2010

@ Питер: у меня возникла та же проблема с использованием tcpdf (с fpdi) и загрузкой страницы, которая генерировала pdf, с помощью вызова ajax.Я изменил javascript для загрузки страницы, используя вместо этого window.location, и проблема исчезла, а производительность стала намного лучше.Я считаю, что два других автора верны в том, что проблема связана с заголовком документа.В моем случае из-за вызова ajax заголовок был применен не ко всему документу, а вызвал проблему.Надеюсь, это поможет.

0 голосов
/ 27 июня 2010

Вам нужно по-разному обрабатывать IE для динамически генерируемого контента.См. Эту статью,

http://support.microsoft.com/default.aspx?scid=kb;en-us;293792

В моем коде, я делаю это,

    if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) {
            header('Content-Type: application/pdf');
            exit;
    }

Эта проблема также может объяснить медлительность, о которой вы упоминали, потому что ваша страница фактически отправляетцелый PDF несколько раз без этой логики.

...