PHP Word — добавление версий отслеживания

Я японец. Так что, может быть, у меня плохой английский, извините.

Я хочу

Я хочу добавить «Отслеживание изменений» в *.docx By PHP WORD. Но я не могу найти, как это сделать.

1. Добавьте некоторые документы с помощью PHP WORD. 2. Добавьте некоторые исправления в документы с помощью PHP WORD. 3. Вывод документов файлом docx. 4. Откройте файл в Microsoft Word, и мы увидим документы с отслеживанием изменений.

Мой код

Я написал этот код, но не могу.

<?php

require_once 'vendor/autoload.php';

$phpword = new PhpOffice\PhpWord\PhpWord();

$phpword->getSettings()->setTrackRevisions(true);

$section = $phpword->addSection();

$section->addText('some text');


// output
$objWriter = PhpOffice\PhpWord\IOFactory::createWriter($phpword, 'Word2007');
$objWriter->save('helloWorld.docx');


// ===========================================

// read file
$reader = PhpOffice\PhpWord\IOFactory::load("helloWorld.docx", 'Word2007');

$trackChangesView = new PhpOffice\PhpWord\ComplexType\TrackChangesView();
$section2 = $reader->addSection();

$trackChangesView->setComments('history');

$sugoiyatsu = $section2->addTextRun();
$sugoiyatsu->addText('some some text');

$writer = PhpOffice\PhpWord\IOFactory::createWriter($reader, 'Word2007');
$writer->save("sample.docx");

Как я могу сделать? Если вы знаете, как это сделать, пожалуйста, скажите мне, как это сделать.

Спасибо.

Постскриптум

Я нашел это руководство, https://media.readthedocs.org/pdf/phpword/develop/phpword.pdf и стр. 28.

Они сказали, что Track changes can be set on text elements. There are 2 ways to set the change information on an element. Either by calling the setChangeInfo(), or by setting the TrackChange instance on the element with setTrackChange()..

Однако моя IDE (IntelliJ) не нашла метод setChangeInfo и метод setTrackChange... X(


person beginner programmer    schedule 05.03.2018    source источник
comment
Вы получаете какие-либо ошибки? Дайте stackoverflow.com /questions/1053424/ прочитать   -  person IsThisJavascript    schedule 05.03.2018
comment
Спасибо за ваш комментарий! Но у меня нет ошибок.... Я добавляю код, ini_set('display_errors', 1); ini_set('display_startup_errors', 1); отчет об ошибках (E_ALL); Но я никогда не показывал ошибки.   -  person beginner programmer    schedule 05.03.2018
comment
Файл создается? Пожалуйста, подробнее о том, что происходит   -  person IsThisJavascript    schedule 05.03.2018
comment
Да, файл создан. Файл экспортируется корректно, но не могу добавить Track Revisions. Однако, если я редактирую выходной файл непосредственно с помощью MS Word, отслеживание изменений включается.   -  person beginner programmer    schedule 06.03.2018


Ответы (1)


Я нашел, как мне это сделать. Невозможно добавить версии отслеживания в docx с помощью PHP Word v0.14.0.

(1) Я должен использовать код ветки разработки.

composer require phpoffice/phpword:dev-develop composer update

(2) Используйте этот код

<?php

require_once 'vendor/autoload.php';

use PhpOffice\PhpWord\Element\TrackChange;

$phpword = new PhpOffice\PhpWord\PhpWord();

$section = $phpword->addSection();

$textRun = $section->addTextRun();
$text = $textRun->addText('I am TEXT');
$text->setChangeInfo(TrackChange::INSERTED, 'nnahito', time() - 1800);

Библиография https://nnahito.com/articles/31

person beginner programmer    schedule 07.03.2018