我使用PHPRtfLite库(http://sigma-scripts.de/phprtflite/docs/index.html)来生成一个使用PHPRtfLite的RTF文件。
到目前为止,我已经做了一个简单的"Hello“功能。
Yii::import('ext.phprtf.PHPRtfLite');
Yii::registerAutoloader(array('PHPRtfLite','registerAutoloader'), true);
$rtf = new PHPRtfLite();
$sect = $rtf->addSection();
$sect->writeText('Hello world!', new PHPRtfLite_Font(), new PHPRtfLite_ParFormat());
//save rtf document
$rtf->sendRtf('takis.rtf');
文件是成功创建的,但是当我打开它( wordpad或ms word)时,我看不到文件的实际内容,而是RTF的原始代码:
{\rtf\ansi\deff0\fs20
{\fonttbl{\f0 Times New Roman;}}
{\colortbl;\red0\green0\blue0;}
{\info
}
\paperw11907 \paperh16840 \deftab1298 \margl1701 \margr1701 \margt567 \margb1134 \pgnstart1\ftnnar \aftnnrlc \ftnstart1 \aftnstart1
\pard \ql {\fs20 Hello world!}
}
你知道如何解决这个问题吗?先谢谢你。
发布于 2014-08-07 01:02:04
回答我自己的问题,万一将来有人有同样的问题.
这似乎是sendRTF函数的一个问题。现在,我在本地保存创建的文件:
$rtf->save('takis.rtf');
然后生成一个链接,供用户下载该文件。这个很好用。
发布于 2016-01-19 11:56:38
我自己也经历过同样的事情。我不确定,是否有同样的原因,但在我的例子中,在<?php
标记之前,PHP的开头有额外的换行符。当我使用sendRtf从浏览器下载文件时,换行符也出现在RTF文件中,使其无效,结果显示了原始的rtf代码。当使用保存时,这些额外的字符不会到达文件。
所以,在类似的情况下,有一件事要检查--在记事本中打开Rtf文件并检查文件的开头。
https://stackoverflow.com/questions/25177528
复制