forked from PHPOffice/PHPWord
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Sample_17_TitleTOC.php
75 lines (61 loc) · 2.87 KB
/
Sample_17_TitleTOC.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
include_once 'Sample_Header.php';
// New Word document
echo date('H:i:s'), ' Create new PhpWord object', EOL;
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// Begin code
$section = $phpWord->addSection();
// Define the TOC font style
$fontStyle = array('spaceAfter' => 60, 'size' => 12);
$fontStyle2 = array('size' => 10);
// Add title styles
$phpWord->addTitleStyle(1, array('size' => 20, 'color' => '333333', 'bold' => true));
$phpWord->addTitleStyle(2, array('size' => 16, 'color' => '666666'));
$phpWord->addTitleStyle(3, array('size' => 14, 'italic' => true));
$phpWord->addTitleStyle(4, array('size' => 12));
// Add text elements
$section->addText(htmlspecialchars('Table of contents 1', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
// Add TOC #1
$toc = $section->addTOC($fontStyle);
$section->addTextBreak(2);
// Filler
$section->addText(htmlspecialchars('Text between TOC', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
// Add TOC #1
$section->addText(htmlspecialchars('Table of contents 2', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
$toc2 = $section->addTOC($fontStyle2);
$toc2->setMinDepth(2);
$toc2->setMaxDepth(3);
// Add Titles
$section->addPageBreak();
$section->addTitle(htmlspecialchars('Foo & Bar', ENT_COMPAT, 'UTF-8'), 1);
$section->addText(htmlspecialchars('Some text...', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
$section->addTitle(htmlspecialchars('I am a Subtitle of Title 1', ENT_COMPAT, 'UTF-8'), 2);
$section->addTextBreak(2);
$section->addText(htmlspecialchars('Some more text...', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
$section->addTitle(htmlspecialchars('Another Title (Title 2)', ENT_COMPAT, 'UTF-8'), 1);
$section->addText(htmlspecialchars('Some text...', ENT_COMPAT, 'UTF-8'));
$section->addPageBreak();
$section->addTitle(htmlspecialchars('I am Title 3', ENT_COMPAT, 'UTF-8'), 1);
$section->addText(htmlspecialchars('And more text...', ENT_COMPAT, 'UTF-8'));
$section->addTextBreak(2);
$section->addTitle(htmlspecialchars('I am a Subtitle of Title 3', ENT_COMPAT, 'UTF-8'), 2);
$section->addText(htmlspecialchars('Again and again, more text...', ENT_COMPAT, 'UTF-8'));
$section->addTitle(htmlspecialchars('Subtitle 3.1.1', ENT_COMPAT, 'UTF-8'), 3);
$section->addText(htmlspecialchars('Text', ENT_COMPAT, 'UTF-8'));
$section->addTitle(htmlspecialchars('Subtitle 3.1.1.1', ENT_COMPAT, 'UTF-8'), 4);
$section->addText(htmlspecialchars('Text', ENT_COMPAT, 'UTF-8'));
$section->addTitle(htmlspecialchars('Subtitle 3.1.1.2', ENT_COMPAT, 'UTF-8'), 4);
$section->addText(htmlspecialchars('Text', ENT_COMPAT, 'UTF-8'));
$section->addTitle(htmlspecialchars('Subtitle 3.1.2', ENT_COMPAT, 'UTF-8'), 3);
$section->addText(htmlspecialchars('Text', ENT_COMPAT, 'UTF-8'));
echo date('H:i:s'), ' Note: Please refresh TOC manually.', EOL;
// Save file
echo write($phpWord, basename(__FILE__, '.php'), $writers);
if (!CLI) {
include_once 'Sample_Footer.php';
}