Merge pull request 'Added support HWPML format' (#454) from feature/HWPML into release/v9.1.0

Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/core/pulls/454
This commit is contained in:
Oleg Korshul
2025-09-29 14:22:46 +00:00
120 changed files with 4821 additions and 1685 deletions

View File

@ -696,6 +696,10 @@ namespace NExtractTools
{
nRes = hwpx2docx_dir(sFrom, sDocxDir, params, convertParams);
}
else if (AVS_OFFICESTUDIO_FILE_DOCUMENT_HWPML == nFormatFrom)
{
nRes = hwpml2docx_dir(sFrom, sDocxDir, params, convertParams);
}
else
nRes = AVS_FILEUTILS_ERROR_CONVERT_PARAMS;

View File

@ -294,6 +294,10 @@ namespace NExtractTools
DECLARE_CONVERT_FUNC(hwpx2docx);
DECLARE_CONVERT_FUNC(hwpx2docx_dir);
//HWPML
DECLARE_CONVERT_FUNC(hwpml2docx);
DECLARE_CONVERT_FUNC(hwpml2docx_dir);
//-------------------------------------------------------------------------------------------------------------------------------------------------
_UINT32 convertmailmerge(const InputParamsMailMerge& oMailMergeSend, const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams);

View File

@ -6,17 +6,18 @@
namespace NExtractTools
{
_UINT32 hwp_file2docx(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams, bool bIsXmlFormat, bool bConvertToDir)
template <typename OpenMethod>
_UINT32 hwp_file2docx(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams, OpenMethod openMethod, bool bConvertToDir)
{
CHWPFile oFile;
oFile.SetTempDirectory(convertParams.m_sTempDir);
params.m_bMacro = false;
if (((bIsXmlFormat && !oFile.OpenHWPX(sFrom)) ||
(!bIsXmlFormat && !oFile.OpenHWP(sFrom))) ||
((bConvertToDir && !oFile.ConvertToOOXML_Dir(sTo)) ||
(!bConvertToDir && !oFile.ConvertToOOXML(sTo))))
if (!openMethod(oFile, sFrom) ||
(bConvertToDir && !oFile.ConvertToOOXML_Dir(sTo)) ||
(!bConvertToDir && !oFile.ConvertToOOXML(sTo)))
return AVS_FILEUTILS_ERROR_CONVERT;
return 0;
@ -24,22 +25,32 @@ namespace NExtractTools
_UINT32 hwp2docx(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, false, false);
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWP(sFrom); }, false);
}
_UINT32 hwp2docx_dir(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, false, true);
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWP(sFrom); }, true);
}
_UINT32 hwpx2docx(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, true, false);
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWPX(sFrom); }, false);
}
_UINT32 hwpx2docx_dir(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, true, true);
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWPX(sFrom); }, true);
}
_UINT32 hwpml2docx(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWPML(sFrom); }, false);
}
_UINT32 hwpml2docx_dir(const std::wstring& sFrom, const std::wstring& sTo, InputParams& params, ConvertParams& convertParams)
{
return hwp_file2docx(sFrom, sTo, params, convertParams, [](CHWPFile& oFile, const std::wstring& sFrom){ return oFile.OpenHWPML(sFrom); }, true);
}
}