使用PHPWord自定义索引

时间:2018-01-08 18:07:33

标签: php phpword

背景

我将生成类似下面的文档索引。

enter image description here

我尝试使用由Troosan编写的PHPWord,但仍然没有得到预期的结果。

我做了什么

使用PHPWord,我生成了这样的页码。 (步骤1)

A SERIES OF UNFORTUNATE EVENTS, SEASON 3 ................6
GUESS WHO DIED ..........................................8
VALLEY OF THE BOOM ......................................10
AMERICAN VANDAL, SEASON 2 ...............................11
RUSSIAN DOLL ............................................12
THE OA, SEASON 2 ........................................13
...

正如您所看到的,我生成了页码,顺便说一下,如何在没有页码的标题之间添加章节名称? 所以看起来应该是这样(第2步)

ABC
GUESS WHO DIED ..........................................8
VALLEY OF THE BOOM ......................................10
AMERICAN VANDAL, SEASON 2 ...............................11

ABC Studios
RUSSIAN DOLL ............................................12
THE OA, SEASON 2 ........................................13
...

我可以使用PHPWord实现(第2步)吗?如果没有,那你的建议是什么?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式部分实现此目的: 首先创建一个XE字段(索引字段),如下所示

$textrun->addField('XE', array(), array(), 'Entry text');

在这种情况下,'Entry text'也可以是TextRun,它允许您格式化文本。

创建索引条目字段后,您可以创建实际索引:

$section->addField('INDEX', array(), array('\\e "   " \\h "A" \\c "3"'));

您可以传递的不同选项如下所述:https://support.office.com/en-us/article/Field-codes-Index-field-adafcf4a-cb30-43f6-85c7-743da1635d9e?ui=en-US&rs=en-US&ad=US

当然这只是一个部分解决方案,因为它会将索引拆分为第一个字母,但您不会通过网络进行细分(在您的UC中)。

如果您设法在Word中实现此功能,则应该可以在PHPWord中执行相同的操作。