opentbs - Как программно установить заголовок документа? - PullRequest
0 голосов
/ 30 марта 2020

Я использую OpenTBS 1.9.6 для генерации документов OpenOffice odt. Мне нужно программно установить заголовок в свойствах документа.

Я установил заполнитель в заголовке свойств документа. Но это не работает.

переменная устанавливается глобальной с помощью $ TBS-> VarRef

Есть ли способ? Спасибо

placeholder in document properties

Я использую OpenTBS 1.9.6 и TinyButStrong 3.10.1. Я работаю с файлом odt, созданным OpenOffice 4.1.5.


`        include_once($this->context->parameters['appDir'] . '/openTBS/tbs_class.php'); // Load the TinyButStrong template engine
        include_once($this->context->parameters['appDir'] . '/openTBS/tbs_plugin_opentbs.php'); // Load the OpenTBS plugin</p>

<code>    $TBS = new \App\openTBS\clsTinyButStrong;
    $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
    $TBS->LoadTemplate($this->context->parameters['documents_path'] .'templates/'. $templateName, OPENTBS_ALREADY_UTF8);

    $res = $TBS->PlugIn(OPENTBS_SELECT_FILE, 'meta.xml');
    Debugger::log('OPENTBS_SELECT_FILE: '.$res); 
// function returned false

    $res = $TBS->PlugIn(OPENTBS_EDIT_ENTITY, 'meta.xml', 'office:document-meta/office:meta/dc:title', false, "My title", true);
    Debugger::log('OPENTBS_EDIT_ENTITY: '.$res);
// function returned false

`

Структура файла ODT выглядит следующим образом:

enter image description here

meta. xml выглядит так:

Любор Волески 2019-01-09T22: 04: 27,08 2020-04-07T18: 30: 26 PT20H5M8S 26 OpenOffice / 4.1.5 $ Unix OpenOffice.org_project / 415m1 $ Build-9789 комментарий ключевые слова Тема заглавие OpenTBS 1.9.6

1 Ответ

0 голосов
/ 04 апреля 2020

Эти свойства находятся во вложенном файле meta.xml. Поэтому вам просто нужно открыть его, и тогда автоматические c поля (onload, onshow) будут обработаны:

$TBS->PlugIn(OPENTBS_SELECT_FILE, 'meta.xml');

Вы также можете использовать специальные команды (медленнее):

$TBS->PlugIn(OPENTBS_EDIT_ENTITY, 'meta.xml', 'office:document-meta/office:meta/dc:subject',     false, "My subject", true);
$TBS->PlugIn(OPENTBS_EDIT_ENTITY, 'meta.xml', 'office:document-meta/office:meta/dc:title',       false, "My title", true);
$TBS->PlugIn(OPENTBS_EDIT_ENTITY, 'meta.xml', 'office:document-meta/office:meta/dc:description', false, "My description", true);
$TBS->PlugIn(OPENTBS_EDIT_ENTITY, 'meta.xml', 'office:document-meta/office:meta/meta:keyword',   false, "My keywords", true);
...