• Post category:Класс CDocBuilder
  • Запись изменена:07.06.2023

void SetProperty(sParam, sValue);

Задает классу билдера аргумент в формате UTF8, который может быть передан в программу вне метода CDocBuilder.ExecuteCommand, т.е. либо как дополнительное свойство при запуске исполняемого файла Document Builder, либо как часть кода программы, но не в составе скрипта файла документа.

Обратите внимание, что для файла .docbuilder метод CDocBuilder.SetProperty явно не используется. Вместо этого сам аргумент используется как дополнительное свойство для исполняемого файла. См. пример ниже.

Параметры:

Название Тип Описание
sParam const char* TИмя параметра в формате UTF8, значение всегда —argument.
sValue const char* Значение параметра в формате UTF8, которое будет использоваться в документе.

Поддерживаемые свойства:

Название Тип Описание По умолчанию
—use-doctrenderer-scheme логический Указывает, используется ли режим doctrenderer при создании документа или получении содержимого из редактора при сохранении файла. false
—check-fonts логический Указывает, кэшируются ли системные шрифты для более быстрой работы. true
—work-directory const wchar_t* Путь к временному каталогу. «»
—cache-scripts логический Указывает, кэшируются ли скрипты sdkjs. true
—save-use-only-names логический Указывает, используются ли пути назначения (для работы сервера). Например: /home/user/1.txt => /tmp/1.txt false
—all-fonts-path const wchar_t* Путь к скрипту AllFonts.js. «»
—argument const wchar_t* Аргумент JSON, который отправляется в глобальные параметры всего открытого контекста JS. «»
—fonts-system логический Указывает, используются ли системные шрифты. true
—fonts-dir const wchar_t* Путь к каталогу дополнительных шрифтов (может быть много записей). «»

После добавления аргумент будет доступен как переменная Argument с установленными значениями параметров:

Argument.name === "Р7" // true

Пример

C++

std::wstring sWorkDirectory = NSUtils::GetBuilderDirectory();
CDocBuilder::Initialize(sWorkDirectory.c_str());
CDocBuilder oBuilder;
oBuilder.SetProperty("--argument", L"{\"name\":\"Р7\"}");
CDocBuilder::Dispose();

.docbuilder

docbuilder.exe "--argument={\"name\":\"Р7\"}" test.docbuilder

Добавление или удаление шрифтов

Также возможно обновить список шрифтов при добавлении новых шрифтов или удалении старых. Для этого используется переменная check-fonts:

Пример

C++

std::wstring sWorkDirectory = NSUtils::GetBuilderDirectory();
CDocBuilder::Initialize(sWorkDirectory.c_str());
CDocBuilder oBuilder;
oBuilder.SetProperty("--check-fonts", L"true");
CDocBuilder::Dispose();

.docbuilder

docbuilder.exe "--check-fonts=true" test.docbuilder