我是日本人。也许我的英语太糟糕了,抱歉。
我想通过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(
答案 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);