是否有任何人有编辑docx模板的经验。我的php管理区域需要修改docx模板的功能,这个功能将被大量使用,因此内存很重要。
我发现phpword处于测试版状态,但有效但不是100%
我一直在谷歌搜索并发现phpdocx,有没有人使用过这个并且可以给我一些反馈?
我还需要其他任何解决方案,能够在docx模板中更改文本和图像。
我将准备支付服务但不支付大众费用,并且优先购买一次性许可费。
答案 0 :(得分:9)
您应该尝试OpenTBS。
这是一个开源的PHP库,它使用模板技术构建DOCX。
没有临时目录,不需要额外的exe。首先使用Ms Office创建您的DOCX,XLSX,PPTX(也支持ODT,ODS,ODP,即OpenOffice文件)。然后使用OpenTBS加载模板并使用模板引擎更改内容(简单,请参阅演示)。最后,将结果保存在您需要的位置。它可以是新文件,下载流,PHP二进制字符串。
OpenTBS还可以更改文档中的图片和图表。
答案 1 :(得分:1)
PHP DOCX模板
http://www.phpclasses.org/package/8247-PHP-Create-Microsoft-Word-documents-from-templates.html
include( 'docxtemplate.class.php' );
$docx = new DOCXTemplate( 'invoice.tpl.php' );
$docx->set(array(
'org' => 'MyCompany LLC',
'addr' => 'Green Street, 82'
));
$docx->download('invoice.docx');
答案 2 :(得分:1)
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Employee Details</title>
</head>
<body>
<form method="post" action="#">
<input type="text" name="e_name" />
<input type="text" name="e_email" />
<input type="submit" name="e_submit" />
</form>
</body>
<?php
if(isset($_POST["e_submit"]))
{
$name=(string) $_POST["e_name"];
$email=(string) $_POST["e_email"];
$source='template1.docx';
$destination='template_'.$name.'.docx';
$temp='template_'.$name.'.docx';
copy($source,$temp);
$zip=new ZipArchive;
$fileXml='word/document.xml';
if($zip->open($temp) === TRUE)
{
$old=$zip->getFromName($fileXml);
$new=str_replace('{{Name}}',$name,$old);
$new=str_replace('{{Email}}',$email,$new);
$zip->deleteName($fileXml);
$zip->addFromString($fileXml,$new);
$zip->close();
header("Content-Type: application/force-download");
header('Content-Type: application/msword');
header('Content-Disposition: attachment; filename="'.$destination.'"');
readfile($destination);
unlink($destination);
exit();
}
}
?>
</html>
答案 3 :(得分:0)
Phpdocx适合您的需求。在docx文档上使用基于$ variable $的非常简单的模板格式,这样可以很容易地使用库。我使用了几个月,对我来说是一个很好的工具。