diff --git a/DesktopEditor/doctrenderer/common_deploy.h b/DesktopEditor/doctrenderer/common_deploy.h index cbfff54c60..81ffc9d1fb 100644 --- a/DesktopEditor/doctrenderer/common_deploy.h +++ b/DesktopEditor/doctrenderer/common_deploy.h @@ -16,6 +16,7 @@ #define OFFICESTUDIO_FILE_DOCUMENT_DOTX OFFICESTUDIO_FILE_DOCUMENT + 0x000c #define OFFICESTUDIO_FILE_DOCUMENT_OTT OFFICESTUDIO_FILE_DOCUMENT + 0x000f #define OFFICESTUDIO_FILE_DOCUMENT_HTML OFFICESTUDIO_FILE_DOCUMENT + 0x0012 +#define OFFICESTUDIO_FILE_DOCUMENT_OFORM_PDF OFFICESTUDIO_FILE_DOCUMENT + 0x0017 #define OFFICESTUDIO_FILE_PRESENTATION 0x0080 #define OFFICESTUDIO_FILE_PRESENTATION_PPTX OFFICESTUDIO_FILE_PRESENTATION + 0x0001 diff --git a/DesktopEditor/doctrenderer/docbuilder.h b/DesktopEditor/doctrenderer/docbuilder.h index 0d20fb73b0..0f56481040 100644 --- a/DesktopEditor/doctrenderer/docbuilder.h +++ b/DesktopEditor/doctrenderer/docbuilder.h @@ -357,6 +357,7 @@ namespace NSDoctRenderer /** * Creates a new file. The type of the file which will be created needs to be set. * @param type The type of the file to be created set as a hexadecimal integer for the C++ code or docx, xlsx or pptx for the .docbuilder script file (see AVS_OFFICESTUDIO_FILE_XXX values). + * Possible values for wchar_t version: "docx", "pptx", "xlsx", "pdf", "form" * @return True if the operation is successful */ bool CreateFile(const int& type); diff --git a/DesktopEditor/doctrenderer/docbuilder.net/src/docbuilder.net.cpp b/DesktopEditor/doctrenderer/docbuilder.net/src/docbuilder.net.cpp index 436a3e3eb3..f5022fbde7 100644 --- a/DesktopEditor/doctrenderer/docbuilder.net/src/docbuilder.net.cpp +++ b/DesktopEditor/doctrenderer/docbuilder.net/src/docbuilder.net.cpp @@ -50,7 +50,8 @@ namespace docbuilder_net TXT = MASK + 0x0005, DOTX = MASK + 0x000c, OTT = MASK + 0x000f, - HTML = MASK + 0x0012 + HTML = MASK + 0x0012, + OFORM_PDF = MASK + 0x0017 }; public enum class Spreadsheet : int diff --git a/DesktopEditor/doctrenderer/docbuilder.python/src/docbuilder.py b/DesktopEditor/doctrenderer/docbuilder.python/src/docbuilder.py index c71994853e..978b306176 100644 --- a/DesktopEditor/doctrenderer/docbuilder.python/src/docbuilder.py +++ b/DesktopEditor/doctrenderer/docbuilder.python/src/docbuilder.py @@ -559,6 +559,7 @@ class FileTypes: DOTX = _MASK + 0x000c OTT = _MASK + 0x000f HTML = _MASK + 0x0012 + OFORM_PDF = _MASK + 0x0017 class Presentation: _MASK = 0x0080 diff --git a/DesktopEditor/doctrenderer/docbuilder_p.cpp b/DesktopEditor/doctrenderer/docbuilder_p.cpp index a3e4192a94..ea742b5ac9 100644 --- a/DesktopEditor/doctrenderer/docbuilder_p.cpp +++ b/DesktopEditor/doctrenderer/docbuilder_p.cpp @@ -1440,7 +1440,11 @@ namespace NSDoctRenderer bIsNoError = (0 == this->OpenFile(_builder_params[0].c_str(), _builder_params[1].c_str())); else if ("CreateFile" == sFuncNum) { - if (L"docx" == _builder_params[0] || L"docxf" == _builder_params[0] || L"oform" == _builder_params[0]) + if (L"docx" == _builder_params[0] || + L"docxf" == _builder_params[0] || + L"oform" == _builder_params[0] || + L"pdf" == _builder_params[0] || + L"form" == _builder_params[0]) bIsNoError = this->CreateFile(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX); else if (L"pptx" == _builder_params[0]) bIsNoError = this->CreateFile(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX); diff --git a/DesktopEditor/doctrenderer/docbuilder_p.h b/DesktopEditor/doctrenderer/docbuilder_p.h index f4cb3affb0..c0b3a5190a 100644 --- a/DesktopEditor/doctrenderer/docbuilder_p.h +++ b/DesktopEditor/doctrenderer/docbuilder_p.h @@ -110,6 +110,8 @@ namespace NSDoctRenderer nFormat = AVS_OFFICESTUDIO_FILE_DOCUMENT_OFORM; else if (L"html" == sExt) nFormat = AVS_OFFICESTUDIO_FILE_DOCUMENT_HTML_IN_CONTAINER; + else if (L"form" == sExt) + nFormat = AVS_OFFICESTUDIO_FILE_DOCUMENT_OFORM_PDF; return nFormat; } } @@ -619,7 +621,10 @@ namespace NSDoctRenderer if (type & AVS_OFFICESTUDIO_FILE_DOCUMENT) { - sEmptyPath = sEmptyPath + L"new.docx"; + if (type == AVS_OFFICESTUDIO_FILE_DOCUMENT_OFORM_PDF) + sEmptyPath = sEmptyPath + L"new.pdf"; + else + sEmptyPath = sEmptyPath + L"new.docx"; m_nFileType = 0; } else if (type & AVS_OFFICESTUDIO_FILE_PRESENTATION)