Как создать определенный шаблон Word OpenTBS?

У меня есть PHP-программа, которая использует TinyButStrong вместе с плагином OpenTBS. Я перепробовал много примеров и редактировал xml напрямую. тем не менее, я не понимаю, и все эксперименты начинают расстраивать меня, так что вот моя проблема:

Шаблон — это просто стандартное письмо клиентам с адресной информацией сверху, например:

[a;block=w:body]

[a.company_name; magnet=w:p]
[a.first_name][a.last_name]
[a.street]
[a.postalcode] [a.city]
[a.country]

Как XML это выглядит так:

<w:p w:rsidR="001A4536" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a;block=w:body]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t xml:space="preserve">[a.company_name; magnet=w:p] </w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF">
<w:r w:rsidRPr="007D3CAF">
<w:t>[a.first_name] [a.last_name]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.street]</w:t>
</w:r>
</w:p>
<w:p w:rsidR="007D3CAF" w:rsidRDefault="007D3CAF" w:rsidP="007D3CAF">
<w:r>
<w:t>[a.postalcode] [a.city]</w:t>
</w:r>
</w:p>

В случае отсутствия названия компании или имени и фамилии строка не должна быть пропущена. Как мне этого добиться?

Если бы был лучший способ создать документацию по словам, чем с openTBS, я бы тоже об этом подумал?

0

Решение

Во-первых, это определение вашего блока block=w:body не подходит, потому что может быть только один <w:body> элемент в содержании XML. Но TBS будет дублировать этот элемент для каждой записи в ваших данных.

Вы должны изменить block=w:body с block=tbs:p+tbs:p+tbs:p+tbs:p+tbs:p который определяет блок на 5 пунктов.

В случае, если там нет названия компании или нет имени и фамилии
не должно быть потраченной линии. Как мне этого добиться?

Поле TBS [a.company_name; magnet=w:p] правильно используется.
Вы можете использовать то же самое для имени и фамилии, но в этом случае вы должны определить столбец данных, который является объединением обоих, чтобы использовать magnet параметр на это. Если вы не можете определить столбец данных, вы можете использовать параметр Ondata с пользовательской функцией PHP для добавления виртуального столбца.

1

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

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

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