Создать TextBox без рамки в PHPWord

Я пытаюсь создать TextBox без границы в PHPWord, но установка borderColor или borderSize на 0 или null не дает никакого эффекта, и я всегда получаю как минимум черную рамку вокруг текстового поля.

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$textbox = $section->addTextBox(
    array(
        'alignment'   => \PhpOffice\PhpWord\SimpleType\Jc::END,
        'width'       => 200,
        'height'      => 40,
        'borderColor' => null,
        'borderSize'  => 0,
    )
);
$textbox->addText('dummy-text ...', null, array('alignment' => \PhpOffice\PhpWord\SimpleType\Jc::END));
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord);
$objWriter->save('dummy.docx');

person Tobias Bauer    schedule 20.01.2017    source источник


Ответы (2)


Чтобы создать бордюр без рамки, вы можете использовать (git issue: no layout textbox):

'borderSize' => 'none'

Протестировано и работает с PhpWord 0.13.0 и открытием сгенерированного документа с помощью MsWord (похоже, libreoffice не распознал этот параметр)

person ejuhjav    schedule 24.01.2017
comment
Ну, я нашел это, прежде чем я спросил, но, к сожалению, это не сработало для меня. Если я использую код $section->addTextBox(array('alignment' => \PhpOffice\PhpWord\SimpleType\Jc::START, 'width' => 260, 'height' => 120, 'borderSize' => 'none'));, я получаю этот результат в Word для Mac версии 15.30 - person Tobias Bauer; 24.01.2017
comment
Это также не работает для меня, если я использую 'borderColor' => 'none', как это предлагается в ссылке, кстати - person Tobias Bauer; 24.01.2017
comment
В качестве временного решения я установил borderColor таким же, как цвет фона документа, например. 'borderColor' => 'white' - person Yoga; 19.09.2017

Если кто-то все еще ищет ответ в PHPWord 0.17, работает следующее решение:

'borderColor' => 'none'
person Barcioch    schedule 27.09.2020