首页 > 解决方案 > 如何为相同的深度标题使用多种样式?

问题描述

我在使用 PHPWord 时遇到了一些麻烦。尝试使用具有相同深度但样式不同的 addTitle。我目前在页面顶部定义我的样式,我试图动态覆盖它们,但不幸的是它不起作用。

我可以看到这已经是 github 上的一个问题。https://github.com/PHPOffice/PHPWord/issues/1397

链接到文档 https://phpword.readthedocs.io/en/latest/

$phpWord->addTitleStyle(1, $fontStyles["HEADING_ONE_SPLIT"], $paragraphStyles["HEADING_ONE_DEFAULT"]);

$sceneSection->addTitle('MY TITLE', 1);

$phpWord->addTitleStyle(1, $fontStyles["HEADING_ONE_SPLIT"], $paragraphStyles["HEADING_ONE_SPLIT"]);

$sceneSection->addTitle('MY TITLE WITH DIFFERENT STYLE', 1);

基本上风格根本没有改变。我添加了一个选项卡并与第二个标题段落样式左对齐,但它没有得到应用。

请注意,我的字体样式和段落样式在不同深度上都能完美运行。问题是我根据它们的深度创建了一个 TOC,但有些标题每个深度需要不同的样式。

标签: phpphpword

解决方案


PHPword (0.16.0) 似乎不支持重新定义已经存在的标题样式(或任何命名样式) - 如果已经定义了特定深度的标题样式,则第二个 addTitleStyle 调用将被忽略。您可以查看源代码中 Style.php 中的 setStyleValues 函数以获取更多详细信息。


推荐阅读