Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
1d331571
Commit
1d331571
authored
Jan 24, 2017
by
konovalovsergey
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'hotfix/v.4.2.6' into develop
parents
46ddcff0
2836fee4
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
130 additions
and
67 deletions
+130
-67
X2tConverter/src/ASCConverters.cpp
X2tConverter/src/ASCConverters.cpp
+130
-67
No files found.
X2tConverter/src/ASCConverters.cpp
View file @
1d331571
...
@@ -75,6 +75,26 @@ namespace NExtractTools
...
@@ -75,6 +75,26 @@ namespace NExtractTools
oApplicationFonts
.
Initialize
();
oApplicationFonts
.
Initialize
();
else
else
oApplicationFonts
.
InitializeFromFolder
(
sFontPath
);
oApplicationFonts
.
InitializeFromFolder
(
sFontPath
);
}
std
::
wstring
getExtentionByRasterFormat
(
int
format
)
{
std
::
wstring
sExt
;
switch
(
format
)
{
case
1
:
sExt
=
L".bmp"
;
break
;
case
2
:
sExt
=
L".gif"
;
break
;
case
3
:
sExt
=
L".jpg"
;
break
;
default:
sExt
=
L".png"
;
break
;
}
return
sExt
;
}
}
// docx -> bin
// docx -> bin
int
docx2doct_bin
(
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
InputParams
&
params
)
int
docx2doct_bin
(
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
InputParams
&
params
)
...
@@ -626,6 +646,101 @@ namespace NExtractTools
...
@@ -626,6 +646,101 @@ namespace NExtractTools
int
nReg
=
(
bPaid
==
false
)
?
0
:
1
;
int
nReg
=
(
bPaid
==
false
)
?
0
:
1
;
return
S_OK
==
pdfWriter
.
OnlineWordToPdf
(
sFrom
,
sTo
)
?
0
:
AVS_FILEUTILS_ERROR_CONVERT
;
return
S_OK
==
pdfWriter
.
OnlineWordToPdf
(
sFrom
,
sTo
)
?
0
:
AVS_FILEUTILS_ERROR_CONVERT
;
}
}
int
bin2image
(
const
std
::
wstring
&
sTFileDir
,
BYTE
*
pBuffer
,
LONG
lBufferLen
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
{
long
nRes
=
0
;
CApplicationFonts
oApplicationFonts
;
initApplicationFonts
(
oApplicationFonts
,
params
);
NSOnlineOfficeBinToPdf
::
CMetafileToRenderterRaster
imageWriter
(
NULL
);
imageWriter
.
wsHtmlPlace
=
sTFileDir
;
imageWriter
.
wsThemesPlace
=
sThemeDir
;
imageWriter
.
wsTempDir
=
sTemp
;
imageWriter
.
appFonts
=
&
oApplicationFonts
;
if
(
NULL
!=
params
.
m_oThumbnail
)
{
InputParamsThumbnail
*
oThumbnail
=
params
.
m_oThumbnail
;
if
(
NULL
!=
oThumbnail
->
format
)
{
imageWriter
.
m_nRasterFormat
=
*
oThumbnail
->
format
;
}
if
(
NULL
!=
oThumbnail
->
aspect
)
{
imageWriter
.
m_nSaveType
=
*
oThumbnail
->
aspect
;
}
if
(
NULL
!=
oThumbnail
->
first
)
{
imageWriter
.
m_bIsOnlyFirst
=
*
oThumbnail
->
first
;
}
if
(
NULL
!=
oThumbnail
->
width
)
{
imageWriter
.
m_nRasterW
=
*
oThumbnail
->
width
;
}
if
(
NULL
!=
oThumbnail
->
height
)
{
imageWriter
.
m_nRasterH
=
*
oThumbnail
->
height
;
}
}
std
::
wstring
sThumbnailDir
;
if
(
imageWriter
.
m_bIsOnlyFirst
)
{
imageWriter
.
m_sFileName
=
sTo
;
}
else
{
sThumbnailDir
=
sTemp
+
FILE_SEPARATOR_STR
+
L"thumbnails"
;
NSDirectory
::
CreateDirectory
(
sThumbnailDir
);
imageWriter
.
m_sFileName
=
sThumbnailDir
+
FILE_SEPARATOR_STR
+
L"image"
+
getExtentionByRasterFormat
(
imageWriter
.
m_nRasterFormat
);
}
nRes
=
imageWriter
.
ConvertBuffer
(
pBuffer
,
lBufferLen
)
?
nRes
:
AVS_FILEUTILS_ERROR_CONVERT
;
if
(
!
imageWriter
.
m_bIsOnlyFirst
)
{
COfficeUtils
oCOfficeUtils
(
NULL
);
nRes
=
S_OK
==
oCOfficeUtils
.
CompressFileOrDirectory
(
sThumbnailDir
,
sTo
,
-
1
)
?
nRes
:
AVS_FILEUTILS_ERROR_CONVERT
;
}
return
nRes
;
}
int
bin2imageBase64
(
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
{
long
nRes
=
0
;
NSFile
::
CFileBinary
oFile
;
if
(
!
oFile
.
OpenFile
(
sFrom
))
return
AVS_FILEUTILS_ERROR_CONVERT
;
DWORD
dwFileSize
=
oFile
.
GetFileSize
();
BYTE
*
pFileContent
=
new
BYTE
[
dwFileSize
];
if
(
!
pFileContent
)
{
oFile
.
CloseFile
();
return
AVS_FILEUTILS_ERROR_CONVERT
;
}
DWORD
dwReaded
;
oFile
.
ReadFile
(
pFileContent
,
dwFileSize
,
dwReaded
);
oFile
.
CloseFile
();
int
nBufferLen
=
NSBase64
::
Base64DecodeGetRequiredLength
(
dwFileSize
);
BYTE
*
pBuffer
=
new
BYTE
[
nBufferLen
];
if
(
!
pBuffer
)
{
RELEASEARRAYOBJECTS
(
pFileContent
);
return
AVS_FILEUTILS_ERROR_CONVERT
;
}
if
(
NSBase64
::
Base64Decode
((
const
char
*
)
pFileContent
,
dwFileSize
,
pBuffer
,
&
nBufferLen
))
{
std
::
wstring
sTFileDir
=
NSDirectory
::
GetFolderPath
(
sFrom
);
nRes
=
bin2image
(
sTFileDir
,
pBuffer
,
nBufferLen
,
sTo
,
sTemp
,
sThemeDir
,
params
);
}
else
{
nRes
=
AVS_FILEUTILS_ERROR_CONVERT
;
}
RELEASEARRAYOBJECTS
(
pBuffer
);
RELEASEARRAYOBJECTS
(
pFileContent
);
return
nRes
;
}
//doct_bin -> pdf
//doct_bin -> pdf
int
doct_bin2pdf
(
NSDoctRenderer
::
DoctRendererFormat
::
FormatFile
eFromType
,
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
bool
bPaid
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
int
doct_bin2pdf
(
NSDoctRenderer
::
DoctRendererFormat
::
FormatFile
eFromType
,
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
bool
bPaid
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
{
{
...
@@ -658,26 +773,7 @@ namespace NExtractTools
...
@@ -658,26 +773,7 @@ namespace NExtractTools
NSFile
::
CFileBinary
::
Remove
(
sPdfBinFile
);
NSFile
::
CFileBinary
::
Remove
(
sPdfBinFile
);
return
nRes
;
return
nRes
;
}
}
std
::
wstring
getExtentionByRasterFormat
(
int
format
)
{
std
::
wstring
sExt
;
switch
(
format
)
{
case
1
:
sExt
=
L".bmp"
;
break
;
case
2
:
sExt
=
L".gif"
;
break
;
case
3
:
sExt
=
L".jpg"
;
break
;
default:
sExt
=
L".png"
;
break
;
}
return
sExt
;
}
//doct_bin -> image
//doct_bin -> image
int
doct_bin2image
(
NSDoctRenderer
::
DoctRendererFormat
::
FormatFile
eFromType
,
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
bool
bPaid
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
int
doct_bin2image
(
NSDoctRenderer
::
DoctRendererFormat
::
FormatFile
eFromType
,
const
std
::
wstring
&
sFrom
,
const
std
::
wstring
&
sTo
,
const
std
::
wstring
&
sTemp
,
bool
bPaid
,
const
std
::
wstring
&
sThemeDir
,
InputParams
&
params
)
{
{
...
@@ -697,58 +793,21 @@ namespace NExtractTools
...
@@ -697,58 +793,21 @@ namespace NExtractTools
}
}
else
else
{
{
CApplicationFonts
oApplicationFonts
;
BYTE
*
pData
=
NULL
;
initApplicationFonts
(
oApplicationFonts
,
params
);
DWORD
nBytesCount
;
NSOnlineOfficeBinToPdf
::
CMetafileToRenderterRaster
imageWriter
(
NULL
);
if
(
NSFile
::
CFileBinary
::
ReadAllBytes
(
sPdfBinFile
,
&
pData
,
nBytesCount
))
imageWriter
.
wsHtmlPlace
=
sTFileDir
;
imageWriter
.
wsThemesPlace
=
sThemeDir
;
imageWriter
.
wsTempDir
=
sTemp
;
imageWriter
.
appFonts
=
&
oApplicationFonts
;
if
(
NULL
!=
params
.
m_oThumbnail
)
{
InputParamsThumbnail
*
oThumbnail
=
params
.
m_oThumbnail
;
if
(
NULL
!=
oThumbnail
->
format
)
{
imageWriter
.
m_nRasterFormat
=
*
oThumbnail
->
format
;
}
if
(
NULL
!=
oThumbnail
->
aspect
)
{
imageWriter
.
m_nSaveType
=
*
oThumbnail
->
aspect
;
}
if
(
NULL
!=
oThumbnail
->
first
)
{
imageWriter
.
m_bIsOnlyFirst
=
*
oThumbnail
->
first
;
}
if
(
NULL
!=
oThumbnail
->
width
)
{
imageWriter
.
m_nRasterW
=
*
oThumbnail
->
width
;
}
if
(
NULL
!=
oThumbnail
->
height
)
{
imageWriter
.
m_nRasterH
=
*
oThumbnail
->
height
;
}
}
std
::
wstring
sThumbnailDir
;
if
(
imageWriter
.
m_bIsOnlyFirst
)
{
{
imageWriter
.
m_sFileName
=
sTo
;
nRes
=
0
==
bin2image
(
sTFileDir
,
pData
,
nBytesCount
,
sTo
,
sTemp
,
sThemeDir
,
params
)
?
nRes
:
AVS_FILEUTILS_ERROR_CONVERT
;
RELEASEARRAYOBJECTS
(
pData
);
}
}
else
else
{
{
sThumbnailDir
=
sTemp
+
FILE_SEPARATOR_STR
+
_T
(
"thumbnails"
);
nRes
=
AVS_FILEUTILS_ERROR_CONVERT
;
NSDirectory
::
CreateDirectory
(
sThumbnailDir
);
imageWriter
.
m_sFileName
=
sThumbnailDir
+
FILE_SEPARATOR_STR
+
L"image"
+
getExtentionByRasterFormat
(
imageWriter
.
m_nRasterFormat
);
}
BYTE
*
pData
;
DWORD
nBytesCount
;
NSFile
::
CFileBinary
::
ReadAllBytes
(
sPdfBinFile
,
&
pData
,
nBytesCount
);
nRes
=
imageWriter
.
ConvertBuffer
(
pData
,
nBytesCount
)
?
nRes
:
AVS_FILEUTILS_ERROR_CONVERT
;
if
(
!
imageWriter
.
m_bIsOnlyFirst
)
{
COfficeUtils
oCOfficeUtils
(
NULL
);
nRes
=
S_OK
==
oCOfficeUtils
.
CompressFileOrDirectory
(
sThumbnailDir
,
sTo
,
-
1
)
?
nRes
:
AVS_FILEUTILS_ERROR_CONVERT
;
}
}
}
}
//delete sPdfBinFile, because it is not in Temp
if
(
NSFile
::
CFileBinary
::
Exists
(
sPdfBinFile
))
NSFile
::
CFileBinary
::
Remove
(
sPdfBinFile
);
return
nRes
;
return
nRes
;
}
}
...
@@ -2311,6 +2370,10 @@ namespace NExtractTools
...
@@ -2311,6 +2370,10 @@ namespace NExtractTools
{
{
nRes
=
bin2pdf
(
sFrom
,
sTo
,
sTemp
,
bPaid
,
sThemeDir
,
params
);
nRes
=
bin2pdf
(
sFrom
,
sTo
,
sTemp
,
bPaid
,
sThemeDir
,
params
);
}
}
else
if
(
0
!=
(
AVS_OFFICESTUDIO_FILE_IMAGE
&
nFormatTo
))
{
nRes
=
bin2imageBase64
(
sFrom
,
sTo
,
sTemp
,
sThemeDir
,
params
);
}
else
else
{
{
nRes
=
AVS_FILEUTILS_ERROR_CONVERT
;
nRes
=
AVS_FILEUTILS_ERROR_CONVERT
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment