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

void SetPropertyW(sParam, sValue);

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

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

Параметры:

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

Supported properties:

НазваниеТипОписаниеПо умолчанию
—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.SetPropertyW("--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.SetPropertyW("--check-fonts", L"true");
CDocBuilder::Dispose();

.docbuilder

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