質問するログイン新規登録

質問編集履歴

5

追記

2018/03/06 02:47

投稿

nnahito
nnahito

スコア2006

title CHANGED
File without changes
body CHANGED
@@ -161,4 +161,25 @@
161
161
 
162
162
  ![イメージ説明](6910ca18a47282c1f5eded7605f06be1.png)
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

現状報告

2018/03/06 02:47

投稿

nnahito
nnahito

スコア2006

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
+ ![イメージ説明](0eb0d4278a28b08626844ebf9ccb9e86.png)
152
+
153
+
154
+ しかし、`setChangeInfo`も`setTrackChange`も、サンプルがなくIDEの方でもそれらしきメソッドは発見できませんでした。。。
155
+
156
+ ---
157
+
158
+ また、P.21にもそれらしきものがありました。
159
+
160
+ ↓ 抜粋
161
+
162
+ ![イメージ説明](6910ca18a47282c1f5eded7605f06be1.png)
163
+
164
+ しかし、`\PhpOffice\PhpWord\Element\ChangedElement`はなく、IDEでも`setChanged`メソッドは見当たりませんでした。

3

追記

2018/03/06 02:18

投稿

nnahito
nnahito

スコア2006

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

修正

2018/03/05 11:26

投稿

nnahito
nnahito

スコア2006

title CHANGED
File without changes
body CHANGED
@@ -81,7 +81,7 @@
81
81
  $phpword = new PhpOffice\PhpWord\PhpWord();
82
82
 
83
83
  // 編集履歴記録開始
84
- // $phpword->getSettings()->setTrackRevisions(true);
84
+ $phpword->getSettings()->setTrackRevisions(true);
85
85
  // $phpword->getSettings()->setDoNotTrackMoves(true);
86
86
  // $phpword->getSettings()->setDoNotTrackFormatting(true);
87
87
 

1

追記

2018/03/05 11:25

投稿

nnahito
nnahito

スコア2006

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
+ ```