質問編集履歴
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -161,4 +161,25 @@
|
|
161
161
|
|
162
162
|

|
163
163
|
|
164
|
-
しかし、`\PhpOffice\PhpWord\Element\ChangedElement`はなく、IDEでも`setChanged`メソッドは見当たりませんでした。
|
164
|
+
しかし、`\PhpOffice\PhpWord\Element\ChangedElement`はなく、IDEでも`setChanged`メソッドは見当たりませんでした。
|
165
|
+
|
166
|
+
↓
|
167
|
+
|
168
|
+
`setChanged`メソッドは現在`deploy`ブランチにいるようで、
|
169
|
+
`master`ブランチにはいませんでした。
|
170
|
+
それで使えないのですね。。。
|
171
|
+
|
172
|
+
現在、composerでPHPWordを入れているのですが、
|
173
|
+
Deployブランチをcomposerで入れることは可能なのでしょうか?
|
174
|
+
|
175
|
+
ひとまず公式GitHubに書いてある以下のことは試しましたが落ちてきませんでした。
|
176
|
+
|
177
|
+
```
|
178
|
+
composer require phpoffice/phpword
|
179
|
+
composer install
|
180
|
+
|
181
|
+
または
|
182
|
+
|
183
|
+
composer require phpoffice/phpword:dev-master
|
184
|
+
composer install
|
185
|
+
```
|
4
現状報告
title
CHANGED
File without changes
|
body
CHANGED
@@ -139,4 +139,26 @@
|
|
139
139
|
$writer->save("sample.docx");
|
140
140
|
```
|
141
141
|
|
142
|
-
↑ちなみにこれを実行すると、コメントが消えます。。。
|
142
|
+
↑ちなみにこれを実行すると、コメントが消えます。。。
|
143
|
+
|
144
|
+
|
145
|
+
# 追記2(2018/03/06)
|
146
|
+
マニュアルにそれっぽい項目を発見しました。
|
147
|
+
→[PHP Wordマニュアルの5.15(P.28)](https://media.readthedocs.org/pdf/phpword/develop/phpword.pdf)
|
148
|
+
|
149
|
+
↓ 抜粋
|
150
|
+
|
151
|
+

|
152
|
+
|
153
|
+
|
154
|
+
しかし、`setChangeInfo`も`setTrackChange`も、サンプルがなくIDEの方でもそれらしきメソッドは発見できませんでした。。。
|
155
|
+
|
156
|
+
---
|
157
|
+
|
158
|
+
また、P.21にもそれらしきものがありました。
|
159
|
+
|
160
|
+
↓ 抜粋
|
161
|
+
|
162
|
+

|
163
|
+
|
164
|
+
しかし、`\PhpOffice\PhpWord\Element\ChangedElement`はなく、IDEでも`setChanged`メソッドは見当たりませんでした。
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -137,4 +137,6 @@
|
|
137
137
|
|
138
138
|
$writer = PhpOffice\PhpWord\IOFactory::createWriter($reader, 'Word2007');
|
139
139
|
$writer->save("sample.docx");
|
140
|
-
```
|
140
|
+
```
|
141
|
+
|
142
|
+
↑ちなみにこれを実行すると、コメントが消えます。。。
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -81,7 +81,7 @@
|
|
81
81
|
$phpword = new PhpOffice\PhpWord\PhpWord();
|
82
82
|
|
83
83
|
// 編集履歴記録開始
|
84
|
-
|
84
|
+
$phpword->getSettings()->setTrackRevisions(true);
|
85
85
|
// $phpword->getSettings()->setDoNotTrackMoves(true);
|
86
86
|
// $phpword->getSettings()->setDoNotTrackFormatting(true);
|
87
87
|
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,4 +68,73 @@
|
|
68
68
|
編集履歴を追加する方法はあるのでしょうか?
|
69
69
|
ご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。
|
70
70
|
|
71
|
-
よろしくお願いいたします。
|
71
|
+
よろしくお願いいたします。
|
72
|
+
|
73
|
+
|
74
|
+
# 追記
|
75
|
+
```php
|
76
|
+
<?php
|
77
|
+
|
78
|
+
require_once 'vendor/autoload.php';
|
79
|
+
|
80
|
+
// PHP Wordのインスタンス化
|
81
|
+
$phpword = new PhpOffice\PhpWord\PhpWord();
|
82
|
+
|
83
|
+
// 編集履歴記録開始
|
84
|
+
// $phpword->getSettings()->setTrackRevisions(true);
|
85
|
+
// $phpword->getSettings()->setDoNotTrackMoves(true);
|
86
|
+
// $phpword->getSettings()->setDoNotTrackFormatting(true);
|
87
|
+
|
88
|
+
// 新規セクション(docxにデータを書き出す場所の定義)
|
89
|
+
$section = $phpword->addSection();
|
90
|
+
|
91
|
+
// セクションにテキストを書き込む
|
92
|
+
$section->addText('ボクはテキスト');
|
93
|
+
|
94
|
+
// コメント書き込みを行うインスタンス生成
|
95
|
+
$comment = new PhpOffice\PhpWord\Element\Comment('Nな人', new DateTime(), 'nnahito');
|
96
|
+
|
97
|
+
// コメント内容
|
98
|
+
$comment->addText('ボクはコメント', array('bold' => true));
|
99
|
+
|
100
|
+
// コメント追記
|
101
|
+
$phpword->addComment($comment);
|
102
|
+
|
103
|
+
// 様々な書体を設定できる、テキストエリア
|
104
|
+
$textrun = $section->addTextRun();
|
105
|
+
|
106
|
+
// テキストを追加
|
107
|
+
$text = $textrun->addText('ボクはコメントを持っている');
|
108
|
+
|
109
|
+
// テキストに対し、コメントを付与する
|
110
|
+
$text->setCommentRangeStart($comment);
|
111
|
+
|
112
|
+
// テキストの追加
|
113
|
+
$section->addText('ボクはテキスト');
|
114
|
+
|
115
|
+
|
116
|
+
// DOCXファイルに書き出し
|
117
|
+
$objWriter = PhpOffice\PhpWord\IOFactory::createWriter($phpword, 'Word2007');
|
118
|
+
$objWriter->save('helloWorld.docx');
|
119
|
+
|
120
|
+
|
121
|
+
// ===========================================
|
122
|
+
|
123
|
+
// DOCXを読み込み
|
124
|
+
$reader = PhpOffice\PhpWord\IOFactory::load("helloWorld.docx", 'Word2007');
|
125
|
+
|
126
|
+
// 編集履歴系のクラスをインスタンス化
|
127
|
+
$trackChangesView = new PhpOffice\PhpWord\ComplexType\TrackChangesView();
|
128
|
+
|
129
|
+
// 新規セクション(docxにデータを書き出す場所の定義)
|
130
|
+
$section2 = $reader->addSection();
|
131
|
+
|
132
|
+
// セクションにテキストを書き込む
|
133
|
+
$trackChangesView->setComments('編集履歴?');
|
134
|
+
|
135
|
+
$sugoiyatsu = $section2->addTextRun();
|
136
|
+
$sugoiyatsu->addText('うぇい');
|
137
|
+
|
138
|
+
$writer = PhpOffice\PhpWord\IOFactory::createWriter($reader, 'Word2007');
|
139
|
+
$writer->save("sample.docx");
|
140
|
+
```
|