Rtf文件导出将第一行留空

时间:2017-08-10 06:29:39

标签: php rtf

我只想尝试使用简单的以下内容制作 .rtf 文件(" eee")。当我打开文件时,它在输出之前添加了一个空行。

header("Content-Disposition: attachment;filename=test.rtf");
    echo 'eee'; die;

我也试过

header("Content-type: application/rtf; charset=utf-8");
header("Content-Disposition: attachment;filename=test.rtf");
echo 'eee'; die;

但在输出之前仍然会添加空行。

当我尝试保存为 .txt 文件时,它没有添加任何空白行。

header("Content-Disposition: attachment;filename=test.txt");
echo 'eee'; die;

3 个答案:

答案 0 :(得分:2)

重要的是,您不要在行的开头<?php之前或者包含的其他一些文件(例如,?>之后)之前有空行。

答案 1 :(得分:0)

我使用的是codeigniter框架。在控制器上我加载了一个模型,该模型在?&gt;之后有空行。结束标签。删除后它工作正常。文本的简单回声在输出之前添加空格是RTF文件查看器的原因是期望在第一行本身提及适当的内容编码。所以输出应该像 {\ rtf1 \ ansi} 那样开始。确保之前没有插入其他文本或空格。

答案 2 :(得分:0)

我正在使用

    ob_start('ob_gzhandler');
    ...
    if ($isDownload) {
      header("Content-type: text/rtf;  charset=UTF-8");
      header("Content-Disposition: attachment; filename=myfile.rtf");
      header("Expires: 0");
    }
    echo $rtf;

我通过

对其进行了修复
    ob_start();
    ...
    if ($isDownload) {
      ob_clean()
      header("Content-type: text/rtf;  charset=UTF-8");
      header("Content-Disposition: attachment; filename=myfile.rtf");
      header("Expires: 0");
    }
    echo $rtf;