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
f5ccf59b
Commit
f5ccf59b
authored
Apr 07, 2016
by
ElenaSubbotina
Committed by
Alexander Trofimov
May 21, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
XlsFormat, OdfFormat - уточнение вычисления ширины колонок
parent
1d3e864b
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
634 additions
and
356 deletions
+634
-356
ASCOfficeOdfFile/src/docx/measuredigits.cpp
ASCOfficeOdfFile/src/docx/measuredigits.cpp
+10
-7
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
...eOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
+96
-95
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.vcproj
...fFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.vcproj
+1
-49
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ReadMe.txt
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ReadMe.txt
+0
-33
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.cpp
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.cpp
+0
-8
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.h
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.h
+0
-25
ASCOfficeOdfFileW/source/OdfFormat/ods_conversion_context.cpp
...fficeOdfFileW/source/OdfFormat/ods_conversion_context.cpp
+10
-2
ASCOfficeOdfFileW/win32/ASCOfficeOdfFileW.sln
ASCOfficeOdfFileW/win32/ASCOfficeOdfFileW.sln
+17
-48
ASCOfficeXlsFile2/ASCOfficeXlsFileTest/ASCOfficeXlsFileTest.cpp
...iceXlsFile2/ASCOfficeXlsFileTest/ASCOfficeXlsFileTest.cpp
+1
-1
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.cpp
...XlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.cpp
+5
-0
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.h
...ceXlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.h
+2
-1
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.cpp
...iceXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.cpp
+5
-2
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.h
...fficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.h
+5
-1
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/Row.cpp
...fficeXlsFile2/source/XlsFormat/Logic/Biff_records/Row.cpp
+2
-2
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtClientAnchorSheet.cpp
...ogic/Biff_structures/ODRAW/OfficeArtClientAnchorSheet.cpp
+55
-54
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_unions/CELLTABLE.cpp
...XlsFile2/source/XlsFormat/Logic/Biff_unions/CELLTABLE.cpp
+5
-4
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_unions/CELL_bu.cpp
...ceXlsFile2/source/XlsFormat/Logic/Biff_unions/CELL_bu.cpp
+9
-9
ASCOfficeXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.cpp
...iceXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.cpp
+112
-3
ASCOfficeXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.h
...fficeXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.h
+12
-5
ASCOfficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.cpp
...fficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.cpp
+2
-2
ASCOfficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.h
ASCOfficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.h
+1
-1
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
+2
-2
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.h
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.h
+1
-1
ASCOfficeXlsFile2/win32/ASCOfficeXlsFile2.sln
ASCOfficeXlsFile2/win32/ASCOfficeXlsFile2.sln
+281
-1
No files found.
ASCOfficeOdfFile/src/docx/measuredigits.cpp
View file @
f5ccf59b
...
@@ -39,7 +39,7 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
...
@@ -39,7 +39,7 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
{
{
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadFontByName
(
L"Arial"
,
fontSize
,
fontStyle
,
dpi
,
dpi
)))
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadFontByName
(
L"Arial"
,
fontSize
,
fontStyle
,
dpi
,
dpi
)))
{
{
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
}
}
}
}
...
@@ -49,12 +49,15 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
...
@@ -49,12 +49,15 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
float
minWidth
=
0xffff
;
float
minWidth
=
0xffff
;
float
minHeight
=
0xffff
;
float
minHeight
=
0xffff
;
for
(
int
i
=
0
;
i
<=
9
;
++
i
)
//
for (int i = 0; i <= 9; ++i)
{
{
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadString2
(
boost
::
lexical_cast
<
std
::
wstring
>
(
i
),
0
,
0
)))
//if (FALSE == (hr = pFontManager->LoadString2( boost::lexical_cast<std::wstring>(i), 0, 0)))
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
// return std::pair<float, float>(7,8);
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadString2
(
L"xxxxx"
,
0
,
0
)))
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
TBBox
box
;
TBBox
box
;
try
try
{
{
box
=
pFontManager
->
MeasureString
();
box
=
pFontManager
->
MeasureString
();
...
@@ -74,7 +77,7 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
...
@@ -74,7 +77,7 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
if
(
box
.
fMaxY
-
box
.
fMinY
<
minHeight
)
minHeight
=
box
.
fMaxY
-
box
.
fMinY
;
if
(
box
.
fMaxY
-
box
.
fMinY
<
minHeight
)
minHeight
=
box
.
fMaxY
-
box
.
fMinY
;
}
}
return
std
::
pair
<
float
,
float
>
(
(
minWidth
+
2
*
maxWidth
)
/
3.
f
,
maxHeight
);
return
std
::
pair
<
float
,
float
>
(
maxWidth
/
5.
f
,
maxHeight
);
}
}
...
@@ -104,7 +107,7 @@ std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, dou
...
@@ -104,7 +107,7 @@ std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, dou
{
{
// TODO: default value!
// TODO: default value!
}
}
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
}
}
}
}
...
...
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.cpp
View file @
f5ccf59b
// ASCOfficeOdfFileWTest.cpp : Defines the entry point for the console application.
// ASCOfficeOdfFileWTest.cpp : Defines the entry point for the console application.
//
//
#include "
stdafx
.h"
#include "
../../OfficeUtils/src/OfficeUtils
.h"
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/timer.hpp>
#include <boost/timer.hpp>
#include <iostream>
#include <iostream>
#include <string>
#include <string>
#import "..\..\Redist\ASCOfficeOdfFileW.dll" rename_namespace("ASCOfficeOdfFileW") raw_interfaces_only
#include "../../Common/DocxFormat/Source/Base/Base.h"
#include "../../Common/DocxFormat/Source/SystemUtility/FileSystem/Directory.h"
#include "../../Common/DocxFormat/Source/SystemUtility/File.h"
#
define HR_RET(HR) if FAILED(hr = (HR)) { _ASSERTE(false); return -1; }
#
include "../source/Oox2OdfConverter/Oox2OdfConverter.h"
class
CCallback
:
public
ASCOfficeOdfFileW
::
_IAVSOfficeFileTemplateEvents
std
::
wstring
DetectTypeDocument
(
const
std
::
wstring
&
pathOOX
)
{
{
public:
std
::
wstring
sRes
;
CCallback
(){
m_cnt
=
0
;}
CFile
file
;
virtual
~
CCallback
(){}
STDMETHOD
(
GetTypeInfoCount
)(
UINT
*
)
{
return
E_NOTIMPL
;
}
CString
fileContentType
=
std_string2string
(
pathOOX
+
FILE_SEPARATOR_STR
+
L"[Content_Types].xml"
);
STDMETHOD
(
GetTypeInfo
)(
UINT
,
LCID
,
ITypeInfo
**
)
{
return
E_NOTIMPL
;
}
STDMETHOD
(
GetIDsOfNames
)(
REFIID
,
LPOLESTR
*
,
UINT
,
LCID
,
DISPID
*
)
{
return
E_NOTIMPL
;
}
if
(
file
.
OpenFile
(
fileContentType
)
!=
S_OK
)
return
sRes
;
STDMETHOD
(
Invoke
)(
int
nBufferSize
=
min
(
file
.
GetFileSize
(),
4096
);
DISPID
dispIdMember
,
BYTE
*
pBuffer
=
new
BYTE
[
nBufferSize
];
REFIID
riid
,
LCID
lcid
,
file
.
ReadFile
(
pBuffer
,
nBufferSize
);
WORD
wFlags
,
file
.
CloseFile
();
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
if
(
pBuffer
!=
NULL
)
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
)
{
{
switch
(
dispIdMember
)
{
case
1
:
std
::
cout
<<
"
\n
Percent : "
<<
pDispParams
->
rgvarg
[
0
].
lVal
/
10000.
<<
"%
\n
"
;
return
(
S_OK
);
break
;
default:
return
(
E_NOTIMPL
);
}
}
STDMETHOD
(
QueryInterface
)(
REFIID
iid
,
LPVOID
*
ppv
)
const
char
*
docxFormatLine
=
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"
;
{
const
char
*
dotxFormatLine
=
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml"
;
if
((
iid
==
__uuidof
(
ASCOfficeOdfFileW
::
_IAVSOfficeFileTemplateEvents
))
||
const
char
*
docmFormatLine
=
"application/vnd.ms-word.document.macroEnabled.main+xml"
;
(
iid
==
__uuidof
(
IDispatch
))
||
const
char
*
dotmFormatLine
=
"application/vnd.ms-word.template.macroEnabledTemplate.main+xml"
;
(
iid
==
__uuidof
(
IUnknown
)))
*
ppv
=
this
;
else
{
*
ppv
=
0
;
return
E_NOINTERFACE
;
}
AddRef
();
return
S_OK
;
}
STDMETHOD_
(
ULONG
,
AddRef
)()
{
return
InterlockedIncrement
(
&
m_cnt
);
}
STDMETHOD_
(
ULONG
,
Release
)()
{
const
char
*
xlsxFormatLine
=
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"
;
InterlockedDecrement
(
&
m_cnt
);
const
char
*
xltxFormatLine
=
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"
;
if
(
m_cnt
!=
0
)
return
m_cnt
;
const
char
*
xlsmFormatLine
=
"application/vnd.ms-excel.sheet.macroEnabled.main+xml"
;
delete
this
;
const
char
*
xltmFormatLine
=
"application/vnd.ms-excel.template.macroEnabled.main+xml"
;
return
0
;
}
protected:
LONG
m_cnt
;
private:
};
const
char
*
pptxFormatLine
=
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"
;
const
char
*
ppsxFormatLine
=
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"
;
const
char
*
potxFormatLine
=
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml"
;
const
char
*
pptmFormatLine
=
"application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml"
;
const
char
*
ppsmFormatLine
=
"application/vnd.ms-powerpoint.slideshow.macroEnabled.main+xml"
;
const
char
*
potmFormatLine
=
"application/vnd.ms-powerpoint.template.macroEnabled.main+xml"
;
int
ConvertSingle
(
int
argc
,
_TCHAR
*
argv
[])
std
::
string
strContentTypes
((
char
*
)
pBuffer
,
nBufferSize
);
{
ATL
::
CComPtr
<
ASCOfficeOdfFileW
::
IAVSOfficeFileTemplate
>
officeOdfFileW
;
HRESULT
hr
;
HR_RET
(
officeOdfFileW
.
CoCreateInstance
(
__uuidof
(
ASCOfficeOdfFileW
::
COfficeOdfFileW
)));
//_______________________________________________________________________________________________________
IUnknown
*
pUnk
;
IConnectionPointContainer
*
pContainer
;
IConnectionPoint
*
pCP
;
CCallback
*
pEvents
=
NULL
;
DWORD
dwAdvise
=
0
;
pEvents
=
new
CCallback
;
pEvents
->
AddRef
();
HR_RET
(
officeOdfFileW
->
QueryInterface
(
IID_IConnectionPointContainer
,
(
void
**
)
&
pContainer
));
HR_RET
(
pContainer
->
FindConnectionPoint
(
__uuidof
(
ASCOfficeOdfFileW
::
_IAVSOfficeFileTemplateEvents
),
&
pCP
));
HR_RET
(
pEvents
->
QueryInterface
(
IID_IUnknown
,(
VOID
**
)
&
pUnk
));
HR_RET
(
pCP
->
Advise
(
pUnk
,
&
dwAdvise
));
pContainer
->
Release
();
pContainer
=
NULL
;
pUnk
->
Release
();
pUnk
=
NULL
;
//_________________________________________________________________________________________________________
boost
::
timer
t1
;
officeOdfFileW
->
SaveToFile
(
ATL
::
CComBSTR
(
argv
[
2
]),
ATL
::
CComBSTR
(
argv
[
1
]),
NULL
);
std
::
cout
<<
"
\n\n
Time : "
<<
t1
.
elapsed
()
<<
"
\n
"
;
int
res
=
0
;
//____________________________________________________________________________________________________
if
(
(
res
=
strContentTypes
.
find
(
docxFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
dotxFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
docmFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
dotmFormatLine
))
>
0
)
{
sRes
=
L"text"
;
}
else
if
((
res
=
strContentTypes
.
find
(
xlsxFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
xltxFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
xlsmFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
xltmFormatLine
))
>
0
)
{
sRes
=
L"spreadsheet"
;
}
else
if
((
res
=
strContentTypes
.
find
(
pptxFormatLine
)
>
0
)
||
/*(res = strContentTypes.find(ppsxFormatLine))>0 ||*/
(
res
=
strContentTypes
.
find
(
potxFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
pptmFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
ppsmFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
potmFormatLine
))
>
0
||
(
res
=
strContentTypes
.
find
(
ppsxFormatLine
))
>
0
)
{
}
delete
[]
pBuffer
;
pBuffer
=
NULL
;
pCP
->
Unadvise
(
dwAdvise
);
}
pCP
->
Release
();
return
sRes
;
pEvents
->
Release
();
return
0
;
}
}
int
_tmain
(
int
argc
,
_TCHAR
*
argv
[])
int
_tmain
(
int
argc
,
_TCHAR
*
argv
[])
{
{
CoInitialize
(
NULL
);
HRESULT
hr
=
S_OK
;
if
(
argc
<
3
)
boost
::
timer
t1
;
return
-
1
;
//////////////////////////////////////////////////////////////////////////
std
::
wstring
srcFileName
=
argv
[
1
];
return
ConvertSingle
(
argc
,
argv
);
std
::
wstring
dstPath
=
argv
[
2
];
std
::
wstring
outputDir
=
FileSystem
::
Directory
::
GetFolderPath
(
dstPath
);
std
::
wstring
srcTempPath
=
FileSystem
::
Directory
::
CreateDirectoryWithUniqueName
(
outputDir
);
std
::
wstring
dstTempPath
=
FileSystem
::
Directory
::
CreateDirectoryWithUniqueName
(
outputDir
);
//
COfficeUtils
oCOfficeUtils
(
NULL
);
if
(
S_OK
!=
oCOfficeUtils
.
ExtractToDirectory
(
srcFileName
.
c_str
(),
srcTempPath
.
c_str
(),
NULL
,
0
))
return
S_FALSE
;
std
::
wstring
type
=
DetectTypeDocument
(
srcTempPath
);
Oox2Odf
::
Converter
converter
(
srcTempPath
,
type
,
L"C:
\\
Windows
\\
Fonts"
,
NULL
);
converter
.
convert
();
converter
.
write
(
dstTempPath
);
FileSystem
::
Directory
::
DeleteDirectory
(
srcTempPath
);
if
(
hr
!=
S_OK
)
return
hr
;
if
(
S_OK
!=
oCOfficeUtils
.
CompressFileOrDirectory
(
dstTempPath
.
c_str
(),
dstPath
.
c_str
(),
-
1
))
return
hr
;
FileSystem
::
Directory
::
DeleteDirectory
(
dstTempPath
);
////////////////////////////////////////////////////////////////////////
std
::
cout
<<
"
\n\n
Time : "
<<
t1
.
elapsed
()
<<
"
\n
"
;
return
0
;
return
0
;
}
}
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ASCOfficeOdfFileWTest.vcproj
View file @
f5ccf59b
...
@@ -332,64 +332,16 @@
...
@@ -332,64 +332,16 @@
<File
<File
RelativePath=
".\ASCOfficeOdfFileWTest.cpp"
RelativePath=
".\ASCOfficeOdfFileWTest.cpp"
>
>
</File>
<File
RelativePath=
".\stdafx.cpp"
>
<FileConfiguration
Name=
"Debug|Win32"
>
<Tool
Name=
"VCCLCompilerTool"
UsePrecompiledHeader=
"1"
/>
</FileConfiguration>
<FileConfiguration
<FileConfiguration
Name=
"Debug|x64"
Name=
"Debug|x64"
>
>
<Tool
<Tool
Name=
"VCCLCompilerTool"
Name=
"VCCLCompilerTool"
UsePrecompiledHeader=
"1"
UsePrecompiledHeader=
"0"
/>
</FileConfiguration>
<FileConfiguration
Name=
"Release|Win32"
>
<Tool
Name=
"VCCLCompilerTool"
UsePrecompiledHeader=
"1"
/>
</FileConfiguration>
<FileConfiguration
Name=
"Release|x64"
>
<Tool
Name=
"VCCLCompilerTool"
UsePrecompiledHeader=
"1"
/>
/>
</FileConfiguration>
</FileConfiguration>
</File>
</File>
</Filter>
</Filter>
<Filter
Name=
"Header Files"
Filter=
"h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier=
"{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=
".\stdafx.h"
>
</File>
</Filter>
<Filter
Name=
"Resource Files"
Filter=
"rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier=
"{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
<File
RelativePath=
".\ReadMe.txt"
>
</File>
</Files>
</Files>
<Globals>
<Globals>
</Globals>
</Globals>
...
...
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/ReadMe.txt
deleted
100644 → 0
View file @
1d3e864b
========================================================================
CONSOLE APPLICATION : ASCOfficeOdfFileWTest Project Overview
========================================================================
AppWizard has created this ASCOfficeOdfFileWTest application for you.
This file contains a summary of what you will find in each of the files that
make up your ASCOfficeOdfFileWTest application.
ASCOfficeOdfFileWTest.vcproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
ASCOfficeOdfFileWTest.cpp
This is the main application source file.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named ASCOfficeOdfFileWTest.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.cpp
deleted
100644 → 0
View file @
1d3e864b
// stdafx.cpp : source file that includes just the standard includes
// ASCOfficeOdfFileWTest.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
ASCOfficeOdfFileW/ASCOfficeOdfFileWTest/stdafx.h
deleted
100644 → 0
View file @
1d3e864b
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later.
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif
#include <stdio.h>
#include <tchar.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <windef.h>
#include <wingdi.h>
using
namespace
ATL
;
ASCOfficeOdfFileW/source/OdfFormat/ods_conversion_context.cpp
View file @
f5ccf59b
...
@@ -475,9 +475,17 @@ void ods_conversion_context::start_image(const std::wstring & image_file_name)
...
@@ -475,9 +475,17 @@ void ods_conversion_context::start_image(const std::wstring & image_file_name)
}
}
double
ods_conversion_context
::
convert_symbol_width
(
double
val
)
double
ods_conversion_context
::
convert_symbol_width
(
double
val
)
{
{
double
pixels
=
(
double
)(((
256.
*
val
+
(
int
)(
128.
/
font_metrix_
.
approx_symbol_size
))
/
256.
)
*
font_metrix_
.
approx_symbol_size
);
//width = ((int)((column_width * Digit_Width + 5) / Digit_Width * 256 )) / 256.;
//width = (int)(((256. * width + ((int)(128. / Digit_Width ))) / 256. ) * Digit_Width ); //in pixels
//
//_dxR = dxR / 1024. * width * 9525.; // to emu
val
=
((
int
)((
val
*
font_metrix_
.
approx_symbol_size
+
5
)
/
font_metrix_
.
approx_symbol_size
*
256
))
/
256.
;
double
pixels
=
(
int
)(((
256.
*
val
+
((
int
)(
128.
/
font_metrix_
.
approx_symbol_size
)))
/
256.
)
*
font_metrix_
.
approx_symbol_size
);
//in pixels
return
pixels
*
72.
/
96
;
return
pixels
*
4.8387
;
//* 9525. * 72.0 / (360000.0 * 2.54)
;
}
}
}
}
}
}
ASCOfficeOdfFileW/win32/ASCOfficeOdfFileW.sln
View file @
f5ccf59b
...
@@ -3,32 +3,29 @@ Microsoft Visual Studio Solution File, Format Version 9.00
...
@@ -3,32 +3,29 @@ Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatWriterLib", "..\source\win32\OdfFormat.vcproj", "{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatWriterLib", "..\source\win32\OdfFormat.vcproj", "{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}"
ProjectSection(ProjectDependencies) = postProject
ProjectSection(ProjectDependencies) = postProject
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Oox2OdfConverter", "..\source\win32\Oox2OdfConverter.vcproj", "{BEE01B53-244A-44E6-8947-ED9342D9247E}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Oox2OdfConverter", "..\source\win32\Oox2OdfConverter.vcproj", "{BEE01B53-244A-44E6-8947-ED9342D9247E}"
ProjectSection(ProjectDependencies) = postProject
ProjectSection(ProjectDependencies) = postProject
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD} = {E5A67556-44DA-4481-8F87-0A3AEDBD20DD}
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD} = {E5A67556-44DA-4481-8F87-0A3AEDBD20DD}
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeOdfFileWTest", "..\ASCOfficeOdfFileWTest\ASCOfficeOdfFileWTest.vcproj", "{FBA8446A-150F-4A10-B4DA-1022048D6473}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeOdfFileWTest", "..\ASCOfficeOdfFileWTest\ASCOfficeOdfFileWTest.vcproj", "{FBA8446A-150F-4A10-B4DA-1022048D6473}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeOdfFileW", "ASCOfficeOdfFileW.vcproj", "{6258296E-ABCE-4BC6-9F4A-8522CD615603}"
ProjectSection(ProjectDependencies) = postProject
ProjectSection(ProjectDependencies) = postProject
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{BEE01B53-244A-44E6-8947-ED9342D9247E} = {BEE01B53-244A-44E6-8947-ED9342D9247E}
{BEE01B53-244A-44E6-8947-ED9342D9247E} = {BEE01B53-244A-44E6-8947-ED9342D9247E}
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\..\ASCOfficeOdfFile\win32\formulasconvert.vcproj", "{94954A67-A853-43B1-A727-6EF2774C5A6A}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\..\ASCOfficeOdfFile\win32\formulasconvert.vcproj", "{94954A67-A853-43B1-A727-6EF2774C5A6A}"
...
@@ -39,22 +36,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\..\ASCOffic
...
@@ -39,22 +36,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\..\ASCOffic
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
ProjectSection(ProjectDependencies) = postProject
ProjectSection(ProjectDependencies) = postProject
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig2", "..\..\DesktopEditor\raster\JBig2\win32\jbig2.vcproj", "{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig2", "..\..\DesktopEditor\raster\JBig2\win32\jbig2.vcproj", "{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}"
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
ProjectSection(ProjectDependencies) = postProject
ProjectSection(ProjectDependencies) = postProject
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
...
@@ -214,34 +211,6 @@ Global
...
@@ -214,34 +211,6 @@ Global
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.Build.0 = Release|Win32
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.ActiveCfg = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.ActiveCfg = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.Build.0 = Release|x64
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.Build.0 = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Multithreaded|x64.Build.0 = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug Singlethreaded|x64.Build.0 = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug|Win32.ActiveCfg = Debug|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug|Win32.Build.0 = Debug|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug|x64.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Debug|x64.Build.0 = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Multithreaded|Win32.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Multithreaded|x64.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Multithreaded|x64.Build.0 = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Singlethreaded|x64.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release Singlethreaded|x64.Build.0 = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release|Win32.ActiveCfg = Release|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release|Win32.Build.0 = Release|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release|x64.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Release|x64.Build.0 = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Debug|Win32.Build.0 = Debug|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Debug|x64.ActiveCfg = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Debug|x64.Build.0 = Debug|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Release|Win32.ActiveCfg = Release|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Release|Win32.Build.0 = Release|Win32
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Release|x64.ActiveCfg = Release|x64
{6258296E-ABCE-4BC6-9F4A-8522CD615603}.Unicode Release|x64.Build.0 = Release|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.Build.0 = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.Build.0 = Debug|x64
...
...
ASCOfficeXlsFile2/ASCOfficeXlsFileTest/ASCOfficeXlsFileTest.cpp
View file @
f5ccf59b
...
@@ -26,7 +26,7 @@ int _tmain(int argc, _TCHAR* argv[])
...
@@ -26,7 +26,7 @@ int _tmain(int argc, _TCHAR* argv[])
std
::
wstring
dstTempPath
=
FileSystem
::
Directory
::
CreateDirectoryWithUniqueName
(
outputDir
);
std
::
wstring
dstTempPath
=
FileSystem
::
Directory
::
CreateDirectoryWithUniqueName
(
outputDir
);
hr
=
ConvertXls2Xlsx
(
srcFileName
,
dstTempPath
,
NULL
);
hr
=
ConvertXls2Xlsx
(
srcFileName
,
dstTempPath
,
L"C:
\\
Windows
\\
Fonts"
,
NULL
);
if
(
hr
!=
S_OK
)
return
hr
;
if
(
hr
!=
S_OK
)
return
hr
;
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.cpp
View file @
f5ccf59b
...
@@ -85,6 +85,11 @@ const int MulBlank::GetRow() const
...
@@ -85,6 +85,11 @@ const int MulBlank::GetRow() const
return
static_cast
<
unsigned
short
>
(
rw
);
return
static_cast
<
unsigned
short
>
(
rw
);
}
}
const
int
MulBlank
::
GetColumn
()
const
{
return
static_cast
<
unsigned
short
>
(
colFirst
);
}
int
MulBlank
::
serialize
(
std
::
wostream
&
stream
)
int
MulBlank
::
serialize
(
std
::
wostream
&
stream
)
{
{
CP_XML_WRITER
(
stream
)
CP_XML_WRITER
(
stream
)
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulBlank.h
View file @
f5ccf59b
...
@@ -39,7 +39,8 @@ public:
...
@@ -39,7 +39,8 @@ public:
void
writeFields
(
CFRecord
&
record
);
void
writeFields
(
CFRecord
&
record
);
void
readFields
(
CFRecord
&
record
);
void
readFields
(
CFRecord
&
record
);
const
int
GetRow
()
const
;
const
int
GetRow
()
const
;
const
int
GetColumn
()
const
;
int
serialize
(
std
::
wostream
&
stream
);
int
serialize
(
std
::
wostream
&
stream
);
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.cpp
View file @
f5ccf59b
...
@@ -31,8 +31,6 @@ void MulRk::readFields(CFRecord& record)
...
@@ -31,8 +31,6 @@ void MulRk::readFields(CFRecord& record)
{
{
global_info_
=
record
.
getGlobalWorkbookInfo
();
global_info_
=
record
.
getGlobalWorkbookInfo
();
Col
colFirst
;
Col
colLast
;
// A little hack to extract colLast before it is used
// A little hack to extract colLast before it is used
record
.
skipNunBytes
(
record
.
getDataSize
()
-
sizeof
(
unsigned
short
));
record
.
skipNunBytes
(
record
.
getDataSize
()
-
sizeof
(
unsigned
short
));
record
>>
colLast
;
record
>>
colLast
;
...
@@ -55,6 +53,11 @@ const int MulRk::GetRow() const
...
@@ -55,6 +53,11 @@ const int MulRk::GetRow() const
return
static_cast
<
unsigned
short
>
(
rw
);
return
static_cast
<
unsigned
short
>
(
rw
);
}
}
const
int
MulRk
::
GetColumn
()
const
{
return
static_cast
<
unsigned
short
>
(
colFirst
);
}
int
MulRk
::
serialize
(
std
::
wostream
&
stream
)
int
MulRk
::
serialize
(
std
::
wostream
&
stream
)
{
{
CP_XML_WRITER
(
stream
)
CP_XML_WRITER
(
stream
)
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/MulRk.h
View file @
f5ccf59b
...
@@ -22,11 +22,15 @@ public:
...
@@ -22,11 +22,15 @@ public:
void
writeFields
(
CFRecord
&
record
);
void
writeFields
(
CFRecord
&
record
);
void
readFields
(
CFRecord
&
record
);
void
readFields
(
CFRecord
&
record
);
const
int
GetRow
()
const
;
const
int
GetRow
()
const
;
const
int
GetColumn
()
const
;
int
serialize
(
std
::
wostream
&
stream
);
int
serialize
(
std
::
wostream
&
stream
);
//-----------------------------
//-----------------------------
GlobalWorkbookInfoPtr
global_info_
;
GlobalWorkbookInfoPtr
global_info_
;
Col
colFirst
;
Col
colLast
;
Rw
rw
;
Rw
rw
;
BiffStructurePtrVector
rgrkrec
;
BiffStructurePtrVector
rgrkrec
;
BiffStructurePtrVector
cells
;
BiffStructurePtrVector
cells
;
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/Row.cpp
View file @
f5ccf59b
...
@@ -88,9 +88,9 @@ int Row::serialize(std::wostream &stream)
...
@@ -88,9 +88,9 @@ int Row::serialize(std::wostream &stream)
if
(
ixfe_val
&&
xf_set
)
if
(
ixfe_val
&&
xf_set
)
{
{
int
xf
=
ixfe_val
>
global_info_
->
cellStyleXfs_count
?
ixfe_val
-
global_info_
->
cellStyleXfs_count
:
ixfe_val
;
int
xf
=
ixfe_val
>
=
global_info_
->
cellStyleXfs_count
?
ixfe_val
-
global_info_
->
cellStyleXfs_count
:
ixfe_val
;
if
(
xf
<
global_info_
->
cellXfs_count
)
if
(
xf
<
global_info_
->
cellXfs_count
&&
xf
>=
0
)
{
{
CP_XML_ATTR
(
L"s"
,
xf
);
CP_XML_ATTR
(
L"s"
,
xf
);
CP_XML_ATTR
(
L"customFormat"
,
true
);
CP_XML_ATTR
(
L"customFormat"
,
true
);
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtClientAnchorSheet.cpp
View file @
f5ccf59b
...
@@ -59,6 +59,8 @@ void OfficeArtClientAnchorSheet::loadFields(XLS::CFRecord& record)
...
@@ -59,6 +59,8 @@ void OfficeArtClientAnchorSheet::loadFields(XLS::CFRecord& record)
void
OfficeArtClientAnchorSheet
::
calculate
()
void
OfficeArtClientAnchorSheet
::
calculate
()
{
{
global_info
->
GetDigitFontSizePixels
();
XLS
::
GlobalWorkbookInfo
::
_sheet_size_info
zero
;
XLS
::
GlobalWorkbookInfo
::
_sheet_size_info
zero
;
XLS
::
GlobalWorkbookInfo
::
_sheet_size_info
&
sheet_info
=
global_info
->
current_sheet
>=
0
?
XLS
::
GlobalWorkbookInfo
::
_sheet_size_info
&
sheet_info
=
global_info
->
current_sheet
>=
0
?
global_info
->
sheet_size_info
[
global_info
->
current_sheet
-
1
]
:
zero
;
global_info
->
sheet_size_info
[
global_info
->
current_sheet
-
1
]
:
zero
;
...
@@ -67,35 +69,34 @@ void OfficeArtClientAnchorSheet::calculate()
...
@@ -67,35 +69,34 @@ void OfficeArtClientAnchorSheet::calculate()
//1 inch = 72 point
//1 inch = 72 point
//1 emu = 360000 * 2.54 inch
//1 emu = 360000 * 2.54 inch
double
kfCol
=
360000
/
72.
;
//double kfCol = 1250.;//360000 / 72. / 4.;
double
kfRow
=
(
360000
*
2.54
/
72
)
/
256.
;
double
kfRow
=
(
360000
*
2.54
/
72
)
/
256.
;
double
Digit_Width
=
8.43
;
double
Digit_Width
=
global_info
->
defaultDigitFontSize
.
first
;
double
column_width
=
0
;
double
Digit_Height
=
global_info
->
defaultDigitFontSize
.
second
;
double
width
=
0
,
column_width
=
0
;
if
(
sheet_info
.
customColumnsWidth
.
find
(
colL
)
!=
sheet_info
.
customColumnsWidth
.
end
())
if
(
sheet_info
.
customColumnsWidth
.
find
(
colL
)
!=
sheet_info
.
customColumnsWidth
.
end
())
{
{
column_width
=
sheet_info
.
customColumnsWidth
[
colL
]
/
1024.
;
column_width
=
sheet_info
.
customColumnsWidth
[
colL
];
}
}
else
else
column_width
=
sheet_info
.
defaultColumnWidth
;
column_width
=
sheet_info
.
defaultColumnWidth
/
1024.
;
//
double width = ((int)((column_width * Maximum_Digit_Width + 5 ) / Maximum_Digit_Width * 256. )) / 256.; //px
//
width = ((int)((column_width * Digit_Width + 5) / Digit_Width * 256 )) / 256.;
double
width
=
(
double
)(((
256.
*
column_width
+
(
int
)(
128.
/
Digit_Width
))
/
256.
)
*
Digit_Width
)
*
72
/
96.
;
width
=
(
int
)(((
256.
*
column_width
/*width*/
+
((
int
)(
128.
/
Digit_Width
)))
/
256.
)
*
Digit_Width
);
//in pixels
_dxL
=
dxL
*
kfCol
*
width
;
_dxL
=
dxL
/
1024.
*
width
*
9525.
;
//9525 => pixels to emu
if
(
sheet_info
.
customColumnsWidth
.
find
(
colR
)
!=
sheet_info
.
customColumnsWidth
.
end
())
if
(
sheet_info
.
customColumnsWidth
.
find
(
colR
)
!=
sheet_info
.
customColumnsWidth
.
end
())
{
{
column_width
=
sheet_info
.
customColumnsWidth
[
colR
]
/
1024.
;
column_width
=
sheet_info
.
customColumnsWidth
[
colR
];
}
}
else
else
column_width
=
sheet_info
.
defaultColumnWidth
;
column_width
=
sheet_info
.
defaultColumnWidth
/
1024.
;
width
=
(
double
)(((
256.
*
column_width
+
(
int
)(
128.
/
Digit_Width
))
/
256.
)
*
Digit_Width
)
*
72
/
96.
;
//width = ((int)((column_width * Digit_Width + 5) / Digit_Width * 256 )) / 256.;
width
=
(
int
)(((
256.
*
column_width
/*width*/
+
((
int
)(
128.
/
Digit_Width
)))
/
256.
)
*
Digit_Width
);
//in pixels
_dxR
=
dxR
*
kfCol
*
width
;
_dxR
=
dxR
/
1024.
*
width
*
9525.
;
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
if
(
sheet_info
.
customRowsHeight
.
find
(
rwT
)
!=
sheet_info
.
customRowsHeight
.
end
())
if
(
sheet_info
.
customRowsHeight
.
find
(
rwT
)
!=
sheet_info
.
customRowsHeight
.
end
())
{
{
...
@@ -112,45 +113,45 @@ void OfficeArtClientAnchorSheet::calculate()
...
@@ -112,45 +113,45 @@ void OfficeArtClientAnchorSheet::calculate()
_dyB
=
dyB
*
kfRow
*
sheet_info
.
defaultRowHeight
;
_dyB
=
dyB
*
kfRow
*
sheet_info
.
defaultRowHeight
;
//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------
for
(
int
i
=
0
;
i
<
colL
;
i
++
)
//
for (int i = 0 ; i < colL; i++)
{
//
{
if
(
sheet_info
.
customColumnsWidth
.
find
(
i
)
!=
sheet_info
.
customColumnsWidth
.
end
())
//
if (sheet_info.customColumnsWidth.find(i) != sheet_info.customColumnsWidth.end())
_x
+=
256
*
kfCol
*
sheet_info
.
customColumnsWidth
[
i
];
//
_x += 256 * kfCol * sheet_info.customColumnsWidth[i];
else
//
else
_x
+=
256
*
kfCol
*
sheet_info
.
defaultColumnWidth
;
//
_x += 256 * kfCol * sheet_info.defaultColumnWidth;
}
//
}
_x
+=
_dxL
;
//
_x += _dxL;
for
(
int
i
=
colL
;
i
<
colR
;
i
++
)
//
for (int i = colL ; i < colR; i++)
{
//
{
if
(
sheet_info
.
customColumnsWidth
.
find
(
i
)
!=
sheet_info
.
customColumnsWidth
.
end
())
//
if (sheet_info.customColumnsWidth.find(i) != sheet_info.customColumnsWidth.end())
_cx
+=
256
*
kfCol
*
sheet_info
.
customColumnsWidth
[
i
];
//
_cx += 256 * kfCol * sheet_info.customColumnsWidth[i];
else
//
else
_cx
+=
256
*
kfCol
*
sheet_info
.
defaultColumnWidth
;
//
_cx += 256 * kfCol * sheet_info.defaultColumnWidth;
}
//
}
_cx
+=
_dxR
;
//
_cx += _dxR;
for
(
int
i
=
0
;
i
<
rwT
;
i
++
)
//
for (int i = 0 ; i < rwT; i++)
{
//
{
if
(
sheet_info
.
customRowsHeight
.
find
(
i
)
!=
sheet_info
.
customRowsHeight
.
end
())
//
if (sheet_info.customRowsHeight.find(i) != sheet_info.customRowsHeight.end())
{
//
{
_y
+=
256
*
kfRow
*
sheet_info
.
customRowsHeight
[
i
];
//
_y += 256 * kfRow * sheet_info.customRowsHeight[i];
}
//
}
else
//
else
_y
+=
256
*
kfRow
*
sheet_info
.
defaultRowHeight
;
//
_y += 256 * kfRow * sheet_info.defaultRowHeight;
}
//
}
_y
+=
_dyT
;
//
_y += _dyT;
for
(
int
i
=
rwT
;
i
<
rwB
;
i
++
)
//
for (int i = rwT ; i < rwB; i++)
{
//
{
if
(
sheet_info
.
customRowsHeight
.
find
(
i
)
!=
sheet_info
.
customRowsHeight
.
end
())
//
if (sheet_info.customRowsHeight.find(i) != sheet_info.customRowsHeight.end())
{
//
{
_cy
+=
256
*
kfRow
*
sheet_info
.
customRowsHeight
[
i
];
//
_cy += 256 * kfRow * sheet_info.customRowsHeight[i];
}
//
}
else
//
else
_cy
+=
256
*
kfRow
*
sheet_info
.
defaultRowHeight
;
//
_cy += 256 * kfRow * sheet_info.defaultRowHeight;
}
//
}
_cy
+=
_dyT
;
//
_cy += _dyT;
}
}
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_unions/CELLTABLE.cpp
View file @
f5ccf59b
...
@@ -140,7 +140,7 @@ struct _CompareColumnCell
...
@@ -140,7 +140,7 @@ struct _CompareColumnCell
else
else
return
false
;
return
false
;
}
}
}
CompareColumCell
;
}
CompareColum
n
Cell
;
int
CELL_GROUP
::
serialize
(
std
::
wostream
&
stream
)
int
CELL_GROUP
::
serialize
(
std
::
wostream
&
stream
)
{
{
...
@@ -154,9 +154,10 @@ int CELL_GROUP::serialize(std::wostream & stream)
...
@@ -154,9 +154,10 @@ int CELL_GROUP::serialize(std::wostream & stream)
for
(
std
::
map
<
int
,
std
::
list
<
BaseObjectPtr
>>::
iterator
it_row
=
m_cells
.
begin
();
it_row
!=
m_cells
.
end
();
it_row
++
)
for
(
std
::
map
<
int
,
std
::
list
<
BaseObjectPtr
>>::
iterator
it_row
=
m_cells
.
begin
();
it_row
!=
m_cells
.
end
();
it_row
++
)
{
{
it_row
->
second
.
sort
(
CompareColumCell
);
it_row
->
second
.
sort
(
CompareColum
n
Cell
);
Row
*
row
=
NULL
;
Row
*
row
=
NULL
;
if
(
current_row
!=
m_rows
.
end
())
if
(
current_row
!=
m_rows
.
end
())
{
{
row
=
dynamic_cast
<
Row
*>
(
current_row
->
get
());
row
=
dynamic_cast
<
Row
*>
(
current_row
->
get
());
...
@@ -178,9 +179,9 @@ int CELL_GROUP::serialize(std::wostream & stream)
...
@@ -178,9 +179,9 @@ int CELL_GROUP::serialize(std::wostream & stream)
if
(
row
->
ixfe_val
&&
xf_set
)
if
(
row
->
ixfe_val
&&
xf_set
)
{
{
int
xf
=
ixfe_val
>
global_info_
->
cellStyleXfs_count
?
row
->
ixfe_val
-
global_info_
->
cellStyleXfs_count
:
row
->
ixfe_val
;
int
xf
=
row
->
ixfe_val
>=
global_info_
->
cellStyleXfs_count
?
row
->
ixfe_val
-
global_info_
->
cellStyleXfs_count
:
row
->
ixfe_val
;
if
(
xf
<
global_info_
->
cellXfs_count
)
if
(
xf
<
global_info_
->
cellXfs_count
&&
xf
>=
0
)
{
{
CP_XML_ATTR
(
L"s"
,
xf
);
CP_XML_ATTR
(
L"s"
,
xf
);
CP_XML_ATTR
(
L"customFormat"
,
true
);
CP_XML_ATTR
(
L"customFormat"
,
true
);
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_unions/CELL_bu.cpp
View file @
f5ccf59b
...
@@ -52,43 +52,43 @@ const bool CELL::loadContent(BinProcessor& proc)
...
@@ -52,43 +52,43 @@ const bool CELL::loadContent(BinProcessor& proc)
}
}
else
if
(
proc
.
optional
(
blank
))
else
if
(
proc
.
optional
(
blank
))
{
{
RowNumber
=
blank
.
getLocation
().
getRow
();
RowNumber
=
blank
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
blank
.
getLocation
().
getColumn
();
}
}
else
if
(
proc
.
optional
(
mulblank
))
else
if
(
proc
.
optional
(
mulblank
))
{
{
RowNumber
=
mulblank
.
GetRow
();
RowNumber
=
mulblank
.
GetRow
();
ColumnNumber
=
formula_union
.
getLocation
().
g
etColumn
();
ColumnNumber
=
mulblank
.
G
etColumn
();
}
}
else
if
(
proc
.
optional
(
rk
))
else
if
(
proc
.
optional
(
rk
))
{
{
RowNumber
=
rk
.
getLocation
().
getRow
();
RowNumber
=
rk
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
rk
.
getLocation
().
getColumn
();
}
}
else
if
(
proc
.
optional
(
mulrk
))
else
if
(
proc
.
optional
(
mulrk
))
{
{
RowNumber
=
mulrk
.
GetRow
();
RowNumber
=
mulrk
.
GetRow
();
ColumnNumber
=
formula_union
.
getLocation
().
g
etColumn
();
ColumnNumber
=
mulrk
.
G
etColumn
();
}
}
else
if
(
proc
.
optional
(
boolerr
))
else
if
(
proc
.
optional
(
boolerr
))
{
{
RowNumber
=
boolerr
.
getLocation
().
getRow
();
RowNumber
=
boolerr
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
boolerr
.
getLocation
().
getColumn
();
}
}
else
if
(
proc
.
optional
(
number
))
else
if
(
proc
.
optional
(
number
))
{
{
RowNumber
=
number
.
getLocation
().
getRow
();
RowNumber
=
number
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
number
.
getLocation
().
getColumn
();
}
}
else
if
(
proc
.
optional
(
label
))
//
else
if
(
proc
.
optional
(
label
))
//
{
{
RowNumber
=
label
.
cell
.
getLocation
().
getRow
();
RowNumber
=
label
.
cell
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
label
.
cell
.
getLocation
().
getColumn
();
}
}
else
if
(
proc
.
optional
(
labelsst
))
else
if
(
proc
.
optional
(
labelsst
))
{
{
RowNumber
=
labelsst
.
getLocation
().
getRow
();
RowNumber
=
labelsst
.
getLocation
().
getRow
();
ColumnNumber
=
formula_union
.
getLocation
().
getColumn
();
ColumnNumber
=
labelsst
.
getLocation
().
getColumn
();
}
}
else
else
{
{
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.cpp
View file @
f5ccf59b
#include "GlobalWorkbookInfo.h"
#include "GlobalWorkbookInfo.h"
#include <boost/lexical_cast.hpp>
#include <Logic/Biff_records/Font.h>
#include "../../../DesktopEditor/fontengine/FontManager.h"
#include "../../../DesktopEditor/fontengine/ApplicationFonts.h"
namespace
XLS
namespace
XLS
{;
{
std
::
pair
<
float
,
float
>
GetMaxDigitSizePixelsImpl
(
const
std
::
wstring
&
fontName
,
double
fontSize
,
double
dpi
,
long
fontStyle
,
CFontManager
*
pFontManager
)
{
if
(
pFontManager
==
NULL
)
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
int
hr
=
FALSE
;
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadFontByName
(
fontName
,
fontSize
,
fontStyle
,
dpi
,
dpi
)))
{
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadFontByName
(
L"Arial"
,
fontSize
,
fontStyle
,
dpi
,
dpi
)))
{
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
}
}
float
maxWidth
=
0
;
float
maxHeight
=
0
;
float
minWidth
=
0xffff
;
float
minHeight
=
0xffff
;
//for (int i = 0; i <= 9; ++i)
{
//if (FALSE == (hr = pFontManager->LoadString2( boost::lexical_cast<std::wstring>(i), 0, 0)))
// return std::pair<float, float>(7,8);
if
(
FALSE
==
(
hr
=
pFontManager
->
LoadString2
(
L"xxxxx"
,
0
,
0
)))
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
TBBox
box
;
try
{
box
=
pFontManager
->
MeasureString
();
}
catch
(...)
{
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
}
if
(
box
.
fMaxX
<
-
0xffff
+
1
||
box
.
fMaxY
<
-
0xffff
+
1
||
box
.
fMinX
>
0xffff
-
1
||
box
.
fMinY
>
0xffff
-
1
)
return
std
::
pair
<
float
,
float
>
(
7
,
8
);
if
(
box
.
fMaxX
-
box
.
fMinX
>
maxWidth
)
maxWidth
=
box
.
fMaxX
-
box
.
fMinX
;
if
(
box
.
fMaxY
-
box
.
fMinY
>
maxHeight
)
maxHeight
=
box
.
fMaxY
-
box
.
fMinY
;
if
(
box
.
fMaxX
-
box
.
fMinX
<
minWidth
)
minWidth
=
box
.
fMaxX
-
box
.
fMinX
;
if
(
box
.
fMaxY
-
box
.
fMinY
<
minHeight
)
minHeight
=
box
.
fMaxY
-
box
.
fMinY
;
}
double
width
=
(
minWidth
+
2
*
maxWidth
)
/
3.
/
5.
;
return
std
::
pair
<
float
,
float
>
(
width
,
maxHeight
);
}
GlobalWorkbookInfo
::
GlobalWorkbookInfo
(
const
unsigned
short
code_page
,
XlsConverter
*
xls_converter_
)
GlobalWorkbookInfo
::
GlobalWorkbookInfo
(
const
unsigned
short
code_page
,
XlsConverter
*
xls_converter_
)
:
CodePage
(
code_page
)
:
CodePage
(
code_page
)
...
@@ -11,7 +71,7 @@ GlobalWorkbookInfo::GlobalWorkbookInfo(const unsigned short code_page, XlsConver
...
@@ -11,7 +71,7 @@ GlobalWorkbookInfo::GlobalWorkbookInfo(const unsigned short code_page, XlsConver
last_AXES_id
=
initial_AXES_id
;
last_AXES_id
=
initial_AXES_id
;
Version
=
0x0600
;
// xls
Version
=
0x0600
;
xls_converter
=
xls_converter_
;
xls_converter
=
xls_converter_
;
...
@@ -22,8 +82,16 @@ GlobalWorkbookInfo::GlobalWorkbookInfo(const unsigned short code_page, XlsConver
...
@@ -22,8 +82,16 @@ GlobalWorkbookInfo::GlobalWorkbookInfo(const unsigned short code_page, XlsConver
cellXfs_count
=
0
;
cellXfs_count
=
0
;
cellStyleXfs_count
=
0
;
cellStyleXfs_count
=
0
;
cellStyleDxfs_count
=
0
;
cellStyleDxfs_count
=
0
;
defaultDigitFontSize
=
std
::
pair
<
float
,
float
>
(
0
,
0
);
applicationFonts
=
NULL
;
}
}
GlobalWorkbookInfo
::~
GlobalWorkbookInfo
()
{
if
(
applicationFonts
)
delete
applicationFonts
;
}
const
size_t
GlobalWorkbookInfo
::
RegisterBorderId
(
const
BorderInfo
&
border
)
const
size_t
GlobalWorkbookInfo
::
RegisterBorderId
(
const
BorderInfo
&
border
)
{
{
...
@@ -70,11 +138,52 @@ void GlobalWorkbookInfo::RegisterPaletteColor(int id, const std::wstring & rgb)
...
@@ -70,11 +138,52 @@ void GlobalWorkbookInfo::RegisterPaletteColor(int id, const std::wstring & rgb)
colors_palette
.
insert
(
std
::
pair
<
int
,
std
::
wstring
>
(
id
,
rgb
));
colors_palette
.
insert
(
std
::
pair
<
int
,
std
::
wstring
>
(
id
,
rgb
));
}
}
const
unsigned
int
GlobalWorkbookInfo
::
GenerateAXESId
()
unsigned
int
GlobalWorkbookInfo
::
GenerateAXESId
()
{
{
return
last_AXES_id
+=
1
;
return
last_AXES_id
+=
1
;
}
}
void
GlobalWorkbookInfo
::
GetDigitFontSizePixels
()
{
if
(
defaultDigitFontSize
.
first
>
0.01
)
return
;
if
(
applicationFonts
==
NULL
)
{
applicationFonts
=
new
CApplicationFonts
();
applicationFonts
->
InitializeFromFolder
(
fontsDirectory
);
}
defaultDigitFontSize
=
std
::
pair
<
float
,
float
>
(
7
,
8
);
if
(
m_arFonts
->
size
()
<
1
)
return
;
Font
*
font
=
dynamic_cast
<
Font
*>
(
m_arFonts
->
at
(
0
).
get
());
if
(
!
font
)
return
;
std
::
wstring
fontName
=
font
->
fontName
.
value
();
double
fontSize
=
font
->
dyHeight
/
20.
;
try
{
if
(
applicationFonts
)
{
CFontManager
*
pFontManager
=
applicationFonts
->
GenerateFontManager
();
std
::
pair
<
float
,
float
>
val
=
GetMaxDigitSizePixelsImpl
(
fontName
,
fontSize
,
96.
,
0
,
pFontManager
);
if
(
pFontManager
)
{
pFontManager
->
m_pApplication
=
NULL
;
delete
pFontManager
;
}
defaultDigitFontSize
=
val
;
}
}
catch
(...)
{
// TODO: default value!
}
}
}
// namespace XLS
}
// namespace XLS
\ No newline at end of file
ASCOfficeXlsFile2/source/XlsFormat/Logic/GlobalWorkbookInfo.h
View file @
f5ccf59b
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
#include "../Crypt/Decryptor.h"
#include "../Crypt/Decryptor.h"
class
XlsConverter
;
class
XlsConverter
;
class
CApplicationFonts
;
namespace
XLS
namespace
XLS
{;
{;
...
@@ -33,13 +33,17 @@ class GlobalWorkbookInfo
...
@@ -33,13 +33,17 @@ class GlobalWorkbookInfo
{
{
public:
public:
GlobalWorkbookInfo
(
const
unsigned
short
code_page
,
XlsConverter
*
xls_converter_
);
GlobalWorkbookInfo
(
const
unsigned
short
code_page
,
XlsConverter
*
xls_converter_
);
~
GlobalWorkbookInfo
();
const
size_t
RegisterBorderId
(
const
BorderInfo
&
border
);
const
size_t
RegisterBorderId
(
const
BorderInfo
&
border
);
const
size_t
RegisterFillId
(
const
FillInfo
&
fill
);
const
size_t
RegisterFillId
(
const
FillInfo
&
fill
);
void
RegisterFontColorId
(
int
id
,
const
FillInfoExt
&
font_color
);
void
RegisterFontColorId
(
int
id
,
const
FillInfoExt
&
font_color
);
void
RegisterPaletteColor
(
int
id
,
const
std
::
wstring
&
argb
);
void
RegisterPaletteColor
(
int
id
,
const
std
::
wstring
&
argb
);
void
GetDigitFontSizePixels
();
unsigned
int
GenerateAXESId
();
const
unsigned
int
GenerateAXESId
();
unsigned
short
CodePage
;
unsigned
short
CodePage
;
CRYPT
::
DecryptorPtr
decryptor
;
CRYPT
::
DecryptorPtr
decryptor
;
...
@@ -77,12 +81,15 @@ public:
...
@@ -77,12 +81,15 @@ public:
std
::
map
<
int
,
double
>
customRowsHeight
;
std
::
map
<
int
,
double
>
customRowsHeight
;
double
defaultColumnWidth
;
double
defaultColumnWidth
;
double
defaultRowHeight
;
double
defaultRowHeight
;
};
};
std
::
vector
<
_sheet_size_info
>
sheet_size_info
;
std
::
vector
<
_sheet_size_info
>
sheet_size_info
;
int
Version
;
std
::
pair
<
float
,
float
>
defaultDigitFontSize
;
CApplicationFonts
*
applicationFonts
;
std
::
wstring
fontsDirectory
;
int
Version
;
int
cmt_rules
;
int
cmt_rules
;
int
cellXfs_count
;
int
cellXfs_count
;
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.cpp
View file @
f5ccf59b
...
@@ -5,9 +5,9 @@
...
@@ -5,9 +5,9 @@
#include "../../../Common/OfficeFileErrorDescription.h"
#include "../../../Common/OfficeFileErrorDescription.h"
long
ConvertXls2Xlsx
(
const
std
::
wstring
&
srcFile
,
const
std
::
wstring
&
dstPath
,
const
ProgressCallback
*
pCallBack
)
long
ConvertXls2Xlsx
(
const
std
::
wstring
&
srcFile
,
const
std
::
wstring
&
dstPath
,
const
std
::
wstring
&
fontsPath
,
const
ProgressCallback
*
pCallBack
)
{
{
XlsConverter
converter
(
srcFile
,
dstPath
,
pCallBack
);
XlsConverter
converter
(
srcFile
,
dstPath
,
fontsPath
,
pCallBack
);
if
(
converter
.
isError
())
if
(
converter
.
isError
())
{
{
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/ConvertXls2Xlsx.h
View file @
f5ccf59b
...
@@ -2,4 +2,4 @@
...
@@ -2,4 +2,4 @@
struct
ProgressCallback
;
struct
ProgressCallback
;
long
ConvertXls2Xlsx
(
const
std
::
wstring
&
srcFile
,
const
std
::
wstring
&
dstPath
,
const
ProgressCallback
*
CallBack
);
long
ConvertXls2Xlsx
(
const
std
::
wstring
&
srcFile
,
const
std
::
wstring
&
dstPath
,
const
std
::
wstring
&
fontsPath
,
const
ProgressCallback
*
CallBack
);
\ No newline at end of file
\ No newline at end of file
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.cpp
View file @
f5ccf59b
...
@@ -86,7 +86,7 @@ typedef struct tagBITMAPCOREHEADER {
...
@@ -86,7 +86,7 @@ typedef struct tagBITMAPCOREHEADER {
}
BITMAPCOREHEADER
;
}
BITMAPCOREHEADER
;
#endif
#endif
XlsConverter
::
XlsConverter
(
const
std
::
wstring
&
xls_file
,
const
std
::
wstring
&
_xlsx_path
,
const
ProgressCallback
*
CallBack
)
XlsConverter
::
XlsConverter
(
const
std
::
wstring
&
xls_file
,
const
std
::
wstring
&
_xlsx_path
,
const
std
::
wstring
&
fontsPath
,
const
ProgressCallback
*
CallBack
)
{
{
xlsx_path
=
_xlsx_path
;
xlsx_path
=
_xlsx_path
;
output_document
=
NULL
;
output_document
=
NULL
;
...
@@ -138,7 +138,7 @@ XlsConverter::XlsConverter(const std::wstring & xls_file, const std::wstring & _
...
@@ -138,7 +138,7 @@ XlsConverter::XlsConverter(const std::wstring & xls_file, const std::wstring & _
}
}
xls_global_info
=
boost
::
shared_ptr
<
XLS
::
GlobalWorkbookInfo
>
(
new
XLS
::
GlobalWorkbookInfo
(
workbook_code_page
,
this
));
xls_global_info
=
boost
::
shared_ptr
<
XLS
::
GlobalWorkbookInfo
>
(
new
XLS
::
GlobalWorkbookInfo
(
workbook_code_page
,
this
));
xls_global_info
->
fontsDirectory
=
fontsPath
;
XLS
::
CFStreamCacheReader
stream_reader
(
cfile
.
getWorkbookStream
(),
xls_global_info
);
XLS
::
CFStreamCacheReader
stream_reader
(
cfile
.
getWorkbookStream
(),
xls_global_info
);
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/XlsConverter.h
View file @
f5ccf59b
...
@@ -59,7 +59,7 @@ namespace ODRAW
...
@@ -59,7 +59,7 @@ namespace ODRAW
class
XlsConverter
class
XlsConverter
{
{
public:
public:
XlsConverter
(
const
std
::
wstring
&
xls_file
,
const
std
::
wstring
&
xlsx_path
,
const
ProgressCallback
*
ffCallBack
);
XlsConverter
(
const
std
::
wstring
&
xls_file
,
const
std
::
wstring
&
xlsx_path
,
const
std
::
wstring
&
fontsPath
,
const
ProgressCallback
*
ffCallBack
);
~
XlsConverter
()
;
~
XlsConverter
()
;
oox
::
xlsx_conversion_context
*
xlsx_context
;
oox
::
xlsx_conversion_context
*
xlsx_context
;
...
...
ASCOfficeXlsFile2/win32/ASCOfficeXlsFile2.sln
View file @
f5ccf59b
This diff is collapsed.
Click to expand it.
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