PHPWord HTML到Word设计问题
我正在使用PHPWord库将HTML模板转换为Word 我将HTML转换为Word文件的代码如下:PHPWord HTML到Word设计问题,php,phpword,Php,Phpword,我正在使用PHPWord库将HTML模板转换为Word 我将HTML转换为Word文件的代码如下: $phpWord = new \PhpOffice\PhpWord\PhpWord(); $section = $phpWord->addSection(); \PhpOffice\PhpWord\Shared\Html::addHtml($section, $htmlTemplate); $targetFile = __DIR__ . "/1.docx"; $phpWord->sa
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $htmlTemplate);
$targetFile = __DIR__ . "/1.docx";
$phpWord->save($targetFile, 'HTML');
我面临以下问题:
span标记前的某些文本XXXXX span标记后的文本
编辑:
如果上面提到的问题无法用PHPWord解决,请推荐我可以用来将带有内联css的HTML转换为Word的任何其他库 我刚刚执行了一个非常简单的测试,它工作正常。我的代码与您的代码几乎完全相同,只是我告诉系统将其编写为Word文档,而不是HTML
使用phpooffice\PhpWord\PhpWord;
使用PhpOffice\PhpWord\Shared\Html;
需要一次目录/供应商/autoload.php';
$htmlTemplate=';
$phpWord=新phpWord();
$section=$phpWord->addSection();
Html::addHtml($section,$htmlTemplate);
$targetFile=\uuuuu DIR\uuuuuu。“/1.docx”;
$phpWord->save($targetFile,'Word2007');
产生:
如果将保存模式更改为HTML
,背景色确实会消失,但无论如何,它不再是Word文档,而是原始HTML,因此我认为这并不重要
$targetFile=\uuuu DIR\uuuuu。“/1.html”;
$phpWord->save($targetFile,'HTML');
一个问题/主题中有很多内容。因此,我将根据您列举的设计问题来回答:
背景色
您可以通过以下方式渲染背景色:
$table_style=array('bgColor'=>'ffffff00');
$section=$phpWord->addSection();
$table=$section->addTable($table\u样式);
$table->addRow();
$cell=$table->addCell();
\PhpOffice\PhpWord\Shared\Html::addHtml($cell,$htmlTemplate);
分页符
来自文档的代码似乎不支持html代码中的分页符。但是,通过隐式调用,您可以在节内呈现分页符,如下所示:
$section=$phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section,$someHTMLcode);
$section->addPageBreak();
$section->addText(“一些纯文本”);
$section->addPageBreak();
意外的内联文本中断
也许您可以尝试用
替换一些空格,如下所示:
span标记前的某些文本XXXXX span标记后的文本
我希望其中一些——如果不是全部的话——可能对你有用。祝你好运 正如您在上所看到的,您不能使用背景色。当我们使用PHPWord语法在Word中添加内容时,此处列出的样式适用。但我有HTML模板,我正在转换为word。所以我不能使用这些样式!是的,很抱歉,请参阅样式列表。是的,我看到了此文件,在调试时,在函数parseStyle中,当我在返回之前在函数末尾打印$styles时,样式属性在那里正确打印。但我不知道之后会发生什么错误,这并没有反映在文档中。我注意到的一点是,背景颜色与标记一起工作,而与或标记无关!谢谢你,克里斯!它解决了我的第一个和第三个问题。仍然分页符在我生成的文档中不起作用。所以,若你们对此有任何想法,请指导我。我也通过phpword中的一些定制解决了分页符问题。所以没有必要再看这个问题了!!
<p style="background-color:#FFFF00;color:#FF0000;">Some text</p>
<div style="page-break-after:always"><span style="display:none"> </span></div>
<p>some text before span tag <span style="color:#FF0000;display:inline">XXXXX</span> Text after span tag.</p>