2016-02-01 3 views
0

Я пытаюсь добавить некоторые таблицы в документ, который после много работы показывает, что он прав. Сгенерировано с помощью PHPWord. Проблема в том, что независимо от того, что я добавляю в таблице, в стиле строки или ячейки, она не изменяет таблицу.Таблицы игнорируют заданный формат

Я уже пробовал: $table->addRow(15), $table->addRow(array('height'=>15)) и как показано ниже.

Кроме того, нет документации о том, как добавить ячейку с двумя строками текста, потому что ниже «Знак» я должен добавить «Имя».

//TABLE1 
$table = $section->addTable(array('width'=>100, 'borderSize'=> 1, 'borderColor'=>'000000')); 
$table->addRow(15,array('height'=>15)); 
$table->addCell(array('width'=>150))->addText('COMPANY', $smallBoldFont); 
$table->addRow(); 
$table->addCell()->addText(''); 
$table->addRow(); 
$table->addCell()->addText(''); 
//TABLE1 
$section->addTextBreak(2); 
//TABLE2 
$table2 = $section->addTable(array('borderSize'=> 1, 'borderColor'=>'000000')); 
$table2->addRow(100,array('height'=>80)); 
$table2->addCell(150,array('width'=>800))->addText('Recibed', $smallFont8); 
$table2->addRow(); 
$table2->addCell()->addText('Time:', $smallFont8); 
$table2->addCell()->addText('Sign:', $smallFont8); 
//TABLE2 

Есть ли причина, по которой PHPWord игнорирует мой стиль в виде таблиц? Есть ли другой способ сделать это лучше?

Желаемый результат:

enter image description here

Фактический выход:

enter image description here

ответ

1

В документации все. Просто, чтобы прочитать это глубоко. Вот раздел, как создать tables, в том числе создание таблиц с многоколоночными ячейками

Я не знаю, имеет ли PHPWord определенные предопределенные единицы для случая, если вы пропустите их использовать. Но, похоже, вам нужно установить единицы по ширине. Но вам нужно проверять единицы и номера по мере необходимости.

Заказ на создание многоколоночной ячейки - gridSpan(). Так линия для создания первой строки второй таблицы (возможно) должна быть:

$table2->addCell(150,array('width'=>800))->gridSpan(2) ->addText('Recibed', $smallFont8); 

PHPWord использует твип в качестве единицы по умолчанию. И все ячейки должны соответствовать своей ширине. Самая маленькая ячейка берется за целую колонку.

Для конвертации из твипов в другие блоки можно использовать EndMemo (Topography Conversion Online).

250 пикселей 3750 твипов.

+0

Я использовал все форматы, как показано в этом документе. Добавление единиц не работает, просто попробовал это. Последняя часть вашего ответа работала отлично, поэтому спасибо за это. – AleOtero93

+1

PHPWord кажется очень интересным - но я предпочитаю использовать свой собственный способ (мой собственный генератор кода HTML), даже если он не идеален. –

+0

Кажется, что единицы находятся в твитах, и все ячейки должны соответствовать его ширине. Наименьшая ширина ячейки принимается за весь столбец. Вот переход на другие единицы конвертер http://endmemo.com/convert/topography.php, например, 3750 твипов - 250 пикселей. Добавьте это в свой ответ, и я приму это. Так что другие могли найти эту информацию eassier. – AleOtero93

Смежные вопросы