【问题标题】:Using PHP create a Word document in Landscape使用 PHP 在 Landscape 中创建 Word 文档
【发布时间】:2011-06-01 09:13:17
【问题描述】:

我使用此代码创建一个 MS Word 文档;但是,我想在风景中制作它。有人知道怎么做吗?谢谢

$fp = fopen('test.doc', 'w+');

$str = "<html><body>Content</body></html>";

fwrite($fp, $str);
fclose($fp);

【问题讨论】:

  • Word 真的使用 HTML 作为内部格式?!哦,我无法想象,这是创建word文档的正确方法。
  • @KingCrunch - 许多网络开发人员都假设计算机使用的每种文件格式实际上都是 HTML(或偶尔为 CSV),并且不理解 真实 Word .doc 文档是 BIFF 格式的二进制文件……除非是抱怨微软使用无证格式(现在也是一种错误的看法)
  • 我知道我们可以使用 COM 对象或 Open Office 模板创建 Word,但我只有一个 Linux 共享主机,我无法对服务器进行任何操作。因此,我选择了这个解决方案。如果您有任何图书馆创建真实单词的解决方案,我非常感谢。

标签: php file ms-word fopen .doc


【解决方案1】:

据我所知,您的代码不应该工作。 MS Word 生成二进制文件,因此您需要使用COM 对象。

这是一个例子:

<?php
$word = new COM("word.application") or die ("Could not initialise MS Word object.");
$word->Documents->Open(realpath("Sample.doc"));

// Extract content.
$content = (string) $word->ActiveDocument->Content;

echo $content;

$word->ActiveDocument->Close(false);

$word->Quit();
$word = null;
unset($word);

示例取自这里:http://www.developertutorials.com/tutorials/php/extracting-text-from-word-documents-via-php-and-com-81/

【讨论】:

  • 我的代码不会生成真实的 Word 文档,但它可以工作。但是,我无法控制它的属性。那是我的问题。我认为您的代码需要 Windows,因为它使用 COM。如果我错了,请纠正我。
  • 是的,显然只在 Windows 上。 php.net/manual/en/com.requirements.php
猜你喜欢
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多