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

int SaveFile(nType, sPath, sParams);

Сохраняет файл после внесения всех изменений. Необходимо установить тип файла, который будет сохранен.

Параметры:

НазваниеТипОписание
nTypeconst int&Тип сохраняемого файла задается как шестнадцатеричное целое число для кода C++. Для файла сценария .docconstructor возможны следующие значения: docx, odt, rtf, txt, pptx, xlsx, ods, csv, pdf (см. значения AVS_OFFICESTUDIO_FILE_XXX).
sPathconst wchar_t*Путь к сохраняемому файлу вместе с его именем и расширением.
sParamsconst wchar_t*Параметры, необходимые для корректного сохранения файла (чаще всего используется кодировка для типов файлов txt и csv или разделитель для файлов csv, для других типов файлов это просто пустая строка). Параметры добавляются в виде тегов XML, где m_nCsvTxtEncoding используется для кодирования текста, а m_nCsvDelimiter — для разделителя csv. Вы можете найти все поддерживаемые значения для кодировки i в этом файле. Поддерживаемые значения разделителей csv включают:

  • 0 — без разделителя
  • 1 — табуляция
  • 2 — точка с запятой
  • 3 — двоеточие
  • 4 — запятая
  • 5 — пробел

При сохранении в файл изображения (png или jpg) для создания миниатюр используются дополнительные параметры. Смотрите ниже, чтобы узнать их.

 

Пример

C++

std::wstring sWorkDirectory = NSUtils::GetBuilderDirectory();
CDocBuilder::Initialize(sWorkDirectory.c_str());
CDocBuilder oBuilder;
std::wstring sDstPath = sProcessDirectory + L"/result.docx";
oBuilder.SaveFile(OFFICESTUDIO_FILE_DOCUMENT_DOCX, sDstPath.c_str());
CDocBuilder::Dispose();

.docconstructor

builder.SaveFile("docx", "result.docx");

Сохранение в изображения

Document Builder позволяет сохранять файлы документов в файлы изображений, создавая эскизы первой страницы или всех страниц документа. Это делается с помощью параметров метода SaveFile(). Параметры добавляются в виде тегов XML, где можно использовать следующие теги:

  • m_oThumbnail — тег core, показывающий, что внутренние узлы будут использоваться для создания миниатюры из файла документа;
  • format -формат файла изображения, используемый для создания эскиза (может принимать следующие значения: 3 — для файла JPG, 4 — для файла PNG);
  • aspect — соотношение сторон изображения при создании миниатюры из файла документа (может принимать следующие значения: 1 — сохранится исходное соотношение сторон, 0 — изображение растянется по ширине и высоте, указанным ниже;
  • first —  следует ли преобразовать в эскиз только первую страницу или все страницы (может принимать следующие значения: true — будет преобразована только первая страница, false — для создания эскизов будут использованы все страницы документа, в этом случае файл будет сохранен в виде архива изображений, по одному на каждую страницу);
  • width -ширина изображения в пикселях;
  • height — высота изображения в пикселях.

Пример

C++

oBuilder.SaveFile(OFFICESTUDIO_FILE_IMAGE, L"thumbnail.png", "<m_oThumbnail><format>4</format><aspect>1</aspect><first>false</first><width>1000</width><height>1000</height></m_oThumbnail>");

.docconstructor пример с преобразованием только первой страницы

builder.SaveFile("image", "./thumbnail.png", "<m_oThumbnail><format>4</format><aspect>1</aspect><first>true</first><width>1000</width><height>1000</height></m_oThumbnail>");

.docconstructor пример с преобразованием всех страниц и на выходе получим архив

builder.SaveFile("image", "./thumbnail.zip", "<m_oThumbnail><format>4</format><aspect>1</aspect><first>false</first><width>1000</width><height>1000</height></m_oThumbnail>");