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

void SetProperty(sParam, sValue);

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

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

Параметры:

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

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

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