PHP Word - 添加跟踪修订

时间:2018-03-05 11:33:17

标签: php phpword

我是日本人。也许我的英语太糟糕了,抱歉。

我想要

我想通过PHP WORD将“Track Revisions”添加到* .docx。 但是我找不到怎么做。

1,通过PHP WORD添加一些文档。 2,通过PHP WORD为文档添加一些Track Revisions。 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(

1 个答案:

答案 0 :(得分:1)

我发现我是怎么做到的。 使用PHP Word v0.14.0无法将跟踪修订添加到docx。

(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