Commit 24d58fe1 authored by Alexey.Musinov's avatar Alexey.Musinov

fix for build

parent 48d4b72d
...@@ -487,10 +487,22 @@ namespace NExtractTools ...@@ -487,10 +487,22 @@ namespace NExtractTools
} }
else return AVS_FILEUTILS_ERROR_CONVERT; } else return AVS_FILEUTILS_ERROR_CONVERT; }
return xlsx_dir2xlst_bin(sTempUnpackedXLSX, sTo, params, true); return xlsx_dir2xlst_bin(sTempUnpackedXLSX, sTo, params, true, sFrom);
} }
int xlsx_dir2xlst_bin (const std::wstring &sXlsxDir, const std::wstring &sTo, InputParams& params, bool bXmlOptions) int xlsx_dir2xlst_bin (const std::wstring &sXlsxDir, const std::wstring &sTo, InputParams& params, bool bXmlOptions, const std::wstring &sXlsxFile)
{ {
//save Editor.xlsx for pivot
std::wstring sToDir = NSDirectory::GetFolderPath(sTo);
std::wstring sEditorXLSX = sToDir + FILE_SEPARATOR_STR + _T("Editor.xlsx");
if(sXlsxFile.empty())
{
dir2zip(sXlsxDir, sEditorXLSX);
}
else
{
NSFile::CFileBinary::Copy(sXlsxFile, sEditorXLSX);
}
// Save to file (from temp dir) // Save to file (from temp dir)
BinXlsxRW::CXlsxSerializer m_oCXlsxSerializer; BinXlsxRW::CXlsxSerializer m_oCXlsxSerializer;
...@@ -2597,14 +2609,26 @@ namespace NExtractTools ...@@ -2597,14 +2609,26 @@ namespace NExtractTools
return nRes; return nRes;
} }
int fromXlsxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params) int fromXlsxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params, const std::wstring &sXlsxFile)
{ {
int nRes = 0; int nRes = 0;
if(0 != (AVS_OFFICESTUDIO_FILE_SPREADSHEET & nFormatTo) && AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV != nFormatTo) if(0 != (AVS_OFFICESTUDIO_FILE_SPREADSHEET & nFormatTo) && AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV != nFormatTo)
{ {
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatTo) if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatTo)
{ {
nRes = dir2zip(sFrom, sTo); if(params.hasPassword())
{
std::wstring sToMscrypt = sTemp + FILE_SEPARATOR_STR + _T("tomscrypt.xlsx");
nRes = dir2zip(sFrom, sToMscrypt);
if(SUCCEEDED_X2T(nRes))
{
nRes = oox2mscrypt(sToMscrypt, sTo, sTemp, params);
}
}
else
{
nRes = dir2zip(sFrom, sTo);
}
} }
//else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS == nFormatTo) //else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS == nFormatTo)
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS == nFormatTo) else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS == nFormatTo)
...@@ -2612,15 +2636,15 @@ namespace NExtractTools ...@@ -2612,15 +2636,15 @@ namespace NExtractTools
nRes = xlsx_dir2ods(sFrom, sTo, sTemp, params); nRes = xlsx_dir2ods(sFrom, sTo, sTemp, params);
} }
else else
nRes = AVS_FILEUTILS_ERROR_CONVERT; nRes = AVS_FILEUTILS_ERROR_CONVERT;
} }
else if(AVS_OFFICESTUDIO_FILE_OTHER_JSON == nFormatTo) else if(AVS_OFFICESTUDIO_FILE_OTHER_JSON == nFormatTo)
{ {
nRes = xlsx_dir2xlst_bin(sFrom, sTo, params, true); nRes = xlsx_dir2xlst_bin(sFrom, sTo, params, true, sXlsxFile);
} }
else if(AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET == nFormatTo) else if(AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET == nFormatTo)
{ {
nRes = xlsx_dir2xlst_bin(sFrom, sTo, params, true); nRes = xlsx_dir2xlst_bin(sFrom, sTo, params, true, sXlsxFile);
} }
else else
{ {
...@@ -2628,9 +2652,9 @@ namespace NExtractTools ...@@ -2628,9 +2652,9 @@ namespace NExtractTools
NSDirectory::CreateDirectory(sXlstDir); NSDirectory::CreateDirectory(sXlstDir);
std::wstring sTFile = sXlstDir + FILE_SEPARATOR_STR + _T("Editor.bin"); std::wstring sTFile = sXlstDir + FILE_SEPARATOR_STR + _T("Editor.bin");
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo) if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo)
nRes = xlsx_dir2xlst_bin(sFrom, sTFile, params, false); nRes = xlsx_dir2xlst_bin(sFrom, sTFile, params, false, sXlsxFile);
else else
nRes = xlsx_dir2xlst_bin(sFrom, sTFile, params, true); nRes = xlsx_dir2xlst_bin(sFrom, sTFile, params, true, sXlsxFile);
if(SUCCEEDED_X2T(nRes)) if(SUCCEEDED_X2T(nRes))
{ {
nRes = fromXlstBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params); nRes = fromXlstBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);
...@@ -2639,106 +2663,135 @@ namespace NExtractTools ...@@ -2639,106 +2663,135 @@ namespace NExtractTools
return nRes; return nRes;
} }
int fromXlstBin(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params) int fromXlstBin(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params)
{ {
int nRes = 0; int nRes = 0;
if(AVS_OFFICESTUDIO_FILE_TEAMLAB_XLSY == nFormatTo) if(AVS_OFFICESTUDIO_FILE_TEAMLAB_XLSY == nFormatTo)
{ {
std::wstring sFromDir = NSDirectory::GetFolderPath(sFrom); std::wstring sFromDir = NSDirectory::GetFolderPath(sFrom);
nRes = dir2zip(sFromDir, sTo); nRes = dir2zip(sFromDir, sTo);
} }
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo) else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo)
{ {
nRes = xlst_bin2csv(sFrom, sTo, sTemp, sThemeDir, bFromChanges, params); nRes = xlst_bin2csv(sFrom, sTo, sTemp, sThemeDir, bFromChanges, params);
} }
else if(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF == nFormatTo) else if(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF == nFormatTo)
{ {
NSDoctRenderer::DoctRendererFormat::FormatFile eFromType = NSDoctRenderer::DoctRendererFormat::FormatFile::XLST; NSDoctRenderer::DoctRendererFormat::FormatFile eFromType = NSDoctRenderer::DoctRendererFormat::FormatFile::XLST;
nRes = doct_bin2pdf(eFromType, sFrom, sTo, sTemp, bPaid, sThemeDir, params); nRes = doct_bin2pdf(eFromType, sFrom, sTo, sTemp, bPaid, sThemeDir, params);
} }
else if(0 != (AVS_OFFICESTUDIO_FILE_IMAGE & nFormatTo)) else if(0 != (AVS_OFFICESTUDIO_FILE_IMAGE & nFormatTo))
{ {
NSDoctRenderer::DoctRendererFormat::FormatFile eFromType = NSDoctRenderer::DoctRendererFormat::FormatFile::XLST; NSDoctRenderer::DoctRendererFormat::FormatFile eFromType = NSDoctRenderer::DoctRendererFormat::FormatFile::XLST;
nRes = doct_bin2image(eFromType, sFrom, sTo, sTemp, bPaid, sThemeDir, params); nRes = doct_bin2image(eFromType, sFrom, sTo, sTemp, bPaid, sThemeDir, params);
} }
else if(0 != (AVS_OFFICESTUDIO_FILE_SPREADSHEET & nFormatTo)) else if(0 != (AVS_OFFICESTUDIO_FILE_SPREADSHEET & nFormatTo))
{ {
std::wstring sXlsxDir = sTemp + FILE_SEPARATOR_STR + L"xlsx_unpacked"; std::wstring sXlsxDir = sTemp + FILE_SEPARATOR_STR + _T("xlsx_unpacked");
NSDirectory::CreateDirectory(sXlsxDir); NSDirectory::CreateDirectory(sXlsxDir);
nRes = xlst_bin2xlsx_dir(sFrom, sTo, sXlsxDir, bFromChanges, sThemeDir, params); nRes = xlst_bin2xlsx_dir(sFrom, sTo, sXlsxDir, bFromChanges, sThemeDir, params);
if(SUCCEEDED_X2T(nRes)) if(SUCCEEDED_X2T(nRes))
{ {
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params); std::wstring sXlsxFile;
} nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params, sXlsxFile);
} }
else }
nRes = AVS_FILEUTILS_ERROR_CONVERT; else
return nRes; nRes = AVS_FILEUTILS_ERROR_CONVERT;
} return nRes;
int fromSpreadsheet(const std::wstring &sFrom, int nFormatFrom, const std::wstring &sTemp, InputParams& params) }
{ int fromSpreadsheet(const std::wstring &sFrom, int nFormatFrom, const std::wstring &sTemp, InputParams& params)
std::wstring sTo = *params.m_sFileTo; {
int nFormatTo = AVS_OFFICESTUDIO_FILE_UNKNOWN; std::wstring sTo = *params.m_sFileTo;
if(NULL != params.m_nFormatTo) int nFormatTo = AVS_OFFICESTUDIO_FILE_UNKNOWN;
nFormatTo = *params.m_nFormatTo; if(NULL != params.m_nFormatTo)
std::wstring sFontPath; nFormatTo = *params.m_nFormatTo;
if(NULL != params.m_sFontDir) std::wstring sFontPath;
sFontPath = *params.m_sFontDir; if(NULL != params.m_sFontDir)
std::wstring sThemeDir; sFontPath = *params.m_sFontDir;
if(NULL != params.m_sThemeDir) std::wstring sThemeDir;
sThemeDir = *params.m_sThemeDir; if(NULL != params.m_sThemeDir)
bool bFromChanges = false; sThemeDir = *params.m_sThemeDir;
if(NULL != params.m_bFromChanges) bool bFromChanges = false;
bFromChanges = *params.m_bFromChanges; if(NULL != params.m_bFromChanges)
bool bPaid = true; bFromChanges = *params.m_bFromChanges;
if(NULL != params.m_bPaid) bool bPaid = true;
bPaid = *params.m_bPaid; if(NULL != params.m_bPaid)
bPaid = *params.m_bPaid;
int nRes = 0;
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom) int nRes = 0;
{ if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom)
if(AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET == nFormatTo) {
{ if(AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET == nFormatTo)
nRes = csv2xlst_bin(sFrom, sTo, params); {
} nRes = csv2xlst_bin(sFrom, sTo, params);
else }
{ else
std::wstring sXlstDir = sTemp + FILE_SEPARATOR_STR + L"xlst_unpacked"; {
std::wstring sTFile = sXlstDir + FILE_SEPARATOR_STR + L"Editor.bin"; std::wstring sXlstDir = sTemp + FILE_SEPARATOR_STR + _T("xlst_unpacked");
NSDirectory::CreateDirectory(sXlstDir); NSDirectory::CreateDirectory(sXlstDir);
nRes = csv2xlst_bin(sFrom, sTFile, params); std::wstring sTFile = sXlstDir + FILE_SEPARATOR_STR + _T("Editor.bin");
if(SUCCEEDED_X2T(nRes)) nRes = csv2xlst_bin(sFrom, sTFile, params);
{ if(SUCCEEDED_X2T(nRes))
//зануляем sXmlOptions чтобы, при конвертации xlst bin -> xlsx не перепутать с csv {
nRes = fromXlstBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params); //зануляем sXmlOptions чтобы, при конвертации xlst bin -> xlsx не перепутать с csv
} nRes = fromXlstBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);
} }
} }
else }
{ else
std::wstring sXlsxDir = sTemp + FILE_SEPARATOR_STR + L"xlsx_unpacked"; {
NSDirectory::CreateDirectory(sXlsxDir); std::wstring sXlsxFile;
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatFrom) std::wstring sXlsxDir = sTemp + FILE_SEPARATOR_STR + _T("xlsx_unpacked");
{ NSDirectory::CreateDirectory(sXlsxDir);
nRes = zip2dir(sFrom, sXlsxDir); if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatFrom)
} {
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS == nFormatFrom) nRes = zip2dir(sFrom, sXlsxDir);
{ sXlsxFile = sFrom;
nRes = xls2xlsx_dir(sFrom, sXlsxDir, sTemp, params); }
} else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSM == nFormatFrom)
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS == nFormatFrom) {
{ if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTX == nFormatTo)
nRes = odf2oox_dir(sFrom, sXlsxDir, sTemp, params); {
} nRes = xlsm2xlsx_dir(sFrom, sXlsxDir, params);
else }
nRes = AVS_FILEUTILS_ERROR_CONVERT; else
if(SUCCEEDED_X2T(nRes)) {
{ nRes = zip2dir(sFrom, sXlsxDir);
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params); }
} }
} else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTX == nFormatFrom)
return nRes; {
} nRes = xltx2xlsx_dir(sFrom, sXlsxDir, params);
}
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTM == nFormatFrom)
{
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTX == nFormatTo)
{
nRes = xltm2xlsx_dir(sFrom, sXlsxDir, params);
}
else
{
nRes = xltm2xlsm_dir(sFrom, sXlsxDir, params);
}
}
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS == nFormatFrom)
{
nRes = xls2xlsx_dir(sFrom, sXlsxDir, sTemp, params);
}
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS == nFormatFrom)
{
nRes = odf2oox_dir(sFrom, sXlsxDir, sTemp, params);
}
else
nRes = AVS_FILEUTILS_ERROR_CONVERT;
if(SUCCEEDED_X2T(nRes))
{
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params, sXlsxFile);
}
}
return nRes;
}
int fromPptxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params) int fromPptxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment