тег openTbs не обновляется

Мне нужно настроить фоновые цвета ячеек в зависимости от соседних ячеек.

Мой шаблон представляет собой текстовый документ, и я установил цвет ячейки на некоторый случайный цвет, чтобы мой интересующий XML-файл выглядел следующим образом:

<w:tc>
<w:tcPr>
<w:tcW w:w="5400" w:type="dxa"/>
<w:tcBorders>
<w:left w:val="single" w:sz="4" w:space="0" w:color="D9D9D9" w:themeColor="background1" w:themeShade="D9"/>
</w:tcBorders>
<w:shd w:val="clear" w:color="auto" w:fill="D9D9D9" w:themeFill="background1" w:themeFillShade="D9"/>
</w:tcPr>
<w:pPr><w:rPr><w:sz w:val="20"/><w:szCs w:val="20"/></w:rPr></w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="20"/><w:szCs w:val="20"/>
</w:rPr>
<w:t>[title.bg;att=w:shd#w:fill][title.quoteFOB]</w:t>
</w:r>

Важными моментами являются:

  • У меня есть тег w: shd с назначенным атрибутом wfill = ‘D9D9D9’
  • У меня есть [title.bg; att = w: shd # w: fill] запись в предназначенном шаблоне
    направить блок слияния title.bg к атрибуту wfill.
  • У меня есть запись слияния [title.quoteFOB], предназначенная для маршрутизации слияния
    Поле title.quoteFOB для содержимого ячейки.

Вызов для выполнения слияния выглядит так:

$TBS->MergeField('title', array('custName' => $custName,
'compName' => $compName, 'custAddress1' => $custAddr1,
'custAddress2' => $custAddr2, 'quoteNum' => $quoteNum,
'quoteRev' => $quoteRev, 'quoteForm' => $quoteForm,
'quoteExpDate' => $quoteExp, quoteTerms' => $quoteTerm,
'quoteFOB' => $quoteFob, bg'=>'00FF00'));

Это один из нескольких блоков слияния, содержащих несколько обновлений ячеек, каждый из которых, кажется, работает должным образом. Все, кроме цвета ячейки, меняется.

Я пробовал множество вещей, которые могут вызывать проблему, таких как: отключение всех слияний, кроме одного, изменение порядка полей и чтение пути ко многим записям stackoverflow. Ни один из которых не работал.

Я предполагал, что я идиот, и я мог понять это, посмотрев на код. и трассировка через код. Я обнаружил, что до вызова Show () TBS-> Source был таким, как ожидалось. Произошли все слияния, и значение w: fill было правильно подставлено в измененный XML. Но когда я звоню

$TBS->Show(OPENTBS_DOWNLOAD, "$fileName.docx") and
$TBS->Show(OPENTBS_STRING);

Выходной файл docx не содержит изменения -w: fill. Все до и после, но не это изменение. Теперь я вернулся к мысли, что я идиот, и я делаю что-то не так.

Есть идеи, что я делаю не так? Пожалуйста, помогите мне.

1

Решение

Недостаточно просто изменить атрибут -w: fill на «[title.bg; att = w: shd # w: fill]». Похоже, что MS-Word игнорировал этот атрибут, пока присутствовал параметр -w: themeFill = «background1». Как только я добавил ‘[title.tf; att = w: shd # w: themeFill], чтобы изменить атрибут themeFill на пустую строку, все работало, как и ожидалось.

Я смущен тем, как много времени мне потребовалось, чтобы сделать шаг назад и посмотреть на выходной XML второй / третий раз. Я надеюсь, что это поможет кому-нибудь еще не тратить столько времени, сколько я.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]