x2t - add convertation from open office template

This commit is contained in:
ElenaSubbotina
2018-03-15 14:49:10 +03:00
parent eade6a9377
commit 140b511c7e
4 changed files with 30 additions and 6 deletions

View File

@ -57,12 +57,15 @@ HRESULT convert_single(std::wstring srcFileName)
switch(fileChecker.nFileType)
{
case AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT:
case AVS_OFFICESTUDIO_FILE_DOCUMENT_OTT:
case AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT_FLAT: dstPath += L"-my.docx"; break;
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS:
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS:
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS_FLAT: dstPath += L"-my.xlsx"; break;
case AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_OTP:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP_FLAT: dstPath += L"-my.pptx"; break;
default:
@ -77,7 +80,10 @@ HRESULT convert_single(std::wstring srcFileName)
if (fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT ||
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS ||
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP)
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP ||
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_DOCUMENT_OTT ||
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS ||
fileChecker.nFileType == AVS_OFFICESTUDIO_FILE_PRESENTATION_OTP)
{
srcTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);

View File

@ -508,7 +508,10 @@ bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileN
const char *odtFormatLine = "application/vnd.oasis.opendocument.text";
const char *odsFormatLine = "application/vnd.oasis.opendocument.spreadsheet";
const char *odpFormatLine = "application/vnd.oasis.opendocument.presentation";
const char *epubFormatLine = "application/epub+zip";
const char *ottFormatLine = "application/vnd.oasis.opendocument.text-template";
const char *otsFormatLine = "application/vnd.oasis.opendocument.spreadsheet-template";
const char *otpFormatLine = "application/vnd.oasis.opendocument.presentation-template";
const char *epubFormatLine = "application/epub+zip";
COfficeUtils OfficeUtils(NULL);
@ -523,18 +526,27 @@ bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileN
{
nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT;
}
else if ( NULL != strstr((char*)pBuffer, odsFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS;
}
else if ( NULL != strstr((char*)pBuffer, odpFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP;
}
else if ( NULL != strstr((char*)pBuffer, epubFormatLine) )
else if ( NULL != strstr((char*)pBuffer, ottFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_PRESENTATION_OTT;
}
else if ( NULL != strstr((char*)pBuffer, otsFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_PRESENTATION_OTS;
}
else if ( NULL != strstr((char*)pBuffer, otpFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_PRESENTATION_OTP;
}
else if ( NULL != strstr((char*)pBuffer, epubFormatLine) )
{
nFileType = AVS_OFFICESTUDIO_FILE_DOCUMENT_EPUB;
}

View File

@ -48,6 +48,7 @@
#define AVS_OFFICESTUDIO_FILE_DOCUMENT_DOTX AVS_OFFICESTUDIO_FILE_DOCUMENT + 0x000c
#define AVS_OFFICESTUDIO_FILE_DOCUMENT_DOTM AVS_OFFICESTUDIO_FILE_DOCUMENT + 0x000d
#define AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT_FLAT AVS_OFFICESTUDIO_FILE_DOCUMENT + 0x000e
#define AVS_OFFICESTUDIO_FILE_DOCUMENT_OTT AVS_OFFICESTUDIO_FILE_DOCUMENT + 0x000f
#define AVS_OFFICESTUDIO_FILE_PRESENTATION 0x0080
#define AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX AVS_OFFICESTUDIO_FILE_PRESENTATION + 0x0001
@ -59,6 +60,7 @@
#define AVS_OFFICESTUDIO_FILE_PRESENTATION_POTX AVS_OFFICESTUDIO_FILE_PRESENTATION + 0x0007
#define AVS_OFFICESTUDIO_FILE_PRESENTATION_POTM AVS_OFFICESTUDIO_FILE_PRESENTATION + 0x0008
#define AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP_FLAT AVS_OFFICESTUDIO_FILE_PRESENTATION + 0x0009
#define AVS_OFFICESTUDIO_FILE_PRESENTATION_OTP AVS_OFFICESTUDIO_FILE_PRESENTATION + 0x0010
#define AVS_OFFICESTUDIO_FILE_SPREADSHEET 0x0100
#define AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0001
@ -69,6 +71,7 @@
#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_ODS_FLAT AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0008
#define AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS AVS_OFFICESTUDIO_FILE_SPREADSHEET + 0x0009
#define AVS_OFFICESTUDIO_FILE_CROSSPLATFORM 0x0200
#define AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF AVS_OFFICESTUDIO_FILE_CROSSPLATFORM + 0x0001

View File

@ -268,6 +268,9 @@ namespace NExtractTools
case AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT:
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP:
case AVS_OFFICESTUDIO_FILE_DOCUMENT_OTT:
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_OTS:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_OTP:
{
if (0 == sExt2.compare(_T(".bin"))) res = TCD_ODF2OOT_BIN;
else if (0 == sExt2.compare(_T(".doct")) ||