TCPDF在IE8中输出奇怪的字符

时间:2010-06-27 15:39:21

标签: php internet-explorer tcpdf

今天我开始尝试使用基于PHP的PDF生成器。我试过TCPDF,它在大多数情况下工作得很好,虽然看起来有点慢。但是当我在Internet Explorer 8中加载生成PDF的PHP文件时,我会看到奇怪字符的行和行。但是,Chrome会将其识别为PDF格式。

我假设我必须设置一个特殊的MIME类型来告诉IE它应该将页面输出解释为PDF文件。如果是,我该怎么做?

5 个答案:

答案 0 :(得分:2)

使用“application / pdf”或“application / octet-stream”mime类型可能有所帮助。请记住,“application / octet-stream”将强制下载该文件,并可能阻止它在浏览器中打开..

万一你想知道,你可以这样做:

header('Content-type: application/octet-stream');

答案 1 :(得分:1)

我也遇到了这个问题,但是为了让它起作用,我添加了

 exit();

在pdf输出的末尾。

答案 2 :(得分:0)

您需要以不同方式处理动态生成内容的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而没有这个逻辑。

答案 3 :(得分:0)

@Pieter:我在使用tcpdf(使用fpdi)时遇到了同样的问题,并使用ajax调用加载了生成pdf的页面。我改变了javascript以使用window.location加载页面,问题消失了,性能也好得多。我相信其他两张海报在文档标题导致问题的想法中是正确的。在我的情况下,由于ajax调用,标题没有应用于整个文档,并导致问题。希望这会有所帮助。

答案 4 :(得分:0)

我发现这也是一个问题,对我而言,这一切都取决于代码:

if (php_sapi_name( != 'cli') {

在tcpdf.php文件的第7249行 我评论了这个'if'语句(以及相关的'}')并且所有这些都适用于我的其他浏览器和ie8 希望这有帮助

相关问题