我接管了一个应用程序的开发,使用户可以下载一些报告
系统设置如下:
我知道这是一个创建报告文件的奇怪解决方案,我在设置CSS以便在* .doc文件中工作时遇到了很多困难。
例如,现在我需要设置0cm的边距,但当然,当我在OpenOffice,LibreOffice,MSWord等文本编辑器中打开生成的* .doc时,他在WEB模式下打开CSS边距设置为0cm工作正常。但是,用户需要以STANDARD模式打开文件(如真正的* .doc文件)并且不想做一些操作来转换文档,或者将边距设置为0厘米(...)。
所以,我找到了转换* .odt中* .html OR * .doc文件的解决方案,解压缩* .odt文件,修改文件“styles.xml”,允许我设置“标准” “边距为0cm,然后重新保存为* .doc格式。
这个解决方案效果很好,但是,我只使用LibreOffice GUI在我的电脑上实现了这个功能。
当我尝试使用命令行中的任何程序(甚至是LibreOffice转换模块)转换* .odt中的* .html或* .doc文件时,* .odt文件与我使用LibreOffice GUI时的文件不同。所以我尝试使用其他转换脚本,如:
那么,有没有办法将我的* .html文件正确转换为* .odt文件?
还是另一种让我做我想做的事情?
感谢。
编辑/解决:
适用于JODConverter !!
答案 0 :(得分:0)
如果你想保留HTML,我仍然认为LiveDocx可能只是证明有用。我做了一些挖掘,偶然发现phpdocx。在页面底部有一个链接,向您展示如何嵌入HTML。
LiveDocX和phpdocx都在各自的站点上提供示例。我建议你浏览一下。
也出现了几次:有趣的问题可能是:
我知道后者与你想要做的事情正好相反,但不要因为这个原因而把它写下来。通常,从另一个角度看待事物是非常有帮助的。
由于您的上一条评论让我相信您实际上没有完成编码(I just need a script etc...
),我想说SO不是代码生成器。当你读完关于phpdocx和livedocx的文章时,也许你应该阅读what makes a good question。
我认为,here,我找到了你要找的东西。如果你想使用php-cli,我的猜测是将脚本的输出流设置为文件,并使用下面的标题(从链接复制粘贴)。
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment; Filename=SaveAsWordDoc.doc");
很抱歉,如果我发现有点苛刻,关于SO不是代码生成器的评论,以及“什么是一个好问题”的链接。不是故意打击你。
<强>更新强>
很抱歉,上一个示例只能用作下载链接:在一个工作脚本下面,根据html字符串生成.doc文件:
#!/bin/php -n
<?php
$opts = array('file'=>array('header'=>'Content-type: application/vnd.ms-word'."\r\n".'Content-type: application/vnd.ms-word'."\r\n"));
$resource = stream_context_create($opts);
$doc = fopen('asDoc.doc','w+',false,$resource);
if (!$doc)
{
die('FFS');
}
$html='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
$html .='<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\"><title>Foo</title></head><body><h1>Hello, world</h1></body></html>';
fwrite($doc,$html);
fclose($doc);
exit();
?>
标头在上下文流中定义,因此前两行代码至关重要。与<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">
元标记一样。其他一切都很基础。
您需要的所有功能都在这里,如果您想知道什么做什么,请参阅他们的手册页以获取更多信息......
祝你好运