diff --git a/Common/OfficeFileFormatChecker2.cpp b/Common/OfficeFileFormatChecker2.cpp index 2ce0fdf5b0..1739368979 100644 --- a/Common/OfficeFileFormatChecker2.cpp +++ b/Common/OfficeFileFormatChecker2.cpp @@ -967,6 +967,10 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring &_fileName) nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_MHT; else if (0 == sExt.compare(L".md")) nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_MD; + else if (0 == sExt.compare(L".tsv")) + nFileType = AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + else if (0 == sExt.compare(L".scsv")) + nFileType = AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; else if (0 == sExt.compare(L".csv") || 0 == sExt.compare(L".tsv") || 0 == sExt.compare(L".dsv") || 0 == sExt.compare(L".cssv") || 0 == sExt.compare(L".xls") || 0 == sExt.compare(L".xlsx") || 0 == sExt.compare(L".xlsb")) nFileType = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; @@ -1800,6 +1804,10 @@ std::wstring COfficeFileFormatChecker::GetExtensionByType(int type) return L".ods"; case AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV: return L".csv"; + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV: + return L".tsv"; + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV: + return L".scsv"; case AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS_FLAT: return L".fods"; case AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS: @@ -1989,7 +1997,11 @@ int COfficeFileFormatChecker::GetFormatByExtension(const std::wstring &sExt) return AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB; if (L".xls" == ext) return AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS; - if (L".csv" == ext) + if (L".tsv" == ext) + return AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + if (L".scsv" == ext) + return AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; + if (L".csv" == ext || L".dsv" == ext) return AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; if (L".fods" == ext) return AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS_FLAT; diff --git a/Common/OfficeFileFormats.h b/Common/OfficeFileFormats.h index cf32b7b38e..7e1899c9d0 100644 --- a/Common/OfficeFileFormats.h +++ b/Common/OfficeFileFormats.h @@ -87,13 +87,14 @@ #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSM AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0005 #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTX AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0006 #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTM AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0007 - #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0008 #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS_FLAT AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0009 #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x000a #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX_FLAT AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x000b #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX_PACKAGE AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x000c #define AVS_OFFICESTUDIO_FILE_SPREADSHEET_NUMBERS AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x000d +#define AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0014 +#define AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0024 #define AVS_OFFICESTUDIO_FILE_CROSSPLATFORM 0x0200 #define AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF AVS_OFFICESTUDIO_FILE_CROSSPLATFORM + 0x0001 diff --git a/OOXML/Binary/Document/DocWrapper/DocxSerializer.cpp b/OOXML/Binary/Document/DocWrapper/DocxSerializer.cpp index 4fd76d71ce..1fca701256 100644 --- a/OOXML/Binary/Document/DocWrapper/DocxSerializer.cpp +++ b/OOXML/Binary/Document/DocWrapper/DocxSerializer.cpp @@ -198,7 +198,7 @@ BinDocxRW::CDocxSerializer::~CDocxSerializer() RELEASEOBJECT(m_pParamsWriter); RELEASEOBJECT(m_pCurFileWriter); } -bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sDstFileName, const std::wstring& sSrcPath, const std::wstring& sXMLOptions, const std::wstring& sTempPath) +bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sDstFileName, const std::wstring& sSrcPath, const std::wstring& sTempPath) { OOX::CPath pathMain(sDstFileName); @@ -317,7 +317,7 @@ bool BinDocxRW::CDocxSerializer::CreateDocxFolders(std::wstring strDirectory, st return res; } -bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath) +bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath) { RELEASEOBJECT(m_pCurFileWriter); diff --git a/OOXML/Binary/Document/DocWrapper/DocxSerializer.h b/OOXML/Binary/Document/DocWrapper/DocxSerializer.h index bd03c346f1..b2093b19b7 100644 --- a/OOXML/Binary/Document/DocWrapper/DocxSerializer.h +++ b/OOXML/Binary/Document/DocWrapper/DocxSerializer.h @@ -63,8 +63,8 @@ namespace BinDocxRW CDocxSerializer(); virtual ~CDocxSerializer(); - bool loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath); - bool saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sTempPath); + bool loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath); + bool saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sTempPath); bool unpackageFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath); bool convertFlat(const std::wstring& sSrcFileName, const std::wstring& sDstPath, bool& bMacro, const std::wstring& sTempPath); diff --git a/OOXML/Binary/Document/DocWrapper/XlsxSerializer.cpp b/OOXML/Binary/Document/DocWrapper/XlsxSerializer.cpp index 3ffd53923c..b07de0574f 100644 --- a/OOXML/Binary/Document/DocWrapper/XlsxSerializer.cpp +++ b/OOXML/Binary/Document/DocWrapper/XlsxSerializer.cpp @@ -57,7 +57,7 @@ namespace BinXlsxRW{ { } - void CXlsxSerializer::CreateXlsxFolders(const std::wstring& sXmlOptions, const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath) + void CXlsxSerializer::CreateXlsxFolders(const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath) { OOX::CPath pathMediaDir = sDstPath + FILE_SEPARATOR_STR + _T("xl") + FILE_SEPARATOR_STR + _T("media"); OOX::CPath pathEmbedDir = sDstPath + FILE_SEPARATOR_STR + _T("xl") + FILE_SEPARATOR_STR + _T("embeddings"); @@ -304,10 +304,9 @@ namespace BinXlsxRW{ NSDirectory::CreateDirectory(sTempDir); OOX::CPath oPath(sTempDir.c_str()); //шиблонные папки - std::wstring sXmlOptions = _T(""); std::wstring sMediaPath;// will be filled by 'CreateXlsxFolders' method std::wstring sEmbedPath; // will be filled by 'CreateXlsxFolders' method - CreateXlsxFolders (sXmlOptions, sTempDir, sMediaPath, sEmbedPath); + CreateXlsxFolders (sTempDir, sMediaPath, sEmbedPath); //заполняем Xlsx OOX::Spreadsheet::CXlsx oXlsx; helper.toXlsx(oXlsx); diff --git a/OOXML/Binary/Document/DocWrapper/XlsxSerializer.h b/OOXML/Binary/Document/DocWrapper/XlsxSerializer.h index 7d9d3bef7e..40c0788c20 100644 --- a/OOXML/Binary/Document/DocWrapper/XlsxSerializer.h +++ b/OOXML/Binary/Document/DocWrapper/XlsxSerializer.h @@ -64,7 +64,7 @@ namespace BinXlsxRW { _UINT32 loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedPath); _UINT32 saveToFile (const std::wstring& sDstPath, const std::wstring& sSrcFileName, const std::wstring& sXMLOptions); //------------------------------------------------ - static void CreateXlsxFolders (const std::wstring& sXmlOptions, const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath); + static void CreateXlsxFolders (const std::wstring& sDstPath, std::wstring& sMediaPath, std::wstring& sEmbedPath); void setTempDir (const std::wstring& sTempDir); void setFontDir (const std::wstring& sFontDir); diff --git a/OOXML/Binary/Sheets/Common/Common.cpp b/OOXML/Binary/Sheets/Common/Common.cpp index 5b62450540..c91b5db701 100644 --- a/OOXML/Binary/Sheets/Common/Common.cpp +++ b/OOXML/Binary/Sheets/Common/Common.cpp @@ -37,6 +37,7 @@ #include "../../../../Common/Base64.h" #include "../../../../DesktopEditor/common/Types.h" #include "../../../../DesktopEditor/raster/ImageFileFormatChecker.h" +#include "../../../../Common/OfficeFileFormats.h" #ifndef DISABLE_FILE_DOWNLOADER #include "../../../../Common/Network/FileTransporter/include/FileTransporter.h" @@ -114,17 +115,20 @@ namespace SerializeCommon { result = BinXlsxRW::c_oFileTypes::XLSX; nCodePage = 46; //default 46 временно CP_UTF8 - sDelimiter = L";"; // default cSaveFileType = BinXlsxRW::c_oFileTypes::XLSX;// default Lcid = -1;// default + sDelimiter = L","; // default common + + nullable csvFormat; nullable fileType; nullable codePage; nullable saveFileType; nullable LcidParam; - nullable delimiter; + nullable delimiter; + + sDelimiter = L","; // default common - // Read options XmlUtils::CXmlLiteReader oReader; if (true != oReader.FromString(sXMLOptions) || true != oReader.IsValid()) return; @@ -140,13 +144,20 @@ namespace SerializeCommon if (L"fileOptions" == sName) { WritingElement_ReadAttributes_Start(oReader) - WritingElement_ReadAttributes_Read_if (oReader, L"fileType", fileType) - WritingElement_ReadAttributes_Read_else_if (oReader, L"codePage", codePage) - WritingElement_ReadAttributes_Read_else_if (oReader, L"delimiter", delimiter) - WritingElement_ReadAttributes_Read_else_if (oReader, L"Lcid", LcidParam) - WritingElement_ReadAttributes_Read_else_if (oReader, L"saveFileType", saveFileType) + WritingElement_ReadAttributes_Read_if (oReader, L"fileType", fileType) + WritingElement_ReadAttributes_Read_else_if (oReader, L"codePage", codePage) + WritingElement_ReadAttributes_Read_else_if (oReader, L"delimiter", delimiter) + WritingElement_ReadAttributes_Read_else_if (oReader, L"Lcid", LcidParam) + WritingElement_ReadAttributes_Read_else_if (oReader, L"saveFileType", saveFileType) + WritingElement_ReadAttributes_Read_else_if (oReader, L"csvFormat", csvFormat) WritingElement_ReadAttributes_End(oReader) + if (csvFormat.IsInit()) + { + if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == csvFormat->GetValue()) sDelimiter = L"\t"; + else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == csvFormat->GetValue()) sDelimiter = L";"; + } + if (fileType.IsInit()) result = (BYTE)fileType->GetValue(); if (codePage.IsInit()) @@ -156,9 +167,7 @@ namespace SerializeCommon if(LcidParam.IsInit()) Lcid = LcidParam->GetValue(); if (delimiter.IsInit()) - { sDelimiter = delimiter.get(); - } break; } } diff --git a/OOXML/Binary/Sheets/Reader/BinaryWriterS.cpp b/OOXML/Binary/Sheets/Reader/BinaryWriterS.cpp index 58be742a2f..1a224bc9b8 100644 --- a/OOXML/Binary/Sheets/Reader/BinaryWriterS.cpp +++ b/OOXML/Binary/Sheets/Reader/BinaryWriterS.cpp @@ -9075,7 +9075,7 @@ BinaryFileWriter::~BinaryFileWriter() RELEASEOBJECT(m_oBcw); } _UINT32 BinaryFileWriter::Open(const std::wstring& sInputDir, const std::wstring& sFileDst, NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager, - NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter, const std::wstring& sXMLOptions, bool bIsNoBase64) +NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter, const std::wstring& sXMLOptions, bool bIsNoBase64) { _UINT32 result = 0; diff --git a/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp b/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp index a5a8fc2833..0d451dac47 100644 --- a/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp +++ b/OOXML/Binary/Sheets/Reader/ChartFromToBinary.cpp @@ -1328,8 +1328,8 @@ namespace BinXlsxRW BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sEmbeddingsPath, sThemePath, oDrawingConverter.GetContentTypes(), NULL, false); - std::wstring sXmlOptions, sMediaPath, sEmbedPath; - BinXlsxRW::CXlsxSerializer::CreateXlsxFolders(sXmlOptions, sDstEmbeddedTemp, sMediaPath, sEmbedPath); + std::wstring sMediaPath, sEmbedPath; + BinXlsxRW::CXlsxSerializer::CreateXlsxFolders(sDstEmbeddedTemp, sMediaPath, sEmbedPath); boost::unordered_map old_enum_map = oXlsx.m_mapEnumeratedGlobal; diff --git a/OOXML/Binary/Sheets/Writer/BinaryReaderS.cpp b/OOXML/Binary/Sheets/Writer/BinaryReaderS.cpp index 029401f3f4..9a84e723fc 100644 --- a/OOXML/Binary/Sheets/Writer/BinaryReaderS.cpp +++ b/OOXML/Binary/Sheets/Writer/BinaryReaderS.cpp @@ -9686,7 +9686,7 @@ int BinaryFileReader::ReadFile(const std::wstring& sSrcFileName, std::wstring sD BYTE saveFileType; _INT32 Lcid; - SerializeCommon::ReadFileType(sXMLOptions, fileType, nCodePage, sDelimiter, saveFileType, Lcid); + SerializeCommon::ReadFileType(sXMLOptions, fileType, nCodePage, sDelimiter, saveFileType, Lcid); //csv, tsc .. from XmlOptions ! // Делаем для CSV перебивку пути, иначе создается папка с одинаковым имеем (для rels) и файл не создается. if (BinXlsxRW::c_oFileTypes::CSV == fileType) diff --git a/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFile.h b/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFile.h index 1516e09660..2507bfbafd 100644 --- a/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFile.h +++ b/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFile.h @@ -60,9 +60,9 @@ public: CPPTXFile(); ~CPPTXFile(); - _UINT32 LoadFromFile(std::wstring sSrcFileName, std::wstring sDstPath, std::wstring sXMLOptions); + _UINT32 LoadFromFile(std::wstring sSrcFileName, std::wstring sDstPath); - _UINT32 SaveToFile(std::wstring sDstFileName, std::wstring sSrcPath, std::wstring sXMLOptions); + _UINT32 SaveToFile(std::wstring sDstFileName, std::wstring sSrcPath); void get_TempDirectory(std::wstring* pVal); HRESULT put_TempDirectory(std::wstring newVal); diff --git a/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFileRealization.cpp b/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFileRealization.cpp index 3ea9282f59..402df66191 100644 --- a/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFileRealization.cpp +++ b/OOXML/PPTXFormat/DrawingConverter/ASCOfficePPTXFileRealization.cpp @@ -58,7 +58,7 @@ CPPTXFile::~CPPTXFile() { RELEASEOBJECT(m_pPptxDocument); } -_UINT32 CPPTXFile::LoadFromFile(std::wstring sSrcFileName, std::wstring sDstPath, std::wstring sXMLOptions) +_UINT32 CPPTXFile::LoadFromFile(std::wstring sSrcFileName, std::wstring sDstPath) { std::wstring localTempDir(sDstPath); if(!localTempDir.empty()) @@ -107,7 +107,7 @@ _UINT32 CPPTXFile::LoadFromFile(std::wstring sSrcFileName, std::wstring sDstPath return 0; } -_UINT32 CPPTXFile::SaveToFile(std::wstring sDstFileName, std::wstring sSrcPath, std::wstring sXMLOptions) +_UINT32 CPPTXFile::SaveToFile(std::wstring sDstFileName, std::wstring sSrcPath) { if (NULL == m_pPptxDocument) return AVS_FILEUTILS_ERROR_CONVERT; diff --git a/OOXML/PPTXFormat/Logic/Pic.cpp b/OOXML/PPTXFormat/Logic/Pic.cpp index 0bb47518ae..9c52deab9d 100644 --- a/OOXML/PPTXFormat/Logic/Pic.cpp +++ b/OOXML/PPTXFormat/Logic/Pic.cpp @@ -1907,8 +1907,8 @@ namespace PPTX BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sEmbeddingsPath, sThemePath, oDrawingConverter.GetContentTypes(), NULL, true); - std::wstring sXmlOptions, sMediaPath, sEmbedPath; - BinXlsxRW::CXlsxSerializer::CreateXlsxFolders(sXmlOptions, sDstEmbeddedTemp, sMediaPath, sEmbedPath); + std::wstring sMediaPath, sEmbedPath; + BinXlsxRW::CXlsxSerializer::CreateXlsxFolders(sDstEmbeddedTemp, sMediaPath, sEmbedPath); boost::unordered_map old_enum_map = oXlsx.m_mapEnumeratedGlobal; @@ -1953,7 +1953,7 @@ namespace PPTX oDrawingConverter.m_pBinaryReader->Init(pData, 0, length); - std::wstring sXmlOptions, sMediaPath, sEmbedPath; + std::wstring sMediaPath, sEmbedPath; BinVsdxRW::CVsdxSerializer::CreateVsdxFolders(sDstEmbeddedTemp, sMediaPath, sEmbedPath); oDrawingConverter.SetDstPath(sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"visio"); diff --git a/OOXML/SystemUtility/SystemUtility.cpp b/OOXML/SystemUtility/SystemUtility.cpp index ac6d93af75..4e4be595cd 100644 --- a/OOXML/SystemUtility/SystemUtility.cpp +++ b/OOXML/SystemUtility/SystemUtility.cpp @@ -249,7 +249,7 @@ namespace OOX if (!bIsPoint) ++nFind; - return m_strFilename.substr(nFind); + return XmlUtils::GetLower(m_strFilename.substr(nFind)); } void CPath::SetExtention(const std::wstring& ext) { diff --git a/TxtFile/Source/TxtXmlFile.cpp b/TxtFile/Source/TxtXmlFile.cpp index 4783686e48..d8c09019e1 100644 --- a/TxtFile/Source/TxtXmlFile.cpp +++ b/TxtFile/Source/TxtXmlFile.cpp @@ -43,6 +43,8 @@ #include "../../OOXML/DocxFormat/App.h" #include "../../OOXML/DocxFormat/Core.h" +#include "../../OOXML/Common/SimpleTypes_Shared.h" + namespace NSBinPptxRW { class CDrawingConverter; @@ -55,37 +57,38 @@ CTxtXmlFile::CTxtXmlFile() { } -static int ParseTxtOptions(const std::wstring & sXmlOptions) +static void ParseTxtOptions(const std::wstring & sXmlOptions, int &encoding, int &lcid) { - int encoding = -1; - - XmlUtils::CXmlLiteReader xmlReader; - - if (xmlReader.FromString(sXmlOptions)) + encoding = -1; + lcid = -1; + + XmlUtils::CXmlLiteReader oReader; + if (oReader.FromString(sXmlOptions)) { - xmlReader.ReadNextNode();//root - + nullable codePage; + nullable LcidParam; - int nCurDepth = xmlReader.GetDepth(); - while ( xmlReader.ReadNextSiblingNode( nCurDepth ) ) + oReader.ReadNextNode();//root - + int nCurDepth = oReader.GetDepth(); + while (oReader.ReadNextSiblingNode(nCurDepth)) { - std::wstring sName = xmlReader.GetName(); - - if (sName == _T("TXTOptions")) + std::wstring sName = oReader.GetName(); + if (L"fileOptions" == sName) { - int nCurDepth1 = xmlReader.GetDepth(); - while ( xmlReader.ReadNextSiblingNode( nCurDepth1 ) ) - { - std::wstring sName1 = xmlReader.GetName(); - if (sName1 == _T("Encoding")) - { - std::wstring strValue = xmlReader.GetText2(); - encoding = XmlUtils::GetInteger(strValue); - } - } + WritingElement_ReadAttributes_Start(oReader) + WritingElement_ReadAttributes_Read_if(oReader, L"codePage", codePage) + WritingElement_ReadAttributes_Read_else_if(oReader, L"Lcid", LcidParam) + WritingElement_ReadAttributes_End(oReader) + + if (codePage.IsInit()) + encoding = (UINT)codePage->GetValue(); + if (LcidParam.IsInit()) + lcid = LcidParam->GetValue(); + + break; } } } - return encoding; } @@ -98,7 +101,8 @@ _UINT32 CTxtXmlFile::txt_LoadFromFile(const std::wstring & sSrcFileName, const s try { - int encoding = ParseTxtOptions(sXMLOptions); + int encoding, lcid; + ParseTxtOptions(sXMLOptions, encoding, lcid); Txt2Docx::Converter converter( encoding); converter.read(sSrcFileName); @@ -132,7 +136,8 @@ _UINT32 CTxtXmlFile::txt_SaveToFile(const std::wstring & sDstFileName, const std { converter.convert(); - int encoding = ParseTxtOptions(sXMLOptions); + int encoding, lcid; + ParseTxtOptions(sXMLOptions, encoding, lcid); if (encoding == EncodingType::Utf8) result = converter.writeUtf8(sDstFileName); diff --git a/X2tConverter/src/ASCConverters.cpp b/X2tConverter/src/ASCConverters.cpp index d00372fe7c..703dbd9827 100644 --- a/X2tConverter/src/ASCConverters.cpp +++ b/X2tConverter/src/ASCConverters.cpp @@ -223,13 +223,12 @@ namespace NExtractTools m_oCDocxSerializer.setIsNoBase64(params.getIsNoBase64()); m_oCDocxSerializer.setFontDir(params.getFontPath()); - std::wstring sXmlOptions; std::wstring sThemePath; // will be filled by 'CreateDocxFolders' method std::wstring sMediaPath; // will be filled by 'CreateDocxFolders' method std::wstring sEmbedPath; // will be filled by 'CreateDocxFolders' method m_oCDocxSerializer.CreateDocxFolders(sTempDocx, sThemePath, sMediaPath, sEmbedPath); - nRes = m_oCDocxSerializer.loadFromFile(sFilePathIn, sTempDocx, sXmlOptions, sThemePath, sMediaPath, sEmbedPath) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.loadFromFile(sFilePathIn, sTempDocx, sThemePath, sMediaPath, sEmbedPath) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; if (SUCCEEDED_X2T(nRes)) { std::wstring sTempUnencrypted = convertParams.m_sTempDir + FILE_SEPARATOR_STR + wsFilePathInFilename + L"_unencrypted"; @@ -779,7 +778,8 @@ namespace NExtractTools convertParams.m_bTempIsXmlOptions = true; nRes = xlsx_dir2xlst(sFrom, sTo, params, convertParams); } - else if ((0 != (AVS_OFFICESTUDIO_FILE_IMAGE & nFormatTo)) || AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo) + else if ((0 != (AVS_OFFICESTUDIO_FILE_IMAGE & nFormatTo)) || AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF == nFormatTo + || AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatTo) { if (params.needConvertToOrigin(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX) && ((0 != (AVS_OFFICESTUDIO_FILE_IMAGE & nFormatTo)) || AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF == nFormatTo)) @@ -808,7 +808,9 @@ namespace NExtractTools NSDirectory::CreateDirectory(sXlstDir); std::wstring sTFile = combinePath(sXlstDir, L"Editor.bin"); - if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo) + if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatTo) { convertParams.m_bTempIsXmlOptions = false; nRes = xlsx_dir2xlst_bin(sFrom, sTFile, params, convertParams); @@ -831,7 +833,9 @@ namespace NExtractTools _UINT32 fromXlsxDir(const std::wstring& sFrom, const std::wstring& sTo, int nFormatTo, InputParams& params, ConvertParams& convertParams) { _UINT32 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 + && AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV != nFormatTo + && AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV != nFormatTo) { if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatTo || AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSM == nFormatTo || @@ -910,7 +914,9 @@ namespace NExtractTools std::wstring sFromDir = NSDirectory::GetFolderPath(sFrom); nRes = dir2zip(sFromDir, sTo); } - else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo) + else if ( AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatTo) { nRes = xlst_bin2csv(sFrom, sTo, params, convertParams); } @@ -971,7 +977,7 @@ namespace NExtractTools } _UINT32 nRes = 0; - if ((AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom) && + if ((AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom || AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatFrom || AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatFrom) && (AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET == nFormatTo || AVS_OFFICESTUDIO_FILE_OTHER_JSON == nFormatTo)) { nRes = csv2xlst_bin(sFrom, sTo, params, convertParams); @@ -1086,7 +1092,9 @@ namespace NExtractTools { nRes = package2ooxml_dir(sFrom, sXlsxDir, params, convertParams); } - else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom) + else if ( AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatFrom) { nRes = csv2xlsx_dir(sFrom, sXlsxDir, params, convertParams); *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX; @@ -1631,8 +1639,12 @@ namespace NExtractTools if (TCD_ERROR == conversion) { - if (AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT == nFormatFrom || AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom) + if (AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT == nFormatFrom || AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom + || AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatFrom + || AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatFrom) + { return AVS_FILEUTILS_ERROR_CONVERT_NEED_PARAMS; + } else { // print out conversion direction error diff --git a/X2tConverter/src/cextracttools.cpp b/X2tConverter/src/cextracttools.cpp index 18e57bc044..567c4de500 100644 --- a/X2tConverter/src/cextracttools.cpp +++ b/X2tConverter/src/cextracttools.cpp @@ -420,6 +420,8 @@ namespace NExtractTools } break; case AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV: + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV: + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV: { if (0 == sExt2.compare(L".xlsx")) res = TCD_CSV2XLSX; diff --git a/X2tConverter/src/cextracttools.h b/X2tConverter/src/cextracttools.h index 49ac2ede4a..c63ae6d256 100644 --- a/X2tConverter/src/cextracttools.h +++ b/X2tConverter/src/cextracttools.h @@ -505,6 +505,7 @@ namespace NExtractTools int* m_nFormatTo; int* m_nCsvTxtEncoding; int* m_nCsvDelimiter; + int* m_nCsvFormat; std::wstring* m_sCsvDelimiterChar; int* m_nLcid; bool* m_bPaid; @@ -542,6 +543,7 @@ namespace NExtractTools m_sTitle = NULL; m_nFormatFrom = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); m_nFormatTo = NULL; + m_nCsvFormat = NULL; m_nCsvTxtEncoding = NULL; m_nCsvDelimiter = NULL; m_sCsvDelimiterChar = NULL; @@ -580,6 +582,7 @@ namespace NExtractTools RELEASEOBJECT(m_sTitle); RELEASEOBJECT(m_nFormatFrom); RELEASEOBJECT(m_nFormatTo); + RELEASEOBJECT(m_nCsvFormat); RELEASEOBJECT(m_nCsvTxtEncoding); RELEASEOBJECT(m_nCsvDelimiter); RELEASEOBJECT(m_sCsvDelimiterChar); @@ -913,22 +916,20 @@ namespace NExtractTools std::wstring getXmlOptions() { std::wstring sRes; - int nCsvEncoding = 46; // 65001 utf8 + int nTxtCsvEncoding = 46; // 65001 utf8 std::wstring cDelimiter = L","; - int LcId = -1; + int LcId = -1; if (NULL != m_nCsvTxtEncoding) - nCsvEncoding = *m_nCsvTxtEncoding; + nTxtCsvEncoding = *m_nCsvTxtEncoding; - std::wstring sExt = (m_nFormatTo && *m_nFormatTo == AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV) ? (NSFile::GetFileExtention(*m_sFileTo)) : - (NSFile::GetFileExtention(*m_sFileFrom)); - if(sExt == L"tsv") + if (m_nCsvFormat) { - cDelimiter = L"\t"; - } - else if (sExt == L"cssv") - { - cDelimiter = L";"; + switch (*m_nCsvFormat) + { + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV: cDelimiter = L"\t"; break; + case AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV: cDelimiter = L";"; break; + } } if (NULL != m_nCsvDelimiter) { @@ -956,35 +957,57 @@ namespace NExtractTools cDelimiter = *m_sCsvDelimiterChar; } - if(m_nLcid != NULL) - { - LcId = *m_nLcid; - } + if (m_nLcid != NULL) + { + LcId = *m_nLcid; + } int nFileType = 1; - if (NULL != m_nFormatFrom && AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == *m_nFormatFrom) + if (NULL != m_nFormatFrom && ( AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == *m_nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == *m_nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == *m_nFormatFrom)) + { nFileType = 2; + } else if (NULL != m_nFormatFrom && AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB == *m_nFormatFrom) + { nFileType = 4; + } std::wstring sSaveType; if (NULL != m_nFormatTo) { if (AVS_OFFICESTUDIO_FILE_OTHER_JSON == *m_nFormatTo) - sSaveType = _T(" saveFileType='3'"); - else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == *m_nFormatTo) + { + sSaveType = L" saveFileType='3'"; + } + else if ( AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == *m_nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == *m_nFormatTo || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == *m_nFormatTo) + { nFileType = 2; + } else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB == *m_nFormatTo) + { nFileType = 4; + } } sRes = L"" + std::to_wstring(nCsvEncoding) + L""; + sRes += L"/>"; return sRes; } @@ -1105,7 +1128,9 @@ namespace NExtractTools m_nCsvTxtEncoding = new int(nCodePage); } } - else if (AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom) + else if ( AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV == nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV == nFormatFrom || + AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV == nFormatFrom) { std::wstring sExt = NSFile::GetFileExtention(*m_sFileFrom); if (sExt == L"tsv") diff --git a/X2tConverter/src/lib/crypt.h b/X2tConverter/src/lib/crypt.h index 0fd0cfd7f5..27b060f84f 100644 --- a/X2tConverter/src/lib/crypt.h +++ b/X2tConverter/src/lib/crypt.h @@ -95,7 +95,6 @@ namespace NExtractTools case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTM: case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB: { - const std::wstring &sXmlOptions = params.getXmlOptions(); return xlsx2xlst_bin(sResultDecryptFile, sTo, params, convertParams); } break; @@ -116,7 +115,6 @@ namespace NExtractTools break; case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX_FLAT: { - const std::wstring &sXmlOptions = params.getXmlOptions(); return xlsxflat2xlst_bin(sResultDecryptFile, sTo, params, convertParams); } break; diff --git a/X2tConverter/src/lib/csv.h b/X2tConverter/src/lib/csv.h index 24ff3d6a91..a372342de1 100644 --- a/X2tConverter/src/lib/csv.h +++ b/X2tConverter/src/lib/csv.h @@ -51,6 +51,23 @@ namespace NExtractTools BYTE saveFileType; _INT32 lcid = -1; + if (!params.m_nFormatFrom) + params.m_nFormatFrom = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); + if (AVS_OFFICESTUDIO_FILE_UNKNOWN == *params.m_nFormatFrom) + { + std::wstring sExt = NSFile::GetFileExtention(*params.m_sFileFrom); + + if (sExt == L"tsv") + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + else if (sExt == L"cssv") + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; + else + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; + } + if (!params.m_nCsvFormat) + params.m_nCsvFormat = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); + *params.m_nCsvFormat = *params.m_nFormatFrom; + SerializeCommon::ReadFileType(params.getXmlOptions(), fileType, nCodePage, sDelimiter, saveFileType, lcid); CSVReader csvReader; @@ -88,7 +105,14 @@ namespace NExtractTools if(!params.m_nFormatTo) { params.m_nFormatTo = new int; - *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; + std::wstring sExt = NSFile::GetFileExtention(*params.m_sFileTo); + + if (sExt == L"tsv") + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + else if (sExt == L"cssv") + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; + else + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; } sXMLOptions = params.getXmlOptions();//_T(""); @@ -111,7 +135,19 @@ namespace NExtractTools if (!params.m_nFormatFrom) params.m_nFormatFrom = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); if (AVS_OFFICESTUDIO_FILE_UNKNOWN == *params.m_nFormatFrom) - *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; + { + std::wstring sExt = NSFile::GetFileExtention(*params.m_sFileFrom); + + if (sExt == L"tsv") + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + else if (sExt == L"cssv") + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; + else + *params.m_nFormatFrom = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; + } + if (!params.m_nCsvFormat) + params.m_nCsvFormat = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); + *params.m_nCsvFormat = *params.m_nFormatFrom; return oCXlsxSerializer.saveToFile(sTo, sFrom, params.getXmlOptions()); } @@ -140,10 +176,10 @@ namespace NExtractTools NSDirectory::CreateDirectory(sResultCsvDir); std::wstring sMediaPath; // will be filled by 'CreateXlsxFolders' method std::wstring sEmbedPath; // will be filled by 'CreateXlsxFolders' method + + oCXlsxSerializer.CreateXlsxFolders(sResultCsvDir, sMediaPath, sEmbedPath); + std::wstring sXmlOptions = params.getXmlOptions(); - - oCXlsxSerializer.CreateXlsxFolders(sXmlOptions, sResultCsvDir, sMediaPath, sEmbedPath); - nRes = oCXlsxSerializer.loadFromFile(sTargetBin, sTo, sXmlOptions, sMediaPath, sEmbedPath); } // удаляем EditorWithChanges, потому что он не в Temp @@ -187,7 +223,21 @@ namespace NExtractTools std::wstring sMediaPath; std::wstring sEmbedPath; - params.m_nFormatTo = new int(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV); + if (!params.m_nFormatTo) + params.m_nFormatTo = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); + + std::wstring sExt = NSFile::GetFileExtention(sTo); + + if (sExt == L"tsv") + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_TSV; + else if (sExt == L"cssv") + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_SCSV; + else + *params.m_nFormatTo = AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV; + + if (!params.m_nCsvFormat) + params.m_nCsvFormat = new int(AVS_OFFICESTUDIO_FILE_UNKNOWN); + *params.m_nCsvFormat = *params.m_nFormatTo; return oCXlsxSerializer.loadFromFile(sTempXlstFileEditor, sCSV, params.getXmlOptions(), sMediaPath, sEmbedPath); } diff --git a/X2tConverter/src/lib/doc.h b/X2tConverter/src/lib/doc.h index 2a1ae5256c..d90d8eac15 100644 --- a/X2tConverter/src/lib/doc.h +++ b/X2tConverter/src/lib/doc.h @@ -90,9 +90,7 @@ namespace NExtractTools m_oCDocxSerializer.setFontDir(params.getFontPath()); - std::wstring xml_options = params.getXmlOptions(); - - nRes = m_oCDocxSerializer.saveToFile (sTo, sResultDocxDir, xml_options, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.saveToFile (sTo, sResultDocxDir, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; } return nRes; } diff --git a/X2tConverter/src/lib/docx.h b/X2tConverter/src/lib/docx.h index 224935cdfc..46efe78502 100644 --- a/X2tConverter/src/lib/docx.h +++ b/X2tConverter/src/lib/docx.h @@ -86,7 +86,7 @@ namespace NExtractTools m_oCDocxSerializer.setFontDir(params.getFontPath()); // bool bRes = m_oCDocxSerializer.saveToFile (sResDoct, sSrcDocx, sTemp); - nRes = m_oCDocxSerializer.saveToFile(sTo, sFrom, params.getXmlOptions(), convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.saveToFile(sTo, sFrom, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; } // clear tmp param for this method convertParams.m_sTempParamOOXMLFile = L""; @@ -179,7 +179,7 @@ namespace NExtractTools if (SUCCEEDED_X2T(nRes)) { - nRes = m_oCDocxSerializer.loadFromFile(sTargetBin, convertParams.m_sTempResultOOXMLDirectory, sXmlOptions, sThemePath, sMediaPath, sEmbedPath) ? nRes : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.loadFromFile(sTargetBin, convertParams.m_sTempResultOOXMLDirectory, sThemePath, sMediaPath, sEmbedPath) ? nRes : AVS_FILEUTILS_ERROR_CONVERT; params.m_bMacro = m_oCDocxSerializer.getMacroEnabled(); } // удаляем EditorWithChanges, потому что он не в Temp @@ -207,7 +207,7 @@ namespace NExtractTools m_oCDocxSerializer.setIsNoBase64(params.getIsNoBase64()); m_oCDocxSerializer.setFontDir(params.getFontPath()); - _UINT32 nRes = m_oCDocxSerializer.saveToFile(sTo, sFrom, params.getXmlOptions(), convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + _UINT32 nRes = m_oCDocxSerializer.saveToFile(sTo, sFrom, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; return nRes; } diff --git a/X2tConverter/src/lib/odf.h b/X2tConverter/src/lib/odf.h index 6c0709b6dd..f0fdcdf0ac 100644 --- a/X2tConverter/src/lib/odf.h +++ b/X2tConverter/src/lib/odf.h @@ -125,7 +125,6 @@ namespace NExtractTools case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLTM: case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSB: { - const std::wstring &sXmlOptions = params.getXmlOptions(); convertParams.m_bTempIsXmlOptions = false; return xlsx_dir2xlst_bin(sTempUnpackedOox, sTo, params, convertParams); } @@ -189,7 +188,7 @@ namespace NExtractTools m_oCDocxSerializer.setFontDir(params.getFontPath()); - nRes = m_oCDocxSerializer.saveToFile(sTo, sTempUnpackedOox, params.getXmlOptions(), convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.saveToFile(sTo, sTempUnpackedOox, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; } return nRes; diff --git a/X2tConverter/src/lib/rtf.h b/X2tConverter/src/lib/rtf.h index c3423280f8..6a6bda06c5 100644 --- a/X2tConverter/src/lib/rtf.h +++ b/X2tConverter/src/lib/rtf.h @@ -81,9 +81,7 @@ namespace NExtractTools BinDocxRW::CDocxSerializer m_oCDocxSerializer; m_oCDocxSerializer.setFontDir(params.getFontPath()); - - std::wstring sXmlOptions; - _UINT32 res = m_oCDocxSerializer.saveToFile(sTo, sResultDocxDir, sXmlOptions, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + _UINT32 res = m_oCDocxSerializer.saveToFile(sTo, sResultDocxDir, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; return res; } @@ -108,7 +106,6 @@ namespace NExtractTools m_oCDocxSerializer.setFontDir(params.getFontPath()); - std::wstring sXmlOptions = _T(""); std::wstring sThemePath; // will be filled by 'CreateDocxFolders' method std::wstring sMediaPath; // will be filled by 'CreateDocxFolders' method std::wstring sEmbedPath; // will be filled by 'CreateDocxFolders' method @@ -117,7 +114,7 @@ namespace NExtractTools if (SUCCEEDED_X2T(nRes)) { - nRes = m_oCDocxSerializer.loadFromFile(sTargetBin, sResultDocxDir, sXmlOptions, sThemePath, sMediaPath, sEmbedPath) ? nRes : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.loadFromFile(sTargetBin, sResultDocxDir, sThemePath, sMediaPath, sEmbedPath) ? nRes : AVS_FILEUTILS_ERROR_CONVERT; if (SUCCEEDED_X2T(nRes)) { // docx folder to rtf diff --git a/X2tConverter/src/lib/txt.h b/X2tConverter/src/lib/txt.h index d525f080b8..f29df7d50a 100644 --- a/X2tConverter/src/lib/txt.h +++ b/X2tConverter/src/lib/txt.h @@ -63,7 +63,7 @@ namespace NExtractTools if (SUCCEEDED_X2T(nRes)) { BinDocxRW::CDocxSerializer m_oCDocxSerializer; - nRes = m_oCDocxSerializer.saveToFile(sTo, sResultDocxDir, params.getXmlOptions(), convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; + nRes = m_oCDocxSerializer.saveToFile(sTo, sResultDocxDir, convertParams.m_sTempDir) ? 0 : AVS_FILEUTILS_ERROR_CONVERT; } return nRes; } diff --git a/X2tConverter/src/lib/xlsx.h b/X2tConverter/src/lib/xlsx.h index 5d7e9fb0c8..d8fb262c02 100644 --- a/X2tConverter/src/lib/xlsx.h +++ b/X2tConverter/src/lib/xlsx.h @@ -282,14 +282,15 @@ namespace NExtractTools oCXlsxSerializer.setIsNoBase64(params.getIsNoBase64()); oCXlsxSerializer.setFontDir(params.getFontPath()); - std::wstring sXmlOptions = params.getXmlOptions(); std::wstring sMediaPath; // will be filled by 'CreateXlsxFolders' method std::wstring sEmbedPath; // will be filled by 'CreateXlsxFolders' method - oCXlsxSerializer.CreateXlsxFolders(sXmlOptions, convertParams.m_sTempResultOOXMLDirectory, sMediaPath, sEmbedPath); + oCXlsxSerializer.CreateXlsxFolders(convertParams.m_sTempResultOOXMLDirectory, sMediaPath, sEmbedPath); if (SUCCEEDED_X2T(nRes)) { + std::wstring sXmlOptions = params.getXmlOptions(); + nRes = oCXlsxSerializer.loadFromFile(sTargetBin, convertParams.m_sTempResultOOXMLDirectory, sXmlOptions, sMediaPath, sEmbedPath); params.m_bMacro = oCXlsxSerializer.getMacroEnabled(); } diff --git a/X2tConverter/test/win32Test/X2tTest.cpp b/X2tConverter/test/win32Test/X2tTest.cpp index 12a2f469c3..bd39c04af6 100644 --- a/X2tConverter/test/win32Test/X2tTest.cpp +++ b/X2tConverter/test/win32Test/X2tTest.cpp @@ -47,6 +47,7 @@ #pragma comment(lib, "../../../build/lib/win_64/DEBUG/kernel_network.lib") #pragma comment(lib, "../../../build/lib/win_64/DEBUG/kernel.lib") #pragma comment(lib, "../../../build/lib/win_64/DEBUG/UnicodeConverter.lib") + #pragma comment(lib, "../../../build/lib/win_64/DEBUG/ooxmlsignature.lib") #pragma comment(lib, "../../../build/lib/win_64/DEBUG/CryptoPPLib.lib") #else #pragma comment(lib, "../../../build/lib/win_64/doctrenderer.lib") @@ -63,6 +64,7 @@ #pragma comment(lib, "../../../build/lib/win_64/kernel_network.lib") #pragma comment(lib, "../../../build/lib/win_64/kernel.lib") #pragma comment(lib, "../../../build/lib/win_64/UnicodeConverter.lib") + #pragma comment(lib, "../../../build/lib/win_64/ooxmlsignature.lib") #pragma comment(lib, "../../../build/lib/win_64/CryptoPPLib.lib") #endif #pragma comment(lib, "../../../Common/3dParty/icu/win_64/build//icuuc.lib") @@ -83,6 +85,7 @@ #pragma comment(lib, "../../../build/lib/win_32/DEBUG/kernel.lib") #pragma comment(lib, "../../../build/lib/win_32/DEBUG/kernel_network.lib") #pragma comment(lib, "../../../build/lib/win_32/DEBUG/UnicodeConverter.lib") + #pragma comment(lib, "../../../build/lib/win_32/DEBUG/ooxmlsignature.lib") #pragma comment(lib, "../../../build/lib/win_32/DEBUG/CryptoPPLib.lib") #else #pragma comment(lib, "../../../build/lib/win_32/doctrenderer.lib") @@ -100,6 +103,7 @@ #pragma comment(lib, "../../../build/lib/win_32/kernel_network.lib") #pragma comment(lib, "../../../build/lib/win_32/kernel.lib") #pragma comment(lib, "../../../build/lib/win_32/UnicodeConverter.lib") + #pragma comment(lib, "../../../build/lib/win_32/ooxmlsignature.lib") #pragma comment(lib, "../../../build/lib/win_32/CryptoPPLib.lib") #endif #pragma comment(lib, "../../../Common/3dParty/icu/win_32/build/icuuc.lib")