Compare commits

..

1192 Commits

Author SHA1 Message Date
b6e741c4a5 Refactoring 2023-04-21 01:19:40 +03:00
ff75d14e29 Fixes for comments 2023-04-21 00:42:32 +03:00
33e6c14a04 Add toXml method to Api of PdfFile 2023-04-20 20:31:38 +05:00
f7b3ab2411 reincarnation pdf ToXml 2023-04-20 20:31:37 +05:00
471f739a66 Fix typo 2023-04-20 17:25:54 +03:00
13ff65c6e9 Refactoring builder .com example 2023-04-20 17:17:26 +03:00
5050726d47 Fix bug #61761
Fix issue with saving text appearance in pdf in case of multiline text
2023-04-20 18:50:25 +05:00
e335a237a5 Update htmlrenderer test (ONLINE_WORD_TO_PDF case) 2023-04-20 14:47:37 +05:00
af6802e035 Update htmlrenderer test 2023-04-20 14:20:29 +05:00
0a517af106 Disable inspector for no main platforms 2023-04-15 08:36:27 +03:00
76fea998ea Fix build 2023-04-14 23:12:50 +03:00
721805535e . 2023-04-14 21:02:08 +03:00
a61c267941 Merge pull request #1162 from ONLYOFFICE/hotfix/v7.3.3
Add define for reconnect timeout
2023-04-14 17:25:52 +03:00
6f4041b476 Fix build 2023-04-14 12:02:46 +05:00
97aad68726 Refactoring setup v8 version 2023-04-13 23:51:11 +03:00
e83a86ee56 Fix build 2023-04-13 23:33:15 +03:00
a6882895a5 Fix linux build 2023-04-13 22:25:41 +03:00
85ab308f80 Refactoring 2023-04-13 16:49:02 +03:00
c4bda0b403 Merge branch 'release/v7.4.0' of https://github.com/ONLYOFFICE/core into release/v7.4.0 2023-04-13 15:33:30 +03:00
0f492bce2b Refactoring 2023-04-13 15:32:38 +03:00
92f114a30f fix bug #61674 2023-04-13 13:08:53 +03:00
98f33c04be Merge pull request #1161 from ONLYOFFICE/fix/metafile_bugs
Fix metafile bugs
2023-04-13 12:43:16 +03:00
34c36cae01 Added initialization of variables in CSvgClip 2023-04-13 12:22:14 +03:00
a6a4d74304 Merge pull request #1159 from ONLYOFFICE/feature/v8-inspector
Feature/v8 inspector
2023-04-12 20:49:11 +03:00
58112c000c Enable v8 8.9 by default 2023-04-12 15:37:59 +03:00
76c00154af fix bug #62056 2023-04-12 14:19:54 +03:00
4fec85c60b fix bug #62045 2023-04-12 13:47:32 +03:00
19c56e1b4d Changes for use _ITERATOR_DEBUG_LEVEL in debug by default 2023-04-12 11:23:45 +03:00
71e3768ed9 fix bug #61996 2023-04-11 22:30:46 +03:00
fb0e7f8d3f Fix xp build 2023-04-10 20:28:52 +03:00
f59e5745af V8 inspector now works only when environment variable is set 2023-04-10 17:57:06 +04:00
6b9ae7e71e [xp] Disable inspector 2023-04-09 13:39:00 +03:00
2601448513 [windows] Use _ITERATOR_DEBUG_LEVEL=0 in debug build 2023-04-08 22:18:31 +03:00
263e50601a Merge branch 'release/v7.4.0' into feature/v8-inspector 2023-04-08 22:16:44 +03:00
5d302dde81 fix bug #61586 2023-04-08 19:55:14 +03:00
e7e2e6b448 fix bug #61958 2023-04-07 17:23:28 +03:00
eb45d8dadc Correct pro files 2023-04-07 10:30:23 +03:00
3621bea6e1 Enable core_static_link_libstd by default 2023-04-07 09:41:24 +03:00
c60d06733b For bug #61864 2023-04-06 18:54:14 +03:00
9d9edd2cfc For bug #61784 2023-04-05 17:44:32 +03:00
7bc69064f7 Fix bug #61941 2023-04-05 17:35:42 +03:00
a43a03d84d fix bug #61239 2023-04-04 18:24:46 +03:00
647dd62537 Merge branch 'release/v7.4.0' of https://github.com/ONLYOFFICE/core into release/v7.4.0 2023-04-04 17:48:31 +03:00
942a9c6a79 fix bug #60282 2023-04-04 17:48:13 +03:00
b652c5754c Fix bug 61799 2023-04-04 17:48:08 +03:00
d9ed8f4780 fix bug #61586 2023-04-03 22:36:07 +03:00
44928cf416 fix bug #61721 2023-04-03 21:55:25 +03:00
1adfa0ea7e fix bug #47084 2023-04-03 21:55:01 +03:00
2dd276c427 Changed the principle of converting an Emf record DrawDriverString to svg 2023-04-03 20:11:47 +03:00
775d06de9d Fix build js module 2023-04-02 20:16:15 +03:00
9e62296b29 Fixed a bug with drawing DrawDriverString record in Emf+ 2023-03-31 18:37:44 +03:00
6c76366705 For bug#61864 2023-03-31 18:36:39 +03:00
e9aa3b4e81 fix bug #61811 2023-03-29 18:52:14 +03:00
df3ccf1837 fix bug #61814 2023-03-29 18:19:43 +03:00
b3ea4afe3f Merge pull request #1157 from ONLYOFFICE/fix/license
Fix license
2023-03-28 10:05:54 +03:00
d001298fcd Fix license 2023-03-27 15:47:53 +03:00
50c65fe0fd for bug #61784 2023-03-24 18:37:14 +03:00
8851731c74 fix bug #61768 2023-03-24 16:19:53 +03:00
0e456d167b . 2023-03-23 22:10:57 +03:00
a246923dce UserProtectedRange update 2023-03-23 11:26:37 +03:00
c7c2ab02a7 fix bug #59365 2023-03-21 13:32:47 +03:00
0f59c2254d Fix compile 2023-03-21 10:20:07 +03:00
9d9f6165b5 fix bug #61670 2023-03-20 21:34:14 +03:00
9ffb756c4f for bug #61641 2023-03-17 12:02:17 +03:00
4910d69a40 Add define for reconnect timeout 2023-03-16 22:36:48 +05:00
78d1f6f1e4 fix bug #61633 2023-03-16 20:27:30 +03:00
f8717b5af0 fix bug #61635 2023-03-16 14:41:22 +03:00
b921bebc79 chart filtering 2023-03-15 19:47:48 +03:00
8807404baf Move ECMACryptFile to CryproPP library project 2023-03-15 12:37:59 +05:00
ae92f47e54 Make it works for Windows
+ removed unnecessary `readFileContent()` from utils
+ moved `getPort()` from InspectorPool to WebsocketServer
2023-03-13 14:43:35 +04:00
9688ed3d4c Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop 2023-03-12 13:54:39 +03:00
673b733a8d Add gcc version to base.pri 2023-03-12 13:53:59 +03:00
1a89252004 Fix typo 2023-03-12 12:11:14 +03:00
a1fd606050 Fix build 2023-03-12 11:52:13 +03:00
6d7a1421b2 Merge pull request #1155 from ONLYOFFICE/hotfix/v7.3.3
Hotfix/v7.3.3
2023-03-12 11:16:21 +03:00
5b8510353d Push changes for base file (pdf/xps/djvu module) 2023-03-12 10:26:49 +03:00
6df5bf924a Merge pull request #1154 from ONLYOFFICE/fix/fix-bugs-v7.3.3
Fix/fix bugs v7.3.3
2023-03-12 00:02:52 +03:00
8ca40a44ce fix bug #61586 2023-03-11 13:38:14 +03:00
3fa6152e69 fix bug #61588 2023-03-11 12:42:23 +03:00
8bd4dcece3 Merge pull request #1152 from ONLYOFFICE/fix/v7.3.3-fix-bugs
Fix/v7.3.3 fix bugs
2023-03-10 18:15:01 +03:00
7afe09ce09 fix bug #59365 2023-03-10 17:18:34 +03:00
3df0892752 Merge pull request #1153 from ONLYOFFICE/fix/bug61577
Fix bug #61577
2023-03-10 17:04:07 +03:00
deffa006b5 Fixed bug #61577 2023-03-10 17:02:48 +03:00
12326b3a4f fix bug #61456 2023-03-10 14:09:39 +03:00
ad72c997f2 fix bug #61459 2023-03-10 12:18:14 +03:00
4552ab2d6f font embedding comment 2023-03-10 12:16:20 +03:00
741213b126 Merge pull request #1151 from ONLYOFFICE/fix/bug61404
Fix bug 61404
2023-03-09 22:33:44 +03:00
73524ccc22 Fix build 2023-03-09 14:45:10 +03:00
4ca669b9cd Fixed a bug with clips in metafile -> svg conversion 2023-03-09 12:34:29 +03:00
55578a0026 Changed the principle of working with clips in the metafile -> svg conversion 2023-03-07 19:14:46 +03:00
30733dfc71 Merge pull request #1150 from ONLYOFFICE/fix/fix-bug
fix checker for binary
2023-03-07 16:41:05 +03:00
530d1d1763 Fixed bug with rotated text position in metafile -> svg conversion 2023-03-07 15:23:47 +03:00
c252512786 fix checker for binary 2023-03-07 11:43:50 +03:00
b2a8407617 Inspector code wrapped in namespace NSJSBase
+ Added comment about based on repository
+ Removed unnecessary rows from `js_base.pri`
2023-03-07 11:33:29 +03:00
0a0a7baaf7 Merge remote-tracking branch 'origin/hotfix/v7.3.3' into develop 2023-03-07 11:14:48 +03:00
f41c850c0e Moved my_inspector to inspector
+ Prevented `call_func()` to break on first line
2023-03-07 10:40:07 +03:00
03a276fd88 Merge pull request #1149 from ONLYOFFICE/fix/bug61475
Fix bug #61475
2023-03-06 20:29:44 +03:00
d20b9321d4 Merge pull request #1148 from ONLYOFFICE/fix/v7.3.3-fix-bugs
fix bug #61508
2023-03-06 20:23:34 +03:00
42a4f8c909 Fix bug #61475 2023-03-06 20:18:36 +03:00
22842c069a fix bug #61508 2023-03-06 18:50:21 +03:00
8206a74694 Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop 2023-03-06 18:46:42 +03:00
0aaff62cba . 2023-03-06 18:46:32 +03:00
0d66a203d6 PathCommandText for CPdfWriter
analogue of PathCommandText from graphic renderer for CPdfWriter
2023-03-06 18:14:54 +03:00
0d9052d25c Fixed bug with text position in metafile -> svg conversion 2023-03-06 14:13:19 +03:00
3c28cf6022 Fix build with c++17 2023-03-05 19:02:07 +05:00
fd865782a8 fix bug #60339 2023-03-04 20:03:14 +03:00
a977fe30f0 Added 'C' prefix to all class names 2023-03-03 18:17:01 +03:00
2c799de36a Now inspector works for older version of V8 too
- Replaced some arguments to `V8IsolateFirstArg`
- Fixed breakpoints issue on old V8 version
2023-03-03 18:11:22 +03:00
49a339ad56 Working with clips in metafile -> svg conversion 2023-03-03 17:26:16 +03:00
f2533bc6a0 fix bug #60847 2023-03-03 14:58:26 +03:00
a736c35880 Code reformatted to satisfy codestyle 2023-03-03 13:51:52 +03:00
ce64eca658 . 2023-03-03 00:00:12 +03:00
8a0c070990 fix bug #61456 2023-03-02 23:57:22 +03:00
00e54401da Fixed old inspector code 2023-03-02 21:00:07 +03:00
486ff2087c Implemented inspector for CJSObject::call_func() method
Redesigned websocket server connection initialization
2023-03-02 20:59:40 +03:00
b3cef38315 Merge pull request #1147 from ONLYOFFICE/feature/x2ttester
Fix bug 61452
2023-03-02 17:42:11 +03:00
8646fd4271 Fix bug 61452
passwords
2023-03-02 17:36:48 +03:00
b0cbf8520a Make server automatically disconnect when runScript() ends
+ Moved bool flag from CJSContextPrivate to Inspector
+ Replaced members JSContext* in Inspector and CInspectorPool to
v8::Isolate* cause of `call_func()` support
2023-03-02 16:22:13 +03:00
1d0bb53607 fix bug #61445 2023-03-02 16:04:56 +03:00
e83e025748 fix bug #61318 2023-03-02 14:25:08 +03:00
ea181c8110 Now code of runScript() continues on connecting to CDT
Before that, just another `runScript()` was calles from loop
+ Fixed error "Adress already in use" that used to appear sometimes
2023-03-02 14:19:42 +03:00
2f4756138c Inspector Pool implemented
Now inspector works with different CJSContext-s and different
CJSContextScope-s. But sometimes shows "Address already in use" error.
2023-03-02 13:12:28 +03:00
3ef0ed1d36 [copyright] Update address in Copyright 2023-03-01 23:21:57 +03:00
32a046f4d2 Now value from runScript() returns correctly
+ writed some TODOs
+ formatted brakets
+ restyled class definitions
+ added some comments
2023-03-01 18:42:30 +03:00
9f18768e5d Added support for recording EMR_GRADIENT FILL in EMF and working with clips 2023-03-01 17:10:35 +03:00
163ab8da25 Fixed segfault on deleting WebsocketServer
+ removed unnecessary `Listener` classes
2023-03-01 16:45:29 +03:00
fd1e49ec2d [FontMaps] Change built-in license to Common/license/header.license 2023-03-01 14:17:05 +03:00
66ac071c58 fix bug #61412 2023-03-01 12:46:15 +03:00
03d88de461 Merge pull request #1145 from ONLYOFFICE/feature/copyright-2023
Feature/copyright 2023
2023-03-01 10:10:48 +03:00
cd8ce24a70 fix bug #61406 2023-02-28 20:00:50 +03:00
a7c70687c9 for bug #61375 2023-02-28 19:37:01 +03:00
e412983314 Added the removal of excess from the font when converting metafile->svg 2023-02-28 19:25:05 +03:00
de278ff550 Fix bug #61404 2023-02-28 19:10:51 +03:00
5d0f0875be for bug #61375 2023-02-28 17:21:07 +03:00
fad145455e Moved all inspector initializing stuff to runScript()
Also now programm continues when debugging session is ending!
2023-02-28 16:42:07 +03:00
365d8bf95a Add test for all systems 2023-02-28 16:29:40 +03:00
7e5332eba5 [x2t] Add mhtml ext for bug 61381 2023-02-28 16:27:11 +03:00
a32ce7650f Used our runSript() method instead of one in utils.h 2023-02-28 15:43:15 +03:00
f7f5bb89c1 [copyright] Add Copyright 2023-02-28 14:56:22 +03:00
5102820231 [copyright] Fix invalid Copyright 2023-02-28 14:18:51 +03:00
313af0b405 Merge pull request #1144 from ONLYOFFICE/fix/bug61383
Fix bug #61383
2023-02-28 14:18:08 +03:00
4aa56f8aa0 For bug #61383 2023-02-28 13:22:12 +03:00
ffe2806bc8 fix bug #61353 2023-02-28 12:48:47 +03:00
7dcbd57aa7 Fix bug #61383 2023-02-28 12:44:41 +03:00
57ccbc0fb6 [copyright] Update Copyright 2023-02-28 11:16:40 +03:00
ff427c547d [copyright] Fix invalid Copyright 2023-02-28 01:12:57 +03:00
4d5a2967e3 [copyright] Update Copyright 2023-02-28 00:57:11 +03:00
cdb72bab80 fix bug #61375 2023-02-27 18:05:19 +03:00
9ea4cd8ba5 Writed my_inspector with working functionality 2023-02-27 12:20:02 +03:00
b15aff55d1 Refactoring socketio websocket realization 2023-02-26 12:42:33 +05:00
d3423f93eb Fix build 2023-02-24 13:55:59 +03:00
0f9cc64520 Fix bug 61302 2023-02-23 21:45:50 +03:00
2309f915b4 Fix bug 61296 2023-02-23 21:42:12 +03:00
a61543bff9 to develop 2023-02-22 18:47:05 +03:00
299e91c747 CurvedLeftArrow revert 2023-02-22 16:23:11 +03:00
6633335912 fix shapes scaling 2023-02-22 15:46:17 +03:00
60bae43495 Fix bug #61321 2023-02-22 10:08:10 +03:00
77297aedc8 Remove unused code 2023-02-22 09:42:47 +03:00
7ba98fe047 initial 2023-02-21 15:55:23 +03:00
c47e0369a1 . 2023-02-21 14:21:14 +03:00
416b120842 Merge remote-tracking branch 'origin/fix/coderefact' into develop 2023-02-21 13:09:12 +03:00
1e34dc736e . 2023-02-21 13:08:33 +03:00
4c20531b30 Merge remote-tracking branch 'origin/hotfix/v7.3.3' into develop 2023-02-21 13:06:23 +03:00
ecd2a5eba1 fix bug #61294 2023-02-21 12:22:15 +03:00
2ee8dead85 Merge branch 'develop' into fix/coderefact 2023-02-21 11:56:16 +03:00
88ae812a90 common shapetypes for doc, xls, pptx
TODO: make ShapeType as parent for PptShape
2023-02-21 11:55:59 +03:00
835f88edf5 add userProtectedRanges 2023-02-21 00:20:14 +03:00
698def3934 fix bug #61070 2023-02-20 11:51:47 +03:00
6228c41af4 chart refactoring
chart external rels
2023-02-20 09:59:06 +03:00
bb0d2eea84 Merge branch 'develop' into fix/coderefact 2023-02-17 15:27:58 +03:00
a704a74fed common shapes for xls, pptx 2023-02-17 15:23:50 +03:00
00e9550927 . 2023-02-17 10:46:38 +03:00
8e36d60e4b fix bug #61222 2023-02-16 22:17:12 +03:00
daa392556a fix bug #61243 2023-02-16 21:49:22 +03:00
eea5608399 Merge pull request #1143 from ONLYOFFICE/fix/pdfLinks
fix pdf Links
2023-02-16 20:11:28 +03:00
a4fd9eba94 Merge remote-tracking branch 'origin/fix/v.7.3.3-chart-ex' into develop 2023-02-16 19:29:00 +03:00
1f3a104356 chart refactoring 2023-02-16 19:24:16 +03:00
a03b876269 Use sync_close instead of close 2023-02-16 19:23:15 +03:00
eecf268ac9 fix pdf Links
part of 52583
2023-02-16 18:26:21 +03:00
907734a202 pptx short project
Logic pri
2023-02-15 20:04:19 +03:00
3a4792e858 add extension 2023-02-15 17:52:27 +03:00
223c16f90e refactoring chart ooxml 2023-02-15 17:51:17 +03:00
2eeaaa7197 xls short project
Logic pri
2023-02-15 17:28:12 +03:00
9b419ce470 pptx refact 2023-02-15 13:15:39 +03:00
7f17ec7b29 doc: shapetypes pri 2023-02-14 16:21:32 +03:00
1fbbabeff0 . 2023-02-14 13:31:37 +03:00
bd895669f5 Merge branch 'hotfix/v7.3.3' into fix/v.7.3.3-chart-ex 2023-02-13 17:47:34 +03:00
ce6aeb48b7 - test project 2023-02-13 14:47:56 +03:00
7e767f0f3f fix bug #61031 2023-02-13 13:19:26 +03:00
cf37e1edef fix bug #61054 2023-02-13 11:59:31 +03:00
1427de8435 Merge branch 'develop' into fix/coderefact 2023-02-13 11:02:06 +03:00
7550c08748 Removed unnecessary variable m_nEntered from CJSContextPrivate 2023-02-10 13:06:20 +03:00
eedcaa9768 . 2023-02-10 10:43:32 +03:00
c615afa80e . 2023-02-10 10:41:31 +03:00
93435fce9f Merge branch 'hotfix/v7.3.3' of https://github.com/ONLYOFFICE/core into hotfix/v7.3.3 2023-02-10 10:27:41 +03:00
c6d767d8d9 . 2023-02-10 10:27:24 +03:00
8a9861a583 Fix memory leaks. Add ARC in xcode frameworks 2023-02-10 11:32:53 +05:00
e71e4068e4 fix bug #61089 2023-02-09 20:37:28 +03:00
29804158f9 Merge pull request #1142 from ONLYOFFICE/fix/bug61103
Fix bug #61103
2023-02-09 16:21:31 +03:00
9683d6e78c fix bug #61117 2023-02-09 15:40:26 +03:00
4cfe02a387 Fix bug #61103 2023-02-09 15:09:04 +03:00
57145240be Merge pull request #1141 from ONLYOFFICE/feature/x2ttester
Fix bug 60966
2023-02-08 21:01:13 +03:00
7d6a29d063 Fix bug 60966
Add timeouts & update README
2023-02-08 20:18:21 +03:00
f5c4dab90b Update x2ttester
timeouts in lunix
2023-02-08 18:42:54 +03:00
fc0f496c5f Fixed crash on multiple Enters on same context 2023-02-08 17:01:58 +03:00
f79ad969a4 Merge pull request #1140 from ONLYOFFICE/fix/bug61090
Fix bug #61090
2023-02-08 16:31:53 +03:00
916635782d Fixed working with Clip in wmf to svg conversion 2023-02-08 16:23:54 +03:00
96ff2246fa Fix bug #61090 2023-02-08 16:23:17 +03:00
1b10918258 Fix test.pro 2023-02-08 13:50:37 +03:00
4c9e904d10 . 2023-02-08 09:45:16 +03:00
24acad0cd2 Method implementations moved to js_base.cpp. Exported CreateDefaults(). CJSLocalScope implemented. 2023-02-08 00:05:58 +03:00
edeebcc438 . 2023-02-07 17:53:37 +03:00
6fb6021ad3 Update x2ttester
Windows (bug 60966)
2023-02-07 15:56:53 +03:00
c14083795f . 2023-02-07 15:22:24 +03:00
11099d2575 Merge pull request #1139 from ONLYOFFICE/feature/android_packages
Added android packages
2023-02-07 13:12:11 +03:00
62d05c02fb Merge branch 'feature/odf_4' into develop 2023-02-07 11:56:50 +03:00
117edc9c96 fix main_document 2023-02-07 11:54:42 +03:00
a1195e038e add chart extensible 2023-02-07 10:25:47 +03:00
ff1e280d7d Merge branch 'develop' into feature/odf_4 2023-02-07 10:22:36 +03:00
000f64267f Merge pull request #1138 from ONLYOFFICE/fix/fix-develop
Fix/fix develop
2023-02-07 10:21:41 +03:00
1e5e533d68 Merge remote-tracking branch 'origin/hotfix/v7.3.3' into fix/fix-develop 2023-02-07 10:20:49 +03:00
ac0cdd8fa2 Merge branch 'develop' into fix/coderefact 2023-02-07 11:43:00 +05:00
bc33a5b2e3 Removed m_globalTemplate from CJSContextPrivate. Removed js_base.pri from test.pro 2023-02-06 18:36:43 +03:00
43514de87e CJSContext scopes rework. Global template added. 2023-02-06 14:51:28 +03:00
52071831de Fix crash on using emdedder data in isolates 2023-02-06 11:36:45 +03:00
a133ce4714 Merge pull request #1136 from ONLYOFFICE/fix/pre7.3.3
Fix/pre7.3.3
2023-02-05 20:04:20 +05:00
608b04ca26 For bug 61014 2023-02-05 11:52:22 +03:00
2b6ad83b36 Fix bug 60433 2023-02-04 23:49:41 +03:00
f121da9f47 Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2023-02-04 17:49:33 +03:00
61d26acf71 Implemented methods Enter() and Exit() in class CJSContext 2023-02-03 17:42:10 +03:00
d6dfe0623f pptx forward decs 2023-02-02 15:14:17 +03:00
0b9dc3c296 for bug #60963 (change paragraph place) 2023-02-02 13:08:34 +03:00
47e0ccbe29 fix bug #60963 2023-02-02 12:32:50 +03:00
5d720e75f5 . 2023-02-02 11:03:33 +03:00
ad03ae0390 fix group ole/math_equation in sheets from/to ods 2023-02-01 20:06:57 +03:00
90d709972d Merge pull request #1134 from ONLYOFFICE/fix/v7.3.0-fix-bugs
Fix/v7.3.0 fix bugs
2023-02-01 17:59:43 +03:00
6f8251fe04 pptx forward decs 2023-02-01 10:06:56 +03:00
f77d3440f6 Merge pull request #1133 from ONLYOFFICE/feature/pre_7.3.1
Add support tls & no tls in socketio (double code)
2023-01-31 23:01:31 +05:00
d5ab557578 fix build 2023-01-31 16:35:31 +03:00
1b84274673 Add support tls & no tls in socketio (double code) 2023-01-31 18:07:33 +05:00
f601d95d27 package embedding in binary ms 2023-01-31 11:31:26 +03:00
c16d63c011 Merge branch release/v7.3.0 into master 2023-01-31 07:57:44 +00:00
4e0e0265d0 fix bug #51001 2023-01-30 11:36:01 +03:00
bbf661e74e Fix bug 60874 2023-01-27 23:00:04 +03:00
e5253bbf35 Merge pull request #1130 from ONLYOFFICE/fix/v7.3.0-fix-60848
fix bug #60848
2023-01-27 17:15:50 +05:00
c2591eea02 fix bug #60848 2023-01-27 14:02:04 +03:00
cf0e9febe5 Merge pull request #1129 from ONLYOFFICE/fix/v7.3.0-fix-bugs
for bug #60804
2023-01-26 23:35:19 +05:00
a3696b07df for bug #60804 2023-01-26 20:50:27 +03:00
32e1be7493 Fix bug 60858 2023-01-26 20:01:17 +03:00
46a37c9199 [android] Add publish url 2023-01-26 09:35:33 +03:00
aea4996a45 Fix bug 55616 2023-01-25 21:03:23 +03:00
28257fca25 Fix bug 60850 2023-01-25 19:10:26 +03:00
3b779ded76 pptx minor forward decs 2023-01-25 18:45:15 +03:00
f846881e88 Merge pull request #1128 from ONLYOFFICE/fix/bug60827
Fix bug 60827
2023-01-25 17:30:35 +03:00
961e955ee4 Fix escape characters im pdf metadata 2023-01-25 17:06:13 +03:00
ac7569bc51 Merge pull request #1127 from ONLYOFFICE/fix/bug60827
Fix bug 60827
2023-01-25 14:42:33 +03:00
1cd49c52d2 Fix bug 60827 2023-01-25 14:40:19 +03:00
d49b74c0e0 minors 2023-01-25 13:03:11 +03:00
8338ff75c8 Merge pull request #1124 from ONLYOFFICE/fix/x2ttester
Fix bug 60241
2023-01-25 12:31:10 +03:00
a215476303 fix bug #60823 2023-01-25 11:37:59 +03:00
7e765011b8 fix bug #60739 2023-01-25 11:28:43 +03:00
c2e4fcfebd [android] Add upload to github packages 2023-01-25 11:26:55 +03:00
e649ecb7a0 Fix memory leak 2023-01-25 01:00:33 +03:00
fc45ed4aaf Merge pull request #1126 from ONLYOFFICE/fix/bug60690
fix typo
2023-01-24 18:40:25 +03:00
5c6956b5d5 fix 2023-01-24 18:37:59 +03:00
8a728e2ec9 Merge pull request #1125 from ONLYOFFICE/fix/bug60690
Fix bug 60690
2023-01-24 18:34:41 +03:00
9a515fc99e fix SetChanged 2023-01-24 18:30:53 +03:00
71ab0560f2 fix bDropEmpty 2023-01-24 18:29:20 +03:00
255c8cd547 Fix bug 60690 2023-01-24 18:24:47 +03:00
e36b2bcd93 bDropEmpty path for fill and clip 2023-01-24 16:47:27 +03:00
79aede17c6 test page 2023-01-24 16:36:05 +03:00
23afcb430c Fix bug 60674 2023-01-24 16:24:53 +03:00
5d4d2d817c fix bug #60735 2023-01-24 16:07:34 +03:00
8a2234d2b5 Update README 2023-01-24 13:40:28 +03:00
3526b286c3 . 2023-01-24 11:32:37 +03:00
d0b9a8e052 . 2023-01-24 10:21:35 +03:00
497ec9b2f1 fix bug #60797 2023-01-23 23:15:18 +03:00
7a4353bc4a Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2023-01-23 20:56:53 +03:00
0b2fa174d5 Add ctDocInfo command in check commands 2023-01-23 20:55:34 +03:00
9b0cd732e3 fix bug #60794 2023-01-23 20:52:58 +03:00
062e410efc Merge pull request #1123 from ONLYOFFICE/fix/v7.3.0-fix-bugs
fix bug #60739
2023-01-23 20:37:17 +03:00
1faa2c3f77 fix bug #60739 2023-01-23 20:36:25 +03:00
43ebeec93c . 2023-01-23 20:32:21 +03:00
32a851b4e4 Merge commit 'a039a36b8fec3c6060b38aef476d8ce8e1845c76' into feature/odf_4 2023-01-23 19:56:11 +03:00
70c7635af6 Fix bug 60241 2023-01-23 16:17:59 +03:00
7ae87cf15a Merge pull request #1121 from ONLYOFFICE/fix/bug59621
Fix bug 59621
2023-01-23 15:59:28 +03:00
c73e91094f Merge pull request #1120 from ONLYOFFICE/fix/bug60665
Fix bug 60665
2023-01-23 15:58:20 +03:00
98df4659b5 Fix bug 59621 2023-01-23 15:26:01 +03:00
b2e2b06fc2 Fix bug 60665 2023-01-23 14:34:33 +03:00
a039a36b8f fix bug #60725 2023-01-23 12:01:47 +03:00
d6c4b2b95c Merge pull request #1119 from ONLYOFFICE/fix/html-docinfo
Fix html DocInfo
2023-01-23 10:15:36 +03:00
eb34cb7e23 Fix non-clean build 2023-01-22 20:29:16 +05:00
bc26f0bda4 Fix build 2023-01-22 17:50:09 +03:00
210d5ef30d Fix build in modern systems 2023-01-22 17:01:01 +03:00
b174c2c601 fix bug #60726 2023-01-22 15:13:54 +03:00
fa075d0224 Add support bundle_xcframeworks build flag 2023-01-22 13:24:46 +05:00
4a6c0e340b update external 2023-01-20 18:30:44 +03:00
65604849ac fix bug #60338 2023-01-20 18:18:50 +03:00
276de3c7b0 fix fb2 escaping characters 2023-01-20 17:42:09 +03:00
0ccd31865d fix bug #60674 2023-01-20 16:52:08 +03:00
ab2f79bd19 epub fix DocInfo 2023-01-20 16:08:55 +03:00
33ac9e4f5e Merge pull request #1118 from ONLYOFFICE/fix/metafile_bugs
Fix bug in metafile conversion
2023-01-20 15:52:19 +03:00
7f1e2370d2 fb2 fix DocInfo 2023-01-20 14:55:39 +03:00
a2aec43d22 doctrenderer delete asc_getCoreProps and x2t fix fb2/epub 2023-01-20 14:54:22 +03:00
aaae4d7728 [x2t] For bug 60665 2023-01-20 08:45:32 +03:00
2d1e08fbd1 Fix bug 60683 2023-01-19 22:42:10 +03:00
de4e27f5d7 Merge pull request #1117 from ONLYOFFICE/fix/x2ttester
Fix bug 60671
2023-01-19 19:09:53 +03:00
60e79db7b0 Fix misprint 2023-01-19 19:01:31 +03:00
00114714d1 Fix 2023-01-19 18:57:58 +03:00
62f98a8cc5 Fix
substr -> find
2023-01-19 18:42:00 +03:00
c6d9a22d16 Fix bug in metafile conversion 2023-01-19 18:37:00 +03:00
fab1c09db3 Fix 2023-01-19 18:27:09 +03:00
1911f11e51 Fix bug 60671 2023-01-19 18:01:40 +03:00
dfec7cb0bb . 2023-01-19 16:57:19 +03:00
8f11112c43 . 2023-01-19 16:35:55 +03:00
5071a61692 Merge pull request #1116 from ONLYOFFICE/fix/metafile_bugs
Fix metafile bugs
2023-01-19 13:39:48 +03:00
bd2736ab09 Fix bug in metafile conversion 2023-01-19 12:54:09 +03:00
04196de46e . 2023-01-19 12:23:15 +03:00
e4c334e84c Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2023-01-19 10:39:52 +03:00
6214f187e0 fix bug #60510 2023-01-19 10:37:08 +03:00
55857b803a Fix bug 60276 2023-01-18 23:55:31 +03:00
d1c68f38d7 Fix bug in metafile conversion 2023-01-18 19:49:29 +03:00
ab80f5e399 Fix bug in metafile to svg conversion 2023-01-18 18:38:08 +03:00
457e4dadce Merge pull request #1114 from ONLYOFFICE/fix/bug60648
Fix bug 60648
2023-01-18 13:22:15 +03:00
f556fcf3fc fix m_bChanged in vector 2023-01-18 12:45:10 +03:00
fd88dbd7df fix bug #60515 2023-01-18 12:37:58 +03:00
97f440ebab Fix bug 60648
related bug 59523
2023-01-18 11:27:23 +03:00
3dcc8e916d Merge pull request #1113 from ONLYOFFICE/fix/x2ttester
Fix bug 60241
2023-01-18 10:41:44 +03:00
a1a7b903b6 fix bug #60490 2023-01-17 23:25:23 +03:00
a9a7c3fb22 fix bug #59365 2023-01-17 22:51:44 +03:00
c76f50a2f8 Merge pull request #1105 from ONLYOFFICE/fix/bug59621
Fix bug 59621
2023-01-17 16:15:48 +03:00
830ef2ad60 refactoring
includes using forward declarations
2023-01-17 15:42:33 +03:00
55c2b426f4 Merge pull request #1112 from ONLYOFFICE/fix/metafile_bugs
Fix metafile bugs
2023-01-17 14:59:06 +03:00
c5729090b3 Merge pull request #1111 from ONLYOFFICE/fix/bug60468
Fix bug #60468
2023-01-17 14:58:34 +03:00
d3a98c0164 Added scaling of patterns in metafile to svg conversion 2023-01-17 14:46:37 +03:00
2bd9d2fdf3 Fix bug #60609 2023-01-17 12:35:57 +03:00
7065c1a563 Merge remote-tracking branch 'origin/fix/v7.3-fix-bugs-ppt2' into release/v7.3.0 2023-01-17 12:20:02 +03:00
866a36448f Fix bug in metafile to svg conversion 2023-01-17 11:57:29 +03:00
02155b0b97 Fix bug #60608 2023-01-17 11:56:46 +03:00
8e15985b83 Fix
Doesnt create any folders, if no output formats
2023-01-17 11:47:50 +03:00
96b5eae285 fix bug #59405 2023-01-17 10:23:25 +03:00
1792a24827 Merge branch 'develop' into fix/coderefact 2023-01-16 21:17:13 +03:00
898844453d Fix bug #60468 2023-01-16 19:33:07 +03:00
e9e87d89c9 Merge pull request #1110 from ONLYOFFICE/fix/bug60405
Fix bug #60405
2023-01-16 18:07:01 +03:00
5f31790f7a Fix bug #60405 2023-01-16 17:13:48 +03:00
ff9884b73d Fix 2023-01-16 17:06:41 +03:00
27bf69fd98 Fix bug 60513 2023-01-16 15:25:07 +03:00
e71d04bd9d Merge pull request #1109 from ONLYOFFICE/fix/v7.3.0-fix-bugs
.
2023-01-16 15:10:20 +03:00
3b802bac97 . 2023-01-16 15:09:38 +03:00
2129ed7492 Merge pull request #1108 from ONLYOFFICE/fix/v7.3.0-fix-bugs
Fix/v7.3.0 fix bugs
2023-01-16 15:08:49 +03:00
96a7298071 Merge remote-tracking branch 'origin/fix/v7.3-fix-bugs-ppt2' into fix/v7.3.0-fix-bugs 2023-01-16 15:04:08 +03:00
da6c775fb8 fix bug #55298 2023-01-16 15:03:53 +03:00
a445b973c2 Fix bug 60241 2023-01-16 14:33:29 +03:00
8f5a7218b8 Merge pull request #1106 from ONLYOFFICE/fix/metafile_to_svg
Fix bugs in metafile to svg conversion
2023-01-15 22:53:24 +03:00
c4ea1ee198 Merge pull request #1107 from ONLYOFFICE/fix/metafile_to_raster
Fix bug in metafile to raster conversion
2023-01-15 22:53:00 +03:00
4d678fc7a7 For bug 60488 2023-01-15 22:28:57 +03:00
0f1d473360 [test] Update test 2023-01-15 17:40:51 +03:00
738fea25e6 Fix bug 60141 2023-01-14 22:03:05 +03:00
c0097de544 docx refactoring
Correct includes using forward declarations
2023-01-14 10:59:34 +03:00
c07ae1bbb4 Merge branch 'develop' into fix/coderefact 2023-01-13 17:23:19 +03:00
349bed9dbc Fix bug #58904 2023-01-13 17:17:37 +03:00
b848c1b828 . 2023-01-13 17:14:51 +03:00
032ec1dffd Merge pull request #1101 from ONLYOFFICE/fix/bug60483
Fix bug 60483
2023-01-13 17:10:49 +03:00
b04bd26758 Merge pull request #1104 from ONLYOFFICE/fix/bug60114
Fix bug 60114
2023-01-13 16:43:30 +03:00
d67a10268a Fix bug 60114 2023-01-13 16:35:38 +03:00
1a7be8a6e8 Merge branch 'develop' into fix/coderefact 2023-01-13 15:52:36 +03:00
0d1877efb7 fix bug #59407 2023-01-13 15:40:14 +03:00
d43ff48bc6 Fix bug 60114 2023-01-13 14:57:09 +03:00
e02c6e81be Fix bug #60541 2023-01-13 13:30:52 +03:00
d23d795160 Fix bug 60139 2023-01-13 13:20:06 +03:00
2b5ffd05a2 Fix bug #60486 2023-01-13 13:11:01 +03:00
e297f32b31 fix bug #60542 2023-01-13 12:28:02 +03:00
06716f1607 . 2023-01-13 12:07:22 +03:00
0f64eadedb Fix bug 60511 2023-01-13 11:38:26 +03:00
13d1d3d3e9 x2t fix 2023-01-13 10:37:35 +03:00
6a5f065833 Merge branch 'develop' into fix/coderefact 2023-01-13 07:22:12 +03:00
1204a9a501 Add getPaths method to zip engine 2023-01-12 23:20:54 +03:00
1b6c278b87 minor 2023-01-12 22:45:54 +03:00
996475fca2 . 2023-01-12 22:29:34 +03:00
243214b060 . 2023-01-12 22:14:07 +03:00
7382845517 . 2023-01-12 22:02:50 +03:00
463befcc67 Merge remote-tracking branch 'origin/fix/coderefact' into develop 2023-01-12 16:08:55 +03:00
b1148caaed Merge remote-tracking branch 'origin/fix/bug59621' into develop 2023-01-12 16:08:39 +03:00
c37105e4ae Xlsx refactoring
Correct includes using forward declarations.
x2t compiled(debug/release) and checked.
2023-01-12 15:44:13 +03:00
8e7e317e4b Fix bug in metafile to svg conversion 2023-01-12 13:40:18 +03:00
05ffb10eaa fix part of 59407 bug 2023-01-12 13:36:10 +03:00
b1474a84c4 SetDocumentInfo 2023-01-12 11:05:05 +03:00
ec547778b5 Xlsx refactoring
correct includes using forward declarations
2023-01-12 09:26:29 +03:00
c14b1c73bf Xlsx refactoring
correct includes vai forward declarations
2023-01-11 21:53:50 +03:00
454ef30d56 creator 2023-01-11 17:54:12 +03:00
0570672f95 Merge pull request #1100 from ONLYOFFICE/fix/bug58644
Fix bug 58644
2023-01-11 16:11:03 +03:00
cf8b06f9c2 Merge pull request #1103 from ONLYOFFICE/fix/metafile_to_raster
Fixing bugs in converting metafile to raster
2023-01-11 16:09:07 +03:00
ba77b4632c Merge pull request #1102 from ONLYOFFICE/fix/metafile_to_svg
Fixing bugs in converting metafile to svg
2023-01-11 16:08:50 +03:00
40c65b46be Fix bug #60486 2023-01-11 15:53:08 +03:00
a4ec604b1b Fix bug #60485 2023-01-11 15:10:19 +03:00
9ae3d1623c Added a condition to the creation of lines in the metafile conversion to svg 2023-01-11 13:28:29 +03:00
551d356b79 Fixed a bug with creating a pattern in converting a metafile to svg 2023-01-11 13:11:39 +03:00
931e81a8a0 Refactoring 2023-01-11 12:51:16 +03:00
64a1fd5e7b Fixed a bug with inverted text in metafile to svg conversion 2023-01-11 12:47:58 +03:00
25b61c9838 Fixed bug #60480 2023-01-11 12:47:40 +03:00
d1dde6f1a0 Fix bug #60478 2023-01-10 19:29:57 +03:00
57427336fa Fix bug 60483 2023-01-10 15:59:19 +03:00
c2ef4a871c Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2023-01-10 14:24:51 +03:00
cd1e176b1d fix bug #60491 2023-01-10 14:24:39 +03:00
de1339af79 [mobile] Add document protection defines 2023-01-10 14:17:37 +03:00
2171b5530b fix bug #59705 2023-01-10 14:10:39 +03:00
1a6a9b5cb5 Fix bug 58644 2023-01-10 13:34:24 +03:00
3001b0b6d2 Fixed a bug in converting metafile to svg 2023-01-09 21:54:30 +03:00
2011bf6464 Fix bug #60471 2023-01-09 20:20:58 +03:00
f70be27826 Fix bug #60461 2023-01-09 19:29:26 +03:00
27b407ba48 Remove not used websocket engine 2023-01-01 19:51:50 +03:00
ee22dd9b26 . 2022-12-31 00:53:47 +03:00
3941d51d1e add chart animatin. Fix part of 59407 2022-12-30 18:01:02 +03:00
24236ed509 Merge branch 'develop' into fix/coderefact 2022-12-30 16:56:59 +03:00
11f645cb2b Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop 2022-12-30 16:54:42 +03:00
dd02f82697 Merge branch 'develop' into fix/coderefact 2022-12-30 16:36:19 +03:00
fba7ca95f8 . 2022-12-30 15:08:19 +03:00
d2a7f573c6 . 2022-12-30 12:38:56 +03:00
b0769432d3 Merge remote-tracking branch 'origin/fix/coderefact' into develop 2022-12-30 12:16:52 +03:00
bd343c88d1 Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-30 12:15:42 +03:00
243d8dd2e1 xls impl separation
current step is needed to compare the implementations of shapes and further merge with pptx
2022-12-30 12:15:40 +03:00
2a8e7667bd xls changes
revert common xls-pptx shapes (required common BaseShape)
2022-12-29 19:27:45 +03:00
be7a75c7c9 Merge pull request #1099 from ONLYOFFICE/fix/metafile_to_svg
Fix metafile to svg conversion
2022-12-29 18:43:19 +03:00
a8e5a98d5f Fix bug #60398 2022-12-29 18:22:37 +03:00
cac8df19c1 Fix bug #60397 2022-12-29 18:22:14 +03:00
4fa275fd55 bindoc: -unused includes 2022-12-29 14:16:08 +03:00
fe04849ca4 Refactoring 2022-12-29 11:47:19 +03:00
8182c95dfc txt: -unused includes 2022-12-29 08:20:01 +03:00
36a4aaad45 docx: - unused includes 2022-12-28 20:29:38 +03:00
419437b1fa Merge pull request #1098 from ONLYOFFICE/fix/bug57911
Fix bug 57911
2022-12-28 20:09:59 +03:00
6e78bc880d refactoring 2022-12-28 17:28:57 +03:00
29ec077815 Refactoring 2022-12-28 16:47:57 +03:00
8a054f5cdf Fix indents 2022-12-28 14:14:01 +03:00
4310394fc7 fix error empty font 2022-12-28 13:51:47 +03:00
bc7aa9d328 fix bug #60361 2022-12-28 13:32:50 +03:00
1cd73fd770 for bug #60323 2022-12-28 11:51:17 +03:00
11ddc810d7 fix place js_get_stream_id 2022-12-28 11:46:04 +03:00
e3e3f8a4e6 upd for #6e14576
ComplexTypes_AdditionConstructors: constructor calls a virtual function
2022-12-28 09:05:05 +03:00
69ff1ca505 Senf ranges to pdf/xps module 2022-12-27 15:44:35 +03:00
5c46c77beb Merge remote-tracking branch 'origin/fix/coderefact' into develop 2022-12-26 15:43:26 +03:00
975a2409ab Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-26 15:42:48 +03:00
6e14576097 fix: constructor calls a virtual function
docx, pptx
2022-12-26 12:15:47 +03:00
848a1762f9 fix bug #60307 2022-12-23 16:13:27 +03:00
492d86393e fix bug #60314 2022-12-23 15:48:58 +03:00
a70e9c63bc Merge pull request #1097 from ONLYOFFICE/fix/bug59025
Fix bug 59025
2022-12-23 13:12:33 +03:00
a90cdc2cdb Fix bug 59025 2022-12-23 12:57:05 +03:00
37d77e458b fix bug #60305 2022-12-22 18:58:04 +03:00
2b1db43259 for bug #60299 2022-12-22 17:59:09 +03:00
5f80804661 fix 2022-12-22 15:34:45 +03:00
fba86b7071 InitializeFontsRanges 2022-12-22 14:52:41 +03:00
539d067dc4 fix bug #60270 2022-12-22 12:41:01 +03:00
54b8c99431 rebase js_get_stream_id 2022-12-21 18:25:28 +03:00
c280e9c829 ppt, xls common shapes
duplicate shapes have been removed
2022-12-21 13:48:44 +03:00
69e0524960 fix bug #59960 2022-12-21 13:37:40 +03:00
36810c9127 oform 2022-12-20 20:16:54 +03:00
e4fa81b16b Merge pull request #1089 from ONLYOFFICE/fix/bug56904
Fix bugs 56130, 56904, 59379
2022-12-20 19:51:23 +03:00
3c2f982bb2 Rebuild module 2022-12-20 18:10:14 +03:00
c6930b4ffd fix IsNeedCMap 2022-12-20 17:36:42 +03:00
abec59d9bf define 2022-12-20 17:14:34 +03:00
86edbdf9a5 fix 56130 2022-12-20 16:42:43 +03:00
b7fc8748d2 fix 2022-12-20 16:12:05 +03:00
e9a116c1c8 Merge pull request #1094 from ONLYOFFICE/fix/x2ttester
Fix bug 60093
2022-12-20 15:04:28 +03:00
cd3b39581d protect (+) 2022-12-20 11:16:30 +03:00
24e04314d8 Merge branch hotfix/v7.2.2 into master 2022-12-20 07:55:40 +00:00
0368fa0f36 fix bug #40946 2022-12-19 21:22:22 +03:00
eb169b49ed setCMap for drawingfile_base 2022-12-19 18:17:07 +03:00
eaf3b7fd9f create IsNeedCMap and three types of getting CMap 2022-12-19 17:53:58 +03:00
d60d5eca86 ppt shapes (pri impl separation) 2022-12-18 10:02:52 +03:00
6a966c9cb9 xls, ppt, pptx changes
- implicit includes have been resolved
- preparation before common shapes(pri)
- x2t compiled
2022-12-17 14:19:53 +03:00
cba1724045 Fix bug #59714 2022-12-16 17:52:13 +03:00
a637e40bad Merge remote-tracking branch 'origin/fix/coderefact' into develop 2022-12-16 16:01:31 +03:00
cdf3918489 Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-16 15:57:52 +03:00
77529ecc7e Merge pull request #1095 from ONLYOFFICE/fix/metafileToSvg
Refactoring metafile to svg conversion
2022-12-16 14:07:19 +03:00
902f7a33d1 Fixed typos 2022-12-16 11:53:52 +03:00
48ae9df1cf Fix ignore file 2022-12-16 11:51:30 +03:00
06668af052 Add test app 2022-12-16 11:47:33 +03:00
a6e7d21f80 Fix build 2022-12-16 11:10:18 +03:00
84d1d8a68d Add sources for keychain plugin 2022-12-15 23:17:16 +03:00
5890849e42 Hatches generation has been moved to a separate class 2022-12-15 21:34:16 +03:00
086c0e71cc fix bug #59193 2022-12-15 19:31:10 +03:00
3404bea247 fix bug #59917 2022-12-15 19:06:58 +03:00
a5756e42ce for bug #59496 2022-12-15 16:07:35 +03:00
fb2e149f95 Refactoring and combining code 2022-12-15 16:01:27 +03:00
4d94f248e2 pri for all shapes (ppt + pptx)
x2t compiled and checked.
TODO: _T->L
2022-12-15 12:51:42 +03:00
e91f52ca16 minors
DEFINE_SHAPE_CLASS for ppt & pptx
2022-12-15 09:47:48 +03:00
e77311983a fix build
x2t compiled
2022-12-14 21:44:42 +03:00
c0a833fac6 pptx shapes refact + pri 2022-12-14 21:13:51 +03:00
2c0c356371 . 2022-12-14 16:35:12 +03:00
a7c9bf8f1d . 2022-12-14 16:29:19 +03:00
2093579b77 limits pri 2022-12-14 15:50:01 +03:00
7b1715cfcf Update readme 2022-12-14 14:31:43 +03:00
22b709b4d7 . 2022-12-14 12:15:58 +03:00
f0ffe097da . 2022-12-14 12:05:04 +03:00
27c918d810 . 2022-12-14 11:49:09 +03:00
de8746898a fix build 2022-12-14 11:34:59 +03:00
3bd847237b beauty code pptx limits 2022-12-14 00:23:15 +03:00
7f2e1ed97d Fix bug 60093 2022-12-13 22:19:53 +03:00
7aea6bf451 operator= by string problem 2022-12-13 21:00:29 +03:00
4cd3b71c07 fix bug #56631 2022-12-13 20:40:57 +03:00
791c786bf7 Refactoring modules [hash, oform, all] 2022-12-13 18:26:43 +03:00
41a358764f watermark id 2022-12-13 18:25:39 +03:00
3d077122c6 Merge pull request #1093 from ONLYOFFICE/fix/x2ttester
Fix BOM
2022-12-13 17:13:45 +03:00
f3a393080c Fix BOM 2022-12-13 17:11:39 +03:00
71553d5aa4 Merge pull request #1092 from ONLYOFFICE/fix/x2ttester
Fix bugs
2022-12-13 16:33:28 +03:00
e97569a4bb Fix bug 60129 2022-12-13 15:24:21 +03:00
cd56cb6dc8 comments 2022-12-13 14:08:57 +03:00
162e96cebd Developing 2022-12-13 13:02:56 +03:00
6d29cda8ea Add code for engine_base.js 2022-12-13 12:45:08 +03:00
f215c343b4 Merge pull request #1091 from ONLYOFFICE/fix/bug60110
Fix bug #60110
2022-12-13 11:24:12 +03:00
f3b8e8158a Add compiled module 2022-12-13 11:21:49 +03:00
9d31985ae0 Merge pull request #1090 from ONLYOFFICE/fix/x2t
Fix/x2t
2022-12-13 10:01:48 +03:00
28c99c4d4f Fix bug 60118 2022-12-12 22:57:11 +03:00
b31ceac8c9 Fix 2022-12-12 22:49:21 +03:00
e9a17f9593 Fix bug 60120 2022-12-12 22:31:47 +03:00
35b301b382 Fix bug #60110 2022-12-12 20:29:18 +03:00
fdb49b7b69 load CMapData and create CMapToMemory 2022-12-12 18:03:31 +03:00
7f47ac262c fix bug #60112 2022-12-12 18:02:29 +03:00
db6ab0b003 Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-12 17:43:44 +03:00
4325e5f9d3 . 2022-12-12 17:42:58 +03:00
2e2258f369 . 2022-12-12 17:39:53 +03:00
0e604235fb fix bug #60111 2022-12-12 17:39:03 +03:00
fc3f8e61fa Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-12 17:26:03 +03:00
4551f1eadc . 2022-12-12 17:24:50 +03:00
74866e2898 . 2022-12-12 17:19:31 +03:00
14f04509a7 . 2022-12-12 17:18:51 +03:00
eb5180471e Fix compile module 2022-12-12 16:45:13 +03:00
796190157a Optimize code 2022-12-12 16:19:48 +03:00
297f963990 Refactoring oform plugin module 2022-12-12 16:13:14 +03:00
fdf39011dd Refactoring 2022-12-12 16:07:49 +03:00
044c8b59c2 CMap file 2022-12-12 15:28:29 +03:00
f69aab7562 Add methods for sign/keys module 2022-12-12 14:52:33 +03:00
6a14a4daad Merge remote-tracking branch 'origin/release/v7.3.0' into develop 2022-12-12 11:37:20 +03:00
d79a6977dc . 2022-12-11 21:18:14 +03:00
aa20538015 - precompiled odf 2022-12-11 17:15:08 +03:00
36b6e4b5ff . 2022-12-11 16:21:44 +03:00
4eae0651d6 ppt build fix. ready to merge 2022-12-11 16:08:37 +03:00
2fd4e80650 Merge branch 'release/v7.3.0' into fix/refact 2022-12-11 15:48:32 +03:00
99fee71d3a . 2022-12-11 15:05:37 +03:00
291dbbe0bb Merge branch 'release/v7.3.0' into fix/refact 2022-12-11 14:22:25 +03:00
8a49166605 . 2022-12-11 13:57:44 +03:00
8d649c370b fix build 2022-12-11 13:45:59 +03:00
baf917818c Merge branch 'release/v7.3.0' into fix/refact 2022-12-11 13:28:50 +03:00
585d2e5a4a fix build 2022-12-11 13:16:16 +03:00
6ca66fa683 Merge branch 'release/v7.3.0' into fix/refact 2022-12-11 11:51:41 +03:00
ddc20afc2c . 2022-12-11 09:34:25 +03:00
cd7f4e5c1f Merge remote-tracking branch 'origin/fix/refact-ppt3' into release/v7.3.0 2022-12-11 09:19:40 +03:00
d5dbf1b8eb Separate some h and cpp (Reader/Records) 2022-12-10 15:23:36 +03:00
676cdaf04a remove iostream includes and using namespace in header file 2022-12-10 14:54:44 +03:00
3cd9e6d397 add missing license - part 2 2022-12-10 13:42:34 +03:00
ab6424731c add missing license 2022-12-10 13:20:52 +03:00
3870d16cbc PPT_FORMAT -> PPT in all project 2022-12-10 13:16:21 +03:00
e802ed01e1 Fix SSlidePersist build problem 2022-12-10 12:20:34 +03:00
74bac4cec6 Reformat records. SSlidePersist build problem 2022-12-10 11:47:59 +03:00
85a5dcd7ee Merge branch 'release/v7.3.0' into fix/refact 2022-12-10 10:39:24 +03:00
aeaa86c88f odf minor 2022-12-10 10:39:02 +03:00
0da7b35757 rtf include changes 2022-12-09 23:44:55 +03:00
690a75022c sepatate h files. No records 2022-12-09 19:56:49 +03:00
5d57702985 create CMapDirToFile 2022-12-09 18:49:31 +03:00
2d0baac6fe change namespace PPT_FORMAT -> PPT 2022-12-09 18:01:24 +03:00
b1c9245223 Fix compile modules 2022-12-09 17:07:06 +03:00
3685bb311c Add cert engine for oform 2022-12-09 17:03:24 +03:00
4673d68387 . 2022-12-08 18:50:53 +03:00
98175e438f Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-08 18:22:59 +03:00
8d01de861f ready to merge
rtf format refactored.
x2t compiled.
2022-12-08 17:57:42 +03:00
5aa6386249 Fix bug 60054 2022-12-08 17:39:56 +03:00
2341689208 clear 2022-12-08 17:02:48 +03:00
6823e0e241 fix 2022-12-08 17:01:02 +03:00
31b5771a19 file length comparison 2022-12-08 16:59:58 +03:00
c1b84ee96f Merge branch 'release/v7.3.0' into fix/refact 2022-12-08 14:37:04 +03:00
237d20eed2 RtfFile refact
OOXml/Writer folder
2022-12-08 14:31:37 +03:00
dd988ad3cf RtfFile/Format refact 2022-12-08 13:30:24 +03:00
c609c616f0 . 2022-12-08 09:31:32 +03:00
93cb4b1be3 fix bug #59977 2022-12-07 18:52:34 +03:00
4b1190f54b Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-07 15:56:22 +03:00
664c14b894 ready to merge
doc format done.
2022-12-07 15:20:44 +03:00
dbb4b67491 Fix previous commit 2022-12-07 15:11:33 +03:00
1c10b51ec2 Merge branch 'release/v7.3.0' into fix/refact 2022-12-07 15:00:58 +03:00
a280d5822c Doc format refactored
x2t compiled.
2022-12-07 15:00:36 +03:00
bf6747d362 Fix previous commit 2022-12-07 14:56:10 +03:00
b96ab6bd1f Fix build 2022-12-07 14:52:18 +03:00
1d61dba795 Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2022-12-07 14:40:32 +03:00
cc522274b6 Change app for server sharing 2022-12-07 14:39:45 +03:00
7bf7e80100 Add missed file 2022-12-07 10:40:17 +03:00
528e3e3e15 Remove unneeded code 2022-12-07 00:10:38 +03:00
d69ff8e495 Add comment 2022-12-06 20:50:22 +03:00
59153b1a38 Fix build for multiply arches at the same time 2022-12-06 19:48:07 +03:00
f1499aeae4 generate autogen 2022-12-06 18:29:15 +03:00
657d04adb2 get binary cmap 2022-12-06 18:24:12 +03:00
c46f81630d Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-06 17:48:59 +03:00
55d5573e17 Add ignore file 2022-12-06 17:04:50 +03:00
2aed22cd6b FIx previous commit 2022-12-06 16:35:29 +03:00
8796dacf93 Add socketio worked version 2022-12-06 16:33:47 +03:00
24fc302a32 ready to merge
x2t compiled with pptx optimization
2022-12-06 14:26:01 +03:00
5dbfc32c3e Merge branch 'release/v7.3.0' into fix/refact 2022-12-06 13:34:59 +03:00
90283fab8a pptx: optimization on
without AVSINLINE
2022-12-06 13:34:38 +03:00
d809afc62a fix bug #59976 2022-12-06 12:37:02 +03:00
5a7ed95b7e fix bug #60000 2022-12-06 12:21:33 +03:00
eb73c4592b Merge pull request #1088 from ONLYOFFICE/fix/bug35023
Fix bug 35023 and other fixes
2022-12-06 10:36:31 +03:00
aa55140bd7 . 2022-12-06 09:53:34 +03:00
b4f7005f7b Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-06 09:48:19 +03:00
c085828e02 . 2022-12-06 09:29:40 +03:00
147fd5de04 x2t compiled
pptx: pch disabled.
2022-12-06 09:17:43 +03:00
e38498ecba Merge branch 'release/v7.3.0' into fix/refact 2022-12-05 20:28:58 +03:00
fbea298e13 pptx done 2022-12-05 20:27:53 +03:00
e0eecd44cb precompiled - lite mode 2022-12-05 19:20:09 +03:00
a214c3a7cd fix debug build 2022-12-05 19:12:31 +03:00
ce07772680 small refactoring 2022-12-05 17:41:48 +03:00
f38ddc22f1 Merge pull request #1075 from ONLYOFFICE/fix/bug59524
Fix bug 59524
2022-12-05 16:05:45 +03:00
b2e5f6a039 openjpeg support 2022-12-05 16:02:57 +03:00
86dc8b5eb0 . 2022-12-05 15:23:39 +03:00
83060ec8a0 Fixed bug 2022-12-05 15:16:21 +03:00
fab394f33f Removed unnecessary 2022-12-05 15:12:34 +03:00
6506542e35 pptx: Logic/(Runs, Table, Transitions, Path2D)
pch turn off temporarily
2022-12-05 14:34:51 +03:00
d5fa2f3070 Merge pull request #1083 from ONLYOFFICE/fix/bug59250
Fix bug 59250
2022-12-05 09:44:28 +03:00
73116f6375 . 2022-12-05 09:28:44 +03:00
e2d2aba8e5 Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-05 08:54:52 +03:00
b4820e0e05 fix build linux/macos 2022-12-05 08:21:54 +03:00
46ab617a67 Merge branch 'release/v7.3.0' into fix/refact 2022-12-04 13:35:56 +03:00
3541a01301 Merge pull request #1087 from ONLYOFFICE/fix/x2ttester
Fix bug 60002
2022-12-04 13:33:33 +03:00
bddf255598 pptx: Logic/(Colors, Fills, Media, Path2D) 2022-12-04 13:30:17 +03:00
9b58a31759 Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-12-04 10:09:48 +03:00
6d27258090 pptx: Logic/Bullets & Logic/Effects 2022-12-04 00:12:56 +03:00
0507f52a84 Fix bug 60002 2022-12-03 15:54:07 +03:00
2203b9a98e odf pch 2022-12-03 10:26:35 +03:00
96380b314e x2t compiled (debug/release)
debug: compilation speed up
2022-12-02 22:52:40 +03:00
8502c3cea3 Update precompiled.h 2022-12-02 20:42:30 +03:00
c1673b148c Update precompiled.h 2022-12-02 20:40:44 +03:00
04c84c7a9a fix TxtXmlFormatLib + pch files (not final) 2022-12-02 20:38:05 +03:00
53dfc2f2d1 Fixed bugs 2022-12-02 19:06:48 +03:00
2e77b8ef2f Fixed memory leak 2022-12-02 19:05:58 +03:00
62d6f365cb all CMap for Adobe-GB1 2022-12-02 17:16:14 +03:00
eb67c01e34 Merge pull request #1085 from ONLYOFFICE/fix/x2ttester
Fix/x2ttester
2022-12-01 21:37:21 +03:00
0a72a6d1c8 Refactoring 2022-12-01 21:34:49 +03:00
d7d64cbead Refactoring 2022-12-01 21:23:44 +03:00
519e950218 Fixed bug 35023 2022-12-01 17:59:42 +03:00
fb3152fe65 Merge branch 'release/v7.3.0' into fix/refact 2022-12-01 14:43:12 +03:00
4130df7b6c PPTXFormat: Logic (root files)
PPTXFormatLib compiled(release/debug).
x2t compiled.
2022-12-01 14:37:40 +03:00
d529009e26 fix txt 2022-12-01 10:41:59 +03:00
5362ad02db Refactoring 2022-12-01 00:31:38 +03:00
98e3fc20d5 Refactoring 2022-12-01 00:24:09 +03:00
15f10641aa Update x2t readme 2022-12-01 00:12:09 +03:00
572dfd97ce x2t/x2ttester/standardarttester update 2022-12-01 00:08:56 +03:00
d6022efefb Add new algs 2022-11-30 21:48:07 +03:00
de0146e007 Merge pull request #1084 from ONLYOFFICE/fix/bug57911
Fix bug 57911
2022-11-30 19:26:13 +03:00
837b4d5d9b fix 2022-11-30 17:07:39 +03:00
472677cc61 Fix bug 57911
Also partially fixed 58084
2022-11-30 16:44:47 +03:00
641b77da3b minor 2022-11-30 16:19:06 +03:00
583eb8d41e Merge branch 'release/v7.3.0' into fix/refact 2022-11-30 16:04:56 +03:00
ce17a08b17 PPTXFormat: Limit 2022-11-30 16:02:28 +03:00
6cf6013fd6 fix link 2022-11-30 14:57:25 +03:00
e5812bb7c7 Refactoring 2022-11-30 14:50:16 +03:00
239fb5115a . 2022-11-30 14:16:59 +03:00
7f22fa5ce2 fix mac build 2022-11-30 13:10:52 +03:00
712014cfd8 . 2022-11-30 11:40:45 +03:00
a2ac053f85 Merge branch 'release/v7.3.0' into fix/refact 2022-11-30 11:39:10 +03:00
446b8da69a PPTXFormat: ShowPr, Presentation
checked on debug build
2022-11-30 11:33:37 +03:00
27fbc6fa06 . 2022-11-30 11:27:04 +03:00
cc160a50c8 . 2022-11-30 10:56:03 +03:00
ce3aa935d4 build fix after commit 21046ac 2022-11-30 10:09:36 +03:00
8828e9c678 PPTXFormat: Theme, ViewProps 2022-11-30 09:23:02 +03:00
10365d431a unzip fix 2022-11-30 01:43:07 +03:00
def2fb7f85 . 2022-11-29 22:42:58 +03:00
b77268485d . 2022-11-29 22:29:27 +03:00
21046acdd7 . 2022-11-29 22:17:24 +03:00
4a86601909 Merge branch 'release/v7.3.0' into fix/refact 2022-11-29 19:38:35 +03:00
246e62242c fix after merge 2022-11-29 19:27:27 +03:00
9bddef6976 fix namespaces 2022-11-29 19:17:57 +03:00
5f9526d4a0 sync 2022-11-29 18:56:32 +03:00
f382bc9bc8 Merge branch 'release/v7.3.0' into fix/refact 2022-11-29 18:42:55 +03:00
9363fb6e68 PPTXFormat cpp
part 1
2022-11-29 18:32:26 +03:00
566c44a74b revert ppt 2022-11-29 17:09:15 +03:00
a327e4e1fe [x2t] Fix ContentTypes writing for XlsIO library(minfin) 2022-11-29 16:17:34 +03:00
5e37534f4f fix 2022-11-29 14:59:07 +03:00
e1acff706f fix 2022-11-29 13:59:57 +03:00
a87e1d3467 Merge remote-tracking branch 'origin/fix/refact' into release/v7.3.0 2022-11-29 12:42:35 +03:00
7dc713d4fb fix 2022-11-29 12:41:54 +03:00
958badadf9 Merge remote-tracking branch 'origin/fix/refact-ppt' into release/v7.3.0 2022-11-29 11:27:23 +03:00
30f804bfd9 BinDocument refactoring 2022-11-29 09:45:40 +03:00
5399478419 Merge branch 'release/v7.3.0' into fix/refact 2022-11-28 21:10:48 +03:00
b0fe9d0c5b Added .cpp files for all files 2022-11-28 18:49:17 +03:00
adfdac39ef Added .cpp files for all records 2022-11-28 17:37:12 +03:00
9edbe9fee2 fix 2022-11-28 13:57:57 +03:00
502f612aa2 Fix bug 59250 2022-11-28 13:48:21 +03:00
eb5eb69be3 fix bug #59786 2022-11-28 13:32:50 +03:00
ad3faa301d references 2022-11-28 13:14:17 +03:00
dba6f3c705 - unused files 2022-11-27 21:06:01 +03:00
a44a287ca9 . 2022-11-26 11:54:16 +03:00
1b2a57a220 minor 2022-11-26 11:19:09 +03:00
663d780b77 Fix freeze on subfolders 2022-11-26 01:14:35 +03:00
0f929b4a88 build fix after merge 2022-11-25 20:20:45 +03:00
92aa553740 Merge branch 'release/v7.3.0' into fix/refact 2022-11-25 19:01:41 +03:00
f7e0d6e004 OOXML/XlsxFormat done 2022-11-25 18:37:50 +03:00
56fb02d113 externalReference 2022-11-25 17:09:59 +03:00
8958e6e28b Merge pull request #1082 from ONLYOFFICE/fix/metafile2svg
Fixed a bug in metafile to svg conversion
2022-11-25 16:38:30 +03:00
624ed0e449 Add new minimal module for openssl 2022-11-25 16:25:30 +03:00
46a71964d1 perm 2022-11-25 15:40:00 +03:00
3f1cc2707d fix win build 2022-11-25 15:08:04 +03:00
566b612613 . 2022-11-25 14:30:23 +03:00
da33dda7dc Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2022-11-25 14:28:32 +03:00
df7390ad2a build fix 2022-11-25 14:11:39 +03:00
cc0baaafec . 2022-11-25 14:09:33 +03:00
810f7dc592 Fix build 2022-11-25 12:58:56 +03:00
783aa4c7be . 2022-11-25 12:14:48 +03:00
16280f1957 . 2022-11-25 11:37:56 +03:00
6593ff5fac Merge remote-tracking branch 'origin/fix/v7.3-fix-bugs-ppt' into fix/v7.3.0-fix 2022-11-25 11:34:13 +03:00
47679d47ba . 2022-11-25 10:43:28 +03:00
524f4cc285 XlsxFormat changes
part 2
2022-11-25 10:17:04 +03:00
4a74b4a934 XlsxFormat changes
part 1
2022-11-24 20:52:35 +03:00
0caa98998f [x2t] Change order of writing font properties to fix OOXML validator errors 2022-11-24 20:12:37 +03:00
01d99fec57 Fix bug 2022-11-24 19:50:11 +03:00
919ab72ece return animation 2022-11-24 18:41:48 +03:00
d7d7596b10 Merge pull request #1081 from ONLYOFFICE/hotfix/v7.2.2
Fix bug 59462
2022-11-24 18:13:47 +03:00
12ef2e6510 Fix bug 59462 2022-11-24 18:11:20 +03:00
f03a7584dc add HashCode10Atom. But it does not calculate hash correct 2022-11-24 13:50:29 +03:00
7efd8f5962 Merge pull request #1080 from ONLYOFFICE/release/v7.3.0
Fix build
2022-11-24 10:43:55 +03:00
782c8aad32 Fix build 2022-11-24 10:41:51 +03:00
e544845048 Merge pull request #1079 from ONLYOFFICE/release/v7.3.0
Fix build
2022-11-24 10:02:56 +03:00
6cf47b33f4 Fix build 2022-11-24 10:02:10 +03:00
1dd6e91180 fix build (inline)
must be agreed with the top)
2022-11-23 22:52:51 +03:00
26c2029300 Merge pull request #1077 from ONLYOFFICE/release/v7.3.0
Release/v7.3.0
2022-11-23 19:25:39 +03:00
92742e8b69 Fix build 2022-11-23 19:25:00 +03:00
d15762cb36 OOXML/DocxFormat done 2022-11-23 19:06:13 +03:00
5fc0a26c59 Merge pull request #1072 from ONLYOFFICE/fix/metafile_to_svg
Fix/metafile to svg
2022-11-23 18:57:40 +03:00
12e2413944 Merge pull request #1076 from ONLYOFFICE/fix/bug59621
Fix bug 59621
2022-11-23 18:55:39 +03:00
e51258029d Add new wmf/emf => svg convertation 2022-11-23 18:52:54 +03:00
78dcd9065c fix JPXStream2 2022-11-23 17:23:57 +03:00
404139b8d0 Merge branch 'fix/metafile_to_svg' of https://github.com/ONLYOFFICE/core into fix/metafile_to_svg 2022-11-23 17:07:00 +03:00
86ac3febbb Fixed bugs 2022-11-23 16:37:44 +03:00
f3da6a7f1b The algorithm for calculating the width of the minimum pen has been changed 2022-11-23 16:37:25 +03:00
7edc38716f Merge pull request #1074 from ONLYOFFICE/release/v7.3.0
Release/v7.3.0
2022-11-23 16:32:34 +03:00
4608620da8 Fix create core in doctrenderer for pdf 2022-11-23 15:02:29 +03:00
3e092303c1 Merge branch 'release/v7.3.0' into develop 2022-11-23 10:47:04 +03:00
7307376d43 Merge branch 'release/v7.3.0' of https://github.com/ONLYOFFICE/core into release/v7.3.0 2022-11-22 21:15:26 +03:00
244dc8e33f . 2022-11-22 21:15:03 +03:00
00d9ed438b docx cpp
+Math, +Media, +Settings
2022-11-22 21:14:38 +03:00
93f935237d Merge pull request #1071 from ONLYOFFICE/feature/pdffile
Feature/pdffile
2022-11-22 20:51:02 +03:00
5029172e12 . 2022-11-22 20:13:39 +03:00
cb52f87188 Refactoring module 2022-11-22 17:42:14 +03:00
b3cbcbf7ad fix wasm 2022-11-22 17:31:39 +03:00
8ee5b43ce0 GetRotate for edit mode 2022-11-22 17:30:00 +03:00
d2dbd64a21 fix bug #59791 2022-11-22 17:22:00 +03:00
2fe7f309af logic to cpp 2022-11-22 16:52:21 +03:00
1cd225e279 Merge remote-tracking branch 'origin/release/v7.3.0' into feature/pdffile 2022-11-22 16:44:13 +03:00
71226b6b37 comments 2022-11-22 16:29:34 +03:00
6a1e2a8e05 . 2022-11-22 15:41:35 +03:00
27cc65a08a fix vba 2022-11-22 15:13:54 +03:00
07f1c63459 create separate States 2022-11-22 13:30:09 +03:00
0f50633f87 . 2022-11-22 13:25:48 +03:00
37daa3f56a Revert bad commit 2022-11-22 13:23:47 +03:00
bae1da1f1e refactoring and fix empty p:bldLst 2022-11-22 11:10:00 +03:00
53a33cfb19 Merge remote-tracking branch 'origin/fix/v7.3.0-fix' into release/v7.3.0 2022-11-22 10:18:16 +03:00
7e515862a5 build fix 2022-11-22 00:06:36 +03:00
194f2f6b26 . 2022-11-21 23:53:48 +03:00
b2665a2e68 . 2022-11-21 23:10:02 +03:00
4fa833bac2 DocxFormat Opt
to cpp:
- Diagram
- Drawing
- External
- Logic

Without core_release:
145MB -> 129MB
2022-11-21 23:00:31 +03:00
6275bc8fa2 Refactoring 2022-11-21 21:42:13 +03:00
34afdf71e3 . 2022-11-21 20:45:03 +03:00
968002fb2a . 2022-11-21 20:38:55 +03:00
6035597060 trying to throw exeption when timing_2010 isn't actual 2022-11-21 19:47:54 +03:00
5e8e20fbed . 2022-11-21 18:55:27 +03:00
6430a9394f fix nativegraphics and drawingfile 2022-11-21 18:46:43 +03:00
513301aeae . 2022-11-21 17:51:36 +03:00
edd5d6aead fix another project without Mode 2022-11-21 16:18:26 +03:00
4b0ca24396 . 2022-11-21 15:32:23 +03:00
14541b9ee4 Merge pull request #1070 from ONLYOFFICE/feature/x2ttester
Feature/x2ttester
2022-11-21 15:03:06 +03:00
b3b0a158a7 Refactoring 2022-11-21 15:01:18 +03:00
d36b6038a2 PdfReader and PdfWriter moved entirely to PdfFile 2022-11-21 14:12:22 +03:00
45e89465d1 . 2022-11-21 14:04:57 +03:00
4cef6d3f68 . 2022-11-21 13:51:47 +03:00
9ecee62d94 . 2022-11-21 13:01:33 +03:00
8f5baab348 fix 2022-11-21 12:05:14 +03:00
d090b6cd70 . 2022-11-21 11:23:52 +03:00
b8b98795b4 Merge branch 'fix/refact' into fix/v7.3.0-fix 2022-11-21 11:22:35 +03:00
3fb845fc97 SetCore 2022-11-21 10:43:29 +03:00
e0c0166faf Update x2ttester README 2022-11-21 02:12:29 +03:00
64308d7cf0 Update x2ttester 2022-11-21 01:55:34 +03:00
06d0754982 Fix build ios 2022-11-20 21:42:51 +03:00
9af65f4e39 Refactoring formfields 2022-11-20 16:55:40 +03:00
8085865daa Fix CRecordBuildListSubContainer problem and FillBuildNodeBase ref missing 2022-11-20 12:19:08 +03:00
687836b781 Add correct animation spid searcher and checker. Found CRecordBuildListSubContainer problem 2022-11-20 11:52:42 +03:00
e7854cdf40 Fix ios build 2022-11-18 23:25:05 +03:00
9a91a1695b Fix build 2022-11-18 23:11:04 +03:00
6b8804ec27 Fix build 2022-11-18 22:20:51 +03:00
bbe72674e2 create SetCore for pdf 59621 2022-11-18 18:26:14 +03:00
12c93209a3 x2t compiled
- short project names
- win32 projects
- ASCOfficeDocxFile2Lib->BinDocument
- minor fixes
2022-11-18 18:06:15 +03:00
101b79ea49 add animation rejection 2022-11-18 17:01:23 +03:00
abab3dc3d6 Fixed bugs 2022-11-18 15:44:59 +03:00
4f19fca2ed Big refactoring
new project scheme
2022-11-18 15:01:21 +03:00
c667dd6624 fix bug #59786 2022-11-18 14:28:41 +03:00
b1831a0467 Merge pull request #1069 from ONLYOFFICE/hotfix/v7.2.2
Hotfix/v7.2.2
2022-11-18 12:47:10 +03:00
da3a6b3189 Fix bugs with cache 2022-11-18 12:20:05 +03:00
ab849cc03d Fixed bugs 2022-11-17 22:10:51 +03:00
81e03f64db Add support print custom pages in pdf/xps/djvu 2022-11-17 19:24:11 +03:00
a267039f5b fix bug #59716 2022-11-17 14:17:13 +03:00
75ac8dae17 Fix bug 59523 2022-11-17 11:27:43 +03:00
0aed94b748 Fix ios/android build 2022-11-17 10:19:34 +03:00
5af4ebba9e Fix bug with caches 2022-11-16 23:25:19 +03:00
a8f0c12d0f Merge pull request #1068 from ONLYOFFICE/feature/cacheJS
Feature/cache js
2022-11-16 20:46:01 +03:00
e5351899c5 Refactoring js cache directory 2022-11-16 18:58:48 +03:00
cc7644bc36 Timing_2010 restructed to control converter of animation 2022-11-16 18:56:01 +03:00
f6cc44d386 Added implementation of EMFPLUS_DRAWDRIVERSTRING in metafile->svg conversion 2022-11-16 18:16:41 +03:00
6a61318513 the heart of the matter 2022-11-16 18:16:14 +03:00
0d5a478949 Added clips support in metafile->svg conversion and refactoring 2022-11-16 18:15:40 +03:00
aee82236cc fix bug #59716 2022-11-16 17:44:11 +03:00
559f274677 fix bug #59719 2022-11-16 17:43:42 +03:00
fa094e152c Create js caches for server 2022-11-16 17:34:45 +03:00
13c6b18c3f Include Timing_2010.Convert(), no anim correction 2022-11-16 16:47:11 +03:00
ecd3aeed88 Fix second file from 5 9 5 2 3 2022-11-16 15:08:08 +03:00
d2f8669552 refactoring 2022-11-16 15:07:03 +03:00
8ba3ab030d fix bug #59708 2022-11-16 13:02:41 +03:00
503f916d54 Added raw code base for class Timing_2010 2022-11-15 18:54:08 +03:00
7aca8b1d7b for bug #48897 2022-11-15 15:46:26 +03:00
f28221336c Fixed bugs 2022-11-14 20:26:43 +03:00
ed07e856e4 start Timing_2010 mainSeq convertation 2022-11-14 18:34:00 +03:00
9b5c153e64 add class Timing_2010 and tag p:BldLst 2022-11-14 15:56:32 +03:00
c937c57160 minor 2022-11-14 14:55:52 +03:00
1dab4b08d5 Merge pull request #1067 from ONLYOFFICE/fix/v7.3.0-refactoring
Fix/v7.3.0 refactoring
2022-11-12 21:11:09 +03:00
2db34852ea . 2022-11-12 21:08:36 +03:00
de62b3b383 Merge remote-tracking branch 'origin/fix/cpp' into fix/v7.3.0-refactoring 2022-11-12 21:06:17 +03:00
a83cdd6e7f fix bug #59691 2022-11-12 20:38:01 +03:00
805f1d1214 . 2022-11-12 17:53:09 +03:00
3f1960eee3 DocxFormat/Drawing to cpp 2022-11-12 17:14:01 +03:00
1e7c85d310 fix bug #59692 2022-11-12 17:10:25 +03:00
6fd694af1f DocxFormat/Diagram to cpp 2022-11-12 15:36:43 +03:00
3c570883e0 Merge pull request #1066 from ONLYOFFICE/fix/v7.3.0-refactoring
Fix/v7.3.0 refactoring
2022-11-12 13:13:59 +03:00
e8a134c14a . 2022-11-12 13:09:05 +03:00
bb85447946 Merge branch 'fix/txt' into fix/cpp 2022-11-12 09:05:53 +03:00
703893e3f3 Merge remote-tracking branch 'origin/fix/txt' into fix/v7.3.0-refactoring 2022-11-11 22:51:44 +03:00
94cbb259cf Added clip support in metafile to svg conversion and fixed bugs 2022-11-11 19:02:24 +03:00
8b4aae06e6 Fix compile on linux/macos 2022-11-11 18:52:03 +03:00
e025ec2b8e #1 2022-11-11 16:46:06 +03:00
3b7454007a for merge 2022-11-11 16:31:36 +03:00
3f446a7e47 x2t done 2022-11-11 11:28:12 +03:00
8b45546ebd fix bug #59639 2022-11-11 09:57:05 +03:00
1ce6307a56 Compiled version 2022-11-10 23:25:20 +03:00
a989422bca refactoring: Timing_1995 2022-11-10 19:50:02 +03:00
acce41ba3e withot SimpleTypes templates 2022-11-10 18:43:48 +03:00
88bab0600c fix old animation: groupDelay 2022-11-10 16:37:43 +03:00
14cb9c60c1 rollback for default values 2022-11-10 16:36:54 +03:00
e2aad28114 fix old animation <p:timing> struct 2022-11-10 15:16:23 +03:00
f60727c480 Refactoring
without templates
2022-11-10 13:02:22 +03:00
a757b69f03 fix bug #59613 2022-11-10 12:12:43 +03:00
31c852f4f0 Refactoring
Ready TxtXmlFormatLib build with "no-template" changes (Vml, Shared, OMath, Word, Drawing, Spreadsheet)
2022-11-10 09:36:58 +03:00
4264dfdf67 Fixed bugs 2022-11-09 20:13:54 +03:00
49095378d7 Added transparency support for stroke and fill in metafile -> svg conversion and refactoring 2022-11-09 19:40:43 +03:00
057c217457 trying to fix pld animation 2022-11-09 19:06:35 +03:00
558c0ea251 Fixed bugs 2022-11-09 19:02:52 +03:00
ffbc5d2baf Added support for converting pie records to svg 2022-11-09 19:01:26 +03:00
e756e269a4 Added hatched fills to wmf -> svg conversion 2022-11-09 19:00:16 +03:00
ddb082e106 Merge pull request #1065 from ONLYOFFICE/fix/v7.3-fix-bugs-cfcpp
clsid null init
2022-11-09 16:57:02 +03:00
08b93a69af clsid null init 2022-11-09 16:50:31 +03:00
12960e474e add some lost source files 2022-11-09 16:33:03 +03:00
ad0b19caf4 .. 2022-11-09 14:27:45 +03:00
aec81dd7dd Refactoring
preparing a common assembly without templates
2022-11-09 11:47:03 +03:00
875eca3fc0 . 2022-11-09 11:16:32 +03:00
cb30e1362c Refactoring
Ready TxtXmlFormatLib build with "no-template" changes (Vml, Shared, OMath, Word, Drawing)
2022-11-08 23:17:07 +03:00
70e07e3ce1 fix part of 1995 animation bug 2022-11-08 19:56:20 +03:00
6ea4d86ab2 fix bug #59632 2022-11-08 18:41:39 +03:00
da26208a1f fix empty font family_name 2022-11-08 17:49:14 +03:00
75b406e010 Update VmlOfficeDrawing.h 2022-11-08 12:59:58 +03:00
a3491ee217 Refactoring
Word templates with FromStringA
2022-11-08 12:01:49 +03:00
133d86fff5 Refactoring
Ready TxtXmlFormatLib (8.5MB->4MB) build with "no-template" changes (Vml, Shared, OMath, Word).
To be continued.
2022-11-08 10:59:59 +03:00
9d2bd72cfd updated macros 2022-11-08 08:56:37 +03:00
b7bd889049 Word-> DEFINE_SIMPLE_TYPE 2022-11-08 01:06:05 +03:00
acb46e412d Add reformated converter Timiming_1995 with Animation_1995 2022-11-07 22:53:02 +03:00
4be596506d Update SimpleTypes_Vml.h 2022-11-07 20:38:25 +03:00
420d8170dc Refactoring
Ready TxtXmlFormatLib build with "no-template" changes (Vml, Shared, OMath).
To be continued.
2022-11-07 20:36:21 +03:00
bdfcbe65bb Edited hatcheds in the conversion MetafileToSvg and refactoring 2022-11-07 19:37:35 +03:00
c3d5a5a886 fix PdfWriter 2022-11-07 18:43:43 +03:00
52d7a1d14f fix bug #59631 2022-11-07 17:05:45 +03:00
d173bfa1be [x2t] For bug 55472 2022-11-07 14:51:50 +03:00
4564f4302a fix empty reader and writer 2022-11-07 13:50:48 +03:00
9e29ea719e Shared -> DEFINE_SIMPLE_TYPE 2022-11-06 17:19:49 +03:00
d7ccf0b95e Added support for some hatched fills when converting a metafile to svg 2022-11-06 12:38:39 +03:00
15c931783f Vml -> DEFINE_SIMPLE_TYPE 2022-11-06 11:40:39 +03:00
0fd3ea574e OMath -> DEFINE_SIMPLE_TYPE 2022-11-06 10:42:50 +03:00
c971cc1199 Change project params 2022-11-05 13:48:47 +03:00
0d95984c2a Change framework version (4.7.5 => 4.5) 2022-11-05 13:42:04 +03:00
a7137cfc4d Comlex definitions 2022-11-05 10:42:18 +03:00
e4d8ee832f Merge pull request #1064 from ONLYOFFICE/release/v7.3.0
Release/v7.3.0
2022-11-04 22:20:37 +03:00
0c5d24171a Merge pull request #1063 from ONLYOFFICE/feature/docbuilder.com
Feature/docbuilder.com
2022-11-04 22:20:01 +03:00
dffe7aa55e docbuilder.com 2015 build fix 2022-11-04 19:33:22 +03:00
42d7ee8d8f Merge pull request #1062 from ONLYOFFICE/feature/docbuilder.com
Feature/docbuilder.com
2022-11-04 10:42:37 +03:00
53814fddbf Remove pch 2022-11-04 10:41:06 +03:00
3ecd57c8b4 Fix compile project for vs2015 2022-11-04 10:38:37 +03:00
69a40508b7 Add defines in docbuilder.com 2022-11-04 02:51:21 +03:00
71d875e0b5 ComplexTypes cpp 2022-11-03 21:23:49 +03:00
af2f11bff2 Added support for some hatched fills when converting a metafile to svg 2022-11-03 19:08:26 +03:00
80f2dce1b3 Animation reformation. Add head logic to Converter::Animation_1995 2022-11-03 18:40:06 +03:00
70225b2ca6 Merge pull request #1061 from ONLYOFFICE/hotfix/v7.2.2
Hotfix/v7.2.2
2022-11-03 17:56:56 +03:00
f44d81f706 fix GetApplicationFonts 2022-11-03 17:50:48 +03:00
d70d4d50f0 fix PdfReader and PdfWriter, fix BUILDING_WASM_MODULE 2022-11-03 17:47:16 +03:00
4a898653ae Add docbuilder.net defines file 2022-11-03 02:52:43 +03:00
e1168478cd Animation reformation. Add header of old animation parser 2022-11-02 19:12:00 +03:00
e27a20f9ae new PdfReader and PdfWriter for PdfFile 2022-11-02 17:50:50 +03:00
d89679d394 Disable x32 arches by default for ios 2022-11-02 17:00:28 +03:00
b0a891c7ba . 2022-11-02 13:06:36 +03:00
2764479c11 Refactoring... 2022-11-02 13:03:22 +03:00
5be41c5892 Fix bug 2022-11-02 00:04:50 +03:00
ad3a1dbd8f Refactoring 2022-11-01 23:38:10 +03:00
2da365690e Added support for some hatched fills when converting a metafile to svg 2022-11-01 21:05:04 +03:00
c2f6f2d1b5 PdfFile using 2022-11-01 18:36:01 +03:00
21470d1711 Animation reformation was started 2022-11-01 18:30:48 +03:00
58d3c2a914 . 2022-11-01 14:23:38 +03:00
ed3cfd6c55 . 2022-11-01 14:20:37 +03:00
de35674fdc fix copyrights 2022-11-01 14:00:35 +03:00
a36e31ab0f Create test onescript 2022-11-01 13:03:36 +03:00
24c136c1e1 . 2022-10-31 20:05:30 +03:00
77132ec0a2 . 2022-10-31 20:03:30 +03:00
b5bec4339f Merge remote-tracking branch 'origin/feature/lib_cfcpp3' into develop
fix
2022-10-31 19:56:31 +03:00
0daf5042d9 fix pdf info time 2022-10-31 18:08:11 +03:00
675b6a2acc CFStorage's includes was hidden 2022-10-31 18:03:31 +03:00
ed3a8f7916 Indents fix 2022-10-31 17:44:16 +03:00
df48636232 make.py defaults fix 2022-10-31 17:39:31 +03:00
445850393f make.py fix 2022-10-31 17:36:29 +03:00
c9f2320e39 Add dotnet test, refactoring 2022-10-31 17:36:12 +03:00
c66424204d Stream's classes was hidden 2022-10-31 17:30:40 +03:00
b607481860 Rename: int -> _INT32 2022-10-31 15:43:27 +03:00
fb6f0ac83d Merge remote-tracking branch 'origin/fix/v7.3-fix-bugs-ppt' into develop 2022-10-31 15:40:22 +03:00
7da913775f Added a line break when a character is encountered in svg conversion 2022-10-31 14:59:34 +03:00
941ec4b354 Merge remote-tracking branch 'origin/develop' into feature/pdffile
# Conflicts:
#	PdfReader/PdfReader.h
#	PdfReader/PdfReader.pro
2022-10-31 13:18:43 +03:00
bda5c3bbb9 test fix 2022-10-31 13:09:20 +03:00
32d0357e1f Refactoring 2022-10-31 11:56:41 +03:00
6f18cc2c60 correct unit tests 2022-10-31 11:54:42 +03:00
f936175708 Fix ios build 2022-10-31 11:46:00 +03:00
96d5940126 Developing 2022-10-29 10:48:55 +03:00
6803651681 . 2022-10-29 09:15:01 +03:00
5ea8a3ba5e Changed the minimum width of the pen when converting to svg 2022-10-28 20:23:59 +03:00
a090c47c05 Improving gradients when converting to svg 2022-10-28 20:15:23 +03:00
f83cbee774 Edited the position of the rotated text when converting to svg 2022-10-28 20:14:19 +03:00
23d500eca4 Add CreateTypedArray
Fix memory leak
2022-10-28 16:45:18 +03:00
addabe9fca update to new compound in crypt 2022-10-28 13:09:13 +03:00
a8d819694d . 2022-10-28 10:53:01 +03:00
5a3a5a37ab fix build 2022-10-28 10:32:48 +03:00
f1fe7ea410 Refactoring 2022-10-27 21:47:20 +03:00
d39df6d82d Fix bug
it finally works!
2022-10-27 19:15:22 +03:00
f4326c0cd7 Svg added support for embedded emf+ metafiles 2022-10-27 19:12:41 +03:00
be08660d01 PdfFile multiple inheritance 2022-10-27 18:36:32 +03:00
33890472f3 . 2022-10-27 17:47:25 +03:00
0f9730814b cf 2022-10-27 17:13:55 +03:00
b28acbabe8 no message 2022-10-27 15:52:54 +03:00
fbb533200f Increase DEPLOYMENT_TARGET value for ios 2022-10-27 12:37:00 +03:00
f5f2a38c7e . 2022-10-27 10:27:58 +03:00
71768d09a6 Merge remote-tracking branch 'origin/feature/lib_cfcpp2' into feature/cf_merge 2022-10-27 09:22:39 +03:00
bb0d3e72e9 fix bug #59365 2022-10-27 08:58:31 +03:00
780c66ef5b Test update 2022-10-26 21:38:25 +03:00
4e63672518 fix part of 59405 2022-10-26 18:43:58 +03:00
d985f924a3 tests 2022-10-26 15:23:11 +03:00
4a587e96d4 fix bug #59365 2022-10-26 10:32:31 +03:00
aa490d4dd3 docbuilder.com beginning 2022-10-26 00:56:07 +03:00
99a4f2f5df fix bug #59496 2022-10-25 21:09:13 +03:00
515cde9544 Vertical refactoring 2022-10-25 19:04:07 +03:00
8959a61c33 without XMLConverter::DictToXml 2022-10-25 18:39:14 +03:00
8f368ad64c Unit tests were corrected and refactored 2022-10-25 18:04:19 +03:00
3e1f2135f5 fix bug #58982 2022-10-25 16:57:58 +03:00
ce7eec890b correct compund file header write possition 2022-10-24 23:00:19 +03:00
ab4eba01a3 Increased the number of supported emf+ records 2022-10-24 20:39:26 +03:00
968b8b6ec6 create DictToCDictObject 2022-10-24 18:02:09 +03:00
50db6f16cb refactoring: transition 2022-10-21 20:43:48 +03:00
8f161b09ee Start of emf+ to svg support 2022-10-21 15:45:04 +03:00
1d118aa59d Merge pull request #1060 from ONLYOFFICE/feature/x2ttester
Feature/x2ttester
2022-10-20 22:03:35 +03:00
60a5242758 fix bug #59412 2022-10-20 21:16:05 +03:00
3b7ea8504f Add waiting to subfolders 2022-10-20 20:42:29 +03:00
15e001ee35 Add subfolders support
- Subfolders creating
- Fix bug
- Add start logo
2022-10-20 20:21:59 +03:00
a69bff9e4e Merge branch hotfix/v7.2.1 into master 2022-10-20 13:06:36 +00:00
a20e5fe003 Fix stroke width 2022-10-19 18:35:38 +03:00
2f20d4a3c7 [x2t] Fix bug 59350 2022-10-19 17:28:28 +03:00
0c91d6b648 Changed the work with the META_DIBBITBLT record 2022-10-19 16:15:52 +03:00
f4eb7ac3d0 Fixed merge issues 2022-10-19 15:58:26 +03:00
d3231b89ec Merge branch 'fix/metafile_bugs' into fix/metafile_to_svg 2022-10-19 15:09:03 +03:00
12f6d9407c Refactoring 2022-10-19 14:40:03 +03:00
28ab074cbe Output formats fix 2022-10-19 00:09:53 +03:00
13d4f7e8b7 small changes. Tag a:srgbClr val toupper. Tag a:endParaRPr sz arg replaced 2022-10-18 23:33:10 +03:00
200fba5615 Merge pull request #1057 from ONLYOFFICE/feature/x2ttester
Feature/x2ttester
2022-10-18 23:12:24 +03:00
b85f72b992 Add subfolders 2022-10-18 22:29:19 +03:00
1d25169cc6 x2tTester update
PDF -> docx, images
2022-10-18 22:22:43 +03:00
e36a0296c8 x2tTester fix bug
Add CS for working with files & folders
Update output
2022-10-18 22:00:01 +03:00
0960534d01 Fixed a problem with dibpattern 2022-10-18 19:12:03 +03:00
8887978540 merge correction 2022-10-18 17:53:45 +03:00
1d60f40d03 Merge pull request #1056 from ONLYOFFICE/feature/x2ttester
Feature/x2ttester
2022-10-18 15:10:46 +03:00
613a3a8507 refactoring: transition 2022-10-18 14:28:17 +03:00
04fdec16ca Refactoring 2022-10-18 01:47:07 +03:00
dd1bbb7c01 Fix bug 2022-10-18 01:15:04 +03:00
5acf726115 Fix bug
Now x2ttester waiting for creating folders and files
2022-10-18 00:41:03 +03:00
f1e45a5ab9 Fix bug
now folders create in CConverter
2022-10-18 00:02:42 +03:00
9f77442c23 Add error if config is not exist 2022-10-17 21:00:30 +03:00
9b5fbdfa96 fix bug #59332 2022-10-17 18:39:01 +03:00
42db0d787e fix bug #59361 2022-10-17 17:54:31 +03:00
ce87bb8461 Update x2tTester 2022-10-17 17:37:42 +03:00
55f026bac4 Fix bug 59404 2022-10-17 16:04:22 +03:00
117131b03d for bug #59360 2022-10-17 15:58:02 +03:00
56521b789f Merge branch 'develop' into fix/metafile_to_svg 2022-10-17 12:46:51 +03:00
6c4b0c9c86 Merge pull request #1052 from ONLYOFFICE/hotfix/v7.2.1
Hotfix/v7.2.1
2022-10-16 22:09:02 +03:00
c785e7f3a7 Merge pull request #1051 from ONLYOFFICE/feature/x2ttester
Feature/x2ttester
2022-10-16 19:58:04 +03:00
ae26d32681 Fix bugs in x2ttester 2022-10-16 19:55:24 +03:00
ed962804e3 Update formats
update pdf format
add new formats
2022-10-16 19:31:17 +03:00
eb323157f2 Formats fix & configuration update
add errorsOnly node
Refactoring
2022-10-16 05:13:33 +03:00
dd7573a745 Rename node name 2022-10-15 22:06:04 +03:00
e15a1a92fe Fix compile for linux/macos 2022-10-15 22:04:51 +03:00
9cee4a6696 Add more formats 2022-10-15 15:05:04 +03:00
63b2ddfff3 fix build 2022-10-15 08:42:26 +03:00
08073f5c08 Refactoring 2022-10-14 19:55:51 +03:00
b49d7331ff Added support for EMR_SCALEWINDOWEXTEX and EMR_SCALEVIEWPORTEXTEX records 2022-10-14 19:37:44 +03:00
58fc9d7bcb small changes 2022-10-14 19:08:13 +03:00
2f553229a9 x2tTester README update 2022-10-14 17:52:54 +03:00
6d3729a132 x2tTester configuration update 2022-10-14 17:48:55 +03:00
7132984ebf Merge remote-tracking branch 'origin/feature/vba-forms' into develop 2022-10-14 12:53:15 +03:00
0cad3436fd Merge pull request #1045 from ONLYOFFICE/fix/bug59199
Fix bug #59199
2022-10-14 12:53:10 +03:00
bb8c58c84b Merge remote-tracking branch 'origin/hotfix/v7.2.1' into develop 2022-10-14 12:51:58 +03:00
8aa54ed2e2 fix bug #59357 2022-10-14 12:48:47 +03:00
efb1511c59 Merge pull request #1048 from ONLYOFFICE/hotfix/v7.2.1-ppt
Hotfix/v7.2.1 ppt
2022-10-14 12:46:27 +03:00
34e9d98bee fix 59277 59281 59261 2022-10-14 12:08:05 +03:00
b25c3d3022 Switch to openssl 1.1.1i on android 2022-10-14 10:48:00 +03:00
2de73e8c02 fix part of 59276 2022-10-13 20:48:10 +03:00
fb04ac8a69 fiix bug #59353 2022-10-13 16:14:35 +03:00
a4b767303d small fixes. Audio inside animation problem 2022-10-12 18:55:09 +03:00
81535011fb Create x2t readme file 2022-10-12 16:56:29 +03:00
a97e7ef52d Fixed bugs and refactoring 2022-10-12 15:19:57 +03:00
4b86a6384b fix bug #59329 2022-10-12 12:47:45 +03:00
889721fd7e fix part of 59276. correct tmAbs 2022-10-12 00:23:54 +03:00
96f6c8a510 Fixed bugs 2022-10-11 18:41:53 +03:00
1df71c6504 fix part of 59276. Added new animation 2022-10-11 14:35:59 +03:00
f354046cc5 fix bug #59322 2022-10-11 11:58:31 +03:00
b27a36246d fix include paths .. 2022-10-11 09:47:22 +03:00
74615f508e Merge branch 'hotfix/v7.2.1' of https://github.com/ONLYOFFICE/core into hotfix/v7.2.1 2022-10-11 09:46:27 +03:00
204696035d fix bug #59209 2022-10-11 09:46:21 +03:00
cbd5d75532 trying to fix 59276. Old animation problem 2022-10-11 00:30:38 +03:00
d06c4a5104 Changed the algorithm for calculating the minimum width of the pen and editing bugs 2022-10-10 20:43:29 +03:00
26be4d9b20 Crypto module 2022-10-10 18:40:58 +03:00
9d47eef3e9 vba form 2022-10-10 14:47:36 +03:00
38b693c7fd x2tTester update
- update config
- add multitasking
2022-10-08 20:21:00 +03:00
6c146707f0 [mobile] Add structure of page scroll info 2022-10-07 19:44:19 +03:00
40d2f8d11d xml configuration update 2022-10-07 16:36:24 +03:00
cd0c129afb fix bug #59261 2022-10-07 14:32:06 +03:00
30a36f315c Changed the equation for calculating the minimum width of the pen 2022-10-06 20:47:25 +03:00
d77af73a75 Merge pull request #1047 from ONLYOFFICE/hotfix/v7.2.1
Hotfix/v7.2.1
2022-10-06 20:28:17 +03:00
b6cdf0e002 rename internal vars 2022-10-06 16:37:25 +03:00
63cd907eba Refactoring 2022-10-06 11:14:27 +03:00
56e02231db remove comments 2022-10-05 15:14:23 +03:00
42518d300e readme update 2022-10-04 20:46:00 +03:00
a2a8d85cd4 x2tTester update 2022-10-04 20:41:40 +03:00
bb1dc3c8b4 null as default value for all vars in headers 2022-10-04 18:24:23 +03:00
5750ef2687 fix write large stream 2022-10-04 18:08:18 +03:00
083304c9a3 Fix bug #58901
Implement save text field formats to PDF
2022-10-04 00:06:05 +03:00
290531e5d4 Added support for EMR_PAITRGN recording and bug fixes 2022-10-03 19:54:21 +03:00
9b963ae9cf Add minimal test 2022-10-03 18:14:41 +03:00
8e70be5415 Typos removed 2022-10-03 14:33:11 +03:00
8beb92191c fix creating new large files 2022-10-02 21:48:19 +03:00
89fac276c1 fix bug #59204 2022-09-30 18:37:02 +03:00
d322c08d98 Added temporary file deletion 2022-09-30 17:52:15 +03:00
e175b310f5 Fix bug #59199 2022-09-30 17:43:11 +03:00
fe5f52b7c2 fix bug #59221 2022-09-30 17:40:48 +03:00
7df8eacf0e fix bug #59220 2022-09-30 17:01:34 +03:00
5dca22470f add test 2022-09-30 14:46:53 +03:00
3d71c4e609 Fix bug 59175 2022-09-29 19:50:17 +03:00
a9e7c6794b Added support for embedded WMF file in EMF file, fixed bugs 2022-09-29 19:14:06 +03:00
b9c467142f small changes 2022-09-29 10:02:04 +03:00
aca965565e add functions 2022-09-28 18:53:13 +03:00
65a203838b fix buid 2022-09-28 14:21:14 +03:00
08c9874687 Merge pull request #1043 from ONLYOFFICE/feature/hyphen
Feature/hyphen
2022-09-28 11:38:07 +03:00
e273f78465 add test copy large file and the same fix 2022-09-27 23:01:35 +03:00
8301f402c5 Merge pull request #1042 from ONLYOFFICE/fix/bug59153
Fix bug 59153
2022-09-27 11:43:29 +03:00
caab9eae47 Fix bug 59119 2022-09-27 11:34:54 +03:00
f5282fdc98 Fix bug 59153 2022-09-27 10:10:00 +03:00
d560fcc0a8 fix buid 2022-09-27 09:51:49 +03:00
fd6259fed4 Refactoring 2022-09-26 23:55:24 +03:00
9e95aece26 fix 2022-09-26 22:02:41 +03:00
6f93961f67 hyphen test update 2022-09-26 19:38:55 +03:00
a2c4b69bae Changed bitmap rendering in emf+ and refactoring 2022-09-26 19:19:19 +03:00
9ca7cc5008 Merge pull request #1041 from ONLYOFFICE/fix/v.7.2-fix-bugs
Fix/v.7.2 fix bugs
2022-09-26 16:08:37 +03:00
2e952f0550 add large stream write test and fix compoundFile::Ver_4 2022-09-26 11:31:03 +03:00
83ba081ebb Refactoring 2022-09-25 22:55:32 +03:00
c9d77f53da Hyphen update 2022-09-24 03:34:22 +03:00
93caa36664 Small refactoring 2022-09-23 23:29:51 +03:00
cb27880fd0 Update loading dictionaries 2022-09-23 22:43:25 +03:00
c591ed20cc Indents refactoring 2022-09-23 22:18:42 +03:00
f94e98e09d Hyphen update 2022-09-23 22:12:09 +03:00
029908f8a1 General refactoring 2022-09-23 21:59:32 +03:00
56c3301e54 for bug #59118 2022-09-23 17:57:49 +03:00
23bf5cb929 Merge branch 'feature/v7.2-controls' into fix/v.7.2-fix-bugs 2022-09-23 17:56:19 +03:00
71929b726e Fix bug #43995
Added support for embedded Emf file to Wmf file
2022-09-23 13:27:55 +03:00
8669c75795 fix PdfReader without PdfWriter 2022-09-23 12:27:47 +03:00
35cbbe2fb1 Add combobox in js test 2022-09-22 21:53:34 +03:00
a0970d0963 add utc file timestamp 2022-09-22 20:07:09 +03:00
14756b05b7 Fixed minor bugs 2022-09-22 18:38:14 +03:00
316c85f0ce Fixed minor bugs 2022-09-22 17:28:27 +03:00
0b1c7f2642 fix viewProps presentation 2022-09-22 15:22:58 +03:00
b0d0186dd4 Merge branch release/v7.2.0 into master 2022-09-22 12:17:40 +00:00
d72d114f19 fix bug #59118
refactoring
2022-09-22 00:43:51 +03:00
98798e39c6 fix creating compoundfile 2022-09-22 00:16:46 +03:00
82b5b08dfc Hyphen refactoring 2022-09-21 19:43:27 +03:00
9205100eb3 Hyphen update + refactoring 2022-09-21 19:28:08 +03:00
af318a7c79 Fixed minor bugs 2022-09-21 17:22:29 +03:00
8f043e88fd Fix bug #40328 2022-09-21 17:21:21 +03:00
212c1466f7 create test for PdfFile 2022-09-21 17:19:04 +03:00
046e54f3f5 Add test and fix std::shared_from_this: protected -> public 2022-09-21 13:17:42 +03:00
a0cf3f13c3 Merge remote-tracking branch 'origin/fix/v7.2.0-ppt-2' into fix/v.7.2-fix-bugs 2022-09-21 10:34:33 +03:00
d400135f60 Merge branch 'fix/v7.2.0-fix-bugs' into fix/v.7.2-fix-bugs 2022-09-21 10:33:22 +03:00
62f1eb1967 Merge remote-tracking branch 'origin/release/v7.2.0' into feature/lib_cfcpp2 2022-09-20 20:29:43 +03:00
856933b884 fix bug #59108 2022-09-20 20:12:44 +03:00
eab909f76b fix bug #59106 2022-09-20 19:30:00 +03:00
30799c7b8c fix bug #59074 2022-09-20 17:00:33 +03:00
de4c288490 Hyphen update
Add load dictionaries
Add HyphenApplication
Add load dictionaries from stream
2022-09-20 16:53:58 +03:00
3e06b085b7 Refactoring 2022-09-20 15:30:00 +03:00
3344987b6e Merge pull request #1039 from ONLYOFFICE/release/v7.2.0
Release/v7.2.0
2022-09-20 12:19:31 +03:00
c3246cf089 fix charset == 128 2022-09-19 18:41:14 +03:00
07dd157167 create PdfFile 2022-09-19 17:42:15 +03:00
50870e499b JSON for make.py add 2022-09-19 16:42:01 +03:00
59cad91a22 HyphenUtils add 2022-09-19 16:23:37 +03:00
1eaefde012 Added experimental red-black tree output iterator. Fixed compoundfile Delete() 2022-09-16 22:54:30 +03:00
a3d82f82de Add delete test 2022-09-16 21:57:27 +03:00
433656c178 Fixed bugs with text and incorrect Transform 2022-09-16 18:42:13 +03:00
760242fa4d fix bug #58814 2022-09-16 08:46:57 +03:00
40033e4482 Fixed AddStream() 2022-09-16 00:05:58 +03:00
cb90b1d92a Correct CompundFile test 2022-09-15 23:56:20 +03:00
b01dd7eefc Hyphen test update 2022-09-15 18:08:08 +03:00
34a2091dfc Hyphen js+wasm test add 2022-09-15 15:14:01 +03:00
cb76784260 fix bug #59002 2022-09-15 13:24:16 +03:00
fef9e77478 fix NullifyChildNodes() and not zero empty CFItem size 2022-09-14 18:08:02 +03:00
4716b633e2 Hyphen test add 2022-09-14 18:01:46 +03:00
1475162206 controls(activeX) presentation 2022-09-08 13:49:47 +03:00
d90357944e New SVector: wrapped shared vector 2022-09-06 19:48:22 +03:00
bdb90074b0 Fixed: stream seek, GetDataBySID(), shared_from_this(), empty dirRepository and replaced children-> to getter 2022-09-02 16:46:15 +03:00
e489ec84de renamed cppcf -> cfcpp 2022-09-02 14:53:37 +03:00
aee00012ab trying to fix addStream()/addStorage(). SVector copy constructor problem 2022-09-01 18:46:24 +03:00
81b6f331c6 fixed empty dirRepository and replaced children-> to getter 2022-08-30 17:43:02 +03:00
0655ef49e5 fixed shared_from_this() 2022-08-30 17:10:20 +03:00
179ad9a61e fixed small problems and found setRight() problem 2022-08-29 18:38:54 +03:00
e48072bcae fix GetDataBySID() 2022-08-26 17:11:18 +03:00
1d0e88553e Fixed stream seek problem. Fixed CompoundFile::Save() 2022-08-25 16:51:41 +03:00
85b3ccafc4 stream no seek problem 2022-08-24 20:26:50 +03:00
5ff9863b8d Fixed bugs 2022-08-23 19:39:30 +03:00
287f3b39e0 fix compoundfile read 2022-08-23 16:13:01 +03:00
36ce9c0be6 Added hatching support and fixed bugs 2022-08-19 19:53:29 +03:00
b52466e4c7 Fixed bugs and refactoring 2022-08-18 13:49:48 +03:00
b5431fab8f Fixed an extra fill bug 2022-08-16 19:44:07 +03:00
97bde00af7 Added implementation of EMR_FILLPATH entry 2022-08-16 18:48:36 +03:00
998ef28451 Fixed bugs and refactoring 2022-08-16 17:06:02 +03:00
17fdfc6741 Refactoring 2022-08-12 21:50:45 +03:00
c3143cbd79 Added support for EMR_FILLRGN records and implemented combining multiple records in <g> 2022-08-12 18:42:14 +03:00
89afbf2bc1 Fixed bugs and refactoring 2022-08-12 18:00:12 +03:00
0949f112d0 Merge pull request #1007 from ONLYOFFICE/release/v7.2.0
Release/v7.2.0
2022-08-12 16:54:54 +03:00
04ea2ce07d Refactoring 2022-08-11 19:19:34 +03:00
e91e1d7f71 The principle of working with transform has been changed, as well as text conversion has been improved 2022-08-10 17:26:30 +03:00
dc358d4244 Fixed a bug in Bezier curves 2022-08-08 19:53:10 +03:00
58f2b9d3f0 new Stream for StreamView 2022-08-03 17:23:53 +03:00
ad10681ba0 small fixes for CompoundFile 2022-08-02 00:15:42 +03:00
7e56083ec9 comeback fstream and add some usefull function for path correcting 2022-08-01 21:19:29 +03:00
8f74b9362a Revert "test NSFile::CFileBinary as Stream"
This reverts commit 54261fd1a1.
2022-08-01 19:41:46 +03:00
54261fd1a1 test NSFile::CFileBinary as Stream 2022-08-01 19:37:43 +03:00
fa16a17aec added dependens(base.pri) for cfcpp library 2022-07-29 00:25:19 +03:00
c6fb020fda added and passed Header and DirectoryEntry tests 2022-07-27 22:36:56 +03:00
7859d6ef03 added and passed StreamRW tests 2022-07-26 19:31:25 +03:00
d29966342b add googletest and correct partof class StreamRW 2022-07-25 18:47:10 +03:00
bbb8b19ee3 fix std::copy() using 2022-07-25 14:15:35 +03:00
42b155cd92 correct headers 2022-07-22 20:25:37 +03:00
a34aa4109a remove not working CFStorage/CFStrem constructor's invocation 2022-07-20 17:08:01 +03:00
26e21b5207 added event , removed BinaryReader, correct some metods of CompoundFile 2022-07-20 00:35:15 +03:00
975f73115d Merge pull request #984 from ONLYOFFICE/release/v7.2.0
Release/v7.2.0
2022-07-18 17:46:10 +03:00
274976815c add class CFStream 2022-07-15 23:55:21 +03:00
ae4ecd4667 advanced C++11. Add std::function, std::iterator 2022-07-13 21:19:06 +03:00
f42206b55f add class CFStorage 2022-07-12 18:49:46 +03:00
f78048d617 add part of class CFStorage 2022-07-11 19:14:14 +03:00
d4a4e91d5a Merge branch hotfix/v7.1.1 into master 2022-07-11 08:58:59 +00:00
1ce32462e0 add CFItem 2022-07-08 16:40:38 +03:00
ff99d9bbb9 correct SVector 2022-07-05 22:51:06 +03:00
b739a465a5 add some methods in compoundfile for class CFStorage 2022-07-04 23:03:48 +03:00
98c72833c4 writed all case methods GetSectorChain() in compundfile 2022-07-01 19:34:22 +03:00
9e948c0c37 refactoring class DirectoryEntry 2022-06-30 17:24:01 +03:00
446d694b1d add class DirectoryEntry with IRBNode realization and RBTree 2022-06-30 00:58:11 +03:00
f4991f5e0d add class DirectoryEntry without IRBNode realization 2022-06-24 16:02:44 +03:00
98cd78c3a4 add part of class compoundfile. Save/Load 2022-06-22 00:26:27 +03:00
c3e060d13b add part of class compoundfile 2022-06-16 23:29:48 +03:00
014c219089 add class SVector like C sharp List 2022-06-15 20:53:40 +03:00
d0a03fa9aa add class streamview 2022-06-15 15:21:44 +03:00
e25a2b267d add part of class streamview 2022-06-14 19:41:12 +03:00
e049cff2ed add sectorcollection 2022-06-10 15:28:59 +03:00
87c3d6cf9d trying to add sectorcollection 2022-06-09 20:54:21 +03:00
e49127b686 added class Header 2022-06-03 20:38:30 +03:00
b72955c5db add class Sector 2022-05-31 19:49:35 +03:00
76b8b83952 Merge remote-tracking branch 'origin/feature/odf_3' into feature/odf_4 2022-05-30 13:23:27 +03:00
e79c577a14 Fonts 2022-05-30 12:42:47 +04:00
f67c76eef0 Fonts 2022-05-30 12:41:10 +04:00
35b7a817f6 Merge remote-tracking branch 'origin/feature/odf_3' into feature/odf_4 2022-05-25 10:36:43 +03:00
569ef80535 Fonts and size 2022-05-24 18:16:56 +04:00
affd63ee09 Fonts and size 2022-05-13 15:58:14 +04:00
da1f26f028 Fonts and size 2022-05-13 14:00:06 +04:00
230b11a060 colorized log and lim 2022-04-20 17:29:15 +04:00
b3b1b89b1f colorized diacritics 2022-04-14 12:22:24 +04:00
aadea510b0 colorized formulas 2022-04-13 10:20:12 +04:00
dc9db9c4fc colorized math formulas 2022-04-11 21:33:05 +04:00
ddee54c7c5 color styles 2022-04-05 19:54:35 +04:00
12164 changed files with 968995 additions and 1354852 deletions

4
.gitignore vendored
View File

@ -42,3 +42,7 @@ Thumbs.db
.vs
DesktopEditor/fontengine/js/common/freetype-2.10.4
*_resource.rc
.qtc_clangd
Common/3dParty/openssl/openssl/

View File

@ -1,506 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include <string>
#include <unordered_map>
#include <list>
#include <boost/shared_ptr.hpp>
#include "../../DesktopEditor/common/File.h"
inline static std::wstring ReplaceString(std::wstring subject, const std::wstring& search, const std::wstring& replace)
{
size_t pos = 0;
while ((pos = subject.find(search, pos)) != std::string::npos)
{
subject.replace(pos, search.length(), replace);
pos += replace.length();
}
return subject;
}
//----------------------------------------------------------------
namespace XMLTools
{
/*========================================================================================================
class XMLAttribute
========================================================================================================*/
class XMLAttribute
{
private:
std::wstring m_Name;
std::wstring m_Value;
public:
XMLAttribute()
{
}
XMLAttribute( const std::wstring & name ) : m_Name(name)
{
}
XMLAttribute( const std::wstring & name, const std::wstring & value ) : m_Name(name), m_Value(value)
{
}
~XMLAttribute()
{
}
void SetValue( const std::wstring & value )
{
m_Value = std::wstring( value );
}
std::wstring GetName() const
{
return m_Name;
}
/*========================================================================================================*/
std::wstring GetValue() const
{
return m_Value;
}
/*========================================================================================================*/
std::wstring GetXMLString()
{
std::wstring xmlString( L"" );
xmlString += m_Name;
xmlString += std::wstring( L"=\"" );
xmlString += m_Value;
xmlString += std::wstring( L"\"" );
return xmlString;
}
};
/*========================================================================================================
class XMLElement
========================================================================================================*/
class XMLElement;
typedef class boost::shared_ptr<XMLElement> XMLElementPtr;
class XMLElement
{
typedef std::pair< std::wstring, std::wstring> AttributeValuePair;
private:
std::wstring m_Name;
std::wstring m_ElementText;
std::unordered_map<std::wstring, std::wstring> m_AttributeMap;
std::unordered_map<std::wstring, int> m_ChildMap; //for uniq
std::list<XMLElement> m_Elements;
typedef std::list<XMLElement>::iterator ElementsIterator;
typedef std::list<XMLElement>::const_iterator ElementsIteratorConst;
typedef std::unordered_map<std::wstring, std::wstring>::iterator AttMapIterator;
typedef std::unordered_map<std::wstring, std::wstring>::const_iterator AttMapIteratorConst;
public:
XMLElement() {}
XMLElement( const std::wstring & name ) : m_Name(name)
{
}
XMLElement( const std::wstring & prefix, const std::wstring & localName ) :
m_Name( std::wstring( prefix ) + std::wstring( L":" ) + std::wstring( localName ) ), m_ElementText( L"" )
{
}
~XMLElement() {}
void AppendText( const std::wstring & text )
{
m_ElementText = std::wstring( text );
}
void AppendTextSymbol( const wchar_t symbol )
{
m_ElementText += std::wstring( &symbol );
}
void AppendAttribute( const XMLAttribute& attribute )
{
AttributeValuePair p( attribute.GetName(), attribute.GetValue() );
m_AttributeMap.insert( p );
}
void AppendAttribute( const std::wstring & name, const std::wstring & value )
{
AttributeValuePair p( name , value );
m_AttributeMap.insert( p );
}
void AppendChild( const XMLElement& element, bool uniq = false)
{
if (m_ChildMap.find(element.GetName()) != m_ChildMap.end())
{
if (uniq) return;
}
else
{
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::wstring, int>(element.GetName(), 0));
}
m_Elements.push_back( element );
}
void AppendChild( XMLElementPtr element, bool uniq = false)
{
if (!element) return;
if (m_ChildMap.find(element->GetName()) != m_ChildMap.end())
{
if (uniq) return;
}
else
{
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::wstring, int>(element->GetName(), 0));
}
m_Elements.push_back( *element.get() );
}
void RemoveChild( const XMLElement& element )
{
m_Elements.remove( element );
}
bool FindChild( const XMLElement& element )
{
bool result = false;
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
{
if ( *iter == element )
{
result = true;
break;
}
}
return result;
}
bool FindChildByName( const std::wstring & elementName ) const
{
bool result = false;
for ( ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
{
if ( iter->m_Name == std::wstring( elementName ) )
{
result = true;
break;
}
}
return result;
}
bool RemoveChildByName( const std::wstring& elementName )
{
bool result = false;
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
{
if ( iter->m_Name == elementName )
{
m_Elements.erase( iter );
result = true;
break;
}
}
return result;
}
bool operator == ( const XMLElement& element ) const
{
bool result = false;
result = ( m_Name == element.m_Name );
if ( m_AttributeMap.size() != element.m_AttributeMap.size() )
{
result = false;
}
else
{
AttMapIteratorConst thisIter = m_AttributeMap.begin();
AttMapIteratorConst elementIter = element.m_AttributeMap.begin();
for ( ; thisIter != m_AttributeMap.end(); thisIter++, elementIter++ )
{
if ( ( thisIter->first != elementIter->first ) || ( thisIter->second != elementIter->second ) )
{
result = false;
}
}
}
if ( m_Elements.size() != element.m_Elements.size() )
{
result = false;
}
else
{
ElementsIteratorConst thisIter = m_Elements.begin();
ElementsIteratorConst elementIter = element.m_Elements.begin();
for ( ; thisIter != m_Elements.end(); thisIter++, elementIter++ )
{
if ( !( (*thisIter) == (*elementIter) ) )
{
result = false;
}
}
}
return result;
}
/*========================================================================================================*/
std::wstring GetName() const
{
return m_Name;
}
/*========================================================================================================*/
std::wstring GetXMLString()
{
std::wstring xmlString( L"");
bool bIsNameExists = ( m_Name != std::wstring( L"") );
bool bIsTextExists = ( m_ElementText != std::wstring( L"") );
if ( bIsNameExists )
{
xmlString += std::wstring( L"<" ) + m_Name;
}
if ( ( bIsNameExists ) && ( m_AttributeMap.size() > 0 ) )
{
for ( AttMapIterator iter = m_AttributeMap.begin(); iter != m_AttributeMap.end(); iter++ )
{
xmlString += std::wstring( L" " );
xmlString += iter->first;
xmlString += std::wstring( L"=\"" );
xmlString += iter->second;
xmlString += std::wstring( L"\"" );
}
}
if ( ( m_Elements.size() > 0 ) || ( bIsTextExists ) )
{
if ( bIsNameExists )
{
xmlString += std::wstring( L">" );
}
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
{
xmlString += iter->GetXMLString();
}
if ( bIsTextExists )
{
xmlString += m_ElementText;
}
if ( bIsNameExists )
{
xmlString += std::wstring( L"</" );
xmlString += m_Name;
xmlString += std::wstring( L">" );
}
}
else
{
if ( bIsNameExists )
{
xmlString += std::wstring( L"/>" );
}
}
return xmlString;
}
/*========================================================================================================*/
unsigned int GetAttributeCount() const
{
return (unsigned int)m_AttributeMap.size();
}
/*========================================================================================================*/
unsigned int GetChildCount() const
{
return (unsigned int)m_Elements.size();
}
};
class CStringXmlWriter
{
std::wstring m_str;
public:
CStringXmlWriter(){}
std::wstring GetXmlString()
{
return m_str;
}
void SetXmlString(const std::wstring& strValue)
{
m_str = strValue;
}
void Clear()
{
m_str.clear();
}
bool SaveToFile(const std::wstring& strFilePath, bool bEncodingToUTF8 = false)
{
NSFile::CFileBinary file;
if (!file.CreateFileW(strFilePath)) return false;
if (bEncodingToUTF8)
file.WriteStringUTF8(m_str);
else
{
std::string s(m_str.begin(), m_str.end());
file.WriteFile((unsigned char*)s.c_str(), (DWORD)s.length());
}
file.CloseFile();
return true;
}
void WriteString(const std::wstring & strValue)
{
m_str += strValue;
}
void WriteInteger(int Value, int Base = 10)
{
m_str += std::to_wstring(Value);
}
void WriteDouble(double Value)
{
m_str += std::to_wstring(Value);
}
void WriteBoolean(bool Value)
{
if (Value)
m_str += L"true";
else
m_str += L"false";
}
void WriteNodeBegin(const std::wstring& strNodeName, bool bAttributed = false)
{
m_str += L"<" + strNodeName;
if (!bAttributed)
m_str += L">";
}
void WriteNodeEnd(const std::wstring& strNodeName, bool bEmptyNode = false, bool bEndNode = true)
{
if (bEmptyNode)
{
if (bEndNode)
m_str += L"/>";
else
m_str += L">";
}
else
m_str += L"</" + strNodeName + L">";
}
void WriteNode(const std::wstring& strNodeName, const std::wstring& strNodeValue)
{
if (strNodeValue.length() == 0)
m_str += L"<" + strNodeName + L"/>";
else
m_str += L"<" + strNodeName + L">" + strNodeValue + L"</" + strNodeName + L">";
}
void WriteNode(const std::wstring& strNodeName, int nValue, int nBase = 10, const std::wstring& strTextBeforeValue = L"", const std::wstring& strTextAfterValue = L"")
{
WriteNodeBegin(strNodeName);
WriteString(strTextBeforeValue);
WriteInteger(nValue, nBase);
WriteString(strTextAfterValue);
WriteNodeEnd(strNodeName);
}
void WriteNode(const std::wstring& strNodeName, double dValue)
{
WriteNodeBegin(strNodeName);
WriteDouble(dValue);
WriteNodeEnd(strNodeName);
}
void WriteAttribute(const std::wstring& strAttributeName, const std::wstring& strAttributeValue)
{
m_str += L" " + strAttributeName + L"=\"" + strAttributeValue + L"\"";
}
void WriteAttribute(const std::wstring& strAttributeName, int nValue, int nBase = 10, const std::wstring& strTextBeforeValue = L"", const std::wstring& strTextAfterValue = L"")
{
WriteString(L" " + strAttributeName + L"=");
WriteString(L"\"");
WriteString(strTextBeforeValue);
WriteInteger(nValue, nBase);
WriteString(strTextAfterValue);
WriteString(L"\"");
}
void WriteAttribute(const std::wstring& strAttributeName, double dValue)
{
WriteString(L" " + strAttributeName + L"=");
WriteString(L"\"");
WriteDouble(dValue);
WriteString(L"\"");
}
};
}

View File

@ -1,93 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
class AutoSummaryInfo
{
private:
/// True if the ASUMYI is valid
bool fValid;
/// True if AutoSummary View is active
bool fView;
/// Display method for AutoSummary View:
/// 0 = Emphasize in current doc
/// 1 = Reduce doc to summary
/// 2 = Insert into doc
/// 3 = Show in new document
short iViewBy;
/// True if File Properties summary information
/// should be updated after the next summarization
bool fUpdateProps;
/// Dialog summary level
short wDlgLevel;
/// Upper bound for lLevel for sentences in this document
int lHighestLevel;
/// Show document sentences at or below this level
int lCurrentLevel;
public:
virtual ~AutoSummaryInfo()
{
}
AutoSummaryInfo():
fValid(false), fView(false), iViewBy(0), fUpdateProps(false), wDlgLevel(0),
lHighestLevel(0), lCurrentLevel(0)
{
}
/// Parses the bytes to retrieve a AutoSummaryInfo
AutoSummaryInfo( unsigned char* bytes, int size ):
fValid(false), fView(false), iViewBy(0), fUpdateProps(false), wDlgLevel(0),
lHighestLevel(0), lCurrentLevel(0)
{
if ( size == 12 )
{
//split unsigned char 0 and 1 into bits
this->fValid = FormatUtils::GetBitFromBytes( bytes, size, 0 );
this->fView = FormatUtils::GetBitFromBytes( bytes, size, 1 );
this->iViewBy = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 2, 2 );
this->fUpdateProps = FormatUtils::GetBitFromBytes( bytes, size, 4 );
this->wDlgLevel = FormatUtils::BytesToInt16( bytes, 2, size );
this->lHighestLevel = FormatUtils::BytesToInt32( bytes, 4, size );
this->lCurrentLevel = FormatUtils::BytesToInt32( bytes, 8, size );
}
else
{
//throw new ByteParseException("Cannot parse the struct ASUMYI, the length of the struct doesn't match");
}
}
};
}

View File

@ -1,104 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "ByteStructure.h"
namespace DocFileFormat
{
class BookmarkFirst: public ByteStructure
{
private:
short ibkl;
short bkc;
public:
static const int STRUCTURE_SIZE = 4;
BookmarkFirst()
{
}
short GetIndex() const
{
return this->ibkl;
}
short GetInformation() const
{
return this->bkc;
}
virtual ~BookmarkFirst()
{
}
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
{
BookmarkFirst *newObject = new BookmarkFirst();
newObject->ibkl = reader->ReadInt16();
newObject->bkc = reader->ReadInt16();
return static_cast<ByteStructure*>( newObject );
}
};
class AtnBookmarkFirst: public ByteStructure
{
public:
unsigned short bmc;
unsigned int lTag;
static const int STRUCTURE_SIZE = 10;
AtnBookmarkFirst()
{
}
virtual ~AtnBookmarkFirst()
{
}
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
{
AtnBookmarkFirst *newObject = new AtnBookmarkFirst();
newObject->bmc = reader->ReadUInt16(); //0x0100
newObject->lTag = reader->ReadUInt32();
unsigned int lTagOld = reader->ReadUInt32();
return static_cast<ByteStructure*>( newObject );
}
};
}

View File

@ -1,207 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "IVisitable.h"
#include "Global.h"
namespace DocFileFormat
{
typedef enum _BorderType
{
none = 0,
single,
thick,
Double,
unused,
hairline,
dotted,
dashed,
dotDash,
dotDotDash,
triple,
thinThickSmallGap,
thickThinSmallGap,
thinThickThinSmallGap,
thinThickMediumGap,
thickThinMediumGap,
thinThickThinMediumGap,
thinThickLargeGap,
thickThinLargeGap,
thinThickThinLargeGap,
wave,
doubleWave,
dashSmallGap,
dashDotStroked,
threeDEmboss,
threeDEngrave
} BorderType;
class BorderCode: public IVisitable
{
friend class DocumentMapping;
friend class PropertiesMapping;
friend class VMLPictureMapping;
private:
/// 24-bit border color
int cv;
/// Width of a single line in 1/8pt, max of 32pt
unsigned char dptLineWidth;
/// Border type code:
/// 0 none
/// 1 single
/// 2 thick
/// 3 double
/// 5 hairline
/// 6 dot
/// 7 dash large gap
/// 8 dot dash
/// 9 dot dot dash
/// 10 triple
/// 11 thin-thick small gap
/// 12 tick-thin small gap
/// 13 thin-thick-thin small gap
/// 14 thin-thick medium gap
/// 15 thick-thin medium gap
/// 16 thin-thick-thin medium gap
/// 17 thin-thick large gap
/// 18 thick-thin large gap
/// 19 thin-thick-thin large gap
/// 20 wave
/// 21 double wave
/// 22 dash small gap
/// 23 dash dot stroked
/// 24 emboss 3D
/// 25 engrave 3D
unsigned char brcType;
/// The color of the Border.
/// Unused if cv is set.
std::wstring ico;
/// Width of space to maintain between border and text within border
int dptSpace;
/// When true, border is drawn with shadow. Must be false when BRC is substructure of the TC
bool fShadow;
/// When true, don't reverse the border
bool fFrame;
/// It's a nil BRC, bytes are FFFF.
bool fNil;
public:
/// Creates a new BorderCode with default values
BorderCode(): cv(0), dptLineWidth(0), brcType(0), ico( Global::ColorNameIdentifier[0] ), dptSpace(0), fShadow(false), fFrame(false), fNil(false)
{
}
/// Parses the unsigned char for a BRC
BorderCode( unsigned char* bytes, int size ):
cv(0), dptLineWidth(0), brcType(0), ico( Global::ColorNameIdentifier[0] ), dptSpace(0), fShadow(false), fFrame(false), fNil(false)
{
if ( FormatUtils::ArraySum( bytes, size ) == ( size * 255 ) )
{
fNil = true;
}
else if ( size == 8 )
{
//it's a border code of Word 2000/2003
cv = FormatUtils::BytesToInt32( bytes, 0, size );
ico = std::wstring( Global::ColorIdentifier[0] );
dptLineWidth = bytes[4];
brcType = bytes[5];
short val = FormatUtils::BytesToInt16( bytes, 6, size );
dptSpace = val & 0x001F;
//not sure if this is correct, the values from the spec are definitly wrong:
fShadow = FormatUtils::BitmaskToBool( val, 0x20 );
fFrame = FormatUtils::BitmaskToBool( val, 0x40 );
}
else if ( size == 4 )
{
unsigned short val = FormatUtils::BytesToUInt16( bytes, 0, size );
dptLineWidth = (unsigned char)( val & 0x00FF );
brcType = (unsigned char)( ( val & 0xFF00 ) >> 8 );
val = FormatUtils::BytesToUInt16( bytes, 2, size );
ico = FormatUtils::MapValueToWideString( ( val & 0x00FF ), &Global::ColorNameIdentifier[0][0], 17, 12 );
dptSpace = ( val & 0x1F00 ) >> 8;
}
else if (size == 2)
{
unsigned short val = FormatUtils::BytesToUInt16( bytes, 0, size );
dptLineWidth = GETBITS(val, 0, 2);
brcType = GETBITS(val, 3, 4);
fShadow = GETBIT(val, 5);
ico = FormatUtils::MapValueToWideString(GETBITS(val, 6, 10), &Global::ColorNameIdentifier[0][0], 17, 12 );
dptSpace = GETBITS(val, 11, 15);
}
}
BorderCode( const BorderCode& bc )
{
if ( this != &bc )
{
cv = bc.cv;
dptLineWidth = bc.dptLineWidth;
brcType = bc.brcType;
ico = bc.ico;
dptSpace = bc.dptSpace;
fShadow = bc.fShadow;
fFrame = bc.fFrame;
fNil = bc.fNil;
}
}
bool operator == ( const BorderCode& bc )
{
if ( ( cv == bc.cv ) && ( dptLineWidth == bc.dptLineWidth ) && ( brcType == bc.brcType ) &&
( ico == bc.ico ) && ( dptSpace == bc.dptSpace ) && ( fShadow == bc.fShadow ) &&
( fFrame == bc.fFrame ) && ( fNil == bc.fNil ) )
{
return true;
}
else
{
return false;
}
}
bool operator != ( const BorderCode& bc )
{
return !( *this == bc );
}
};
}

View File

@ -1,222 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "PropertyExceptions.h"
namespace DocFileFormat
{
class CharacterPropertyExceptions: public PropertyExceptions
{
public:
/// Creates a CHPX wich doesn't modify anything.
/// The grpprl list is empty
CharacterPropertyExceptions(): PropertyExceptions()
{
}
/// Parses the bytes to retrieve a CHPX
CharacterPropertyExceptions( unsigned char* bytes, int size, int nWordVersion) :
PropertyExceptions( bytes, size, nWordVersion )
{
if (nWordVersion > 1)
{
RELEASEOBJECT( grpprl );
grpprl = new std::list<SinglePropertyModifier>();
MemoryStream oStream(bytes, size);
int pos = 0;
if (nWordVersion == 3)
{
if (pos + 2 > size) return;
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
unsigned char val;
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
val = GETBIT(fChar, 1); grpprl->push_back(SinglePropertyModifier(sprmOldCFItalic, 1, &val));
val = GETBIT(fChar, 2); grpprl->push_back(SinglePropertyModifier(sprmOldCFStrike, 1, &val));
val = GETBIT(fChar, 3); grpprl->push_back(SinglePropertyModifier(sprmOldCFOutline, 1, &val));
val = GETBIT(fChar, 4); grpprl->push_back(SinglePropertyModifier(sprmOldCFFldVanish, 1, &val));
val = GETBIT(fChar, 5); grpprl->push_back(SinglePropertyModifier(sprmOldCFSmallCaps, 1, &val));
val = GETBIT(fChar, 6); grpprl->push_back(SinglePropertyModifier(sprmOldCFCaps, 1, &val));
val = GETBIT(fChar, 7); grpprl->push_back(SinglePropertyModifier(sprmOldCFVanish, 1, &val));
val = GETBIT(fChar, 8); grpprl->push_back(SinglePropertyModifier(sprmOldCFRMark, 1, &val));
val = GETBIT(fChar, 9); grpprl->push_back(SinglePropertyModifier(sprmOldCFSpec, 1, &val));
bool fsIco = GETBIT(fChar, 10);
bool fsFtc = GETBIT(fChar, 11);
bool fsHps = GETBIT(fChar, 12);
bool fsKul = GETBIT(fChar, 13);
bool fsPos = GETBIT(fChar, 14);
bool fsSpace = GETBIT(fChar, 15);
if (pos + 2 > size) return;
int fff = oStream.ReadUInt16(); pos += 2;//?????
if (pos + 2 > size) return;
unsigned short ftc = oStream.ReadUInt16(); pos += 2; // Font Code
grpprl->push_back(SinglePropertyModifier(sprmOldCFtc, 2, (unsigned char*)&ftc));
if (pos + 1 > size) return;
unsigned char hps = oStream.ReadByte(); pos += 1; // Font size in half points
if (hps > 0)
{
grpprl->push_back(SinglePropertyModifier(sprmOldCHps, 1, &hps));
}
if (pos + 1 > size) return;
unsigned char hpsPos = oStream.ReadByte(); pos += 1; // Sub/Superscript ( signed number, 0 = normal )
grpprl->push_back(SinglePropertyModifier(sprmOldCHpsPos, 1, &hpsPos));
if (pos + 2 > size) return;
unsigned short fText = oStream.ReadUInt16(); pos += 2;
unsigned short qpsSpace = GETBITS(fText, 0, 5);
unsigned char wSpare2 = GETBITS(fText, 6, 7);
unsigned char ico = GETBITS(fText, 8, 11);
unsigned char kul = GETBITS(fText, 12, 14);
bool fSysVanish = GETBIT(fChar, 15);
grpprl->push_back(SinglePropertyModifier(sprmOldCKul, 1, &kul));
grpprl->push_back(SinglePropertyModifier(sprmOldCIco, 1, &ico));
//sizeof(CHP) == 12 == 0xC
if (pos + 4 > size) return;
unsigned int fcPic = oStream.ReadUInt16(); pos += 4; //pos = 8
grpprl->push_back(SinglePropertyModifier(sprmOldCPicLocation, 4, (BYTE*)&fcPic));
if (pos + 1 > size) return;
unsigned char fnPic = oStream.ReadByte(); pos += 1;
if (pos + 2 > size) return;
unsigned short hpsLargeChp = oStream.ReadUInt16(); pos += 2;// ??? type
}
else if (nWordVersion == 2)
{
if (pos + 2 > size) return;
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
unsigned char val;
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
val = GETBIT(fChar, 1); grpprl->push_back(SinglePropertyModifier(sprmOldCFItalic, 1, &val));
val = GETBIT(fChar, 2); grpprl->push_back(SinglePropertyModifier(sprmOldCIbstRMark, 1, &val));
val = GETBIT(fChar, 3); grpprl->push_back(SinglePropertyModifier(sprmOldCFOutline, 1, &val));
val = GETBIT(fChar, 4); grpprl->push_back(SinglePropertyModifier(sprmOldCFFldVanish, 1, &val));
val = GETBIT(fChar, 5); grpprl->push_back(SinglePropertyModifier(sprmOldCFSmallCaps, 1, &val));
val = GETBIT(fChar, 6); grpprl->push_back(SinglePropertyModifier(sprmOldCFCaps, 1, &val));
val = GETBIT(fChar, 7); grpprl->push_back(SinglePropertyModifier(sprmOldCFVanish, 1, &val));
val = GETBIT(fChar, 8); grpprl->push_back(SinglePropertyModifier(sprmOldCFRMark, 1, &val));
val = GETBIT(fChar, 9); grpprl->push_back(SinglePropertyModifier(sprmOldCFSpec, 1, &val));
val = GETBIT(fChar, 10); grpprl->push_back(SinglePropertyModifier(sprmOldCFStrike, 1, &val));
val = GETBIT(fChar, 11); grpprl->push_back(SinglePropertyModifier(sprmOldCFObj, 1, &val));
val = GETBIT(fChar, 12); grpprl->push_back(SinglePropertyModifier(sprmCFBoldBi, 1, &val));
val = GETBIT(fChar, 13); grpprl->push_back(SinglePropertyModifier(sprmCFItalicBi, 1, &val));
val = GETBIT(fChar, 14); grpprl->push_back(SinglePropertyModifier(sprmCFBiDi, 1, &val));
val = GETBIT(fChar, 15); grpprl->push_back(SinglePropertyModifier(sprmCFDiacColor, 1, &val));
if (pos + 2 > size) return;
unsigned short fChar2 = oStream.ReadUInt16(); pos += 2;
bool fsIco = GETBIT(fChar2, 0);
bool fsFtc = GETBIT(fChar2, 1);
bool fsHps = GETBIT(fChar2, 2);
bool fsKul = GETBIT(fChar2, 3);
bool fsPos = GETBIT(fChar2, 4);
bool fsSpace = GETBIT(fChar2, 5);
bool fsLid = GETBIT(fChar2, 6);
bool fsIcoBi = GETBIT(fChar2, 7);
bool fsFtcBi = GETBIT(fChar2, 8);
bool fsHpsBi = GETBIT(fChar2, 9);
bool fsLidBi = GETBIT(fChar2, 10);
if (pos + 2 > size) return;
unsigned short ftc = oStream.ReadUInt16(); pos += 2; // Font Code
grpprl->push_back(SinglePropertyModifier(sprmOldCFtc, 2, (unsigned char*)&ftc));
if (pos + 1 > size) return;
unsigned char hps = oStream.ReadByte(); pos += 1; // Font size in half points
if (hps > 0)
{
grpprl->push_back(SinglePropertyModifier(sprmOldCHps, 1, &hps));
}
if (pos + 1 > size) return;
unsigned char hpsPos = oStream.ReadByte(); pos += 1; // Sub/Superscript ( signed number, 0 = normal )
grpprl->push_back(SinglePropertyModifier(sprmOldCHpsPos, 1, &hpsPos));
if (pos + 2 > size) return;
unsigned short fText = oStream.ReadUInt16(); pos += 2;
unsigned short qpsSpace = GETBITS(fText, 0, 5);
unsigned char wSpare2 = GETBITS(fText, 6, 7);
unsigned char ico = GETBITS(fText, 8, 11);
unsigned char kul = GETBITS(fText, 12, 14);
bool fSysVanish = GETBIT(fChar, 15);
grpprl->push_back(SinglePropertyModifier(sprmOldCKul, 1, &kul));
grpprl->push_back(SinglePropertyModifier(sprmOldCIco, 1, &ico));
//if (pos + 1 > size) return;
//unsigned char icoBi = oStream.ReadUInt16(); pos += 1;//wSpare3
if (pos + 2 > size) return;
unsigned short lid = oStream.ReadUInt16(); pos += 2;
grpprl->push_back(SinglePropertyModifier(sprmOldCLid, 2, (BYTE*)&lid));
if (pos + 2 > size) return;
unsigned short ftcBi = oStream.ReadUInt16(); pos += 2;
grpprl->push_back(SinglePropertyModifier(sprmCFtcBi, 4, (BYTE*)&ftcBi));
//if (pos + 2 > size) return;
//unsigned short hpsBi = oStream.ReadUInt16(); pos += 2;
//grpprl->push_back(SinglePropertyModifier(sprmCHpsBi, 4, (BYTE*)&hpsBi));
//if (pos + 2 > size) return;
//unsigned short lidBi = oStream.ReadUInt16(); pos += 2;
//grpprl->push_back(SinglePropertyModifier(sprmCLidBi, 2, (BYTE*)&lidBi));
if (pos + 4 > size) return;
unsigned int fcPic = oStream.ReadUInt16(); pos += 4; //pos = 8
grpprl->push_back(SinglePropertyModifier(sprmOldCPicLocation, 4, (BYTE*)&fcPic));
if (pos + 1 > size) return;
unsigned char fnPic = oStream.ReadByte(); pos += 1;
if (pos + 2 > size) return;
unsigned short hpsLargeChp = oStream.ReadUInt16(); pos += 2;// ??? type
}
}
}
};
}

View File

@ -1,69 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
class CharacterRange
{
private:
int CharacterPosition;
int CharacterCount;
public:
CharacterRange():
CharacterPosition(0), CharacterCount(0)
{
}
CharacterRange( int cp, int ccp ):
CharacterPosition(0), CharacterCount(0)
{
this->CharacterPosition = cp;
this->CharacterCount = ccp;
}
~CharacterRange()
{
}
int GetCharacterPosition() const
{
return this->CharacterPosition;
}
int GetCharacterCount() const
{
return this->CharacterCount;
}
};
}

View File

@ -1,194 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "TableMapping.h"
#include "DocumentMapping.h"
#include "AnnotationReferenceDescriptor.h"
namespace DocFileFormat
{
class CommentsMapping: public DocumentMapping
{
public:
CommentsMapping (ConversionContext* ctx) : DocumentMapping( ctx, this )
{
}
virtual void Apply( IVisitable* visited )
{
m_document = static_cast<WordDocument*>( visited );
_UINT64 x = 0x10000001;
std::vector<std::wstring> arrParaId;
if ( ( m_document != NULL ) && ( m_document->FIB->m_RgLw97.ccpAtn > 0 ) )
{
m_context->_docx->RegisterComments();
m_pXmlWriter->WriteNodeBegin( L"w:comments", TRUE );
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
m_pXmlWriter->WriteAttribute( L"xmlns:cx", L"http://schemas.microsoft.com/office/drawing/2014/chartex" );
m_pXmlWriter->WriteAttribute( L"xmlns:cx1", L"http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" );
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006" );
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" );
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" );
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:w15", L"http://schemas.microsoft.com/office/word/2012/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:w16se", L"http://schemas.microsoft.com/office/word/2015/wordml/symex" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 w15 w16se wp14");
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
int cp = m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr;
size_t count = m_document->AnnotationsReferencePlex->Elements.size();
for (size_t index = 0; index < count; ++index)
{
_paraId.clear();
AnnotationReferenceDescriptor* atrdPre10 = static_cast<AnnotationReferenceDescriptor*>(m_document->AnnotationsReferencePlex->Elements[index]);
m_pXmlWriter->WriteNodeBegin( L"w:comment", TRUE );
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::SizeTToWideString(atrdPre10->m_CommentId));
if (atrdPre10->m_AuthorIndex < m_document->AnnotationOwners->size()) //conv_253l2H1CehgKwsxCtNk__docx.doc
{
m_pXmlWriter->WriteAttribute( L"w:author",
FormatUtils::XmlEncode(m_document->AnnotationOwners->at( atrdPre10->m_AuthorIndex ) ));
}
if ((m_document->AnnotationsReferencesEx) && (index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size()))
{
m_pXmlWriter->WriteAttribute( L"w:date", m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDTTM.getString());
}
m_pXmlWriter->WriteAttribute( L"w:initials", FormatUtils::XmlEncode(atrdPre10->m_UserInitials));
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr ) < (*m_document->IndividualCommentsPlex)[index + 1] )
{
int fc = m_document->FindFileCharPos(cp);
if (fc < 0) break;
ParagraphPropertyExceptions* papx = findValidPapx(fc);
TableInfo tai(papx, m_document->nWordVersion);
if ( tai.fInTable )
{
//this PAPX is for a table
Table table(this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ));
table.Convert(this);
cp = table.GetCPEnd();
}
else
{
if ((m_document->AnnotationsReferencesEx) && (index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size()))
{
_paraId = XmlUtils::IntToString(x++, L"%08X");
}
cp = writeParagraph(cp, 0x7fffffff);
}
}
if (false == _paraId.empty())
arrParaId.push_back(_paraId);
m_pXmlWriter->WriteNodeEnd(L"w:comment" );
}
m_pXmlWriter->WriteNodeEnd( L"w:comments" );
m_context->_docx->CommentsXML = std::wstring(m_pXmlWriter->GetXmlString());
m_pXmlWriter->Clear();
if (false == arrParaId.empty() && (m_document->AnnotationsReferencesEx) && (false == m_document->AnnotationsReferencesEx->m_ReferencesEx.empty()))
{
m_context->_docx->RegisterCommentsExtended();
m_pXmlWriter->WriteNodeBegin( L"w15:commentsEx", TRUE );
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
m_pXmlWriter->WriteAttribute( L"xmlns:cx", L"http://schemas.microsoft.com/office/drawing/2014/chartex" );
m_pXmlWriter->WriteAttribute( L"xmlns:cx1", L"http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" );
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006" );
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" );
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" );
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:w15", L"http://schemas.microsoft.com/office/word/2012/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:w16se", L"http://schemas.microsoft.com/office/word/2015/wordml/symex" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 w15 w16se wp14");
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
for (size_t index = 0; index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size(); ++index)
{
m_pXmlWriter->WriteNodeBegin( L"w15:commentEx", TRUE );
m_pXmlWriter->WriteAttribute( L"w15:paraId", arrParaId[index]);
if (m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDepth > 0)
{
m_pXmlWriter->WriteAttribute( L"w15:paraIdParent", arrParaId[index + m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDiatrdParent]);
}
m_pXmlWriter->WriteAttribute( L"w15:done", L"0");
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
m_pXmlWriter->WriteNodeEnd(L"w15:commentEx" );
}
m_pXmlWriter->WriteNodeEnd( L"w15:commentsEx" );
m_context->_docx->CommentsExtendedXML = std::wstring(m_pXmlWriter->GetXmlString());
}
}
}
};
}

View File

@ -1,177 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#if defined(_WIN32) || defined(_WIN64)
#include <tchar.h>
#endif
#include "../../DesktopEditor/common/ASCVariant.h"
namespace OpenXmlContentTypes
{
// default content types
static const wchar_t* Xml = L"application/xml";
// package content types
static const wchar_t* Relationships = L"application/vnd.openxmlformats-package.relationships+xml";
static const wchar_t* CoreProperties = L"application/vnd.openxmlformats-package.core-properties+xml";
// general office document content types
static const wchar_t* ExtendedProperties = L"application/vnd.openxmlformats-officedocument.extended-properties+xml";
static const wchar_t* Theme = L"application/vnd.openxmlformats-officedocument.theme+xml";
static const wchar_t* CustomXmlProperties = L"application/vnd.openxmlformats-officedocument.customXmlProperties+xml";
static const wchar_t* OleObject = L"application/vnd.openxmlformats-officedocument.oleObject";
static const wchar_t* Vml = L"application/vnd.openxmlformats-officedocument.vmlDrawing";
static const wchar_t* Drawing = L"application/vnd.openxmlformats-officedocument.drawing+xml";
static const wchar_t* MSWordDocx = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document";
static const wchar_t* MSExcel = L"application/vnd.ms-excel";
static const wchar_t* MSWord = L"application/msword";
static const wchar_t* MSPowerpoint = L"application/vnd.ms-powerpoint";
static const wchar_t* Emf = L"image/x-emf";
static const wchar_t* Jpeg = L"image/jpeg";
static const wchar_t* Png = L"image/png";
static const wchar_t* Tiff = L"image/tiff";
static const wchar_t* Wmf = L"image/x-wmf";
static const wchar_t* Bmp = L"image/bmp";
static const wchar_t* Pcz = L"image/x-pcz";
}
namespace DocPrContentTypes
{
static const wchar_t* App = L"application/vnd.openxmlformats-officedocument.extended-properties+xml";
static const wchar_t* Core = L"application/vnd.openxmlformats-package.core-properties+xml";
}
namespace WordprocessingMLContentTypes
{
// WordprocessingML content types
static const wchar_t* MainDocument = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml";
static const wchar_t* MainDocumentMacro = L"application/vnd.ms-word.document.macroEnabled.main+xml";
static const wchar_t* MainDocumentTemplate = L"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml";
static const wchar_t* MainDocumentMacroTemplate = L"application/vnd.ms-word.template.macroEnabledTemplate.main+xml";
static const wchar_t* Styles = L"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml";
static const wchar_t* Numbering = L"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
static const wchar_t* FontTable = L"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml";
static const wchar_t* WebSettings = L"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml";
static const wchar_t* Settings = L"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml";
static const wchar_t* Comments = L"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml";
static const wchar_t* CommentsExtended = L"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml";
static const wchar_t* Footnotes = L"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml";
static const wchar_t* Endnotes = L"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml";
static const wchar_t* Header = L"application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml";
static const wchar_t* Footer = L"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml";
static const wchar_t* Glossary = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml";
}
namespace MicrosoftWordContentTypes
{
static const wchar_t* KeyMapCustomization = L"application/vnd.ms-word.keyMapCustomizations+xml";
static const wchar_t* VbaProject = L"application/vnd.ms-office.vbaProject";
static const wchar_t* VbaData = L"application/vnd.ms-word.vbaData+xml";
static const wchar_t* Toolbars = L"application/vnd.ms-word.attachedToolbars";
}
namespace OpenXmlNamespaces
{
// package namespaces
static const wchar_t* ContentTypes = L"http://schemas.openxmlformats.org/package/2006/content-types";
static const wchar_t* RelationshipsPackage = L"http://schemas.openxmlformats.org/package/2006/relationships";
static const wchar_t* Relationships = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships";
// Drawing ML namespaces
static const wchar_t* DrawingML = L"http://schemas.openxmlformats.org/drawingml/2006/main";
static const wchar_t* DrawingMLPicture = L"http://schemas.openxmlformats.org/drawingml/2006/picture";
// WordprocessingML namespaces
static const wchar_t* WordprocessingML = L"http://schemas.openxmlformats.org/wordprocessingml/2006/main";
static const wchar_t* WordprocessingDrawingML = L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
static const wchar_t* VectorML = L"urn:schemas-microsoft-com:vml";
static const wchar_t* MicrosoftWordML = L"http://schemas.microsoft.com/office/word/2006/wordml";
// PresentationML namespaces
static const wchar_t* PresentationML = L"http://schemas.openxmlformats.org/presentationml/2006/main";
// SpreadsheetML Namespaces
static const wchar_t* SharedStringML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
static const wchar_t* WorkBookML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
static const wchar_t* StylesML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
//Office
static const wchar_t* Office = L"urn:schemas-microsoft-com:office:office";
static const wchar_t* OfficeWord = L"urn:schemas-microsoft-com:office:word";
}
namespace OpenXmlRelationshipTypes
{
static const wchar_t* CoreProperties = L"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";
static const wchar_t* ExtendedProperties = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";
static const wchar_t* Theme = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
static const wchar_t* OfficeDocument = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
static const wchar_t* Styles = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";
static const wchar_t* FontTable = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";
static const wchar_t* Numbering = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
static const wchar_t* WebSettings = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings";
static const wchar_t* Settings = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings";
static const wchar_t* CustomXml = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml";
static const wchar_t* CustomXmlProperties = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps";
static const wchar_t* Comments = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
static const wchar_t* CommentsExtended = L"http://schemas.microsoft.com/office/2011/relationships/commentsExtended";
static const wchar_t* Footnotes = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes";
static const wchar_t* Endnotes = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes";
static const wchar_t* Header = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
static const wchar_t* Footer = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
static const wchar_t* Image = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
static const wchar_t* OleObject = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
static const wchar_t* GlossaryDocument = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/glossaryDocument";
static const wchar_t* Package = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
static const wchar_t* VbaProject = L"http://schemas.microsoft.com/office/2006/relationships/vbaProject";
static const wchar_t* Hyperlink = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
}
namespace MicrosoftWordRelationshipTypes
{
static const wchar_t* KeyMapCustomizations = L"http://schemas.microsoft.com/office/2006/relationships/keyMapCustomizations";
static const wchar_t* VbaProject = L"http://schemas.microsoft.com/office/2006/relationships/vbaProject";
static const wchar_t* VbaData = L"http://schemas.microsoft.com/office/2006/relationships/wordVbaData";
static const wchar_t* Toolbars = L"http://schemas.microsoft.com/office/2006/relationships/attachedToolbars";
}

View File

@ -1,135 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "Converter.h"
#include "WordDocument.h"
#include "TableMapping.h"
#include "StyleSheetMapping.h"
#include "FontTableMapping.h"
#include "FootnotesMapping.h"
#include "EndnotesMapping.h"
#include "NumberingMapping.h"
#include "CommentsMapping.h"
#include "SettingsMapping.h"
#include "MainDocumentMapping.h"
#include "WordprocessingDocument.h"
#include "ConversionContext.h"
namespace DocFileFormat
{
Converter::Converter() : m_nUserLCID(-1)
{
}
Converter::~Converter()
{
}
}
namespace DocFileFormat
{
_UINT32 Converter::Convert(WordDocument* doc, WordprocessingDocument* docx)
{
if (!doc || !docx) return S_FALSE;
ConversionContext context( doc, docx );
//Write fontTable.xml
if (doc->FontTable)
{
FontTableMapping fontTableMapping( &context );
doc->FontTable->Convert( &fontTableMapping );
}
//Write styles.xml
if (doc->Styles)
{
StyleSheetMapping styleSheetMapping( &context );
doc->Styles->Convert( &styleSheetMapping );
}
//write document.xml and the header and footers
MainDocumentMapping mainDocMapping( &context);
doc->Convert( &mainDocMapping );
//Write numbering.xml
if (doc->listTable)
{
NumberingMapping numberingMapping( &context );
doc->listTable->Convert( &numberingMapping );
}
//write the footnotes
FootnotesMapping footnotesMapping( &context );
doc->Convert( &footnotesMapping );
//write the endnotes
EndnotesMapping endnotesMapping( &context );
doc->Convert( &endnotesMapping );
//write the comments
CommentsMapping commentsMapping( &context );
doc->Convert( &commentsMapping );
//write settings.xml at last because of the rsid list
if (doc->DocProperties)
{
SettingsMapping settingsMapping( &context );
doc->DocProperties->Convert( &settingsMapping );
}
return S_OK;
}
_UINT32 Converter::LoadAndConvert(const std::wstring& strSrcFile, const std::wstring& strDstDirectory, const std::wstring& password, bool &bMacros)
{
WordDocument doc(m_sTempFolder, m_nUserLCID);
WordprocessingDocument docx(strDstDirectory, &doc);
_UINT32 result = doc.LoadDocument(strSrcFile, password);
if (result == 0)
{
result = Convert(&doc, &docx);
if (result == 0)
{
result = docx.SaveDocument(bMacros);
}
}
return result;
}
}

View File

@ -1,56 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include <string>
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
namespace DocFileFormat
{
class WordDocument;
class WordprocessingDocument;
class Converter
{
public:
Converter();
~Converter();
std::wstring m_sTempFolder;
int m_nUserLCID;
_UINT32 LoadAndConvert(const std::wstring & strSrcFile, const std::wstring & strDstDirectory, const std::wstring & password, bool &bMacros);
private:
_UINT32 Convert(WordDocument* doc, WordprocessingDocument* docx);
};
}

View File

@ -1,116 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../Common/FormatUtils.h"
namespace DocFileFormat
{
class DateAndTime
{
protected:
short minutes;
short hour;
short day;
short month;
short year;
/// 0 Sunday
/// 1 Monday
/// 2 Tuesday
/// 3 Wednesday
/// 4 Thursday
/// 5 Friday
/// 6 Saturday
short weekday;
public:
DateAndTime()
{
setDefaultValues();
}
DateAndTime( _UINT32 val )
{
unsigned char* bytes = ((unsigned char*) &val);
minutes = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 0, 6 );
hour = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 6, 5 );
day = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 11, 5 );
month = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 16, 4 );
year = (short)( 1900 + FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 20, 9 ) );
weekday = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 29, 3 );
}
DateAndTime( unsigned char* bytes, int size )
{
if ( size == 4 )
{
minutes = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 0, 6 );
hour = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 6, 5 );
day = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 11, 5 );
month = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 16, 4 );
year = (short)( 1900 + FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 20, 9 ) );
weekday = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 29, 3 );
}
else
{
//throw new ByteParseException("Cannot parse the struct DTTM, the length of the struct doesn't match");
}
}
DateAndTime& operator=(const DateAndTime& oSrc)
{
minutes = oSrc.minutes;
hour = oSrc.hour;
day = oSrc.day;
month = oSrc.month;
year = oSrc.year;
weekday = oSrc.weekday;
return (*this);
}
std::wstring getString()
{
return std::to_wstring(year) + L"-" + (month < 9 ? L"0" : L"" ) + std::to_wstring(month) + L"-" +
(day < 9 ? L"0" : L"" ) + std::to_wstring(day) + L"T" +
(hour < 9 ? L"0" : L"" ) + std::to_wstring(hour) + L":" +
(minutes < 9 ? L"0" : L"" ) + std::to_wstring(minutes) + L":00Z";
}
private:
void setDefaultValues()
{
day = 0;
hour = 0;
minutes = 0;
month = 0;
weekday = 0;
year = 0;
}
};
}

View File

@ -1,116 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../Common/FormatUtils.h"
namespace DocFileFormat
{
class DocumentTypographyInfo
{
friend class SettingsMapping;
private:
/// True if we're kerning punctation
bool fKerningPunct;
/// Kinsoku method of justification:
/// 0 = always expand
/// 1 = compress punctation
/// 2 = compress punctation and kana
short iJustification;
/// Level of kinsoku:
/// 0 = level 1
/// 1 = Level 2
/// 2 = Custom
short iLevelOfKinsoku;
/// "2 page on 1" feature is turned on
bool f2on1;
/// Old East Asian feature
bool fOldDefineLineBaseOnGrid;
/// Custom Kinsoku
short iCustomKsu;
/// When set to true, use strict (level 2) Kinsoku rules
bool fJapaneseUseLevel2;
/// Length of rgxchFPunct
short cchFollowingPunct;
/// Length of rgxchLPunct
short cchLeadingPunct;
/// Array of characters that should never appear at the start of a line
std::wstring rgxchFPunct;
/// Array of characters that should never appear at the end of a line
std::wstring rgxchLPunct;
public:
virtual ~DocumentTypographyInfo()
{
}
DocumentTypographyInfo():
fKerningPunct(false), iJustification(0), iLevelOfKinsoku(0), f2on1(false), fOldDefineLineBaseOnGrid(false),
iCustomKsu(0), fJapaneseUseLevel2(false), cchFollowingPunct(0), cchLeadingPunct(0)
{
}
/// Parses the bytes to retrieve a DocumentTypographyInfo
DocumentTypographyInfo( unsigned char* bytes, int size ):
fKerningPunct(false), iJustification(0), iLevelOfKinsoku(0), f2on1(false), fOldDefineLineBaseOnGrid(false),
iCustomKsu(0), fJapaneseUseLevel2(false), cchFollowingPunct(0), cchLeadingPunct(0)
{
if ( size == 310 )
{
//split unsigned char 0 and 1 into bits
this->fKerningPunct = FormatUtils::GetBitFromBytes( bytes, size, 0 );
this->iJustification = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 1, 2 );
this->iLevelOfKinsoku = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 3, 2 );
this->f2on1 = FormatUtils::GetBitFromBytes( bytes, size, 5 );
this->fOldDefineLineBaseOnGrid = FormatUtils::GetBitFromBytes( bytes, size, 6 );
this->iCustomKsu = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 7, 3 );
this->fJapaneseUseLevel2 = FormatUtils::GetBitFromBytes( bytes, size, 10 );
this->cchFollowingPunct = FormatUtils::BytesToInt16( bytes, 2, size );
this->cchLeadingPunct = FormatUtils::BytesToInt16( bytes, 4, size );
unsigned char fpunctBytes[202];
memcpy( fpunctBytes, ( bytes + 6 ), 202 );
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &(this->rgxchFPunct), fpunctBytes, 202, ENCODING_UTF16 );
unsigned char lpunctBytes[102];
memcpy( lpunctBytes, ( bytes + 208 ), 102 );
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &(this->rgxchLPunct), lpunctBytes, 102, ENCODING_UTF16 );
}
else
{
//throw new ByteParseException("Cannot parse the struct DOPTYPOGRAPHY, the length of the struct doesn't match");
}
}
};
}

View File

@ -1,98 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
class DrawingObjectGrid
{
friend class SettingsMapping;
private:
/// x-coordinate of the upper left-hand corner of the grid
short xaGrid;
/// y-coordinate of the upper left-hand corner of the grid
short yaGrid;
/// Width of each grid square
short dxaGrid;
/// Height of each grid square
short dyaGrid;
/// The number of grid squares (in the y direction) between each
/// gridline drawn on the screen. 0 means dont display any
/// gridlines in the y direction.
short dyGridDisplay;
/// Suppress display of gridlines
bool fTurnItOff;
/// The number of grid squares (in the x direction) between each
/// gridline drawn on the screen. 0 means dont display any
/// gridlines in the y direction.
short dxGridDisplay;
/// If true, the grid will start at the left and top margins and
/// ignore xaGrid and yaGrid
bool fFollowMargins;
public:
virtual ~DrawingObjectGrid()
{
}
DrawingObjectGrid():
xaGrid(0), yaGrid(0), dxaGrid(0), dyaGrid(0), dyGridDisplay(0), fTurnItOff(false), dxGridDisplay(0),
fFollowMargins(false)
{
}
/// Parses the bytes to retrieve a DrawingObjectGrid
DrawingObjectGrid( unsigned char* bytes, int size ):
xaGrid(0), yaGrid(0), dxaGrid(0), dyaGrid(0), dyGridDisplay(0), fTurnItOff(false), dxGridDisplay(0),
fFollowMargins(false)
{
if ( size == 10 )
{
this->xaGrid = FormatUtils::BytesToInt16( bytes, 0, size );
this->yaGrid = FormatUtils::BytesToInt16( bytes, 2, size );
this->dxaGrid = FormatUtils::BytesToInt16( bytes, 4, size );
this->dyaGrid = FormatUtils::BytesToInt16( bytes, 6, size );
//split unsigned char 8 and 9 into bits
this->dyGridDisplay = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 8 ), 2, 0, 7 );
this->fTurnItOff = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 7 );
this->dxGridDisplay = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 8 ), 2, 8, 7 );
this->fFollowMargins = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 15 );
}
else
{
//throw new ByteParseException("Cannot parse the struct DOGRID, the length of the struct doesn't match");
}
}
};
}

View File

@ -1,182 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "EncryptionHeader.h"
#define GETBIT(from, num) ((from & (1 << num)) != 0)
namespace DocFileFormat
{
EncryptionHeader::EncryptionHeader( FileInformationBlock* fib, POLE::Stream* tableStream ) : bStandard(false), bXOR(false), bAES(false)
{
VirtualStreamReader tStream( tableStream, 0, fib->m_nWordVersion);
if (fib->m_FibBase.fObfuscation || fib->m_nWordVersion > 0)
{
bXOR = true;
crypt_data_xor.key = fib->m_FibBase.lKey >> 16;
crypt_data_xor.hash = fib->m_FibBase.lKey - (crypt_data_xor.key << 16);
}
else
{
unsigned short vMajor = tStream.ReadUInt16();
unsigned short vMinor = tStream.ReadUInt16();
if(0x0001 == vMajor) // RC4 encryption header structure
{// fib->m_FibBase.lKey == 52
bStandard = true;
crypt_data_rc4.Salt.b1 = tStream.ReadUInt32();
crypt_data_rc4.Salt.b2 = tStream.ReadUInt32();
crypt_data_rc4.Salt.b3 = tStream.ReadUInt32();
crypt_data_rc4.Salt.b4 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifier.b1 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifier.b2 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifier.b3 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifier.b4 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifierHash.b1 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifierHash.b2 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifierHash.b3 = tStream.ReadUInt32();
crypt_data_rc4.EncryptedVerifierHash.b4 = tStream.ReadUInt32();
}
else
{
bAES = true;
crypt_data_aes.bAgile = false;
unsigned short flags = tStream.ReadUInt32();
unsigned char *pDataRead = NULL;
bool fCryptoAPI = GETBIT(flags, 1);
crypt_data_aes.fDocProps = GETBIT(flags, 2);
bool fExternal = GETBIT(flags, 3);
bool fAES = GETBIT(flags, 4);
//EncryptionHeader
int HeaderSize = tStream.ReadUInt32();
int Flags = tStream.ReadUInt32();
int SizeExtra = tStream.ReadUInt32();
int AlgID = tStream.ReadUInt32();
int AlgIDHash = tStream.ReadUInt32();
int KeySize = tStream.ReadUInt32();
int ProviderType= tStream.ReadUInt32();
int Reserved1 = tStream.ReadUInt32();
int Reserved2 = tStream.ReadUInt32();
int pos = tStream.GetPosition();
int size = tStream.GetSize();
std::vector<char> dataCSPName;
while(pos < size - 1)
{
dataCSPName.push_back(tStream.ReadByte());
dataCSPName.push_back(tStream.ReadByte());
if (dataCSPName[dataCSPName.size() - 1] == 0 && dataCSPName[dataCSPName.size() - 2] == 0)
{
break;
}
pos+=2;//unicode null-terminate string
}
//EncryptionVerifier
crypt_data_aes.saltSize = tStream.ReadUInt32();
pDataRead = tStream.ReadBytes(crypt_data_aes.saltSize, true);
if (pDataRead)
{
crypt_data_aes.saltValue = std::string((char*)pDataRead, crypt_data_aes.saltSize);
delete pDataRead;
}
pDataRead = tStream.ReadBytes(0x10, true);
if (pDataRead)
{
crypt_data_aes.encryptedVerifierInput = std::string((char*)pDataRead, 0x10);
delete pDataRead;
}
crypt_data_aes.hashSize = tStream.ReadUInt32();
int szEncryptedVerifierHash = (ProviderType == 0x0001) ? 0x14 : 0x20;
pDataRead = tStream.ReadBytes(szEncryptedVerifierHash, true);
if (pDataRead)
{
crypt_data_aes.encryptedVerifierValue = std::string((char*)pDataRead, szEncryptedVerifierHash);
delete pDataRead;
}
pos = tStream.GetPosition();
//------------------------------------------------------------------------------------------
switch(AlgIDHash)
{
case 0x8003: crypt_data_aes.hashAlgorithm = CRYPT_METHOD::MD5; break;
case 0x0000:
case 0x8004: crypt_data_aes.hashAlgorithm = CRYPT_METHOD::SHA1; break;
}
crypt_data_aes.spinCount = 0;
switch(AlgID)
{
case 0x0000:
if (fAES) crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::AES_ECB;
if (fCryptoAPI) crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::RC4;
crypt_data_aes.keySize = KeySize / 8;
case 0x6801:
crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::RC4;
crypt_data_aes.keySize = KeySize / 8;
if (crypt_data_aes.keySize == 0) crypt_data_aes.keySize = 5; // 40 bit
break;
case 0x660E:
crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::AES_ECB;
crypt_data_aes.keySize = 128 /8;
break;
case 0x660F:
crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::AES_ECB;
crypt_data_aes.keySize = 192 /8;
break;
case 0x6610:
crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::AES_ECB;
crypt_data_aes.keySize = 256 /8;
break;
}
//switch(ProviderType)
//{
// case 0x0001: crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::RC4; break;
// case 0x0018: crypt_data_aes.cipherAlgorithm = CRYPT_METHOD::AES_ECB; break;
//}
}
}
}
}

View File

@ -1,61 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "FileInformationBlock.h"
#include "../../OfficeCryptReader/source/CryptTransform.h"
#include "IVisitable.h"
namespace DocFileFormat
{
class IVisible;
class FileInformationBlock;
class EncryptionHeader: public IVisitable
{
public:
friend class WordDocument;
virtual ~EncryptionHeader(){}
EncryptionHeader( FileInformationBlock* fib, POLE::Stream* tableStream );
private:
CRYPT::_rc4CryptData crypt_data_rc4;
CRYPT::_ecmaCryptData crypt_data_aes;
CRYPT::_xorCryptData crypt_data_xor;
bool bStandard;
bool bXOR;
bool bAES;
};
}

View File

@ -1,107 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ContentTypes.h"
#include "WordDocument.h"
#include "DocumentMapping.h"
namespace DocFileFormat
{
class EndnotesMapping: public DocumentMapping
{
public:
EndnotesMapping (ConversionContext* ctx) : DocumentMapping(ctx, this)
{
}
virtual void Apply( IVisitable* visited )
{
m_document = static_cast<WordDocument*>( visited );
if ( ( m_document != NULL ) && ( m_document->FIB->m_RgLw97.ccpEdn > 0 ) )
{
m_context->_docx->RegisterEndnotes();
int id = 0;
m_pXmlWriter->WriteNodeBegin( L"w:endnotes", TRUE );
//write namespaces
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
int cp = ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr + m_document->FIB->m_RgLw97.ccpAtn );
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr + m_document->FIB->m_RgLw97.ccpAtn + m_document->FIB->m_RgLw97.ccpEdn - 2 ) )
{
m_pXmlWriter->WriteNodeBegin( L"w:endnote", TRUE );
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( id ));
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpAtn ) < (*m_document->IndividualEndnotesPlex)[id + 1] )
{
int fc = m_document->FindFileCharPos(cp);
if (fc < 0) break;
ParagraphPropertyExceptions* papx = findValidPapx( fc );
TableInfo tai( papx, m_document->nWordVersion );
if ( tai.fInTable )
{
//this PAPX is for a table
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
table.Convert( this );
cp = table.GetCPEnd();
}
else
{
//this PAPX is for a normal paragraph
cp = writeParagraph( cp, 0x7fffffff );
}
}
m_pXmlWriter->WriteNodeEnd( L"w:endnote");
id++;
}
m_pXmlWriter->WriteNodeEnd( L"w:endnotes");
m_context->_docx->EndnotesXML = std::wstring( m_pXmlWriter->GetXmlString() );
}
}
};
}

View File

@ -1,94 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ByteStructure.h"
namespace DocFileFormat
{
class FieldCharacter: public ByteStructure
{
public:
struct grffldEnd
{
unsigned char fDiffer:1;
unsigned char fZombieEmbed:1;
unsigned char fResultsDirty:1;
unsigned char fResultsEdited:1;
unsigned char fLocked:1;
unsigned char fPrivateResult:1;
unsigned char fNested:1;
unsigned char fHasSep:1;
};
static const int STRUCTURE_SIZE = 2;
FieldCharacter() : fldch(0), grffld(0) {}
virtual ~FieldCharacter() {}
virtual ByteStructure* ConstructObject (VirtualStreamReader* pReader, int length)
{
FieldCharacter* pFldChar = new FieldCharacter();
if (pFldChar)
{
pFldChar->fldch = pReader->ReadByte();
pFldChar->grffld = pReader->ReadByte();
}
return static_cast<ByteStructure*>(pFldChar);
}
unsigned char fldch;
unsigned char grffld;
};
class ListNumCache: public ByteStructure
{
public:
static const int STRUCTURE_SIZE = 4;
ListNumCache() : value(-1) {}
virtual ~ListNumCache() {}
virtual ByteStructure* ConstructObject (VirtualStreamReader* pReader, int length)
{
ListNumCache* pList = new ListNumCache();
if (pList)
{
pList->value = pReader->ReadInt32();
}
return static_cast<ByteStructure*>(pList);
}
int value;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -1,96 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
/// Specifies an approximation of a real number, where the approximation has a fixed number of digits after the radix point.
///
/// This type is specified in [MS-OSHARED] section 2.2.1.6.
///
/// Value of the real number = Integral + ( Fractional / 65536.0 )
///
/// Integral (2 bytes): A signed integer that specifies the integral part of the real number.
/// Fractional (2 bytes): An unsigned integer that specifies the fractional part of the real number.
class FixedPointNumber
{
public:
unsigned short Integral;
unsigned short Fractional;
FixedPointNumber( unsigned short integral = 0, unsigned short fractional = 0 )
{
this->Integral = integral;
this->Fractional = fractional;
}
FixedPointNumber( _UINT32 value )
{
unsigned short* bytes = (unsigned short*)(&value);
this->Integral = bytes[0];
this->Fractional = bytes[1];
}
FixedPointNumber( const unsigned char* bytes, unsigned int size )
{
if ( ( bytes != NULL ) && ( size >= 4 ) )
{
this->Integral = FormatUtils::BytesToUInt16( bytes, 0, size );
this->Fractional = FormatUtils::BytesToUInt16( bytes, 2, size );
}
}
double ToAngle() const
{
if ( this->Fractional != 0 )
{
// negative angle
return ( this->Fractional - 65536.0 );
}
else if ( this->Integral != 0 )
{
//positive angle
return ( 65536.0 - this->Integral );
}
else
{
return 0.0;
}
}
double GetValue() const
{
return (double)( this->Integral + ( (double)this->Fractional / 65536.0 ) );
}
};
}

View File

@ -1,61 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ByteStructure.h"
namespace DocFileFormat
{
class FootnoteDescriptor: public ByteStructure
{
public:
static const int STRUCTURE_SIZE = 2;
FootnoteDescriptor() : aFtnIdx(0), bUsed(false) {}
virtual ~FootnoteDescriptor()
{
}
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
{
FootnoteDescriptor *newObject = new FootnoteDescriptor();
newObject->aFtnIdx = reader->ReadInt16();
return static_cast<ByteStructure*>( newObject );
}
short aFtnIdx;
bool bUsed;
};
}

View File

@ -1,139 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ContentTypes.h"
#include "WordDocument.h"
#include "DocumentMapping.h"
namespace DocFileFormat
{
class FootnotesMapping: public DocumentMapping
{
public:
FootnotesMapping (ConversionContext* ctx): DocumentMapping( ctx, this )
{
}
virtual void Apply( IVisitable* visited )
{
m_document = static_cast<WordDocument*>( visited );
if ( m_document && ( m_document->FIB->m_RgLw97.ccpFtn > 0 ) )
{
m_context->_docx->RegisterFootnotes();
int id = 0;
m_pXmlWriter->WriteNodeBegin( L"w:footnotes", TRUE );
//write namespaces
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006");
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing");
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing");
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
m_pXmlWriter->WriteAttribute( L"xmlns:a", L"http://schemas.openxmlformats.org/drawingml/2006/main" );
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 wp14" );
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
//m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
//m_pXmlWriter->WriteAttribute( L"w:type", L"separator");
//m_pXmlWriter->WriteAttribute( L"w:id", L"-1");
//m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
//m_pXmlWriter->WriteString(L"<w:p><w:pPr><w:spacing w:lineRule=\"auto\" w:line=\"240\" w:after=\"0\"/></w:pPr><w:r></w:r><w:r><w:separator/></w:r></w:p>");
//m_pXmlWriter->WriteNodeEnd( L"w:footnote");
//m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
//m_pXmlWriter->WriteAttribute( L"w:type", L"continuationSeparator");
//m_pXmlWriter->WriteAttribute( L"w:id", L"0");
//m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
//m_pXmlWriter->WriteString(L"<w:p><w:pPr><w:spacing w:lineRule=\"auto\" w:line=\"240\" w:after=\"0\"/></w:pPr><w:r></w:r><w:r><w:continuationSeparator/></w:r></w:p>");
//m_pXmlWriter->WriteNodeEnd( L"w:footnote");
int cp = m_document->FIB->m_RgLw97.ccpText;
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn - 2 ) )
{
m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( id ));
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
while ( ( cp - m_document->FIB->m_RgLw97.ccpText ) < (*m_document->IndividualFootnotesPlex)[id + 1] )
{
int cpStart = cp;
int fc = m_document->FindFileCharPos(cp);
if (fc < 0) break;
ParagraphPropertyExceptions* papx = findValidPapx( fc );
TableInfo tai( papx, m_document->nWordVersion );
if ( tai.fInTable )
{
//this PAPX is for a table
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
table.Convert( this );
cp = table.GetCPEnd();
}
else
{
//this PAPX is for a normal paragraph
cp = writeParagraph( cp, 0x7fffffff );
}
while (cp <= cpStart) //conv_fQioC665ib4ngHkDGY4__docx.doc
cp++;
}
m_pXmlWriter->WriteNodeEnd( L"w:footnote");
id++;
}
m_pXmlWriter->WriteNodeEnd( L"w:footnotes");
m_context->_docx->FootnotesXML = std::wstring(m_pXmlWriter->GetXmlString());
}
}
};
}

View File

@ -1,150 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ConversionContext.h"
#include "FormFieldData.h"
#include "AbstractOpenXmlMapping.h"
#include "IMapping.h"
namespace DocFileFormat
{
class FormFieldDataMapping: public AbstractOpenXmlMapping, public IMapping
{
public:
FormFieldDataMapping(XMLTools::CStringXmlWriter* writer, ConversionContext* context, IMapping* caller)
: AbstractOpenXmlMapping(writer), m_context(NULL),_caller(NULL)
{
m_context = context;
_caller = caller;
}
virtual void Apply(IVisitable* visited)
{
FormFieldData* ffData = static_cast<FormFieldData*>(visited);
if ( ffData == NULL ) return;
if (ffData->FFData.bExist)
{
m_pXmlWriter->WriteNodeBegin( L"w:ffData");
m_pXmlWriter->WriteNodeBegin( L"w:name", true);
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzName));
m_pXmlWriter->WriteNodeEnd(L"w:name", true, true );
m_pXmlWriter->WriteNodeBegin(L"w:enabled", true);
if (ffData->FFData.fProt)
m_pXmlWriter->WriteAttribute(L"w:val", 0);
m_pXmlWriter->WriteNodeEnd(L"w:enabled", true, true);
m_pXmlWriter->WriteNodeBegin( L"w:calcOnExit", true);
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.fRecalc);
m_pXmlWriter->WriteNodeEnd(L"w:calcOnExit", true, true );
if (false == ffData->FFData.xstzHelpText.empty())
{
m_pXmlWriter->WriteNodeBegin(L"w:helpText", true);
m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnHelp ? L"text" : L"autoText");
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzHelpText));
m_pXmlWriter->WriteNodeEnd(L"w:helpText", true, true);
}
if (false == ffData->FFData.xstzStatText.empty())
{
m_pXmlWriter->WriteNodeBegin(L"w:statusText", true);
m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnStat ? L"text" : L"autoText");
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzStatText));
m_pXmlWriter->WriteNodeEnd(L"w:statusText", true, true);
}
if (false == ffData->FFData.xstzEntryMcr.empty())
{
m_pXmlWriter->WriteNodeBegin(L"w:entryMacro", true);
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzEntryMcr));
m_pXmlWriter->WriteNodeEnd(L"w:entryMacro", true, true);
}
if (false == ffData->FFData.xstzExitMcr.empty())
{
m_pXmlWriter->WriteNodeBegin(L"w:exitMacro", true);
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzExitMcr));
m_pXmlWriter->WriteNodeEnd(L"w:exitMacro", true, true);
}
if (ffData->FFData.iType == 1)
{
m_pXmlWriter->WriteNodeBegin(L"w:checkBox");
if (ffData->FFData.iSize)
{
m_pXmlWriter->WriteNodeBegin(L"w:size", true);
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.hps);
m_pXmlWriter->WriteNodeEnd(L"w:size", true, true);
}
else
{
m_pXmlWriter->WriteNodeBegin(L"w:sizeAuto", true);
m_pXmlWriter->WriteNodeEnd(L"w:sizeAuto", true, true);
}
m_pXmlWriter->WriteNodeBegin(L"w:default", true);
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.wDef);
m_pXmlWriter->WriteNodeEnd(L"w:default", true, true);
m_pXmlWriter->WriteNodeEnd(L"w:checkBox");
}
else if (ffData->FFData.iType == 2)
{
m_pXmlWriter->WriteNodeBegin(L"w:ddList");
m_pXmlWriter->WriteNodeEnd(L"w:ddList");
}
else
{
m_pXmlWriter->WriteNodeBegin(L"w:textInput");
m_pXmlWriter->WriteNodeBegin(L"w:maxLength", true);
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.cch_field);
m_pXmlWriter->WriteNodeEnd(L"w:maxLength", true, true);
m_pXmlWriter->WriteNodeEnd(L"w:textInput");
}
m_pXmlWriter->WriteNodeEnd( L"w:ffData" );
}
}
private:
ConversionContext* m_context;
IMapping* _caller;
};
}

View File

@ -1,66 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
class LineSpacingDescriptor
{
friend class ParagraphPropertiesMapping;
private:
short dyaLine;
bool fMultLinespace;
public:
/// Creates a new LineSpacingDescriptor with empty values
LineSpacingDescriptor(): dyaLine(0), fMultLinespace(false)
{
}
/// Parses the bytes to retrieve a LineSpacingDescriptor
LineSpacingDescriptor( unsigned char* bytes, int size ) : dyaLine(0), fMultLinespace(false)
{
dyaLine = FormatUtils::BytesToInt16( bytes, 0, size );
if ( FormatUtils::BytesToInt16( bytes, 2, size ) == 1 )
{
fMultLinespace = true;
}
if ( size > 4 )
{
}
}
};
}

View File

@ -1,94 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "ListFormatOverrideLevel.h"
namespace DocFileFormat
{
class ListFormatOverride
{
friend class ListFormatOverrideTable;
friend class NumberingMapping;
private:
static const int LFO_LENGTH = 16;
/// List ID of corresponding ListData
int lsid;
/// Count of levels whose format is overridden
unsigned char clfolvl;
/// Specifies the field this LFO represents.
/// MUST be a value from the following table:
/// 0x00: This LFO is not used for any field.
/// 0xFC: This LFO is used for the AUTONUMLGL field.
/// 0xFD: This LFO is used for the AUTONUMOUT field.
/// 0xFE: This LFO is used for the AUTONUM field.
/// 0xFF: This LFO is not used for any field.
unsigned char ibstFltAutoNum;
/// A grfhic that specifies HTML incompatibilities.
unsigned char grfhic;
/// Array of all levels whose format is overridden
std::vector<ListFormatOverrideLevel*> rgLfoLvl;
public:
/// Parses the given Stream Reader to retrieve a ListFormatOverride
ListFormatOverride( VirtualStreamReader* reader, int length ):
lsid(0), clfolvl(0), ibstFltAutoNum(0), grfhic(0)
{
long startPos = reader->GetPosition();
this->lsid = reader->ReadInt32();
reader->ReadBytes( 8, false );
this->clfolvl = reader->ReadByte();
this->ibstFltAutoNum = reader->ReadByte();
this->grfhic = reader->ReadByte();
reader->ReadByte();
if ( this->clfolvl != 0 )
{
this->rgLfoLvl = std::vector<ListFormatOverrideLevel*>( this->clfolvl );
}
reader->Seek( startPos, 0/*STREAM_SEEK_SET*/ );
reader->ReadBytes( LFO_LENGTH, false );
}
virtual ~ListFormatOverride()
{
for ( std::vector<ListFormatOverrideLevel*>::iterator iter = this->rgLfoLvl.begin(); iter != this->rgLfoLvl.end(); iter++ )
{
RELEASEOBJECT( *iter );
}
}
};
}

View File

@ -1,87 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "ListLevel.h"
namespace DocFileFormat
{
class ListFormatOverrideLevel
{
friend class NumberingMapping;
private:
/// Start-at value if fFormatting==false and fStartAt==true.
/// If fFormatting == true, the start is stored in the LVL
int iStartAt;
/// The level to be overridden
unsigned char ilvl;
/// True if the start-at value is overridden
bool fStartAt;
/// True if the formatting is overridden
bool fFormatting;
/// A grfhic that specifies HTML incompatibilities of the level.
unsigned char grfhic;
ListLevel* lvl;
public:
ListFormatOverrideLevel():
iStartAt(0), ilvl(0), fStartAt(false), fFormatting(false), grfhic(0), lvl(NULL)
{
}
virtual ~ListFormatOverrideLevel()
{
RELEASEOBJECT( this->lvl );
}
/// Parses the bytes to retrieve a ListFormatOverrideLevel
ListFormatOverrideLevel( VirtualStreamReader* reader, int length ):
iStartAt(0), ilvl(0), fStartAt(false), fFormatting(false), grfhic(0), lvl(NULL)
{
this->iStartAt = reader->ReadInt32();
unsigned int flag = (int)reader->ReadUInt32();
this->ilvl = (unsigned char)( flag & 0x000F );
this->fStartAt = FormatUtils::BitmaskToBool( flag, 0x0010 );
this->fFormatting = FormatUtils::BitmaskToBool( flag, 0x0020 );
this->grfhic = FormatUtils::GetIntFromBits( flag, 6, 8 );
//it's a complete override, so the fix part is followed by LVL struct
if ( this->fFormatting )
{
this->lvl = new ListLevel( reader, length );
}
}
};
}

View File

@ -1,86 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "FileInformationBlock.h"
#include "ListFormatOverride.h"
namespace DocFileFormat
{
class ListFormatOverrideTable: public std::vector<ListFormatOverride*>
{
private:
static const int LFO_LENGTH = 16;
static const int LFOLVL_LENGTH = 6;
std::vector<unsigned int> cps;
public:
ListFormatOverrideTable( FileInformationBlock* fib, POLE::Stream* tableStream )
{
if ( fib->m_FibWord97.lcbPlfLfo > 0 )
{
VirtualStreamReader reader( tableStream, fib->m_FibWord97.fcPlfLfo, fib->m_nWordVersion);
if (fib->m_FibWord97.fcPlfLfo > reader.GetSize()) return;
//read the count of LFOs
int count = reader.ReadInt32();
//read the LFOs
for ( int i = 0; i < count; i++ )
{
this->push_back( new ListFormatOverride( &reader, LFO_LENGTH ) );
}
//read the LFOLVLs
for ( int i = 0; i < count; i++ )
{
this->cps.push_back( reader.ReadUInt32() );
for ( int j = 0; j < this->at( i )->clfolvl; j++ )
{
this->at( i )->rgLfoLvl[j] = new ListFormatOverrideLevel( &reader, LFOLVL_LENGTH );
}
}
}
}
virtual ~ListFormatOverrideTable()
{
for ( vector<ListFormatOverride*>::iterator iter = this->begin(); iter != this->end(); iter++ )
{
RELEASEOBJECT( *iter );
}
}
};
}

View File

@ -1,215 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "IBinaryReader.h"
#include "../Common/FormatUtils.h"
class MemoryStream: public IBinaryReader
{
public:
MemoryStream (unsigned char* data, unsigned long size, bool bMemCopy = true) : m_Data(NULL), m_Size(0), m_Position(0), bMemoryCopy(bMemCopy)
{
if ( ( data != NULL ) && ( size != 0 ) )
{
m_Size = size;
if (bMemoryCopy)
{
m_Data = new unsigned char[m_Size];
if (m_Data)
{
memcpy (m_Data, data, m_Size);
}
}
else
{
m_Data = data;
}
}
}
virtual ~MemoryStream()
{
if (bMemoryCopy)
RELEASEARRAYOBJECTS (m_Data);
}
virtual unsigned short ReadUInt16()
{
unsigned short rdUShort = 0;
if (m_Data)
{
rdUShort = DocFileFormat::FormatUtils::BytesToUInt16 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdUShort);
}
return rdUShort;
}
void WriteUInt16(unsigned short val)
{
if (m_Data && (m_Position + sizeof(unsigned short) <= m_Size))
{
((unsigned short *)(m_Data + m_Position))[0] = val;
m_Position += sizeof(unsigned short);
}
}
virtual short ReadInt16()
{
short rdShort = 0;
if (m_Data)
{
rdShort = DocFileFormat::FormatUtils::BytesToInt16 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdShort);
}
return rdShort;
}
virtual int ReadInt32()
{
int rdInt = 0;
if (m_Data)
{
rdInt = DocFileFormat::FormatUtils::BytesToInt32 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdInt);
}
return rdInt;
}
void WriteInt32(_INT32 val)
{
if (m_Data && (m_Position + sizeof(_INT32) <= m_Size))
{
((_INT32 *)(m_Data + m_Position))[0] = val;
m_Position += sizeof(_INT32);
}
}
virtual unsigned int ReadUInt32()
{
int rdUInt = 0;
if (m_Data )
{
rdUInt = DocFileFormat::FormatUtils::BytesToUInt32 (m_Data, m_Position, m_Size);
m_Position += sizeof(rdUInt);
}
return rdUInt;
}
void WriteByte(unsigned char val)
{
if (m_Data && (m_Position + 1 <= m_Size))
{
m_Data[m_Position] = val;
m_Position += 1;
}
}
void WriteUInt32(_UINT32 val)
{
if (m_Data && (m_Position + sizeof(_UINT32) <= m_Size))
{
((_UINT32 *)(m_Data + m_Position))[0] = val;
m_Position += sizeof(_UINT32);
}
}
virtual unsigned char ReadByte()
{
unsigned char rdByte = 0;
if (m_Data)
{
rdByte = (m_Position < m_Size) ? m_Data[m_Position] : 0;
m_Position += sizeof(rdByte);
}
return rdByte;
}
virtual unsigned char* ReadBytes (unsigned int count, bool isResultNeeded)
{
if (!m_Data) return NULL;
unsigned int size = ( count <= (m_Size - m_Position) ) ? (count) : (m_Size - m_Position);
unsigned char* pBytes = (isResultNeeded && count > 0) ? new unsigned char[count] : NULL;
if (pBytes)
{
memcpy(pBytes, (m_Data + m_Position), size);
}
m_Position += size;
return pBytes;
}
void WriteBytes(unsigned char* pData, int size)
{
if (m_Data && (m_Position + size <= m_Size))
{
memcpy(m_Data + m_Position, pData, size);
m_Position += size;
}
}
virtual unsigned long GetPosition() const
{
return m_Position;
}
virtual unsigned long GetSize() const
{
return m_Size;
}
virtual int Seek (int offset, int origin = 0/*STREAM_SEEK_SET*/)
{
if (origin == 2) offset = m_Position + offset;
if (origin == 1) offset = m_Size - offset;
if ( (m_Data != NULL) && (offset >= 0) && ((unsigned int)offset < m_Size) )
return m_Position = offset;
return 0;
}
private:
unsigned char* m_Data;
unsigned long m_Size;
unsigned long m_Position;
bool bMemoryCopy;
};

View File

@ -1,198 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "OfficeDrawing/RecordFactory.h"
#include "OfficeDrawing/DrawingContainer.h"
#include "OfficeDrawing/DrawingRecord.h"
#include "OfficeDrawing/DrawingGroup.h"
#include "OfficeDrawing/GroupContainer.h"
#include "OfficeDrawing/Shape.h"
namespace DocFileFormat
{
class OfficeArtContent
{
private:
enum DrawingType
{
MainDocument,
Header
};
struct OfficeArtWordDrawing
{
DrawingType dgglbl;
DrawingContainer* container;
};
public:
OfficeArtContent (const FileInformationBlock* pFIB, POLE::Stream* pStream): m_pDrawingGroupData(NULL), m_pBackgroud(NULL), m_uLastShapeId(1024)
{
VirtualStreamReader oStearmReader(pStream, 0 , pFIB->m_nWordVersion);
if (pFIB->m_FibWord97.fcDggInfo > oStearmReader.GetSize()) return;
oStearmReader.Seek (pFIB->m_FibWord97.fcDggInfo, 0/*STREAM_SEEK_SET*/);
if (pFIB->m_FibWord97.lcbDggInfo > 0)
{
unsigned int maxPosition = (int)(pFIB->m_FibWord97.fcDggInfo + pFIB->m_FibWord97.lcbDggInfo);
// read the DrawingGroupData
m_pDrawingGroupData = static_cast<DrawingGroup*>(RecordFactory::ReadRecord (&oStearmReader, 0));
while (oStearmReader.GetPosition() < maxPosition)
{
OfficeArtWordDrawing drawing;
drawing.dgglbl = (DrawingType)oStearmReader.ReadByte();
drawing.container = static_cast<DrawingContainer*>(RecordFactory::ReadRecord (&oStearmReader, 0));
for (size_t i = 0; i < drawing.container->Children.size(); ++i)
{
Record* groupChild = drawing.container->Children[i];
if (groupChild)
{
if (GroupContainer::TYPE_CODE_0xF003 == groupChild->TypeCode)
{
GroupContainer* group = static_cast<GroupContainer*>(groupChild);
if (group)
{
group->Index = (int)i;
}
}
else if (ShapeContainer::TYPE_CODE_0xF004 == groupChild->TypeCode)
{
ShapeContainer* shape = static_cast<ShapeContainer*>(groupChild);
if (shape)
{
shape->m_nIndex = (int)i;
if (shape->m_bBackground)
{
m_pBackgroud = shape;
}
}
}
else if (DrawingRecord::TYPE_CODE_0xF008 == groupChild->TypeCode)
{
DrawingRecord* dr = static_cast<DrawingRecord*>(groupChild);
if (dr)
{
m_uLastShapeId = dr->spidCur;
}
}
}
}
m_arrDrawings.push_back( drawing );
}
}
}
~OfficeArtContent()
{
RELEASEOBJECT (m_pDrawingGroupData);
for ( std::list<OfficeArtWordDrawing>::iterator iter = m_arrDrawings.begin(); iter != m_arrDrawings.end(); ++iter)
RELEASEOBJECT(iter->container);
}
inline ShapeContainer* GetShapeBackgound()
{
return m_pBackgroud;
}
inline ShapeContainer* GetShapeContainer (int spid)
{
ShapeContainer* ret = NULL;
for (std::list<OfficeArtWordDrawing>::iterator iter = m_arrDrawings.begin(); iter != m_arrDrawings.end(); ++iter)
{
GroupContainer* group = iter->container->FirstChildWithType<GroupContainer>();
if (group)
{
for (size_t i = 1; i < group->Children.size(); ++i)
{
Record* groupChild = group->Children[i];
if ( groupChild->TypeCode == GroupContainer::TYPE_CODE_0xF003)
{
//It's a group of shapes
GroupContainer* subgroup = static_cast<GroupContainer*>(groupChild);
//the referenced shape must be the first shape in the group
ShapeContainer* container = static_cast<ShapeContainer*>(subgroup->Children[0]);
Shape* shape = static_cast<Shape*>(container->Children[1]);
if (shape->GetShapeID() == spid)
{
ret = container;
break;
}
}
else if ( groupChild->TypeCode == ShapeContainer::TYPE_CODE_0xF004 )
{
//It's a singe shape
ShapeContainer* container = static_cast<ShapeContainer*>(groupChild);
Shape* shape = static_cast<Shape*>(container->Children[0]);
if (shape->GetShapeID() == spid)
{
ret = container;
break;
}
}
}
}
else
{
continue;
}
if (ret)
break;
}
return ret;
}
inline const DrawingGroup* GetDrawingGroup () const
{
return m_pDrawingGroupData;
}
unsigned int m_uLastShapeId;
private:
ShapeContainer* m_pBackgroud;
DrawingGroup* m_pDrawingGroupData;
std::list<OfficeArtWordDrawing> m_arrDrawings;
};
}

View File

@ -1,101 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class BitmapBlip: public Record
{
public:
static const unsigned short TYPE_CODE_0xF01D = 0xF01D;
static const unsigned short TYPE_CODE_0xF01E = 0xF01E;
static const unsigned short TYPE_CODE_0xF01F = 0xF01F;
static const unsigned short TYPE_CODE_0xF020 = 0xF020;
static const unsigned short TYPE_CODE_0xF021 = 0xF021;
static const unsigned short TYPE_CODE_0xF02A = 0xF02A;
static const unsigned short TYPE_CODE_0xF029 = 0xF029;
public:
BitmapBlip() : Record(), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_bTag(0), m_pvBits(NULL)
{
}
BitmapBlip(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) :
Record(_reader, size, typeCode, version, instance ), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_bTag(0), m_pvBits(NULL), pvBitsSize(0)
{
m_rgbUid = Reader->ReadBytes(16, true);
if ((instance == 0x46B) || (instance == 0x6E3) || (instance == 0x6E1) || (instance == 0x7A9) || (instance == 0x6E5))
{
m_rgbUidPrimary = Reader->ReadBytes(16, true);
}
m_bTag = Reader->ReadByte();
pvBitsSize = (size - 17);
if (m_rgbUidPrimary)
{
pvBitsSize -= 16;
}
m_pvBits = Reader->ReadBytes((int)(pvBitsSize), true);
}
virtual ~BitmapBlip()
{
RELEASEARRAYOBJECTS(m_rgbUid);
RELEASEARRAYOBJECTS(m_rgbUidPrimary);
RELEASEARRAYOBJECTS(m_pvBits);
}
virtual Record* NewObject(IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new BitmapBlip(_reader, bodySize, typeCode, version, instance);
}
public:
/// The secondary, or data, UID - should always be set.
unsigned char* m_rgbUid;
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
/// Blip_instance is MSOFBH.finst and blip_signature is one of the values defined in MSOBI
unsigned char* m_rgbUidPrimary;
unsigned char m_bTag;
/// Raster bits of the blip
unsigned char* m_pvBits;
unsigned int pvBitsSize;
};
}

View File

@ -1,60 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RegularContainer.h"
namespace DocFileFormat
{
class BlipStoreContainer: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF001 = 0xF001;
BlipStoreContainer () : RegularContainer()
{
}
BlipStoreContainer (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer (_reader, size, typeCode, version, instance)
{
}
virtual ~BlipStoreContainer()
{
}
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new BlipStoreContainer( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,137 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RecordFactory.h"
#include "../Global.h"
namespace DocFileFormat
{
class BlipStoreEntry: public Record // OfficeArtFBSE
{
friend class VMLShapeMapping;
public:
static const unsigned short TYPE_CODE_0xF007 = 0xF007;
/// Required type on Win32
Global::BlipType btWin32;
/// Required type on Mac
Global::BlipType btMacOS;
Record* Blip;
private:
/// Identifier of blip
unsigned char* rgbUid;
/// currently unused
short tag;
/// Blip size in stream
unsigned int size;
/// Reference count on the blip
unsigned int cRef;
unsigned int foDelay; // File offset in the delay stream
/// How this blip is used (MSOBLIPUSAGE)
Global::BlipUsage usage;
/// length of the blip name
unsigned char cbName;
/// for the future
unsigned char unused2;
/// for the future
unsigned char unused3;
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
/// Blip_instance is MSOFBH.inst and blip_signature is one of the values defined in MSOBI
unsigned char* m_rgbUid;
/// optional based on the above check.
unsigned char* m_rgbUidPrimary;
unsigned char m_bTag;
/// Cache of the metafile size
short m_cb;
//RECT m_rcBounds; // Boundary of metafile drawing commands
//POINT m_ptSize; // Size of metafile in EMUs
/// Cache of saved size (size of m_pvBits)
short m_cbSave;
/// Compression
unsigned char m_fCompression;
/// always msofilterNone
unsigned char m_fFilter;
public:
BlipStoreEntry() : Record(), btWin32(Global::msoblipERROR), btMacOS(Global::msoblipERROR), rgbUid(NULL), tag(0), size(0), cRef(0),
foDelay(0), usage(Global::msoblipUsageDefault), cbName(0), unused2(0), unused3(0), m_rgbUid(NULL), m_rgbUidPrimary(NULL),
m_bTag(0), m_cb(0), m_cbSave(0), m_fCompression(0), m_fFilter(0), Blip(NULL)
{
}
BlipStoreEntry(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
Record( _reader, size, typeCode, version, instance ), btWin32(Global::msoblipERROR), btMacOS(Global::msoblipERROR), rgbUid(NULL), tag(0), size(0), cRef(0),
foDelay(0), usage(Global::msoblipUsageDefault), cbName(0), unused2(0), unused3(0), m_rgbUid(NULL), m_rgbUidPrimary(NULL),
m_bTag(0), m_cb(0), m_cbSave(0), m_fCompression(0), m_fFilter(0), Blip(NULL)
{
btWin32 = (Global::BlipType)Reader->ReadByte();
btMacOS = (Global::BlipType)Reader->ReadByte();
rgbUid = Reader->ReadBytes(16, true);
tag = Reader->ReadInt16();
size = Reader->ReadUInt32();
cRef = Reader->ReadUInt32();
foDelay = Reader->ReadUInt32();
usage = (Global::BlipUsage) Reader->ReadByte();
cbName = Reader->ReadByte();
unused2 = Reader->ReadByte();
unused3 = Reader->ReadByte();
if (btMacOS != btWin32)
{
btWin32 = btMacOS = (Global::BlipType)this->Instance;
}
if (BodySize > 0x24)
{
Blip = RecordFactory::ReadRecord(Reader, 0);
}
}
virtual ~BlipStoreEntry()
{
RELEASEARRAYOBJECTS(rgbUid);
RELEASEARRAYOBJECTS(m_rgbUid);
RELEASEARRAYOBJECTS(m_rgbUidPrimary);
RELEASEOBJECT(Blip);
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new BlipStoreEntry( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,84 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class ChildAnchor: public Record
{
public:
static const unsigned short TYPE_CODE_0xF00F = 0xF00F;
ChildAnchor() : Record(), rcgBounds(), Left(0), Top(0), Right(0), Bottom(0)
{
}
ChildAnchor (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance), rcgBounds(), Left(0), Top(0), Right(0), Bottom(0)
{
Left = Reader->ReadInt32();
Top = Reader->ReadInt32();
Right = Reader->ReadInt32();
Bottom = Reader->ReadInt32();
POINT _point;
_point.x = Left;
_point.y = Top;
SIZE _size;
_size.cx = Right - Left;
_size.cy = Bottom - Top;
rcgBounds = DocFileFormat::Rectangle (_point, _size);
}
virtual ~ChildAnchor()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new ChildAnchor( _reader, bodySize, typeCode, version, instance );
}
public:
/// Rectangle that describes the bounds of the anchor
DocFileFormat::Rectangle rcgBounds;
int Left;
int Top;
int Right;
int Bottom;
};
}

View File

@ -1,63 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class ClientAnchor: public Record
{
public:
static const unsigned short TYPE_CODE_0xF010 = 0xF010;
ClientAnchor() : Record(), value(0)
{
}
ClientAnchor (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance), value(0)
{
value = Reader->ReadInt32(); //index PlcfSpa
}
virtual ~ClientAnchor()
{
}
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new ClientAnchor (_reader, bodySize, typeCode, version, instance);
}
unsigned int value;
};
}

View File

@ -1,68 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
namespace DocFileFormat
{
// 2.3.17.11 Diagram Boolean Properties - [MS-ODRAW] — v20130726
class DiagramBooleanProperties
{
public:
DiagramBooleanProperties(unsigned int op)
{
fPseudoInline = FormatUtils::BitmaskToBool(op, 0x1);
fDoLayout = FormatUtils::BitmaskToBool(op, 0x2);
fReverse = FormatUtils::BitmaskToBool(op, 0x4);
fDoFormat = FormatUtils::BitmaskToBool(op, 0x8);
//unused: 0x10 - 0x8000
fUsefPseudoInline = FormatUtils::BitmaskToBool(op, 0x10000);
fUsefDoLayout = FormatUtils::BitmaskToBool(op, 0x20000);
fUsefReverse = FormatUtils::BitmaskToBool(op, 0x40000);
fUsefDoFormat = FormatUtils::BitmaskToBool(op, 0x80000);
}
public:
bool fPseudoInline;
bool fDoLayout;
bool fReverse;
bool fDoFormat;
bool fUsefPseudoInline;
bool fUsefDoLayout;
bool fUsefReverse;
bool fUsefDoFormat;
};
}

View File

@ -1,62 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RegularContainer.h"
namespace DocFileFormat
{
class DrawingContainer: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF002 = 0xF002;
DrawingContainer():
RegularContainer()
{
}
DrawingContainer( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
RegularContainer( _reader, size, typeCode, version, instance )
{
}
virtual ~DrawingContainer()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new DrawingContainer( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,60 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RegularContainer.h"
namespace DocFileFormat
{
class DrawingGroup: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF000 = 0xF000;
DrawingGroup(): RegularContainer()
{
}
DrawingGroup (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer( _reader, size, typeCode, version, instance )
{
}
virtual ~DrawingGroup()
{
}
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new DrawingGroup (_reader, bodySize, typeCode, version, instance);
}
};
}

View File

@ -1,86 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class DrawingGroupRecord: public Record
{
public:
static const unsigned short TYPE_CODE_0xF006 = 0xF006;
struct FileIdCluster
{
FileIdCluster( IBinaryReader* reader )
{
DrawingGroupId = reader->ReadUInt32();
CSpIdCur = reader->ReadUInt32();
}
unsigned int DrawingGroupId;
unsigned int CSpIdCur;
};
unsigned int MaxShapeId; // Maximum shape ID
unsigned int IdClustersCount; // Number of FileIdClusters
unsigned int ShapesSavedCount; // Total number of shapes saved
unsigned int DrawingsSavedCount; // Total number of drawings saved
std::list<FileIdCluster> Clusters;
DrawingGroupRecord () : Record(), MaxShapeId(0), IdClustersCount(0), ShapesSavedCount(0), DrawingsSavedCount(0)
{
}
DrawingGroupRecord (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record( _reader, size, typeCode, version, instance )
{
MaxShapeId = Reader->ReadUInt32();
IdClustersCount = Reader->ReadUInt32() - 1; // Office saves the actual value + 1 -- flgr
ShapesSavedCount = Reader->ReadUInt32();
DrawingsSavedCount = Reader->ReadUInt32();
for (unsigned int i = 0; i < IdClustersCount; ++i)
Clusters.push_back(FileIdCluster(Reader));
}
virtual ~DrawingGroupRecord()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new DrawingGroupRecord( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,67 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class DrawingRecord: public Record
{
public:
static const unsigned short TYPE_CODE_0xF008 = 0xF008;
unsigned int csp; // The number of shapes in this drawing
unsigned int spidCur; // The last MSOSPID given to an SP in this DG
DrawingRecord():
Record(), csp(0), spidCur(0)
{
}
DrawingRecord( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
Record( _reader, size, typeCode, version, instance )
{
csp = Reader->ReadUInt32();
spidCur = Reader->ReadInt32();
}
virtual ~DrawingRecord()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new DrawingRecord( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,84 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ShapeContainer.h"
namespace DocFileFormat
{
class GroupContainer: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF003 = 0xF003;
int Index;
GroupContainer() : RegularContainer(), Index(0)
{
}
GroupContainer(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer(_reader, size, typeCode, version, instance), Index(0)
{
for ( unsigned int i = 0; i < this->Children.size(); i++ )
{
Record* groupChild = this->Children[i];
if ( groupChild != NULL )
{
if ( groupChild->TypeCode == 0xF003 )
{
// the child is a subgroup
GroupContainer* group = static_cast<GroupContainer*>(groupChild);
group->Index = i;
this->Children[i] = group;
}
else if ( groupChild->TypeCode == 0xF004 )
{
// the child is a shape
ShapeContainer* shape = static_cast<ShapeContainer*>(groupChild);
shape->m_nIndex = i;
this->Children[i] = shape;
}
}
}
}
virtual ~GroupContainer()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new GroupContainer( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,82 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class GroupShapeRecord: public Record
{
public:
static const unsigned short TYPE_CODE_0xF009 = 0xF009;
GroupShapeRecord () : Record(), rcgBounds()
{
}
GroupShapeRecord(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record(_reader, size, typeCode, version, instance), rcgBounds()
{
int left = Reader->ReadInt32();
int top = Reader->ReadInt32();
int right = Reader->ReadInt32();
int bottom = Reader->ReadInt32();
//left = max( 0, left );
//top = max( 0, top );
//right = max( 0, right );
//bottom = max( 0, bottom );
POINT oPoint;
oPoint.x = left;
oPoint.y = top;
SIZE oSize;
oSize.cx = ( right - left );
oSize.cy = ( bottom - top );
rcgBounds = DocFileFormat::Rectangle(oPoint,oSize);
}
virtual ~GroupShapeRecord()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new GroupShapeRecord( _reader, bodySize, typeCode, version, instance );
}
DocFileFormat::Rectangle rcgBounds;
};
}

View File

@ -1,366 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
#include "../../../OfficeUtils/src/OfficeUtils.h"
#include "../../../Common/DocxFormat/Source/Base/Types_32.h"
namespace DocFileFormat
{
typedef struct
{
short Left;
short Top;
short Right;
short Bottom;
} PWMFRect16;
typedef struct
{
_UINT32 Key; // GDIP_WMF_PLACEABLEKEY
short Hmf; // Metafile HANDLE number (always 0)
PWMFRect16 BoundingBox; // Coordinates in metafile units
short Inch; // Number of metafile units per inch
_UINT32 Reserved; // Reserved (always 0)
short Checksum; // Checksum value for previous 10 WORDs
} WmfPlaceableFileHeader;
class CMetaHeader
{
public:
DWORD cbSize;
RECT rcBounds;
POINT ptSize;
DWORD cbSave;
BYTE compression;
BYTE filter;
CMetaHeader()
{
cbSize = cbSave = 0;
filter = compression = 0;
ptSize.x = ptSize.y = 0;
rcBounds.bottom = rcBounds.left = rcBounds.right = rcBounds.top = 0;
}
void ToWMFHeader(WmfPlaceableFileHeader* pHeader)
{
if (NULL == pHeader)
return;
pHeader->Key = 0x9AC6CDD7;
pHeader->Hmf = 0;
pHeader->BoundingBox.Left = (short)rcBounds.left;
pHeader->BoundingBox.Top = (short)rcBounds.top;
pHeader->BoundingBox.Right = (short)rcBounds.right;
pHeader->BoundingBox.Bottom = (short)rcBounds.bottom;
pHeader->Inch = 1440; // 1:1
pHeader->Reserved = 0;
pHeader->Checksum = 0;
pHeader->Checksum ^= (pHeader->Key & 0x0000FFFFL);
pHeader->Checksum ^= ((pHeader->Key & 0xFFFF0000L) >> 16);
pHeader->Checksum ^= pHeader->Hmf;
pHeader->Checksum ^= pHeader->BoundingBox.Left;
pHeader->Checksum ^= pHeader->BoundingBox.Top;
pHeader->Checksum ^= pHeader->BoundingBox.Right;
pHeader->Checksum ^= pHeader->BoundingBox.Bottom;
pHeader->Checksum ^= pHeader->Inch;
pHeader->Checksum ^= (pHeader->Reserved & 0x0000FFFFL);
pHeader->Checksum ^= ((pHeader->Reserved & 0xFFFF0000L) >> 16);
}
};
class CMetaFileBuffer
{
public:
bool m_bIsValid;
std::wstring m_sExtension;
private:
BYTE* m_pMetaHeader;
BYTE* m_pMetaFile;
LONG m_lMetaHeaderSize;
LONG m_lMetaFileSize;
public:
CMetaFileBuffer()
{
m_bIsValid = false;
m_pMetaHeader = NULL;
m_pMetaFile = NULL;
m_lMetaHeaderSize = 0;
m_lMetaFileSize = 0;
}
~CMetaFileBuffer()
{
RELEASEARRAYOBJECTS(m_pMetaHeader);
RELEASEARRAYOBJECTS(m_pMetaFile);
}
void SetHeader(BYTE* pHeader, LONG lSize)
{
m_pMetaHeader = pHeader;
m_lMetaHeaderSize = lSize;
}
void SetData(BYTE* pCompress, LONG lCompressSize, LONG lUncompressSize, bool bIsCompressed)
{
if (!bIsCompressed)
{
m_pMetaFile = new BYTE[lCompressSize];
m_lMetaFileSize = lCompressSize;
memcpy(m_pMetaFile, pCompress, lCompressSize);
}
else
{
ULONG lSize = lUncompressSize;
m_pMetaFile = new BYTE[lUncompressSize];
HRESULT res = S_OK;
COfficeUtils* pOfficeUtils = new COfficeUtils(NULL);
if (pOfficeUtils)
{
pOfficeUtils->Uncompress( m_pMetaFile, &lSize, pCompress, lCompressSize );
delete pOfficeUtils;
pOfficeUtils = NULL;
m_lMetaFileSize = (LONG)lSize;
}
else
{
RELEASEARRAYOBJECTS(m_pMetaFile);
m_lMetaFileSize = 0;
}
}
}
int ToBuffer(BYTE *& Data)
{
int sz = 0;
if (NULL != m_pMetaHeader) sz += m_lMetaHeaderSize;
if (NULL != m_pMetaFile) sz += m_lMetaFileSize;
Data = new BYTE[sz];
int pos = 0;
if (NULL != m_pMetaHeader)
{
memcpy(Data, (BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
pos += m_lMetaHeaderSize;
}
if (NULL != m_pMetaFile)
{
memcpy(Data + pos, (BYTE*)m_pMetaFile, m_lMetaFileSize);
}
return sz;
}
void ToFile(NSFile::CFileBinary* pFile)
{
if (NULL != m_pMetaHeader)
{
pFile->WriteFile((BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
}
}
};
typedef enum _BlipCompression
{
BlipCompressionDeflate,
BlipCompressionNone = 254,
BlipCompressionTest = 255
} BlipCompression;
class MetafilePictBlip: public Record
{
private:
/// The secondary, or data, UID - should always be set.
unsigned char* m_rgbUid;
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
/// Blip_instance is MSOFBH.finst and blip_signature is one of the values defined in MSOBI
unsigned char* m_rgbUidPrimary;
/// Cache of the metafile size
int m_cb;
RECT m_rcBounds;
/// Boundary of metafile drawing commands
POINT m_ptSize;
/// Cache of saved size (size of m_pvBits)
int m_cbSave;
/// Compression
BlipCompression m_fCompression;
/// always msofilterNone
bool m_fFilter;
/// Compressed bits of metafile.
unsigned char* m_pvBits;
public:
CMetaFileBuffer oMetaFile;
static const unsigned short TYPE_CODE_0xF01A = 0xF01A;
static const unsigned short TYPE_CODE_0xF01B = 0xF01B;
static const unsigned short TYPE_CODE_0xF01C = 0xF01C;
MetafilePictBlip():
Record(), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_cb(0), m_cbSave(0), m_fCompression(BlipCompressionNone), m_fFilter(false),
m_pvBits(NULL)
{
}
MetafilePictBlip( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
Record( _reader, size, typeCode, version, instance ), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_cb(0), m_cbSave(0),
m_fCompression(BlipCompressionNone), m_fFilter(false), m_pvBits(NULL)
{
m_rgbUid = Reader->ReadBytes( 16, true );
if ( ( instance == 0x3D5 ) || ( instance == 0x217 ) || ( instance == 0x543 ) )
{
m_rgbUidPrimary = Reader->ReadBytes( 16, true );
}
oMetaFile.m_bIsValid = TRUE;
oMetaFile.m_sExtension = L".emf";
CMetaHeader oMetaHeader;
m_cb = Reader->ReadInt32();
m_rcBounds.left = Reader->ReadInt32();
m_rcBounds.top = Reader->ReadInt32();
m_rcBounds.right = Reader->ReadInt32() + m_rcBounds.left;
m_rcBounds.bottom = Reader->ReadInt32() + m_rcBounds.top;
m_ptSize.x = Reader->ReadInt32();
m_ptSize.y = Reader->ReadInt32();
m_cbSave = Reader->ReadInt32();
m_fCompression = (BlipCompression)Reader->ReadByte();
m_fFilter = ( Reader->ReadByte() == 1 ) ? (true) : (false);
int sz = Reader->GetSize() - Reader->GetPosition();
m_pvBits = Reader->ReadBytes( sz/*m_cbSave*/, true );
oMetaHeader.rcBounds = m_rcBounds;
oMetaHeader.cbSize = m_cb;
oMetaHeader.ptSize = m_ptSize;
oMetaHeader.cbSave = m_cbSave ;
oMetaHeader.compression = m_fCompression;
oMetaHeader.filter = m_fFilter;
if (typeCode == 0xf01b)
{
oMetaFile.m_sExtension = L".wmf";
WmfPlaceableFileHeader oWmfHeader = {};
oMetaHeader.ToWMFHeader(&oWmfHeader);
LONG lLenHeader = 22;
BYTE* pMetaHeader = new BYTE[lLenHeader];
memcpy(pMetaHeader, (void*)(&oWmfHeader), lLenHeader);
oMetaFile.SetHeader(pMetaHeader, lLenHeader);
}
if (typeCode == 0xf01c)
{
oMetaFile.m_sExtension = L".pcz";
//decompress???
}
oMetaFile.SetData(m_pvBits, oMetaHeader.cbSave, oMetaHeader.cbSize, 0 == oMetaHeader.compression);
}
virtual ~MetafilePictBlip()
{
RELEASEARRAYOBJECTS( m_rgbUid );
RELEASEARRAYOBJECTS( m_rgbUidPrimary );
RELEASEARRAYOBJECTS( m_pvBits );
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new MetafilePictBlip( _reader, bodySize, typeCode, version, instance );
}
/// Decompresses the bits of the picture if the picture is decompressed.
/// If the picture is not compressed, it returns original unsigned char array.
unsigned long Decompress( unsigned char **buffer )
{
unsigned long uncomprLen = 0;
if ( m_fCompression == BlipCompressionDeflate )
{
uncomprLen = m_cb;
*buffer = new unsigned char[uncomprLen];
HRESULT res = S_OK;
COfficeUtils* pOfficeUtils = new COfficeUtils(NULL);
if (pOfficeUtils)
{
pOfficeUtils->Uncompress( *buffer, &uncomprLen, m_pvBits, m_cbSave );
delete pOfficeUtils;
pOfficeUtils = NULL;
}
}
else if ( m_fCompression == BlipCompressionNone )
{
uncomprLen = m_cbSave;
*buffer = new unsigned char[uncomprLen];
memcpy( *buffer, m_pvBits , m_cbSave );
}
return uncomprLen;
}
};
}

View File

@ -1,64 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class OfficeArtClientTextbox : public Record
{
public:
static const unsigned short TYPE_CODE_0xF00D = 0xF00D;
OfficeArtClientTextbox () : Record()
{
}
OfficeArtClientTextbox (IBinaryReader* reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record(reader, size, typeCode, version, instance), m_nIndex(0)
{
unsigned int number = Reader->ReadUInt16();
m_nIndex = Reader->ReadUInt16();
}
virtual ~OfficeArtClientTextbox()
{
}
virtual Record* NewObject(IBinaryReader* reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new OfficeArtClientTextbox(reader, bodySize, typeCode, version, instance);
}
int m_nIndex = 0;
};
}

View File

@ -1,60 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RegularContainer.h"
namespace DocFileFormat
{
class OfficeArtFRITContainer: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF118 = 0xF118;
OfficeArtFRITContainer () : RegularContainer()
{
}
OfficeArtFRITContainer (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer (_reader, size, typeCode, version, instance)
{
}
virtual ~OfficeArtFRITContainer()
{
}
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
{
return new OfficeArtFRITContainer( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,75 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "Record.h"
namespace DocFileFormat
{
Record::~Record()
{
RELEASEARRAYOBJECTS( RawData );
RELEASEOBJECT( Reader );
}
/*========================================================================================================*/
Record::Record():
HeaderSize(0), BodySize(0), RawData(NULL), SiblingIdx(0), TypeCode(0), Version(0), Instance(0), Reader(NULL),
_ParentRecord(NULL)
{
}
/*========================================================================================================*/
Record::Record( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance ):
HeaderSize(Record::HEADER_SIZE_IN_BYTES), BodySize(bodySize), RawData(NULL), SiblingIdx(0), TypeCode(typeCode), Version(version), Instance(instance), Reader(NULL),
_ParentRecord(NULL)
{
HeaderSize = Record::HEADER_SIZE_IN_BYTES;
int real_size = _reader->GetSize() - _reader->GetPosition();
if (real_size < BodySize)
{
BodySize = real_size;
}
RawData = _reader->ReadBytes( BodySize, true );
Reader = new MemoryStream( RawData, BodySize, false );
}
/*========================================================================================================*/
unsigned int Record::GetTotalSize() const
{
return ( HeaderSize + BodySize );
}
}

View File

@ -1,104 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RecordFactory.h"
namespace DocFileFormat
{
/// Regular containers are containers with Record children.
/// There also is containers that only have a zipped XML payload.
class RegularContainer: public Record
{
public:
RegularContainer() : Record()
{
}
virtual ~RegularContainer()
{
for (std::vector<Record*>::iterator iter = Children.begin(); iter != Children.end(); ++iter)
{
RELEASEOBJECT (*iter);
}
}
RegularContainer (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance)
{
unsigned int readSize = 0;
unsigned int idx = 0;
while ( readSize < this->BodySize )
{
Record* child = NULL;
child = RecordFactory::ReadRecord( this->Reader, idx );
if ( child != NULL )
{
this->Children.push_back( child );
child->_ParentRecord = this;
readSize += child->GetTotalSize();
idx++;
}
else
{
readSize += this->BodySize;
}
}
}
/// Finds the first child of the given type.
template<class T> T* FirstChildWithType() const
{
T* firstChildWithType = NULL;
for ( size_t i = 0; i < this->Children.size(); ++i )
{
if ( (this->Children[i] != NULL) && (typeid(T) == typeid(*(this->Children[i]))) )
{
firstChildWithType = static_cast<T*>(this->Children[i]);
break;
}
}
return firstChildWithType;
}
public:
std::vector<Record*> Children;
};
}

View File

@ -1,130 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
#include "ShapeTypeFactory.h"
namespace DocFileFormat
{
class Shape: public Record
{
public:
int spid;
bool fGroup;
bool fChild;
bool fPatriarch; // This is the topmost group shape. Exactly one of these per drawing.
bool fDeleted; // The shape has been deleted
bool fOleShape; // The shape is an OLE object
bool fHaveMaster;
bool fFlipH;
bool fFlipV;
bool fConnector;
bool fHaveAnchor;
bool fBackground;
bool fHaveSpt;
ShapeType* shapeType;
public:
static const unsigned short TYPE_CODE_0xF00A = 0xF00A;
Shape():
Record(), spid(0), fGroup(false), fChild(false), fPatriarch(false), fDeleted(false), fOleShape(false),
fHaveMaster(false), fFlipH(false), fFlipV(false), fConnector(false), fHaveAnchor(false), fBackground(false),
fHaveSpt(false), shapeType(NULL)
{
}
virtual ~Shape()
{
RELEASEOBJECT( shapeType );
}
Shape( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
Record( _reader, size, typeCode, version, instance ), spid(0), fGroup(false), fChild(false), fPatriarch(false), fDeleted(false), fOleShape(false),
fHaveMaster(false), fFlipH(false), fFlipV(false), fConnector(false), fHaveAnchor(false), fBackground(false),
fHaveSpt(false), shapeType(NULL)
{
spid = Reader->ReadInt32();
unsigned int flag = Reader->ReadUInt32();
fGroup = FormatUtils::BitmaskToBool( flag, 0x1 );
fChild = FormatUtils::BitmaskToBool( flag, 0x2 );
fPatriarch = FormatUtils::BitmaskToBool( flag, 0x4 );
fDeleted = FormatUtils::BitmaskToBool( flag, 0x8 );
fOleShape = FormatUtils::BitmaskToBool( flag, 0x10 );
fHaveMaster = FormatUtils::BitmaskToBool( flag, 0x20 );
fFlipH = FormatUtils::BitmaskToBool( flag, 0x40 );
fFlipV = FormatUtils::BitmaskToBool( flag, 0x80 );
fConnector = FormatUtils::BitmaskToBool( flag, 0x100 );
fHaveAnchor = FormatUtils::BitmaskToBool( flag, 0x200 );
fBackground = FormatUtils::BitmaskToBool( flag, 0x400 );
fHaveSpt = FormatUtils::BitmaskToBool( flag, 0x800 );
if (Instance > 0)
shapeType = ShapeTypeFactory::NewShapeType((MSOSPT)Instance);
else if (!fHaveSpt)
{
shapeType = ShapeTypeFactory::NewShapeType(msosptNotPrimitive);
}
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new Shape( _reader, bodySize, typeCode, version, instance );
}
inline int GetShapeID() const
{
return spid;
}
inline ShapeType* GetShapeType() const
{
return shapeType;
}
template<class T> bool is() const
{
bool isResult = false;
if ( shapeType != NULL )
{
isResult = ( typeid(*shapeType) == typeid(T) );
}
return isResult;
}
};
}

View File

@ -1,144 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RegularContainer.h"
#include "ShapeOptions.h"
#include "Shape.h"
#include "ClientAnchor.h"
namespace DocFileFormat
{
class ShapeContainer: public RegularContainer
{
public:
static const unsigned short TYPE_CODE_0xF004 = 0xF004;
int m_nIndex;
unsigned int m_nShapeType;
bool m_bBackground;
bool m_bOLE;
bool m_bOleInPicture;
bool m_bSkip;
ShapeContainer():
RegularContainer(), m_nIndex(0), m_nShapeType(0), m_bSkip(false), m_bBackground(false), m_bOLE(false), m_bOleInPicture(false)
{
}
ShapeContainer( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ) :
m_bSkip(false), m_bBackground(false), m_bOLE(false), m_nIndex(0), m_nShapeType(0), RegularContainer( _reader, size, typeCode, version, instance )
{
for ( size_t i = 0; i < this->Children.size(); ++i )
{
ClientAnchor *clientAnchor = dynamic_cast<ClientAnchor*>( this->Children[i] );
//if ( (clientAnchor) && (clientAnchor->value == 0x80000000))
// m_bSkip = true; //О реорганизации территориальных органов ПФР с 01.11.2018.doc
Shape* sh = dynamic_cast<Shape*>( this->Children[i] );
if (sh)
{
m_bBackground = sh->fBackground;
m_bOLE = sh->fOleShape;
if (sh->shapeType)
{
m_nShapeType = sh->shapeType->GetTypeCode();
}
else
{
for ( size_t j = 0; j < this->Children.size(); ++j)
{
ShapeOptions* sh_options = dynamic_cast<ShapeOptions*>( this->Children[j] );
if (sh_options)
{
if (sh_options->OptionsByID.end() != sh_options->OptionsByID.find(ODRAW::pib))
{
m_nShapeType = msosptPictureFrame;
}
}
}
}
}
}
}
virtual ~ShapeContainer()
{
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
}
ODRAW::OfficeArtFOPTEPtr ExtractOption(const ODRAW::ePropertyId & prop) const
{
ODRAW::OfficeArtFOPTEPtr ret;
for ( size_t i = 0; i < this->Children.size(); ++i )
{
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( this->Children[i] );
if ( opt == NULL ) continue;
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr>::iterator pFind = opt->OptionsByID.find(prop);
if (pFind != opt->OptionsByID.end())
{
ret = pFind->second;
}
}
return ret;
}
std::vector<ODRAW::OfficeArtFOPTEPtr> ExtractOptions() const
{
std::vector<ODRAW::OfficeArtFOPTEPtr> ret;
//build the list of all option entries of this shape
for ( size_t i = 0; i < this->Children.size(); ++i )
{
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( this->Children[i] );
if ( opt == NULL ) continue;
for ( size_t i = 0; i < opt->Options.size(); i++)
{
ret.push_back( opt->Options[i]);
}
}
return ret;
}
};
}

View File

@ -1,154 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
#include "../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtRGFOPTE.h"
namespace DocFileFormat
{
//!!!TODO: Реальные значения не соответствуют значениям из спецификации!!!
typedef enum _PositionHorizontal
{
//msophAbs = 0x1,
msophLeft = 0x1,
msophCenter = 0x2,
msophRight = 0x3,
msophInside = 0x4,
msophOutside = 0x5
} PositionHorizontal;
typedef enum _PositionHorizontalRelative
{
msoprhMargin,
msoprhPage,
msoprhText,
msoprhChar
} PositionHorizontalRelative;
//!!!TODO: Реальные значения не соответствуют значениям из спецификации!!!
typedef enum _PositionVertical
{
//msopvAbs = 0x1,
msopvTop = 0x1,
msopvCenter = 0x2,
msopvBottom = 0x3,
msopvInside = 0x4,
msopvOutside = 0x5
} PositionVertical;
typedef enum _PositionVerticalRelative
{
msoprvMargin,
msoprvPage,
msoprvText,
msoprvLine
} PositionVerticalRelative;
typedef enum _LineEnd
{
NoEnd = 0,
ArrowEnd,
ArrowStealthEnd,
ArrowDiamondEnd,
ArrowOvalEnd,
ArrowOpenEnd,
ArrowChevronEnd,
ArrowDoubleChevronEnd
} LineEnd;
typedef enum _LineDashing
{
LineDashing_Solid = 0,
LineDashing_DashSys,
LineDashing_DotSys,
LineDashing_DashDotSys,
LineDashing_DashDotDotSys,
LineDashing_DotGEL,
LineDashing_DashGEL,
LineDashing_LongDashGEL,
LineDashing_DashDotGEL,
LineDashing_LongDashDotGEL,
LineDashing_LongDashDotDotGEL
} LineDashing;
class ShapeOptions: public Record
{
public:
static const unsigned short TYPE_CODE_0xF00B = 0xF00B;
static const unsigned short TYPE_CODE_0xF121 = 0xF121;
static const unsigned short TYPE_CODE_0xF122 = 0xF122;
std::vector<ODRAW::OfficeArtFOPTEPtr> Options;
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr> OptionsByID;
ShapeOptions() : Record()
{
}
virtual ~ShapeOptions()
{
}
ShapeOptions (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance)
{
long pos = Reader->GetPosition();
// parse the flags and the simple values
for (unsigned int i = 0; i < instance; ++i)
{
ODRAW::OfficeArtFOPTEPtr fopte = ODRAW::OfficeArtFOPTE::load_and_create(Reader);
if (!fopte)continue;
Options.push_back(fopte);
}
// complex load
for(size_t i = 0; i < Options.size(); ++i)
{
if(Options[i]->fComplex && Options[i]->op > 0)
{
Options[i]->ReadComplexData(Reader);
}
OptionsByID.insert(std::make_pair((ODRAW::ePropertyId)Options[i]->opid, Options[i]));
}
Reader->Seek(( pos + size ), 0/*STREAM_SEEK_SET*/);
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return new ShapeOptions( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,353 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../IVisitable.h"
#include "../../Common/XmlTools.h"
#include <boost/shared_ptr.hpp>
namespace ODRAW
{
class OfficeArtFOPTE;
typedef boost::shared_ptr<OfficeArtFOPTE> OfficeArtFOPTEPtr;
}
namespace DocFileFormat
{
enum MSOSPT
{
msosptNotPrimitive = 0x00000000, // ( - ) A shape that has no preset geometry, and is drawn with custom geometry instead. For example, freeform shapes drawn by users fall into this category.
msosptRectangle = 0x00000001, // A rectangle shape.
msosptRoundRectangle = 0x00000002, // A rectangle shape with rounded corners.
msosptEllipse = 0x00000003, // An ellipse shape.
msosptDiamond = 0x00000004, // A diamond shape.
msosptIsocelesTriangle = 0x00000005, // An isosceles triangle shape.
msosptRightTriangle = 0x00000006, // A right triangle shape.
msosptParallelogram = 0x00000007, // A parallelogram shape.
msosptTrapezoid = 0x00000008, // A trapezoid shape.
msosptHexagon = 0x00000009, // A hexagon shape.
msosptOctagon = 0x0000000A, // An octagon shape.
msosptPlus = 0x0000000B, // A plus shape.
msosptStar = 0x0000000C, // A star shape.
msosptArrow = 0x0000000D, // An arrow shape.
msosptThickArrow = 0x0000000E, // ( - ) This value SHOULD NOT be used.
msosptHomePlate = 0x0000000F, // An irregular pentagon shape.
msosptCube = 0x00000010, // A cube shape.
msosptBalloon = 0x00000011, // ( - ) A speech balloon shape.
msosptSeal = 0x00000012, // ( - ) A seal shape.
msosptArc = 0x00000013, // A curved arc shape.
msosptLine = 0x00000014, // A line shape.
msosptPlaque = 0x00000015, // A plaque shape.
msosptCan = 0x00000016, // A cylinder shape.
msosptDonut = 0x00000017, // A donut shape.
msosptTextSimple = 0x00000018, // A simple text shape. Text SHOULD be drawn on a straight line.
msosptTextOctagon = 0x00000019, // An octagonal text shape. Text SHOULD be drawn within an octagonal boundary.
msosptTextHexagon = 0x0000001A, // A hexagonal text shape. Text SHOULD be drawn within a hexagonal boundary.
msosptTextCurve = 0x0000001B, // A curved text shape. Text SHOULD be drawn on a curved line.
msosptTextWave = 0x0000001C, // A wavy text shape. Text SHOULD be drawn on a wavy line.
msosptTextRing = 0x0000001D, // A ringed text shape. Text SHOULD be drawn within a semicircular arc.
msosptTextOnCurve = 0x0000001E, // A text shape that draws text on a curve. Text SHOULD be drawn on a curved line.
msosptTextOnRing = 0x0000001F, // A text shape that draws text on a ring. Text SHOULD be drawn on a semicircular arc.
msosptStraightConnector1 = 0x00000020, // A straight connector shape.
msosptBentConnector2 = 0x00000021, // A bent connector shape.
msosptBentConnector3 = 0x00000022, // A bent connector shape.
msosptBentConnector4 = 0x00000023, // A bent connector shape.
msosptBentConnector5 = 0x00000024, // A bent connector shape.
msosptCurvedConnector2 = 0x00000025, // A curved connector shape.
msosptCurvedConnector3 = 0x00000026, // A curved connector shape.
msosptCurvedConnector4 = 0x00000027, // A curved connector shape.
msosptCurvedConnector5 = 0x00000028, // A curved connector shape.
msosptCallout1 = 0x00000029, // A callout shape.
msosptCallout2 = 0x0000002A, // A callout shape.
msosptCallout3 = 0x0000002B, // A callout shape.
msosptAccentCallout1 = 0x0000002C, // A callout shape with side accent.
msosptAccentCallout2 = 0x0000002D, // A callout shape with side accent.
msosptAccentCallout3 = 0x0000002E, // A callout shape with side accent.
msosptBorderCallout1 = 0x0000002F, // A callout shape with border.
msosptBorderCallout2 = 0x00000030, // A callout shape with border.
msosptBorderCallout3 = 0x00000031, // A callout shape with border.
msosptAccentBorderCallout1 = 0x00000032, // A callout shape with border and side accent.
msosptAccentBorderCallout2 = 0x00000033, // A callout shape with border and side accent.
msosptAccentBorderCallout3 = 0x00000034, // A callout shape with border and side accent.
msosptRibbon = 0x00000035, // A ribbon shape.
msosptRibbon2 = 0x00000036, // A ribbon shape.
msosptChevron = 0x00000037, // A chevron shape.
msosptPentagon = 0x00000038, // A regular pentagon shape.
msosptNoSmoking = 0x00000039, // A circle-slash shape.
msosptSeal8 = 0x0000003A, // A seal shape with eight points.
msosptSeal16 = 0x0000003B, // A seal shape with sixteen points.
msosptSeal32 = 0x0000003C, // A seal shape with thirty-two points.
msosptWedgeRectCallout = 0x0000003D, // A rectangular callout shape.
msosptWedgeRRectCallout = 0x0000003E, // A rectangular callout shape with rounded corners.
msosptWedgeEllipseCallout = 0x0000003F, // An elliptical callout shape.
msosptWave = 0x00000040, // A wave shape.
msosptFoldedCorner = 0x00000041, // A rectangular shape with a folded corner.
msosptLeftArrow = 0x00000042, // An arrow shape pointing left.
msosptDownArrow = 0x00000043, // An arrow shape pointing down.
msosptUpArrow = 0x00000044, // An arrow shape pointing up.
msosptLeftRightArrow = 0x00000045, // An arrow shape pointing left and right.
msosptUpDownArrow = 0x00000046, // An arrow shape pointing down and up.
msosptIrregularSeal1 = 0x00000047, // An irregular seal shape.
msosptIrregularSeal2 = 0x00000048, // An irregular seal shape.
msosptLightningBolt = 0x00000049, // A lightning bolt shape.
msosptHeart = 0x0000004A, // A heart shape.
msosptPictureFrame = 0x0000004B, // A frame shape.
msosptQuadArrow = 0x0000004C, // A shape with arrows pointing down, left, right, and up.
msosptLeftArrowCallout = 0x0000004D, // A callout shape with an arrow pointing left.
msosptRightArrowCallout = 0x0000004E, // A callout shape with an arrow pointing right.
msosptUpArrowCallout = 0x0000004F, // A callout shape with an arrow pointing up.
msosptDownArrowCallout = 0x00000050, // A callout shape with an arrow pointing down.
msosptLeftRightArrowCallout = 0x00000051, // A callout shape with arrows pointing left and right.
msosptUpDownArrowCallout = 0x00000052, // A callout shape with arrows pointing down and up.
msosptQuadArrowCallout = 0x00000053, // A callout shape with arrows pointing down, left, right, and up.
msosptBevel = 0x00000054, // A beveled rectangle shape.
msosptLeftBracket = 0x00000055, // An opening bracket shape.
msosptRightBracket = 0x00000056, // A closing bracket shape.
msosptLeftBrace = 0x00000057, // An opening brace shape.
msosptRightBrace = 0x00000058, // A closing brace shape.
msosptLeftUpArrow = 0x00000059, // An arrow shape pointing left and up.
msosptBentUpArrow = 0x0000005A, // A bent arrow shape with its base on the left, pointing up.
msosptBentArrow = 0x0000005B, // A curved arrow shape with its base on the bottom, pointing right.
msosptSeal24 = 0x0000005C, // A seal shape with twenty-four points.
msosptStripedRightArrow = 0x0000005D, // A striped arrow shape pointing right.
msosptNotchedRightArrow = 0x0000005E, // A notched arrow shape pointing right.
msosptBlockArc = 0x0000005F, // A semicircular arc shape.
msosptSmileyFace = 0x00000060, // A smiling face shape.
msosptVerticalScroll = 0x00000061, // A scroll shape opened vertically.
msosptHorizontalScroll = 0x00000062, // A scroll shape opened horizontally.
msosptCircularArrow = 0x00000063, // A semicircular arrow shape.
msosptNotchedCircularArrow = 0x00000064, // This value SHOULD NOT be used.
msosptUturnArrow = 0x00000065, // A semicircular arrow shape with a straight tail.
msosptCurvedRightArrow = 0x00000066, // An arrow shape that curves to the right.
msosptCurvedLeftArrow = 0x00000067, // An arrow shape that curves to the left.
msosptCurvedUpArrow = 0x00000068, // An arrow shape that curves upward.
msosptCurvedDownArrow = 0x00000069, // An arrow shape that curves downward.
msosptCloudCallout = 0x0000006A, // A cloud-shaped callout.
msosptEllipseRibbon = 0x0000006B, // An elliptical ribbon shape.
msosptEllipseRibbon2 = 0x0000006C, // An elliptical ribbon shape.
msosptFlowChartProcess = 0x0000006D, // A process shape for flowcharts.
msosptFlowChartDecision = 0x0000006E, // A decision shape for flowcharts.
msosptFlowChartInputOutput = 0x0000006F, // An input-output shape for flowcharts.
msosptFlowChartPredefinedProcess = 0x00000070, // A predefined process shape for flowcharts.
msosptFlowChartInternalStorage = 0x00000071, // An internal storage shape for flowcharts.
msosptFlowChartDocument = 0x00000072, // A document shape for flowcharts.
msosptFlowChartMultidocument = 0x00000073, // A multidocument shape for flowcharts.
msosptFlowChartTerminator = 0x00000074, // A terminator shape for flowcharts.
msosptFlowChartPreparation = 0x00000075, // A preparation shape for flowcharts.
msosptFlowChartManualInput = 0x00000076, // A manual input shape for flowcharts.
msosptFlowChartManualOperation = 0x00000077, // A manual operation shape for flowcharts.
msosptFlowChartConnector = 0x00000078, // A connector shape for flowcharts.
msosptFlowChartPunchedCard = 0x00000079, // A punched card shape for flowcharts.
msosptFlowChartPunchedTape = 0x0000007A, // A punched tape shape for flowcharts.
msosptFlowChartSummingJunction = 0x0000007B, // A summing junction shape for flowcharts.
msosptFlowChartOr = 0x0000007C, // An OR shape for flowcharts.
msosptFlowChartCollate = 0x0000007D, // A collation shape for flowcharts.
msosptFlowChartSort = 0x0000007E, // A sorting shape for flowcharts.
msosptFlowChartExtract = 0x0000007F, // An extraction shape for flowcharts.
msosptFlowChartMerge = 0x00000080, // A merging shape for flowcharts.
msosptFlowChartOfflineStorage = 0x00000081, // An offline storage shape for flowcharts.
msosptFlowChartOnlineStorage = 0x00000082, // An online storage shape for flowcharts.
msosptFlowChartMagneticTape = 0x00000083, // A magnetic tape shape for flowcharts.
msosptFlowChartMagneticDisk = 0x00000084, // A magnetic disk shape for flowcharts.
msosptFlowChartMagneticDrum = 0x00000085, // A magnetic drum shape for flowcharts.
msosptFlowChartDisplay = 0x00000086, // A display shape for flowcharts.
msosptFlowChartDelay = 0x00000087, // A delay shape for flowcharts.
msosptTextPlainText = 0x00000088, // A plain text shape.
msosptTextStop = 0x00000089, // An octagonal text shape.
msosptTextTriangle = 0x0000008A, // A triangular text shape pointing upwards.
msosptTextTriangleInverted = 0x0000008B, // A triangular text shape pointing downwards.
msosptTextChevron = 0x0000008C, // A chevron text shape pointing upwards.
msosptTextChevronInverted = 0x0000008D, // A chevron text shape pointing downwards.
msosptTextRingInside = 0x0000008E, // A circular text shape, as if reading an inscription on the inside of a ring.
msosptTextRingOutside = 0x0000008F, // A circular text shape, as if reading an inscription on the outside of a ring.
msosptTextArchUpCurve = 0x00000090, // An upward arching curved text shape.
msosptTextArchDownCurve = 0x00000091, // A downward arching curved text shape.
msosptTextCircleCurve = 0x00000092, // A circular text shape.
msosptTextButtonCurve = 0x00000093, // A text shape that resembles a button.
msosptTextArchUpPour = 0x00000094, // An upward arching text shape.
msosptTextArchDownPour = 0x00000095, // A downward arching text shape.
msosptTextCirclePour = 0x00000096, // A circular text shape.
msosptTextButtonPour = 0x00000097, // A text shape that resembles a button.
msosptTextCurveUp = 0x00000098, // An upward curving text shape.
msosptTextCurveDown = 0x00000099, // A downward curving text shape.
msosptTextCascadeUp = 0x0000009A, // A cascading text shape pointed upwards.
msosptTextCascadeDown = 0x0000009B, // A cascading text shape pointed downwards.
msosptTextWave1 = 0x0000009C, // A wavy text shape.
msosptTextWave2 = 0x0000009D, // A wavy text shape.
msosptTextWave3 = 0x0000009E, // A wavy text shape.
msosptTextWave4 = 0x0000009F, // A wavy text shape.
msosptTextInflate = 0x000000A0, // A text shape that expands vertically in the middle.
msosptTextDeflate = 0x000000A1, // A text shape that shrinks vertically in the middle.
msosptTextInflateBottom = 0x000000A2, // A text shape that expands downward in the middle.
msosptTextDeflateBottom = 0x000000A3, // A text shape that shrinks upwards in the middle.
msosptTextInflateTop = 0x000000A4, // A text shape that expands upward in the middle.
msosptTextDeflateTop = 0x000000A5, // A text shape that shrinks downward in the middle.
msosptTextDeflateInflate = 0x000000A6, // A text shape where lower lines expand upward. Upper lines shrink to compensate.
msosptTextDeflateInflateDeflate = 0x000000A7, // A text shape where lines in the center expand vertically. Upper and lower lines shrink to compensate.
msosptTextFadeRight = 0x000000A8, // A text shape that shrinks vertically on the right side.
msosptTextFadeLeft = 0x000000A9, // A text shape that shrinks vertically on the left side.
msosptTextFadeUp = 0x000000AA, // A text shape that shrinks horizontally on top.
msosptTextFadeDown = 0x000000AB, // A text shape that shrinks horizontally on bottom.
msosptTextSlantUp = 0x000000AC, // An upward slanted text shape.
msosptTextSlantDown = 0x000000AD, // A downward slanted text shape.
msosptTextCanUp = 0x000000AE, // A text shape that is curved upwards as if being read on the side of a can.
msosptTextCanDown = 0x000000AF, // A text shape that is curved downwards as if being read on the side of a can.
msosptFlowChartAlternateProcess = 0x000000B0, // An alternate process shape for flowcharts.
msosptFlowChartOffpageConnector = 0x000000B1, // An off page connector shape for flowcharts.
msosptCallout90 = 0x000000B2, // A callout shape.
msosptAccentCallout90 = 0x000000B3, // A callout shape.
msosptBorderCallout90 = 0x000000B4, // A callout shape with border.
msosptAccentBorderCallout90 = 0x000000B5, // A callout shape with border.
msosptLeftRightUpArrow = 0x000000B6, // A shape with arrows pointing left, right, and up.
msosptSun = 0x000000B7, // A sun shape.
msosptMoon = 0x000000B8, // A moon shape.
msosptBracketPair = 0x000000B9, // A shape enclosed in brackets.
msosptBracePair = 0x000000BA, // A shape enclosed in braces.
msosptSeal4 = 0x000000BB, // A seal shape with four points.
msosptDoubleWave = 0x000000BC, // A double wave shape.
msosptActionButtonBlank = 0x000000BD, // A blank button shape.
msosptActionButtonHome = 0x000000BE, // A home button shape.
msosptActionButtonHelp = 0x000000BF, // A help button shape.
msosptActionButtonInformation = 0x000000C0, // An information button shape.
msosptActionButtonForwardNext = 0x000000C1, // A forward or next button shape.
msosptActionButtonBackPrevious = 0x000000C2, // A back or previous button shape.
msosptActionButtonEnd = 0x000000C3, // An end button shape.
msosptActionButtonBeginning = 0x000000C4, // A beginning button shape.
msosptActionButtonReturn = 0x000000C5, // A return button shape.
msosptActionButtonDocument = 0x000000C6, // A document button shape.
msosptActionButtonSound = 0x000000C7, // A sound button shape.
msosptActionButtonMovie = 0x000000C8, // A movie button shape.
msosptHostControl = 0x000000C9, // This value SHOULD NOT be used.
msosptTextBox = 0x000000CA // A text box shape.
};
typedef enum _JoinStyle
{
miter,
round,
bevel
} JoinStyle;
static const wchar_t JoinStyleMap[3][6] =
{
L"miter" ,
L"round" ,
L"bevel"
};
class Handle
{
public:
Handle()
{
}
Handle(std::wstring pos, std::wstring xRange)
{
position = pos;
xrange = xRange;
}
std::wstring position;
std::wstring xrange;
std::wstring switchHandle;
std::wstring yrange;
std::wstring polar;
std::wstring radiusrange;
};
class ShapeType: public IVisitable
{
public:
ShapeType (unsigned int typeCode) : Filled(true), Stroked(true), TypeCode(typeCode), Joins(miter), ShapeConcentricFill(false)
{
}
virtual ~ShapeType()
{
}
unsigned int GetTypeCode() const
{
return TypeCode;
}
/// This string describes a sequence of commands that define the shapes path.
/// This string describes both the pSegmentInfo array and pVertices array in the shapes geometry properties.
std::wstring Path;
/// This specifies a list of formulas whose calculated values are referenced by other properties.
/// Each formula is listed on a separate line. Formulas are ordered, with the first formula having index 0.
/// This section can be omitted if the shape doesnt need any guides.
std::list<std::wstring> Formulas;
/// Specifies a comma-delimited list of parameters, or adjustment values,
/// used to define values for a parameterized formula.
/// These values represent the location of an adjust handle and may be
/// referenced by the geometry of an adjust handle or as a parameter guide function.
std::wstring AdjustmentValues;
/// These values specify the location of connection points on the shapes path.
/// The connection points are defined by a string consisting of pairs of x and y values, delimited by commas.
std::wstring ConnectorLocations;
/// This section specifies the properties of each adjust handle on the shape.
/// One adjust handle is specified per line.
/// The properties for each handle correspond to values of the ADJH structure
/// contained in the pAdjustHandles array in the shapes geometry properties.
std::list<Handle> Handles;
/// Specifies one or more text boxes inscribed inside the shape.
/// A textbox is defined by one or more sets of numbers specifying (in order) the left, top, right, and bottom points of the rectangle.
/// Multiple sets are delimited by a semicolon.
/// If omitted, the text box is the same as the geometrys bounding box.
std::wstring TextBoxRectangle;
bool ShapeConcentricFill;
/// Specifies what join style the shape has.
/// Since there is no UI for changing the join style,
/// all shapes of this type will always have the specified join style.
JoinStyle Joins;
/// Specifies the (x,y) coordinates of the limo stretch point.
/// Some shapes that have portions that should be constrained to a fixed aspect ratio, are designed with limo-stretch to keep those portions at the fixed aspect ratio.
std::wstring Limo;
/// Associated with each connection site, there is a direction which specifies at what angle elbow and curved connectors should attach to it
std::wstring ConnectorAngles;
/// Specifies if a shape of this type is filled by default
bool Filled;
/// Specifies if a shape of this type is stroked by default
bool Stroked;
/// Speicfies the locked properties of teh shape.
/// By default nothing is locked.
ODRAW::OfficeArtFOPTEPtr Lock;
///
std::wstring Textpath;
protected:
unsigned int TypeCode;
};
}

View File

@ -1,69 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class BevelType : public ShapeType
{
public:
BevelType () : ShapeType(msosptBevel)
{
ShapeConcentricFill = true;
Joins = miter;
Path = (L"m,l,21600r21600,l21600,xem@0@0nfl@0@2@1@2@1@0xem,nfl@0@0em,21600nfl@0@2em21600,21600nfl@1@2em21600,nfl@1@0e");
Formulas.push_back((L"val #0"));
Formulas.push_back((L"sum width 0 #0"));
Formulas.push_back((L"sum height 0 #0"));
Formulas.push_back((L"prod width 1 2"));
Formulas.push_back((L"prod height 1 2"));
Formulas.push_back((L"prod #0 1 2"));
Formulas.push_back((L"prod #0 3 2"));
Formulas.push_back((L"sum @1 @5 0"));
Formulas.push_back((L"sum @2 @5 0"));
AdjustmentValues = (L"2700");
ConnectorLocations = (L"0,@4;@0,@4;@3,21600;@3,@2;21600,@4;@1,@4;@3,0;@3,@0");
TextBoxRectangle = (L"@0,@0,@1,@2");
Handle one;
one.position = (L"#0,topLeft");
one.xrange = (L"0,10800");
Handles.push_back (one);
Limo = (L"10800,10800");
}
};
}

View File

@ -1,102 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class BlockArcType : public ShapeType
{
public:
BlockArcType () : ShapeType(msosptBlockArc)
{
ShapeConcentricFill = false;
Joins = miter;
Path = (L"al10800,10800@0@0@2@14,10800,10800,10800,10800@3@15xe");
Formulas.push_back((L"val #1"));
Formulas.push_back((L"val #0"));
Formulas.push_back((L"sum 0 0 #0"));
Formulas.push_back((L"sumangle #0 0 180"));
Formulas.push_back((L"sumangle #0 0 90"));
Formulas.push_back((L"prod @4 2 1"));
Formulas.push_back((L"sumangle #0 90 0"));
Formulas.push_back((L"prod @6 2 1"));
Formulas.push_back((L"abs #0"));
Formulas.push_back((L"sumangle @8 0 90"));
Formulas.push_back((L"if @9 @7 @5"));
Formulas.push_back((L"sumangle @10 0 360"));
Formulas.push_back((L"if @10 @11 @10"));
Formulas.push_back((L"sumangle @12 0 360"));
Formulas.push_back((L"if @12 @13 @12"));
Formulas.push_back((L"sum 0 0 @14"));
Formulas.push_back((L"val 10800"));
Formulas.push_back((L"sum 10800 0 #1"));
Formulas.push_back((L"prod #1 1 2"));
Formulas.push_back((L"sum @18 5400 0"));
Formulas.push_back((L"cos @19 #0"));
Formulas.push_back((L"sin @19 #0"));
Formulas.push_back((L"sum @20 10800 0"));
Formulas.push_back((L"sum @21 10800 0"));
Formulas.push_back((L"sum 10800 0 @20"));
Formulas.push_back((L"sum #1 10800 0"));
Formulas.push_back((L"if @9 @17 @25"));
Formulas.push_back((L"if @9 0 21600"));
Formulas.push_back((L"cos 10800 #0"));
Formulas.push_back((L"sin 10800 #0"));
Formulas.push_back((L"sin #1 #0"));
Formulas.push_back((L"sum @28 10800 0"));
Formulas.push_back((L"sum @29 10800 0"));
Formulas.push_back((L"sum @30 10800 0"));
Formulas.push_back((L"if @4 0 @31"));
Formulas.push_back((L"if #0 @34 0"));
Formulas.push_back((L"if @6 @35 @31"));
Formulas.push_back((L"sum 21600 0 @36"));
Formulas.push_back((L"if @4 0 @33"));
Formulas.push_back((L"if #0 @38 @32"));
Formulas.push_back((L"if @6 @39 0"));
Formulas.push_back((L"if @4 @32 21600"));
Formulas.push_back((L"if @6 @41 @33"));
AdjustmentValues = (L"11796480,5400");
ConnectorLocations = (L"10800,@27;@22,@23;10800,@26;@24,@23");
TextBoxRectangle = (L"@36,@40,@37,@42");
Handle one;
one.position = (L"#1,#0");
one.polar = (L"10800,10800");
one.radiusrange = (L"0,10800");
Handles.push_back (one);
}
};
}

View File

@ -1,72 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class CanType: public ShapeType
{
public:
CanType():
ShapeType(msosptCan)
{
this->ShapeConcentricFill = true;
this->Joins = round;
this->Path = L"m10800,qx0@1l0@2qy10800,21600,21600@2l21600@1qy10800,xem0@1qy10800@0,21600@1nfe";
this->Formulas.push_back( L"val #0" );
this->Formulas.push_back( L"prod #0 1 2" );
this->Formulas.push_back( L"sum height 0 @1" );
this->AdjustmentValues = L"5400";
this->ConnectorLocations = L"10800,@0;10800,0;0,10800;10800,21600;21600,10800";
this->ConnectorAngles = L"270,270,180,90,0";
this->TextBoxRectangle = L"0,@0,21600,@2";
Handle HandleOne;
HandleOne.position = L"center,#0";
HandleOne.yrange = L"0,10800";
this->Handles.push_back( HandleOne );
}
virtual ~CanType()
{
}
};
}

View File

@ -1,79 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class CubeType: public ShapeType
{
public:
CubeType():
ShapeType(msosptCube)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l0@0,,21600@1,21600,21600@2,21600,xem0@0nfl@1@0,21600,em@1@0nfl@1,21600e";
this->Formulas.push_back( L"val #0");
this->Formulas.push_back( L"sum width 0 #0");
this->Formulas.push_back( L"sum height 0 #0");
this->Formulas.push_back( L"mid height #0");
this->Formulas.push_back( L"prod @1 1 2");
this->Formulas.push_back( L"prod @2 1 2");
this->Formulas.push_back( L"mid width #0");
this->AdjustmentValues = L"5400";
this->ConnectorLocations = L"@6,0;@4,@0;0,@3;@4,21600;@1,@3;21600,@5";
this->ConnectorAngles = L"270,270,180,90,0,0";
this->TextBoxRectangle = L"0,@0,@1,21600";
Handle HandleOne;
HandleOne.position = L"topLeft,#0";
HandleOne.switchHandle = L"true";
HandleOne.yrange = L"0,21600";
this->Handles.push_back( HandleOne );
this->Limo = L"10800,10800";
}
virtual ~CubeType()
{
}
};
}

View File

@ -1,59 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class DiamondType: public ShapeType
{
public:
DiamondType():
ShapeType(msosptDiamond)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m10800,l,10800,10800,21600,21600,10800xe";
this->ConnectorLocations = L"Rectangle";
this->TextBoxRectangle = L"5400,5400,16200,16200";
}
virtual ~DiamondType()
{
}
};
}

View File

@ -1,64 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class DonutType: public ShapeType
{
public:
DonutType() : ShapeType(msosptDonut)
{
ShapeConcentricFill = false;
Joins = round;
Path = L"m,10800qy10800,,21600,10800,10800,21600,,10800xm@0,10800qy10800@2@1,10800,10800@0@0,10800xe";
Formulas.push_back(L"val #0" ) ;
Formulas.push_back(L"sum width 0 #0" ) ;
Formulas.push_back(L"sum height 0 #0" );
Formulas.push_back(L"prod @0 2929 10000" );
Formulas.push_back(L"sum width 0 @3" ) ;
Formulas.push_back(L"sum height 0 @3" );
AdjustmentValues = L"5400";
ConnectorLocations = L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163";
TextBoxRectangle = L"3163,3163,18437,18437";
Handle HandleOne;
HandleOne.position = L"#0,center";
HandleOne.xrange = L"0,10800";
Handles.push_back(HandleOne);
}
};
}

View File

@ -1,53 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class HeartType : public ShapeType
{
public:
HeartType () : ShapeType(msosptHeart)
{
ShapeConcentricFill = true;
Joins = miter;
Path = (L"m10860,2187c10451,1746,9529,1018,9015,730,7865,152,6685,,5415,,4175,152,2995,575,1967,1305,1150,2187,575,3222,242,4220,,5410,242,6560,575,7597l10860,21600,20995,7597v485,-1037,605,-2187,485,-3377c21115,3222,20420,2187,19632,1305,18575,575,17425,152,16275,,15005,,13735,152,12705,730v-529,288,-1451,1016,-1845,1457xe" );
AdjustmentValues = (L"21600" );
ConnectorLocations = (L"10860,2187;2928,10800;10860,21600;18672,10800" );
ConnectorAngles = (L"270,180,90,0" );
TextBoxRectangle = (L"5037,2277,16557,13677" );
}
};
}

View File

@ -1,73 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class HexagonType: public ShapeType
{
public:
HexagonType():
ShapeType(msosptHexagon)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l,10800@0,21600@1,21600,21600,10800@1,xe";
this->Formulas.push_back( L"val #0");
this->Formulas.push_back( L"sum width 0 #0");
this->Formulas.push_back( L"sum height 0 #0");
this->Formulas.push_back( L"prod @0 2929 10000");
this->Formulas.push_back( L"sum width 0 @3");
this->Formulas.push_back( L"sum height 0 @3");
this->AdjustmentValues = L"5400";
this->ConnectorLocations = L"Rectangle";
this->TextBoxRectangle = L"1800,1800,19800,19800;3600,3600,18000,18000;6300,6300,15300,15300";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.xrange = L"0,10800";
Handles.push_back( HandleOne );
}
virtual ~HexagonType()
{
}
};
}

View File

@ -1,69 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class IsoscelesTriangleType: public ShapeType
{
public:
IsoscelesTriangleType():
ShapeType(msosptIsocelesTriangle)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l,21600r21600,xe" ;
this->Formulas.push_back( L"val #0" );
this->Formulas.push_back( L"prod #0 1 2" );
this->Formulas.push_back( L"sum @1 10800 0");
this->AdjustmentValues = L"10800" ;
this->ConnectorLocations = L"@0,0;@1,10800;0,21600;10800,21600;21600,21600;@2,10800";
this->TextBoxRectangle = L"0,10800,10800,18000;5400,10800,16200,18000;10800,10800,21600,18000;0,7200,7200,21600;7200,7200,14400,21600;14400,7200,21600,21600";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.xrange = L"0,21600";
this->Handles.push_back( HandleOne );
}
virtual ~IsoscelesTriangleType()
{
}
};
}

View File

@ -1,53 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class LightningBoltType : public ShapeType
{
public:
LightningBoltType () : ShapeType(msosptLightningBolt)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m8472,l,3890,7602,8382,5022,9705r7200,4192l10012,14915r11588,6685l14767,12877r1810,-870l11050,6797r1810,-717xe";
//AdjustmentValues = L"2700" );
ConnectorLocations = L"8472,0;0,3890;5022,9705;10012,14915;21600,21600;16577,12007;12860,6080";
ConnectorAngles = L"270,270,180,180,90,0,0";
TextBoxRectangle = L"8757,7437,13917,14277";
}
};
}

View File

@ -1,50 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class LineType: public ShapeType
{
public:
LineType():
ShapeType(msosptLine)
{
}
virtual ~LineType()
{
}
};
}

View File

@ -1,76 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class MoonType : public ShapeType
{
public:
MoonType () : ShapeType(msosptMoon)
{
ShapeConcentricFill = true;
Joins = miter;
Path = (L"m21600,qx,10800,21600,21600wa@0@10@6@11,21600,21600,21600,xe");
Formulas.push_back((L"val #0"));
Formulas.push_back((L"sum 21600 0 #0"));
Formulas.push_back((L"prod #0 #0 @1"));
Formulas.push_back((L"prod 21600 21600 @1"));
Formulas.push_back((L"prod @3 2 1"));
Formulas.push_back((L"sum @4 0 @2"));
Formulas.push_back((L"sum @5 0 #0"));
Formulas.push_back((L"prod @5 1 2"));
Formulas.push_back((L"sum @7 0 #0"));
Formulas.push_back((L"prod @8 1 2"));
Formulas.push_back((L"sum 10800 0 @9"));
Formulas.push_back((L"sum @9 10800 0"));
Formulas.push_back((L"prod #0 9598 32768"));
Formulas.push_back((L"sum 21600 0 @12"));
Formulas.push_back((L"ellipse @13 21600 10800"));
Formulas.push_back((L"sum 10800 0 @14"));
Formulas.push_back((L"sum @14 10800 0"));
AdjustmentValues = (L"10800");
ConnectorLocations = (L"21600,0;0,10800;21600,21600;@0,10800");
ConnectorAngles = (L"270,180,90,0");
TextBoxRectangle = (L"@12,@15,@0,@16");
Handle one;
one.position = (L"#0,center");
one.xrange = (L"0,18900");
Handles.push_back (one);
}
};
}

View File

@ -1,75 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class NoSmokingType : public ShapeType
{
public:
NoSmokingType () : ShapeType(msosptNoSmoking)
{
ShapeConcentricFill = true;
Joins = miter;
Path = (L"m,10800qy10800,,21600,10800,10800,21600,,10800xar@0@0@16@16@12@14@15@13xar@0@0@16@16@13@15@14@12xe");
Formulas.push_back((L"val #0" ));
Formulas.push_back((L"prod @0 2 1" ));
Formulas.push_back((L"sum 21600 0 @1" ));
Formulas.push_back((L"prod @2 @2 1" ));
Formulas.push_back((L"prod @0 @0 1" ));
Formulas.push_back((L"sum @3 0 @4" ));
Formulas.push_back((L"prod @5 1 8" ));
Formulas.push_back((L"sqrt @6" ));
Formulas.push_back((L"prod @4 1 8" ));
Formulas.push_back((L"sqrt @8" ));
Formulas.push_back((L"sum @7 @9 0" ));
Formulas.push_back((L"sum @7 0 @9" ));
Formulas.push_back((L"sum @10 10800 0" ));
Formulas.push_back((L"sum 10800 0 @10" ));
Formulas.push_back((L"sum @11 10800 0" ));
Formulas.push_back((L"sum 10800 0 @11" ));
Formulas.push_back((L"sum 21600 0 @0" ));
AdjustmentValues = (L"2700" );
ConnectorLocations = (L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163" );
TextBoxRectangle = (L"3163,3163,18437,18437" );
Handle one;
one.position = L"#0,center";
one.xrange = L"0,7200";
Handles.push_back (one);
}
};
}

View File

@ -1,80 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class OctagonType: public ShapeType
{
public:
OctagonType():
ShapeType(msosptOctagon)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l0@0,0@2@0,21600@1,21600,21600@2,21600@0@1,xe";
this->Formulas.push_back( L"val #0");
this->Formulas.push_back( L"sum width 0 #0");
this->Formulas.push_back( L"sum height 0 #0");
this->Formulas.push_back( L"prod @0 2929 10000");
this->Formulas.push_back( L"sum width 0 @3");
this->Formulas.push_back( L"sum height 0 @3");
this->Formulas.push_back( L"val width");
this->Formulas.push_back( L"val height");
this->Formulas.push_back( L"prod width 1 2");
this->Formulas.push_back( L"prod height 1 2");
this->AdjustmentValues = L"6326";
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
this->TextBoxRectangle = L"0,0,21600,21600;2700,2700,18900,18900;5400,5400,16200,16200";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.switchHandle = L"true";
HandleOne.xrange = L"0,10800";
this->Handles.push_back( HandleOne );
this->Limo = L"10800,10800";
}
virtual ~OctagonType()
{
}
};
}

View File

@ -1,53 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class OvalType: public ShapeType
{
public:
OvalType():
ShapeType(msosptEllipse)
{
this->ShapeConcentricFill = true;
this->Joins = round;
}
virtual ~OvalType()
{
}
};
}

View File

@ -1,80 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class ParallelogramType: public ShapeType
{
public:
ParallelogramType():
ShapeType(msosptParallelogram)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l,21600@1,21600,21600,xe";
this->Formulas.push_back( L"val #0");
this->Formulas.push_back( L"sum width 0 #0");
this->Formulas.push_back( L"prod #0 1 2");
this->Formulas.push_back( L"sum width 0 @2");
this->Formulas.push_back( L"mid #0 width");
this->Formulas.push_back( L"mid @1 0");
this->Formulas.push_back( L"prod height width #0");
this->Formulas.push_back( L"prod @6 1 2");
this->Formulas.push_back( L"sum height 0 @7");
this->Formulas.push_back( L"prod width 1 2");
this->Formulas.push_back( L"sum #0 0 @9");
this->Formulas.push_back( L"if @10 @8 0");
this->Formulas.push_back( L"if @10 @7 height");
this->AdjustmentValues = L"5400";
this->ConnectorLocations = L"@4,0;10800,@11;@3,10800;@5,21600;10800,@12;@2,10800";
this->TextBoxRectangle = L"1800,1800,19800,19800;8100,8100,13500,13500;10800,10800,10800,10800";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.xrange = L"0,21600";
this->Handles.push_back( HandleOne );
}
virtual ~ParallelogramType()
{
}
};
}

View File

@ -1,56 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class PentagonType : public ShapeType
{
public:
PentagonType () : ShapeType(msosptPentagon)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m10800,l,8259,4200,21600r13200,l21600,8259xe";
ConnectorLocations = L"10800,0;0,8259;4200,21600;10800,21600;17400,21600;21600,8259";
ConnectorAngles = L"270,180,90,90,90,0" ;
TextBoxRectangle = L"4200,5077,17400,21600";
}
virtual ~PentagonType()
{
}
};
}

View File

@ -1,75 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class PlaqueType: public ShapeType
{
public:
PlaqueType():
ShapeType(msosptPlaque)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,qy0@0l0@2qx@0,21600l@1,21600qy21600@2l21600@0qx@1,xe";
this->Formulas.push_back( L"val #0");
this->Formulas.push_back( L"sum width 0 #0");
this->Formulas.push_back( L"sum height 0 #0");
this->Formulas.push_back( L"prod @0 7071 10000");
this->Formulas.push_back( L"sum width 0 @3");
this->Formulas.push_back( L"sum height 0 @3");
this->Formulas.push_back( L"val width");
this->Formulas.push_back( L"val height");
this->Formulas.push_back( L"prod width 1 2");
this->Formulas.push_back( L"prod height 1 2");
this->AdjustmentValues = L"3600";
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
this->TextBoxRectangle = L"@3,@3,@4,@5";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.switchHandle = L"true";
HandleOne.xrange = L"0,10800";
this->Handles.push_back( HandleOne );
this->Limo = L"10800,10800";
}
virtual ~PlaqueType()
{
}
};
}

View File

@ -1,80 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class PlusType: public ShapeType
{
public:
PlusType():
ShapeType(msosptPlus)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m@0,l@0@0,0@0,0@2@0@2@0,21600@1,21600@1@2,21600@2,21600@0@1@0@1,xe";
this->Formulas.push_back( L"val #0" );
this->Formulas.push_back( L"sum width 0 #0" );
this->Formulas.push_back( L"sum height 0 #0" );
this->Formulas.push_back( L"prod @0 2929 10000" );
this->Formulas.push_back( L"sum width 0 @3" );
this->Formulas.push_back( L"sum height 0 @3" );
this->Formulas.push_back( L"val width" );
this->Formulas.push_back( L"val height" );
this->Formulas.push_back( L"prod width 1 2" );
this->Formulas.push_back( L"prod height 1 2" );
this->AdjustmentValues = L"5400";
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
this->TextBoxRectangle = L"0,0,21600,21600;5400,5400,16200,16200;10800,10800,10800,10800";
Handle HandleOne;
HandleOne.position = L"#0,topLeft";
HandleOne.switchHandle = L"true";
HandleOne.xrange = L"0,10800";
this->Handles.push_back( HandleOne );
this->Limo = L"10800,10800";
}
virtual ~PlusType()
{
}
};
}

View File

@ -1,55 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class RectangleType: public ShapeType
{
public:
RectangleType():
ShapeType(msosptRectangle)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m,l,21600r21600,l21600,xe";
}
virtual ~RectangleType()
{
}
};
}

View File

@ -1,59 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class RightTriangleType: public ShapeType
{
public:
RightTriangleType():
ShapeType(msosptRightTriangle)
{
this->ShapeConcentricFill = true;
this->Joins = miter;
this->Path = L"m,l,21600r21600,xe";
this->ConnectorLocations = L"0,0;0,10800;0,21600;10800,21600;21600,21600;10800,10800";
this->TextBoxRectangle = L"1800,12600,12600,19800";
}
virtual ~RightTriangleType()
{
}
};
}

View File

@ -1,53 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "RectangleType.h"
namespace DocFileFormat
{
class RoundedRectangleType: public RectangleType
{
public:
RoundedRectangleType() : RectangleType()
{
TypeCode = msosptRoundRectangle;
Joins = round;
AdjustmentValues = L"5400";
}
virtual ~RoundedRectangleType()
{
}
};
}

View File

@ -1,62 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class SmileyFaceType : public ShapeType
{
public:
SmileyFaceType () : ShapeType(msosptSmileyFace)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m10800,qx,10800,10800,21600,21600,10800,10800,xem7340,6445qx6215,7570,7340,8695,8465,7570,7340,6445xnfem14260,6445qx13135,7570,14260,8695,15385,7570,14260,6445xnfem4960@0c8853@3,12747@3,16640@0nfe";
Formulas.push_back(L"sum 33030 0 #0" );
Formulas.push_back(L"prod #0 4 3" );
Formulas.push_back(L"prod @0 1 3" );
Formulas.push_back(L"sum @1 0 @2" );
AdjustmentValues = L"17520";
ConnectorLocations = L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163" ;
TextBoxRectangle = L"3163,3163,18437,18437" ;
Handle one;
one.position = L"center,#0";
one.xrange = L"15510,17520";
Handles.push_back (one);
}
};
}

View File

@ -1,79 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class SunType : public ShapeType
{
public:
SunType () : ShapeType(msosptSun)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m21600,10800l@15@14@15@18xem18436,3163l@17@12@16@13xem10800,l@14@10@18@10xem3163,3163l@12@13@13@12xem,10800l@10@18@10@14xem3163,18436l@13@16@12@17xem10800,21600l@18@15@14@15xem18436,18436l@16@17@17@16xem10800@19qx@19,10800,10800@20@20,10800,10800@19xe";
Formulas.push_back(L"sum 10800 0 #0");
Formulas.push_back(L"prod @0 30274 32768");
Formulas.push_back(L"prod @0 12540 32768");
Formulas.push_back(L"sum @1 10800 0");
Formulas.push_back(L"sum @2 10800 0");
Formulas.push_back(L"sum 10800 0 @1");
Formulas.push_back(L"sum 10800 0 @2");
Formulas.push_back(L"prod @0 23170 32768");
Formulas.push_back(L"sum @7 10800 0");
Formulas.push_back(L"sum 10800 0 @7");
Formulas.push_back(L"prod @5 3 4");
Formulas.push_back(L"prod @6 3 4");
Formulas.push_back(L"sum @10 791 0");
Formulas.push_back(L"sum @11 791 0");
Formulas.push_back(L"sum @11 2700 0");
Formulas.push_back(L"sum 21600 0 @10");
Formulas.push_back(L"sum 21600 0 @12");
Formulas.push_back(L"sum 21600 0 @13");
Formulas.push_back(L"sum 21600 0 @14");
Formulas.push_back(L"val #0");
Formulas.push_back(L"sum 21600 0 #0");
AdjustmentValues = L"5400";
ConnectorLocations = L"0,@4;@0,@4;@3,21600;@3,@2;21600,@4;@1,@4;@3,0;@3,@0";
TextBoxRectangle = L"@9,@9,@8,@8";
Handle one;
one.position = L"#0,center";
one.xrange = L"2700,10125";
Handles.push_back (one);
}
};
}

View File

@ -1,54 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class TextboxType: public ShapeType
{
public:
TextboxType () : ShapeType(msosptTextBox)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m,l,21600r21600,l21600,xe";
}
virtual ~TextboxType()
{
}
};
}

View File

@ -1,78 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ShapeType.h"
namespace DocFileFormat
{
class TrapezoidType : public ShapeType
{
public:
TrapezoidType () : ShapeType(msosptTrapezoid)
{
ShapeConcentricFill = true;
Joins = miter;
Path = L"m,l@0,21600@1,21600,21600,xe";
Formulas.push_back( L"val #0");
Formulas.push_back( L"sum width 0 #0");
Formulas.push_back( L"prod #0 1 2");
Formulas.push_back( L"sum width 0 @2");
Formulas.push_back( L"mid #0 width");
Formulas.push_back( L"mid @1 0");
Formulas.push_back( L"prod height width #0");
Formulas.push_back( L"prod @6 1 2");
Formulas.push_back( L"sum height 0 @7");
Formulas.push_back( L"prod width 1 2");
Formulas.push_back( L"sum #0 0 @9");
Formulas.push_back( L"if @10 @8 0");
Formulas.push_back( L"if @10 @7 height");
AdjustmentValues = L"5400";
ConnectorLocations = L"@3,10800;10800,21600;@2,10800;10800,0";
TextBoxRectangle = L"1800,1800,19800,19800;4500,4500,17100,17100;7200,7200,14400,14400";
Handle one;
one.position = L"#0,bottomRight";
one.xrange = L"0,10800";
Handles.push_back (one);
}
virtual ~TrapezoidType()
{
}
};
}

View File

@ -1,72 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "Record.h"
namespace DocFileFormat
{
class UnknownRecord: public Record
{
public:
unsigned char* _bytes;
unsigned int _size;
UnknownRecord():
Record(), _bytes(NULL), _size(0)
{
}
UnknownRecord( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
Record( _reader, size, typeCode, version, instance ), _bytes(NULL), _size(0)
{
this->_size = (unsigned int)( this->Reader->GetSize() - this->Reader->GetPosition() );
if ( this->_size >= size )
{
this->_size = size;
}
this->_bytes = this->Reader->ReadBytes( this->_size, true );
}
virtual ~UnknownRecord()
{
RELEASEARRAYOBJECTS( this->_bytes );
}
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
{
return NULL;//new UnknownRecord( _reader, bodySize, typeCode, version, instance );
}
};
}

View File

@ -1,404 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "OleObject.h"
#include "WordDocument.h"
namespace DocFileFormat
{
OleObject::OleObject( const CharacterPropertyExceptions* chpx, WordDocument* document)
: bLinked(false), updateMode(NoLink), isEquation(false), isEmbedded (false), oleStorage(NULL)
{
if (!document) return;
if (!chpx) return;
nWordVersion = document->nWordVersion;
ObjectId = getOleEntryName( chpx );
StructuredStorageReader* docStorage = document->GetStorage();
oleStorage = docStorage->GetStorage();
if (!oleStorage) return;
std::wstring sObjectId( ObjectId.begin(), ObjectId.end() );
std::wstring name = L"ObjectPool/" + sObjectId + L"/";
bool bOle = processOleStream( name + L"Ole" );
bool bCompObj = bLinked ? processLinkInfoStream( name + L"LinkInfo" ):
processCompObjStream( name + L"CompObj" );
if (bOle || bCompObj)
{
processPICStream( name + L"PIC" );
processMETAStream( name + L"META" );
processEquationNativeStream( name + L"Equation Native" );
}
else if (nWordVersion > 0)
{
int fc = pictureDesciptor.GetFcPic( chpx );
if ( fc >= 0 )
{
POLE::Stream* pOleStream = document->GetDocumentStream();
pictureDesciptor.parse( pOleStream, fc, 0xffffff, nWordVersion);
VirtualStreamReader reader(pOleStream, pOleStream->tell(), nWordVersion);
int pos = reader.GetPosition();
short a1 = reader.ReadInt16();
short a2 = reader.ReadInt16();
short a3 = reader.ReadInt16();
int lcb = reader.ReadInt32();
//short a4 = reader.ReadInt16();
//short a5 = reader.ReadInt16();
//short a6 = reader.ReadInt16();
//short a7 = reader.ReadInt16();
int lcb1 = reader.ReadInt32();
ClipboardFormat = Program = reader.ReadLengthPrefixedAnsiString(0xffff);
short a10 = reader.ReadInt16();
short a11 = reader.ReadInt16();
short a12 = reader.ReadInt16();
short a14 = reader.ReadInt16();
//int lcb = 5000;//reader.ReadInt32();
int szHeader = reader.GetPosition() - pos;
int szData = reader.ReadInt32();
if (szData > lcb)
{
szData = szData >> 16;
}
unsigned char* bytes = reader.ReadBytes( szData, true );
if (bytes && szData < 0xffff)
{
emeddedData = std::string((char*)bytes, szData);
delete []bytes;
}
}
}
}
bool OleObject::processLinkInfoStream( const std::wstring& linkStream )
{
try
{
POLE::Stream* pLinkStream = NULL;
HRESULT res = S_OK;
pLinkStream = new POLE::Stream(oleStorage, linkStream);
if ( pLinkStream )
{
VirtualStreamReader reader( pLinkStream, 0, false);
processLinkInfoStream(reader);
delete pLinkStream;
return true;
}
}
catch (...)
{
}
return false;
}
void OleObject::processEquationNativeStream( const std::wstring& eqStream )
{
try
{
POLE::Stream* pCompStream = NULL;
HRESULT res = S_OK;
pCompStream = new POLE::Stream(oleStorage, eqStream);
if ( pCompStream )
{
VirtualStreamReader reader( pCompStream, 0, false);
int sz = reader.GetSize();
unsigned char *Buffer = reader.ReadBytes( sz, true );
if (Buffer && sz > 0)
{
isEquation = true;
delete []Buffer;
}
delete pCompStream;
}
}
catch (...)
{
}
}
void OleObject::processMETAStream( const std::wstring& metaStream )
{
try
{
HRESULT res = S_OK;
POLE::Stream* pMETAStream = new POLE::Stream(oleStorage, metaStream);
if ( pMETAStream )
{
pictureDesciptor.Type = wmf;
VirtualStreamReader reader( pMETAStream, 0, false);
pictureDesciptor.mfp.mm = reader.ReadUInt16();
pictureDesciptor.mfp.xExt = reader.ReadUInt16();
pictureDesciptor.mfp.yExt = reader.ReadUInt16();
pictureDesciptor.mfp.hMf = reader.ReadUInt16();
pictureDesciptor.embeddedDataSize = reader.GetSize() - 8;
pictureDesciptor.embeddedData = reader.ReadBytes( pictureDesciptor.embeddedDataSize, true );
}
}
catch (...)
{
}
}
void OleObject::processPICStream( const std::wstring& picStream )
{
try
{
HRESULT res = S_OK;
POLE::Stream* pPICStream = new POLE::Stream(oleStorage, picStream);
if ( pPICStream )
{
VirtualStreamReader reader( pPICStream, 0, false);
int sz = reader.GetSize();
int cbHeader = reader.ReadUInt32();
unsigned char* bytes = NULL;
pictureDesciptor.mfp.mm = reader.ReadInt16();
pictureDesciptor.mfp.xExt = reader.ReadInt16();
pictureDesciptor.mfp.yExt = reader.ReadInt16();
pictureDesciptor.mfp.hMf = reader.ReadInt16();
int x = reader.ReadUInt32();
int y = reader.ReadUInt32();
pictureDesciptor.dxaGoal = reader.ReadUInt32();
pictureDesciptor.dyaGoal = reader.ReadUInt32();
unsigned char* data = reader.ReadBytes(16, true);
delete []data;
pictureDesciptor.mx = reader.ReadUInt32();
pictureDesciptor.my = reader.ReadUInt32();
pictureDesciptor.dxaCropLeft = reader.ReadInt32();
pictureDesciptor.dyaCropTop = reader.ReadInt32();
pictureDesciptor.dxaCropRight = reader.ReadInt32();
pictureDesciptor.dyaCropBottom = reader.ReadInt32();
// borders
int bytesCount = (nWordVersion > 0) ? 2 : 4;
bytes = reader.ReadBytes( bytesCount, true );
pictureDesciptor.brcTop = new BorderCode( bytes, bytesCount );
RELEASEARRAYOBJECTS( bytes );
bytes = reader.ReadBytes( bytesCount, true );
pictureDesciptor.brcLeft = new BorderCode( bytes, bytesCount );
RELEASEARRAYOBJECTS( bytes );
bytes = reader.ReadBytes( bytesCount, true );
pictureDesciptor.brcBottom = new BorderCode( bytes, bytesCount );
RELEASEARRAYOBJECTS( bytes );
bytes = reader.ReadBytes( bytesCount, true );
pictureDesciptor.brcRight = new BorderCode( bytes, bytesCount );
RELEASEARRAYOBJECTS( bytes );
int etc = sz - reader.GetPosition();
unsigned char* data2 = reader.ReadBytes(etc, true);
delete []data2;
}
}
catch (...)
{
}
}
bool OleObject::processCompObjStream( const std::wstring& compStream )
{
try
{
HRESULT res = S_OK;
POLE::Stream* pCompStream = new POLE::Stream(oleStorage, compStream);
if ( (pCompStream) && (!pCompStream->fail()) )
{
VirtualStreamReader reader( pCompStream, 0, false);
processCompObjStream(reader);
delete pCompStream;
return true;
}
}
catch (...)
{
}
return false;
}
bool OleObject::processOleStream( const std::wstring& oleStreamName )
{
try
{
POLE::Stream* pOleStream;
HRESULT res = S_OK;
pOleStream = new POLE::Stream(oleStorage, oleStreamName);
if ( (pOleStream) && (!pOleStream->fail()))
{
VirtualStreamReader reader( pOleStream, 0, false );
processOleStream(reader);
delete pOleStream;
return true;
}
}
catch (...)
{
}
return false;
}
void OleObject::processOleStream( VirtualStreamReader& reader )
{
//skip version
reader.ReadBytes( 4, false );
//read the embedded/linked flag
int flag = reader.ReadInt32();
bLinked = FormatUtils::BitmaskToBool( flag, 0x1 );
//Link update option
this->updateMode = (LinkUpdateOption)reader.ReadInt32();
switch ( this->updateMode )
{
case NoLink: UpdateMode = L"NoLink"; break;
case Always: UpdateMode = L"Always"; break;
case OnCall: UpdateMode = L"OnCall"; break;
}
}
void OleObject::processLinkInfoStream( VirtualStreamReader& reader )
{
short cch = reader.ReadInt16();
unsigned char* str = reader.ReadBytes( cch, true );
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &this->Link, str, cch, ENCODING_WINDOWS_1250 );
RELEASEARRAYOBJECTS( str );
//skip the terminating zero of the ANSI string
//even if the characters are ANSI chars, the terminating zero has 2 bytes
reader.ReadBytes( 2, false );
//skip the next 4 bytes (flags?)
reader.ReadBytes( 4, false );
//Read the Unicode version
this->Link.clear();
cch = reader.ReadInt16();
str = reader.ReadBytes( ( cch * 2 ), true );
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &this->Link, str, ( cch * 2 ), ENCODING_UTF16 );
RELEASEARRAYOBJECTS( str );
//skip the terminating zero of the Unicode string
reader.ReadBytes( 2, false );
}
void OleObject::processCompObjStream( VirtualStreamReader& reader )
{
//skip the CompObjHeader
reader.ReadBytes( 28, false );
unsigned int sz_obj = reader.GetSize() - reader.GetPosition();
if (sz_obj > 4)
{
UserType = reader.ReadLengthPrefixedAnsiString(sz_obj);
sz_obj = reader.GetSize() - reader.GetPosition();
if (sz_obj > 4)
ClipboardFormat = reader.ReadLengthPrefixedAnsiString(sz_obj);
sz_obj = reader.GetSize() - reader.GetPosition();
if (sz_obj > 4)
Program = reader.ReadLengthPrefixedAnsiString(sz_obj);
}
}
std::wstring OleObject::getOleEntryName( const CharacterPropertyExceptions* chpx )
{
std::wstring ret;
if ( chpx != NULL )
{
for ( std::list<SinglePropertyModifier>::const_iterator iter = chpx->grpprl->begin(); iter != chpx->grpprl->end(); iter++ )
{
if ( iter->OpCode == sprmCPicLocation || iter->OpCode == sprmOldCPicLocation)
{
ret = ( L"_" + FormatUtils::IntToWideString( FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize ) ) );
break;
}
}
}
return ret;
}
}

View File

@ -1,90 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "IVisitable.h"
#include "PictureDescriptor.h"
namespace DocFileFormat
{
class WordDocument;
class OleObject: public IVisitable
{
friend class OleObjectMapping;
public:
enum LinkUpdateOption
{
NoLink = 0,
Always = 1,
OnCall = 3
};
int nWordVersion;
bool bLinked; // The the value is true, the object is a linked object
std::wstring ObjectId;
std::wstring ClassId;
std::wstring UserType; // Display name of the linked object or embedded object.
std::wstring ClipboardFormat;
std::wstring Link;
std::wstring Program;
LinkUpdateOption updateMode;
std::wstring UpdateMode;
bool isEquation;
bool isEmbedded;
std::string emeddedData;
PictureDescriptor pictureDesciptor;
OleObject( const CharacterPropertyExceptions* chpx, WordDocument* document);
virtual ~OleObject() {}
private:
POLE::Storage *oleStorage;
bool processLinkInfoStream ( const std::wstring& linkStream );
void processEquationNativeStream( const std::wstring& eqStream );
void processPICStream ( const std::wstring& picStream );
void processMETAStream ( const std::wstring& metaStream );
bool processCompObjStream ( const std::wstring& compStream );
bool processOleStream ( const std::wstring& oleStreamName );
void processOleStream ( VirtualStreamReader& reader );
void processLinkInfoStream ( VirtualStreamReader& reader );
void processCompObjStream ( VirtualStreamReader& reader );
std::wstring getOleEntryName ( const CharacterPropertyExceptions* chpx );
};
}

View File

@ -1,190 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ConversionContext.h"
#include "PictureDescriptor.h"
#include "OleObject.h"
#include "AbstractOpenXmlMapping.h"
#include "IMapping.h"
namespace DocFileFormat
{
class OleObjectMapping: public AbstractOpenXmlMapping, public IMapping
{
public:
OleObjectMapping(XMLTools::CStringXmlWriter* writer, ConversionContext* context, PictureDescriptor* pict, IMapping* caller, const std::wstring& shapeId)
:
AbstractOpenXmlMapping(writer), m_context(NULL), _pict(NULL), _caller(NULL), _shapeId(shapeId)
{
m_context = context;
_pict = pict;
_caller = caller;
}
virtual void Apply(IVisitable* visited)
{
OleObject* ole = static_cast<OleObject*>(visited);
if ( ole != NULL )
{
if (ole->isEmbedded)
{
if (ole->isEquation) ole->ClipboardFormat = L"Equation";
else ole->ClipboardFormat = L"MSWordDocx";
ole->Program = L"Word.Document";
}
m_pXmlWriter->WriteNodeBegin( L"o:OLEObject", TRUE );
int relID = -1;
if ( ole->bLinked )
{
relID = m_context->_docx->RegisterExternalOLEObject(_caller, ole->ClipboardFormat, ole->Link);
m_pXmlWriter->WriteAttribute( L"Type", L"Link" );
m_pXmlWriter->WriteAttribute( L"UpdateMode", ole->UpdateMode);
}
else
{
if (ole->isEmbedded)
relID = m_context->_docx->RegisterPackage(_caller, ole->ClipboardFormat);
else
relID = m_context->_docx->RegisterOLEObject(_caller, ole->ClipboardFormat);
m_pXmlWriter->WriteAttribute( L"Type", L"Embed" );
copyEmbeddedObject( ole );
}
m_pXmlWriter->WriteAttribute( L"ProgID", ole->Program);
m_pXmlWriter->WriteAttribute( L"ShapeID", _shapeId);
m_pXmlWriter->WriteAttribute( L"DrawAspect", L"Content" );
m_pXmlWriter->WriteAttribute( L"ObjectID", ole->ObjectId);
m_pXmlWriter->WriteAttribute( L"r:id", L"rId"+ FormatUtils::IntToWideString( relID ) );
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
m_pXmlWriter->WriteNodeEnd( L"o:OLEObject" );
}
}
static std::wstring GetTargetExt(const std::wstring& objectType)
{
std::wstring objectExt = L".bin";
if ( objectType == L"Biff8" )
{
objectExt = L".xls";
}
else if ( objectType == L"MSWordDoc" )
{
objectExt = L".doc";
}
else if ( objectType == L"MSPresentation" )
{
objectExt = L".ppt";
}
else if ( objectType == L"MSWordDocx" )
{
objectExt = L".docx";
}
else if ( objectType == L"Equation" )
{
objectExt = L".xml";
}
return objectExt;
}
static std::wstring GetContentType(const std::wstring& objectType)
{
std::wstring objectContentType = OpenXmlContentTypes::OleObject;
if ( objectType == L"Biff8" )
{
objectContentType = OpenXmlContentTypes::MSExcel;
}
else if ( objectType == L"MSWordDoc" )
{
objectContentType = OpenXmlContentTypes::MSWord;
}
else if ( objectType == L"MSPresentation" )
{
objectContentType = OpenXmlContentTypes::MSPowerpoint;
}
else if ( objectType == L"MSWordDocx" )
{
objectContentType = OpenXmlContentTypes::MSWordDocx;
}
else if ( objectType == L"Equation" )
{
objectContentType = OpenXmlContentTypes::Xml;
}
return objectContentType;
}
private:
inline void copyEmbeddedObject( const OleObject* ole )
{
if ( ole == NULL ) return;
std::wstring clsid;
std::wstring exelChart = L"Excel.Chart";
if ( std::search( ole->Program.begin(), ole->Program.end(), exelChart.begin(), exelChart.end() ) == ole->Program.end() )
{
clsid = ole->ClassId;
}
OleObjectFileStructure object_descr(OleObjectMapping::GetTargetExt( ole->ClipboardFormat ), ole->ObjectId, clsid);
if (ole->nWordVersion == 2)
{
object_descr.clsid = ole->ClipboardFormat;
object_descr.bNativeOnly = true;
}
if (ole->isEquation || ole->isEmbedded || ole->nWordVersion == 2)
{
object_descr.data = ole->emeddedData;
}
m_context->_docx->OleObjectsList.push_back(object_descr);
}
ConversionContext* m_context;
PictureDescriptor* _pict;
std::wstring _shapeId;
IMapping* _caller;
};
}

View File

@ -1,80 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../Common/FormatUtils.h"
namespace DocFileFormat
{
class PieceDescriptor
{
friend class PieceTable;
public:
/// Parses the bytes to retrieve a PieceDescriptor
PieceDescriptor(unsigned char *bytes, unsigned int size, int code_page_) : fc(0), code_page(code_page_), cpStart(0), cpEnd(0)
{
if (8 == size)
{
//get the fc value
unsigned int fcValue = FormatUtils::BytesToUInt32(bytes, 2, size);
//get the flag
bool flag = FormatUtils::BitmaskToBool((int)fcValue, 0x40000000);
//delete the flag
fcValue = fcValue & 0xBFFFFFFF;
//find encoding and offset
if (flag)
{
code_page = ENCODING_WINDOWS_1250;
this->fc = (unsigned int)( fcValue / 2 );
}
else
{
code_page = (code_page == ENCODING_WINDOWS_1250 ? ENCODING_UTF16 : code_page_);
this->fc = fcValue;
}
}
}
public:
/// File offset of beginning of piece.
/// This is relative to the beginning of the WordDocument stream.
unsigned int fc;
/// The encoding of the piece
int code_page;
int cpStart;
int cpEnd;
};
}

View File

@ -1,95 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
#include <boost/format.hpp>
namespace DocFileFormat
{
typedef enum _ByteOrder
{
RedFirst,
RedLast
} ByteOrder;
class RGBColor
{
private:
unsigned char Red;
unsigned char Green;
unsigned char Blue;
unsigned char Alpha;
public:
std::wstring SixDigitHexCode;
std::wstring EightDigitHexCode;
RGBColor( _UINT32 cv, ByteOrder order )
{
unsigned char bytes[4];
bytes[0] = cv & 0x000000FF;
bytes[1] = (cv >> 8) & 0x000000FF;
bytes[2] = (cv >> 16) & 0x000000FF;
bytes[3] = (cv >> 24) & 0x000000FF;
std::wstringstream rgbColor6, rgbColor8;
if( order == RedFirst )
{
this->Red = bytes[0];
this->Green = bytes[1];
this->Blue = bytes[2];
this->Alpha = bytes[3];
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % Red % Green % Blue;
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % Red % Green % Blue % Alpha;
SixDigitHexCode = rgbColor6.str();
EightDigitHexCode = rgbColor8.str();
}
else if ( order == RedLast )
{
this->Red = bytes[2];
this->Green = bytes[1];
this->Blue = bytes[0];
this->Alpha = bytes[3];
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % Red % Green % Blue;
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % Red % Green % Blue % Alpha;
SixDigitHexCode = rgbColor6.str();
EightDigitHexCode = rgbColor8.str();
}
}
};
}

View File

@ -1,87 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "ByteStructure.h"
namespace DocFileFormat
{
class SectionDescriptor: public ByteStructure
{
friend class WordDocument;
private:
short fn;
short fnMpr;
int fcMpr;
/// A signed integer that specifies the position in the WordDocument Stream where a Sepx structure is located.
int fcSepx;
static const int STRUCTURE_SIZE = 12;
static const int STRUCTURE_SIZE_OLD = 6;
public:
static const int GetSize(int nWordVersion)
{
return (nWordVersion == 2) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
}
SectionDescriptor() : fn(0), fnMpr(0), fcMpr(0), fcSepx(0)
{
}
virtual ~SectionDescriptor()
{
}
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
{
SectionDescriptor *newObject = new SectionDescriptor();
if (reader->nWordVersion == 2)
{
newObject->fn = reader->ReadInt16();
newObject->fcSepx = reader->ReadInt32();
//newObject->fnMpr = reader->ReadInt16();
//newObject->fcMpr = reader->ReadInt16();
}
else
{
newObject->fn = reader->ReadInt16();
newObject->fcSepx = reader->ReadInt32();
newObject->fnMpr = reader->ReadInt16();
newObject->fcMpr = reader->ReadInt32();
}
return static_cast<ByteStructure*>( newObject );
}
};
}

View File

@ -1,66 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "PropertyExceptions.h"
namespace DocFileFormat
{
class SectionPropertyExceptions: public PropertyExceptions
{
public:
/// Parses the bytes to retrieve a SectionPropertyExceptions
SectionPropertyExceptions( unsigned char* bytes, int size, int nWordVersion ):
PropertyExceptions( bytes, size, nWordVersion ), isBidi(false)
{
if (nWordVersion >= 2)
{
ReadExceptions(bytes, size, nWordVersion);
}
for ( std::list<SinglePropertyModifier>::iterator iter = grpprl->begin(); iter != grpprl->end(); iter++ )
{
SinglePropertyModifier sprm( *iter );
if( sprm.OpCode == sprmSFBiDi && sprm.Arguments[0] != 0)
{
isBidi = true;
}
}
}
virtual ~SectionPropertyExceptions()
{
}
bool isBidi;
};
}

View File

@ -1,269 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "IVisitable.h"
namespace DocFileFormat
{
typedef enum _ShadingPattern
{
Automatic = 0x0000,
Solid = 0x0001,
Percent_5 = 0x0002,
Percent_10 = 0x0003,
Percent_20 = 0x0004,
Percent_25 = 0x0005,
Percent_30 = 0x0006,
Percent_40 = 0x0007,
Percent_50 = 0x0008,
Percent_60 = 0x0009,
Percent_70 = 0x000A,
Percent_75 = 0x000B,
Percent_80 = 0x000C,
Percent_90 = 0x000D,
DarkHorizontal = 0x000E,
DarkVertical = 0x000F,
DarkForwardDiagonal = 0x0010,
DarkBackwardDiagonal = 0x0011,
DarkCross = 0x0012,
DarkDiagonalCross = 0x0013,
Horizontal = 0x0014,
Vertical = 0x0015,
ForwardDiagonal = 0x0016,
BackwardDiagonal = 0x0017,
Cross = 0x0018,
DiagonalCross = 0x0019,
Percent_2_5 = 0x0023,
Percent_7_5 = 0x0024,
Percent_12_5 = 0x0025,
Percent_15 = 0x0026,
Percent_17_5 = 0x0027,
Percent_22_5 = 0x0028,
Percent_27_5 = 0x0029,
Percent_32_5 = 0x002A,
Percent_35 = 0x002B,
Percent_37_5 = 0x002C,
Percent_42_5 = 0x002D,
Percent_45 = 0x002E,
Percent_47_5 = 0x002F,
Percent_52_5 = 0x0030,
Percent_55 = 0x0031,
Percent_57_5 = 0x0032,
Percent_62_5 = 0x0033,
Percent_65 = 0x0034,
Percent_67_5 = 0x0035,
Percent_72_5 = 0x0036,
Percent_77_5 = 0x0037,
Percent_82_5 = 0x0038,
Percent_85 = 0x0039,
Percent_87_5 = 0x003A,
Percent_92_5 = 0x003B,
Percent_95 = 0x003C,
Percent_97_5 = 0x003D,
Nil = 0xFFFF
} ShadingPattern;
enum ShadingType
{
shadingTypeShd,
shadingTypeShd80
};
enum ShadingSpecialValue
{
shadingSpecialValueNormal,
shadingSpecialValueShdAuto,
shadingSpecialValueShdNil,
shadingSpecialValueShd80Nil
};
class ShadingDescriptor: public IVisitable
{
friend class PropertiesMapping;
private:
unsigned int cvFore; // 24-bit foreground color
bool cvForeAuto;
int icoFore; // Foreground color.
unsigned int cvBack;
bool cvBackAuto;
int icoBack;
ShadingPattern ipat;
ShadingType shadingType;
ShadingSpecialValue shadingSpecialValue;
public:
/// Creates a new ShadingDescriptor with default values
ShadingDescriptor()
{
setDefaultValues();
}
/// Parses the bytes to retrieve a ShadingDescriptor.
ShadingDescriptor(unsigned char* bytes, int size)
{
setDefaultValues();
if (NULL != bytes)
{
if (10 == size)
{
//it's a Word 2000/2003 descriptor
unsigned char cvForeBytes[4] = { bytes[2], bytes[1], bytes[0], 0 };
unsigned char cvBackBytes[4] = { bytes[6], bytes[5], bytes[4], 0 };
cvFore = FormatUtils::BytesToUInt32( cvForeBytes, 0, 4 );
if ( bytes[3] == 0xFF )
{
cvForeAuto = true;
}
cvBack = FormatUtils::BytesToUInt32( cvBackBytes, 0, 4 );
if ( bytes[7] == 0xFF )
{
cvBackAuto = true;
}
ipat = (ShadingPattern)FormatUtils::BytesToUInt16( bytes, 8, size );
shadingType = shadingTypeShd;
if ( ( cvFore == 0 ) && ( bytes[3] == 0xFF ) && ( cvBack == 0 ) && ( bytes[7] == 0xFF ) && ( ipat == Automatic ) )
{
shadingSpecialValue = shadingSpecialValueShdAuto;
}
else if ( ( cvFore == 0xFFFFFF ) && ( bytes[3] == 0xFF ) && ( cvBack == 0xFFFFFF ) && ( bytes[7] == 0xFF ) && ( ipat == Automatic ) )
{
shadingSpecialValue = shadingSpecialValueShdNil;
}
}
else if (2 == size)
{
//it's a Word 97 SPRM
short val = FormatUtils::BytesToInt16(bytes, 0, size);
icoFore = GETBITS(val, 0, 4);
icoBack = GETBITS(val, 5, 9);
ipat = (ShadingPattern) GETBITS(val, 10, 15);
shadingType = shadingTypeShd80;
if ((icoFore == 0x1F) && (icoBack == 0x1F) && (ipat == 0x3F))
{
shadingSpecialValue = shadingSpecialValueShd80Nil;
}
else
{
shadingType = shadingTypeShd;
cvForeAuto = false;
cvBackAuto = false;
if (0x00 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x00); cvForeAuto = true; }
else if (0x01 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x00); }
else if (0x02 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0xFF); }
else if (0x03 == icoFore) { cvFore = RGB2 (0x00, 0xFF, 0xFF); }
else if (0x04 == icoFore) { cvFore = RGB2 (0x00, 0xFF, 0x00); }
else if (0x05 == icoFore) { cvFore = RGB2 (0xFF, 0x00, 0xFF); }
else if (0x06 == icoFore) { cvFore = RGB2 (0xFF, 0x00, 0x00); }
else if (0x07 == icoFore) { cvFore = RGB2 (0xFF, 0xFF, 0x00); }
else if (0x08 == icoFore) { cvFore = RGB2 (0xFF, 0xFF, 0xFF); }
else if (0x09 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x80); }
else if (0x0A == icoFore) { cvFore = RGB2 (0x00, 0x80, 0x80); }
else if (0x0B == icoFore) { cvFore = RGB2 (0x00, 0x80, 0x00); }
else if (0x0C == icoFore) { cvFore = RGB2 (0x80, 0x00, 0x80); }
else if (0x0D == icoFore) { cvFore = RGB2 (0x80, 0x00, 0x80); }
else if (0x0E == icoFore) { cvFore = RGB2 (0x80, 0x80, 0x00); }
else if (0x0F == icoFore) { cvFore = RGB2 (0x80, 0x80, 0x80); }
else if (0x10 == icoFore) { cvFore = RGB2 (0xC0, 0xC0, 0xC0); }
if (0x00 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0xFF); cvBackAuto = true; }
else if (0x01 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0x00); }
else if (0x02 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0xFF); }
else if (0x03 == icoBack) { cvBack = RGB2 (0x00, 0xFF, 0xFF); }
else if (0x04 == icoBack) { cvBack = RGB2 (0x00, 0xFF, 0x00); }
else if (0x05 == icoBack) { cvBack = RGB2 (0xFF, 0x00, 0xFF); }
else if (0x06 == icoBack) { cvBack = RGB2 (0xFF, 0x00, 0x00); }
else if (0x07 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0x00); }
else if (0x08 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0xFF); }
else if (0x09 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0x80); }
else if (0x0A == icoBack) { cvBack = RGB2 (0x00, 0x80, 0x80); }
else if (0x0B == icoBack) { cvBack = RGB2 (0x00, 0x80, 0x00); }
else if (0x0C == icoBack) { cvBack = RGB2 (0x80, 0x00, 0x80); }
else if (0x0D == icoBack) { cvBack = RGB2 (0x80, 0x00, 0x80); }
else if (0x0E == icoBack) { cvBack = RGB2 (0x80, 0x80, 0x00); }
else if (0x0F == icoBack) { cvBack = RGB2 (0x80, 0x80, 0x80); }
else if (0x10 == icoBack) { cvBack = RGB2 (0xC0, 0xC0, 0xC0); }
// .... если будут документы с такими цветовыми палитрами
//if ((cvFore == 0) && (icoFore == 0x0) && (cvBack == 0) && (icoBack == 0x0) && (ipat == Automatic))
//{
// shadingSpecialValue = shadingSpecialValueShdAuto;
//}
//else if ((cvFore == 0xFFFFFF) && (icoFore == 0x0) && (cvBack == 0xFFFFFF) && (icoBack == 0x0) && (ipat == Automatic))
//{
// shadingSpecialValue = shadingSpecialValueShdNil;
//}
}
}
else
{
}
}
}
private:
inline unsigned int RGB2 (unsigned char r, unsigned char g, unsigned char b)
{
return ( (r<<16) | (g<<8) | (b) );
}
void setDefaultValues()
{
cvBack = 0;
cvBackAuto = false;
cvFore = 0;
cvForeAuto = false;
icoBack = 0;
icoFore = 0;
ipat = Automatic;
shadingType = shadingTypeShd80;
shadingSpecialValue = shadingSpecialValueNormal;
}
};
}

View File

@ -1,125 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ByteStructure.h"
#include "DrawingPrimitives.h"
class VirtualStreamReader;
namespace DocFileFormat
{
typedef enum AnchorType
{
MARGIN,
PAGE,
TEXT
} AnchorType;
class Spa : public ByteStructure
{
public:
friend class VMLShapeMapping;
friend class DocumentMapping;
static const int STRUCTURE_SIZE = 26;
static const int STRUCTURE_SIZE_OLD = 6;
static const int GetSize(int nWordVersion)
{
return (nWordVersion > 0) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
}
Spa();
virtual ~Spa();
virtual ByteStructure* ConstructObject(VirtualStreamReader* reader, int length);
inline int GetShapeID() const
{
return spid;
}
private:
/// Shape Identifier. Used in conjunction with the office art data
/// (found via fcDggInfo in the FIB) to find the actual data for newObject shape.
int spid;
/// Left of rectangle enclosing shape relative to the origin of the shape
int xaLeft;
/// Top of rectangle enclosing shape relative to the origin of the shape
int yaTop;
/// Right of rectangle enclosing shape relative to the origin of the shape
int xaRight;
/// Bottom of the rectangle enclosing shape relative to the origin of the shape
int yaBottom;
/// true in the undo doc when shape is from the header doc
/// false otherwise (undefined when not in the undo doc)
bool fHdr;
/// X position of shape relative to anchor CP
/// 0 relative to page margin
/// 1 relative to top of page
/// 2 relative to text (column for horizontal text; paragraph for vertical text)
/// 3 reserved for future use
AnchorType bx;
/// Y position of shape relative to anchor CP
/// 0 relative to page margin
/// 1 relative to top of page
/// 2 relative to text (column for horizontal text; paragraph for vertical text)
/// 3 reserved for future use
AnchorType by;
/// Text wrapping mode
/// 0 like 2, but doesnt require absolute object
/// 1 no text next to shape
/// 2 wrap around absolute object
/// 3 wrap as if no object present
/// 4 wrap tightly around object
/// 5 wrap tightly, but allow holes
/// 6-15 reserved for future use
unsigned short wr;
/// Text wrapping mode type (valid only for wrapping modes 2 and 4)
/// 0 wrap both sides
/// 1 wrap only on left
/// 2 wrap only on right
/// 3 wrap only on largest side
unsigned short wrk;
/// When set, temporarily overrides bx, by,
/// forcing the xaLeft, xaRight, yaTop, and yaBottom fields
/// to all be page relative.
bool fRcaSimple;
bool fBelowText; // true: shape is below text
bool fAnchorLock; // true: anchor is locked
int cTxbx; // Count of textboxes in shape (undo doc only)
DrawingPrimitives primitives;
void read_primitives(Spa* pSpa, VirtualStreamReader* reader, int length);
};
}

View File

@ -1,180 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../../Common/DocxFormat/Source/Base/SmartPtr.h"
#include "BorderCode.h"
#include "Global.h"
namespace DocFileFormat
{
struct TC80
{
TC80()
{
wWidth = horzMerge =0;
textFlow = Global::lrTb;
vertMerge = Global::fvmClear;
vertAlign = Global::top;
ftsWidth = Global::nil;
fFitText = fNoWrap = fHideMark = false;
}
/// A value from the following table that specifies how this cell merges horizontally with the neighboring cells in the same row.
/// MUST be one of the following values:
/// 0 - The cell is not merged with the cells on either side of it.
/// 1 - The cell is one of a set of horizontally merged cells. It contributes its layout region to the set and its own contents are not rendered.
/// 2, 3 - The cell is the first cell in a set of horizontally merged cells. The contents and formatting of this cell extend into any consecutive cells following it that are designated as part of the merged set.
unsigned char horzMerge;
/// A value from the TextFlow enumeration that specifies rotation settings for the text in the cell.
Global::TextFlow textFlow;
/// A value from the VerticalMergeFlag enumeration that specifies how this cell merges vertically with the cells above or below it.
Global::VerticalMergeFlag vertMerge;
/// A value from the VerticalAlign enumeration that specifies how contents inside this cell are aligned.
Global::VerticalAlign vertAlign;
/// An Fts that specifies the unit of measurement for the wWidth field in the TC80 structure.
Global::CellWidthType ftsWidth;
/// Specifies whether the contents of the cell are to be stretched out such that the full cell width is used.
bool fFitText;
/// When set, specifies that the preferred layout of the contents of this cell are as a single line,
/// and cell widths can be adjusted to accommodate long lines.
/// This preference is ignored when the preferred width of this cell is set to ftsDxa.
bool fNoWrap;
/// When set, specifies that this cell is rendered with no height if all cells in the row are empty.
bool fHideMark;
/// An integer that specifies the preferred width of the cell.
/// The width includes cell margins, but does not include cell spacing. MUST be non-negative.
/// The unit of measurement depends on ftsWidth.
/// If ftsWidth is set to ftsPercent, the value is a fraction of the width of the entire table.
short wWidth;
NSCommon::smart_ptr<BorderCode> brcTop;
NSCommon::smart_ptr<BorderCode> brcLeft;
NSCommon::smart_ptr<BorderCode> brcBottom;
NSCommon::smart_ptr<BorderCode> brcRight;
} ;
class SprmTDefTable
{
private:
friend class TableCellPropertiesMapping;
public:
SprmTDefTable (unsigned char* bytes, int size)
{
numberOfColumns = bytes[0];
int pointer = 1;
// rgdxaCenter
for (int i = 0; i < numberOfColumns + 1; ++i)
{
int pos = FormatUtils::BytesToInt16(bytes, pointer, size);
rgdxaCenter.push_back(pos);
pointer += 2;
}
// rgTc80
for (int i = 0; i < numberOfColumns; ++i)
{
if (size <= pointer)
{
for (int j = i; j < numberOfColumns; ++j)
{
TC80 oTC80;
oTC80.ftsWidth = Global::dxa;
oTC80.wWidth = 0;
oTC80.brcTop = new BorderCode();
oTC80.brcLeft = new BorderCode();
oTC80.brcBottom = new BorderCode();
oTC80.brcRight = new BorderCode();
rgTc80.push_back(oTC80);
}
break;
}
TC80 tc;
// the flags
unsigned short flags = FormatUtils::BytesToUInt16(bytes, pointer, size);
tc.horzMerge = (unsigned char)FormatUtils::BitmaskToInt((int)flags, 0x3);
tc.textFlow = (Global::TextFlow)FormatUtils::BitmaskToInt((int)flags, 0x1C);
tc.vertMerge = (Global::VerticalMergeFlag)FormatUtils::BitmaskToInt((int)flags, 0x60);
tc.vertAlign = (Global::VerticalAlign)FormatUtils::BitmaskToInt((int)flags, 0x180);
tc.ftsWidth = (Global::CellWidthType)FormatUtils::BitmaskToInt((int)flags, 0xE00);
tc.fFitText = FormatUtils::BitmaskToBool(flags, 0x1000);
tc.fNoWrap = FormatUtils::BitmaskToBool(flags, 0x2000);
tc.fHideMark = FormatUtils::BitmaskToBool(flags, 0x4000);
pointer += 2;
// cell width
tc.wWidth = FormatUtils::BytesToInt16(bytes, pointer, size);
pointer += 2;
const int borderCodeBytes = 4;
tc.brcTop = new BorderCode((bytes + pointer), borderCodeBytes);
pointer += borderCodeBytes;
tc.brcLeft = new BorderCode((bytes + pointer), borderCodeBytes);
pointer += borderCodeBytes;
tc.brcBottom = new BorderCode((bytes + pointer), borderCodeBytes);
pointer += borderCodeBytes;
tc.brcRight = new BorderCode((bytes + pointer), borderCodeBytes);
pointer += borderCodeBytes;
rgTc80.push_back(tc);
}
}
unsigned char numberOfColumns;
/// An array of 16-bit signed integer that specifies horizontal distance in twips.
/// MUST be greater than or equal to -31680 and less than or equal to 31680.
std::vector<short> rgdxaCenter;
/// An array of TC80 that specifies the default formatting for a cell in the table.
/// Each TC80 in the array corresponds to the equivalent column in the table.
/// If there are fewer TC80s than columns, the remaining columns are formatted with the default TC80 formatting.
/// If there are more TC80s than columns, the excess TC80s MUST be ignored.
std::vector<TC80> rgTc80;
};
}

View File

@ -1,219 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "WideString.h"
#include "IVisitable.h"
#include "../Common/FormatUtils.h"
namespace DocFileFormat
{
template<class T> class StringTable: public IVisitable
{
friend class WordDocument;
friend class CharacterPropertiesMapping;
friend class FontTableMapping;
friend class StyleSheetMapping;
friend class DocumentMapping;
friend class NumberingMapping;
private:
bool fExtend;
int cbData;
unsigned short cbExtra;
std::vector<ByteStructure*> Data;
std::vector<unsigned char*> DataExtra;
int code_page;
public:
virtual ~StringTable()
{
for ( size_t i = 0; i < this->Data.size(); ++i )
{
RELEASEOBJECT( this->Data[i] );
if (false == this->DataExtra.empty())
{
if (this->DataExtra[i])
{
delete []this->DataExtra[i];
this->DataExtra[i] = NULL;
}
}
}
}
StringTable( VirtualStreamReader *reader, int code_page_ ):
code_page(code_page_), fExtend(false), cbData(0), cbExtra(0)
{
parse( reader, (unsigned int)reader->GetPosition(), 0, false );
}
StringTable( POLE::Stream* tableStream, unsigned int fc, unsigned int lcb, int nWordVersion, bool bReadExta = false) :
code_page(1250), fExtend(false), cbData(0), cbExtra(0)
{
if ( lcb > 0 )
{
VirtualStreamReader reader( tableStream, fc, nWordVersion);
parse( &reader, fc, lcb, bReadExta ) ;
}
}
std::vector<unsigned char*> & getDataExtra() {return DataExtra;}
unsigned short getDataExtraSize() {return cbExtra;}
ByteStructure* operator [] ( size_t index ) const
{
if ( index < this->Data.size() )
{
return this->Data.at( index );
}
else
{
return NULL;
}
}
private:
void parse( VirtualStreamReader *reader, unsigned int fc, unsigned int lcb = 0, bool bReadExta = false )
{
if ( reader == NULL ) return;
if (fc > reader->GetSize()) return;
this->cbData = lcb;
int count_elements = 0;
//read fExtend
if ( reader->ReadUInt16() == 0xFFFF )
{
//if the first 2 bytes are 0xFFFF the STTB contains unicode characters
this->fExtend = true;
code_page = ENCODING_UTF16;
}
else
{
//else the STTB contains 1byte characters and the fExtend field is non-existend
//seek back to the beginning
this->fExtend = false;
code_page = ENCODING_WINDOWS_1250;
reader->Seek( (int)fc, 0/*STREAM_SEEK_SET*/ );
}
//read cData
long cDataStart = reader->GetPosition();
unsigned short cb = 0, elem_sz = 0;
//if (reader->nWordVersion == 2)
//{
// unsigned char * bytes = reader->ReadBytes(lcb, true);
// reader->Seek( (int)fc, 0/*STREAM_SEEK_SET*/ );
// delete []bytes;
//}
if (reader->nWordVersion > 0)
{
cb = reader->ReadUInt16();
this->cbData = cb; // all size
}
else if (reader->nWordVersion == 0)
{
cb = reader->ReadUInt16();
if ( cb != 0xFFFF )
{
count_elements = cb;
}
else
{
//cData is a 4byte signed Integer, so we need to seek back
reader->Seek( (int)( fc + cDataStart ), 0/*STREAM_SEEK_SET*/ );
this->cbData = reader->ReadInt32();
}
}
//read cbExtra
if (reader->nWordVersion == 0)
{
this->cbExtra = reader->ReadUInt16();
}
if (lcb > 0 && (lcb/* - fc*/) != this->cbData + this->cbExtra)
{
//????
}
while(true) //read the strings and extra datas
{
if (reader->GetPosition() >= fc + this->cbData + this->cbExtra && count_elements < 1)
break; //1995 and older
if (this->Data.size() == count_elements && count_elements > 0)
break; //1997 and newer
int cchData = 0;
int cbData = 0;
if ( this->fExtend )
{
cchData = (int)reader->ReadUInt16();
cbData = cchData * 2;
}
else
{
cchData = (int)reader->ReadByte();
cbData = cchData;
}
long posBeforeType = reader->GetPosition();
this->Data.push_back( T().ConstructObject( reader, cbData ) );
reader->Seek( (int)( posBeforeType + cbData ), 0/*STREAM_SEEK_SET */);
if (bReadExta)
{
unsigned char* pData = reader->ReadBytes( cbExtra, true );
DataExtra.push_back(pData);
}
else
{
reader->ReadBytes( cbExtra, false );
}
}
}
};
}

View File

@ -1,162 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../../Common/3dParty/pole/pole.h"
namespace DocFileFormat
{
class StructuredStorageReader
{
public:
StructuredStorageReader () : m_pStorage(NULL)
{
}
~StructuredStorageReader()
{
if(m_pStorage)
{
delete m_pStorage;
m_pStorage = NULL;
}
}
bool SetFile (const wchar_t* filename)
{
m_pStorage = new POLE::Storage(filename);
if (m_pStorage)//return true;
{
return m_pStorage->open();
}
return false;
}
bool isDirectory( const std::wstring& name )
{
if (!m_pStorage) return false;
return m_pStorage->isDirectory(name);
}
bool GetStream (const std::wstring & path, POLE::Stream** ppStream)
{
if (( m_pStorage != NULL ) && ( !path.empty() ))
{
*ppStream = new POLE::Stream(m_pStorage, path.c_str());
}
if ((*ppStream) && ((*ppStream)->size() > 0))
return true;
return false;
}
inline POLE::Storage* GetStorage()
{
return m_pStorage;
}
void copy( int indent, std::wstring path, POLE::Storage * storageOut, bool withRoot = true)
{
std::list<std::wstring> entries, entries_sort;
entries = m_pStorage->entries_with_prefix( path );
for( std::list<std::wstring>::iterator it = entries.begin(); it != entries.end(); ++it )
{
std::wstring name = *it;
std::wstring fullname = path + name;
if( m_pStorage->isDirectory( fullname ) )
{
entries_sort.push_back(name);
}
else
{
entries_sort.push_front(name);
}
}
//for( std::list<std::string>::iterator it = entries.begin(); it != entries.end(); ++it )
for( std::list<std::wstring>::iterator it = entries_sort.begin(); it != entries_sort.end(); ++it )
{
std::wstring name = *it;
std::wstring fullname = path + name;
if( m_pStorage->isDirectory( fullname ) )
{
copy( indent + 1, fullname + L"/", storageOut, withRoot );
}
else
{
copy_stream(fullname, storageOut, withRoot);
}
}
}
private:
void copy_stream(std::wstring streamName, POLE::Storage * storageOut, bool withRoot = true)
{
POLE::Stream *stream = new POLE::Stream(m_pStorage, streamName);
if (!stream) return;
stream->seek(0);
POLE::int64 size_stream = stream->size();
if (withRoot == false)
{
int pos = (int)streamName.find(L"/");
if (pos >= 0)
streamName = streamName.substr(pos + 1);
}
POLE::Stream *streamNew = new POLE::Stream(storageOut, streamName, true, size_stream);
if (!streamNew) return;
unsigned char* data_stream = new unsigned char[(unsigned int)size_stream];
if (data_stream)
{
stream->read(data_stream, size_stream);
streamNew->write(data_stream, size_stream);
delete []data_stream;
data_stream = NULL;
}
streamNew->flush();
delete streamNew;
delete stream;
}
POLE::Storage* m_pStorage;
};
}

View File

@ -1,108 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ParagraphPropertyExceptions.h"
namespace DocFileFormat
{
class TableInfo
{
public:
bool fInTable;
bool fTtp;
bool fInnerTtp;
bool fInnerTableCell;
unsigned int iTap;
TableInfo( ParagraphPropertyExceptions* papx, int nWordVersion):
fInTable(false), fTtp(false), fInnerTtp(false), fInnerTableCell(false), iTap(0)
{
if ( papx != NULL )
{
for ( std::list<SinglePropertyModifier>::iterator iter = papx->grpprl->begin(); iter != papx->grpprl->end(); iter++ )
{
switch(iter->OpCode)
{
case sprmOldPFInTable:
case sprmPFInTable:
{
fInTable = ( iter->Arguments[0] == 1 ) ? (true) : (false);
if (iTap < 1 && fInTable) iTap = 1;
}break;
//case sprmOldPFTtp:
case sprmOldPTtp:
case sprmPFTtp:
{
fTtp = ( iter->Arguments[0] == 1 ) ? (true) : (false);
}break;
//case sprmOldPFInnerTableCell:
case sprmPFInnerTableCell:
{
fInnerTableCell = ( iter->Arguments[0] == 1 ) ? (true) : (false);
}break;
//case sprmOldPFInnerTtp:
case sprmPFInnerTtp:
{
fInnerTtp = ( iter->Arguments[0] == 1 ) ? (true) : (false);
}break;
//case sprmOldPItap:
case sprmPItap:
{
iTap = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
if ( iTap > 0 )
{
fInTable = true;
}
}break;
}
if ( (int)( iter->OpCode ) == sprmTCnf )//66a
{
iTap = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
if ( iTap > 0 )
{
fInTable = true;
}
}
}
}
}
};
}

View File

@ -1,115 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "PropertyExceptions.h"
#include "ParagraphPropertyExceptions.h"
#include "VirtualStreamReader.h"
namespace DocFileFormat
{
class TablePropertyExceptions: public PropertyExceptions
{
public:
/// Parses the bytes to retrieve a TAPX
TablePropertyExceptions(unsigned char* bytes, int size, int nWordVersion) :
PropertyExceptions(bytes, size, nWordVersion), m_bSkipShading97 (FALSE)
{
//not yet implemented
}
virtual ~TablePropertyExceptions()
{
}
/// Extracts the TAPX SPRMs out of a PAPX
TablePropertyExceptions (ParagraphPropertyExceptions* papx, POLE::Stream* dataStream, int nWordVersion) :
PropertyExceptions()
{
VirtualStreamReader oBinReader(dataStream, 0, nWordVersion);
m_bSkipShading97 = FALSE;
for (std::list<SinglePropertyModifier>::iterator oSpmIter = papx->grpprl->begin(); oSpmIter != papx->grpprl->end(); ++oSpmIter)
{
if (oSpmIter->OpCode == sprmTDefTableShd ||
oSpmIter->OpCode == sprmTDefTableShd2nd ||
oSpmIter->OpCode == sprmTDefTableShd3rd)
{
m_bSkipShading97 = TRUE;
}
if (oSpmIter->Type == TAP)
{
grpprl->push_back(*oSpmIter);
}
else if (oSpmIter->OpCode == sprmPTableProps)
{
//there is a native TAP in the data stream
unsigned int fc = FormatUtils::BytesToUInt32(oSpmIter->Arguments, 0, oSpmIter->argumentsSize);
//get the size of the following grpprl
oBinReader.Seek(fc, 0/* STREAM_SEEK_SET*/);
unsigned char* sizebytes = oBinReader.ReadBytes(2, true);
unsigned short grpprlSize = FormatUtils::BytesToUInt16(sizebytes, 0, 2);
//read the grpprl
unsigned char* grpprlBytes = oBinReader.ReadBytes(grpprlSize, true);
//parse the grpprl
PropertyExceptions externalPx(grpprlBytes, grpprlSize, nWordVersion);
for (std::list<SinglePropertyModifier>::iterator oIter = externalPx.grpprl->begin(); oIter != externalPx.grpprl->end(); ++oIter)
{
if (oIter->Type == TAP)
{
grpprl->push_back(*oIter);
}
}
RELEASEARRAYOBJECTS(grpprlBytes);
RELEASEARRAYOBJECTS(sizebytes);
}
}
}
inline bool IsSkipShading97 ()
{
return m_bSkipShading97;
}
private:
bool m_bSkipShading97; // пропускать правило от Word97
};
}

View File

@ -1,151 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "ByteStructure.h"
namespace DocFileFormat
{
// BreaK Descriptor (BKD)
class Tbkd : public ByteStructure
{
public:
friend class TextboxMapping;
static const int STRUCTURE_SIZE = 6;
Tbkd() : ipgd(0), itxbxs(0), dcpDepend(0), icol(0), fTableBreak(false), fColumnBreak(false), fMarked(false), fUnk(false), fTextOverflow(false)
{
}
virtual ~Tbkd()
{
}
virtual ByteStructure* ConstructObject (VirtualStreamReader* reader, int length)
{
Tbkd* pTbkd = new Tbkd();
pTbkd->ipgd = reader->ReadInt16();
pTbkd->itxbxs = pTbkd->ipgd;
pTbkd->dcpDepend = reader->ReadInt16();
int flag = (int)reader->ReadInt16();
pTbkd->icol = (unsigned short)FormatUtils::BitmaskToInt(flag, 0x00FF);
pTbkd->fTableBreak = FormatUtils::BitmaskToBool(flag, 0x0100);
pTbkd->fColumnBreak = FormatUtils::BitmaskToBool(flag, 0x0200);
pTbkd->fMarked = FormatUtils::BitmaskToBool(flag, 0x0400);
pTbkd->fUnk = FormatUtils::BitmaskToBool(flag, 0x0800);
pTbkd->fTextOverflow = FormatUtils::BitmaskToBool(flag, 0x1000);
return static_cast<ByteStructure*>(pTbkd);
}
private:
bool bUsed = false;
/// Except in textbox BKD, index to PGD in plfpgd that describes the page this break is on
short ipgd;
/// In textbox BKD
short itxbxs;
/// Number of cp's considered for this break; note that the CP's described by cpDepend in this break reside in the next BKD
short dcpDepend;
unsigned short icol;
/// When true, this indicates that this is a table break.
bool fTableBreak;
/// When true, this indicates that this is a column break.
bool fColumnBreak;
/// Used temporarily while Word is running.
bool fMarked;
/// In textbox BKD, when true indicates cpLim of this textbox is not valid
bool fUnk;
/// In textbox BKD, when true indicates that text overflows the end of this textbox
bool fTextOverflow;
};
class FTXBXS : public ByteStructure
{
friend class TextboxMapping;
public:
static const int STRUCTURE_SIZE = 22;
struct FTXBXSReusable
{
int iNextReuse;
int cReusable;
};
struct FTXBXNonReusable
{
int cTxbx;
int cTxbxEdit; // This value MUST be zero and MUST be ignored.
};
FTXBXS ()
{
}
virtual ~FTXBXS()
{
}
virtual ByteStructure* ConstructObject (VirtualStreamReader* reader, int length)
{
FTXBXS* pFTXBXS = new FTXBXS();
if (!pFTXBXS) return NULL;
pFTXBXS->reusable01 = reader->ReadInt32();
pFTXBXS->reusable02 = reader->ReadInt32();
pFTXBXS->fReusable = reader->ReadInt16();
pFTXBXS->itxbxsDest = reader->ReadInt32();
pFTXBXS->lid = reader->ReadInt32();
pFTXBXS->txidUndo = reader->ReadInt32();
return static_cast<ByteStructure*>(pFTXBXS);
}
private:
int reusable01;
int reusable02;
short fReusable; // ставим в 0 потому что один TbRef привязан к одному элементу
int itxbxsDest; // This field MUST be ignored.
int lid;
int txidUndo; // This value MUST be zero and MUST be ignored.
};
}

View File

@ -1,294 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "IBinaryReader.h"
#include "../Common/FormatUtils.h"
#include "../../Common/3dParty/pole/pole.h"
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
class VirtualStreamReader : public IBinaryReader
{
public:
VirtualStreamReader (POLE::Stream* _stream, ULONG _position , int _nWordVersion) :
nWordVersion(_nWordVersion), stream(_stream), position(_position)
{
if ( stream == NULL )return;
stream->seek(position);
}
virtual ~VirtualStreamReader()
{
}
virtual unsigned short ReadUInt16()
{
unsigned short rdUShort = 0;
if (( stream != NULL ) && (position + 2 < stream->size()))
{
stream->seek( position );
stream->read((unsigned char*)(&rdUShort), sizeof( rdUShort ));
}
position += sizeof( rdUShort );
return rdUShort;
}
virtual short ReadInt16()
{
short rdShort = 0;
if (( stream != NULL ) && (position + 2 < stream->size()))
{
stream->seek( position );
stream->read((unsigned char*)(&rdShort), sizeof( rdShort ));
}
position += sizeof( rdShort );
return rdShort;
}
virtual int ReadInt32()
{
_INT32 rdInt = 0;
if (( stream != NULL ) && (position + 4 < stream->size()))
{
stream->seek( position );
stream->read( (unsigned char*) &rdInt, sizeof( rdInt ) );
}
position += sizeof( rdInt );
return rdInt;
}
virtual unsigned int ReadUInt32()
{
_UINT32 rdUInt = 0;
if (( stream != NULL ) && (position + 4 < stream->size()))
{
stream->seek( position );
stream->read((unsigned char*) &rdUInt, sizeof( rdUInt ) );
}
position += sizeof( rdUInt );
return rdUInt;
}
virtual unsigned char ReadByte()
{
unsigned char rdByte = 0;
if (( stream != NULL ) && (position + 1 < stream->size()))
{
stream->seek( position);
stream->read( (unsigned char*)&rdByte, sizeof( rdByte ) );
}
position += sizeof( rdByte );
return rdByte;
}
virtual unsigned char* ReadBytes( unsigned int count, bool isResultNeeded )
{
unsigned char *rdBytes = NULL;
if ( count > 0 && isResultNeeded)
{
if (position + count > stream->size())
{
if (position > stream->size()) count = 0;
else count = (unsigned int)(stream->size() - position);
}
rdBytes = new unsigned char[count];
}
if ( stream != NULL && rdBytes != NULL )
{
stream->seek( position );
count = (unsigned int)stream->read( rdBytes, count );
}
position += count;
return rdBytes;
}
virtual unsigned long GetPosition() const
{
return (unsigned long)this->position;
}
virtual unsigned long GetSize() const
{
unsigned long size = 0;
if ( stream != NULL )
{
size = (unsigned long)stream->size();
}
return size;
}
virtual int Seek( int offset, int origin )
{
if ( stream != NULL )
{
if (origin > 1)
{
}
stream->seek( offset );
position = offset;
return offset;
}
else
{
return 0;
}
}
std::wstring ReadXst()
{
if (!stream) return L"";
std::wstring wstrResult;
unsigned char* xstz = NULL;
unsigned char* cch = NULL;
if (nWordVersion > 0)
{
int cchSize = 1;
cch = ReadBytes( cchSize, true );
int xstzSize = DocFileFormat::FormatUtils::BytesToUChar( cch, 0, cchSize ) * 1;
xstz = ReadBytes(xstzSize, true);
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_WINDOWS_1250 );
}
else
{
int cchSize = 2;
cch = ReadBytes( cchSize, true );
int xstzSize = DocFileFormat::FormatUtils::BytesToInt16( cch, 0, cchSize ) * 2;
xstz = ReadBytes(xstzSize, true);
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_UTF16 );
}
RELEASEARRAYOBJECTS(xstz);
RELEASEARRAYOBJECTS(cch);
return wstrResult;
}
/// Read a length prefixed Unicode string from the given stream.
/// The string must have the following structure:
/// unsigned char 1 - 4: Character count (cch)
/// unsigned char 5 - (cch*2)+4: Unicode characters terminated by \0
std::wstring ReadLengthPrefixedUnicodeString()
{
std::wstring result;
int cch = ReadInt32();
if ( cch > 0 )
{
//dont read the terminating zero
unsigned char* stringBytes = ReadBytes( ( cch * 2 ), true );
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( ( cch * 2 ) - 2 ), ENCODING_UTF16 );
RELEASEARRAYOBJECTS( stringBytes );
}
return result;
}
/// Read a length prefixed ANSI string from the given stream.
/// The string must have the following structure:
/// unsigned char 1-4: Character count (cch)
/// unsigned char 5-cch+4: ANSI characters terminated by \0
std::wstring ReadLengthPrefixedAnsiString(unsigned int max_size)
{
std::wstring result;
unsigned int cch = ReadUInt32();
unsigned char* stringBytes = NULL;
if (cch > max_size)
{
//error ... skip to 0
unsigned int pos_orinal = GetPosition();
unsigned int pos = 0;
stringBytes = ReadBytes( max_size, true );
if (stringBytes)
{
while(pos < max_size)
{
if (stringBytes[pos] == 0)
break;
pos++;
}
}
Seek(pos_orinal + pos - 1, 0);
}else
if ( cch > 0 )
{
//dont read the terminating zero
stringBytes = ReadBytes( cch, true );
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( cch - 1 ), ENCODING_WINDOWS_1250);
}
RELEASEARRAYOBJECTS( stringBytes );
return result;
}
int nWordVersion;
private:
POLE::uint64 position;
POLE::Stream* stream;
};

View File

@ -1,75 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "ByteStructure.h"
namespace DocFileFormat
{
class WideString: public std::wstring, public ByteStructure
{
public:
WideString( VirtualStreamReader reader, int length ): std::wstring()
{
}
WideString(): std::wstring()
{
}
virtual ~WideString()
{
}
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
{
WideString* newObject = new WideString();
unsigned char *bytes = NULL;
bytes = reader->ReadBytes( length, true );
//It's a real string table
if (reader->nWordVersion > 0)
{
FormatUtils::GetSTLCollectionFromBytes<WideString>( newObject, bytes, length, ENCODING_WINDOWS_1250 );
}
else
{
FormatUtils::GetSTLCollectionFromBytes<WideString>( newObject, bytes, length, ENCODING_UTF16 );
}
RELEASEARRAYOBJECTS( bytes );
return static_cast<ByteStructure*>( newObject );
}
};
}

View File

@ -1,268 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2014-12-16T18:28:23
#
#-------------------------------------------------
QT -= core gui
TARGET = DocFormatLib
TEMPLATE = lib
CONFIG += staticlib
CORE_ROOT_DIR = $$PWD/../../..
PWD_ROOT_DIR = $$PWD
CONFIG += core_x2t
include(../../../Common/base.pri)
#BOOST
include($$PWD/../../../Common/3dParty/boost/boost.pri)
DEFINES += UNICODE \
_UNICODE \
DONT_WRITE_EMBEDDED_FONTS
core_mac {
#QMAKE_MAC_SDK = macosx10.11
}
SOURCES += \
../DocFormatLib.cpp \
../../../Common/3dParty/pole/pole.cpp \
../../DocDocxConverter/EncryptionHeader.cpp \
../../DocDocxConverter/DrawingPrimitives.cpp \
../../DocDocxConverter/Spa.cpp \
../../DocDocxConverter/OleObject.cpp
core_release {
SOURCES += \
docformatlib_converter.cpp
}
core_debug {
SOURCES += \
../../DocDocxConverter/AnnotationReferenceDescriptor.cpp \
../../DocDocxConverter/CharacterPropertiesMapping.cpp \
../../DocDocxConverter/Converter.cpp \
../../DocDocxConverter/DocumentMapping.cpp \
../../DocDocxConverter/DocumentProperties.cpp \
../../DocDocxConverter/FontFamilyName.cpp \
../../DocDocxConverter/FontTableMapping.cpp \
../../DocDocxConverter/FooterMapping.cpp \
../../DocDocxConverter/FormattedDiskPageCHPX.cpp \
../../DocDocxConverter/FormattedDiskPagePAPX.cpp \
../../DocDocxConverter/HeaderAndFooterTable.cpp \
../../DocDocxConverter/HeaderMapping.cpp \
../../DocDocxConverter/LanguageIdMapping.cpp \
../../DocDocxConverter/ListData.cpp \
../../DocDocxConverter/ListLevel.cpp \
../../DocDocxConverter/ListTable.cpp \
../../DocDocxConverter/MainDocumentMapping.cpp \
../../DocDocxConverter/NumberingMapping.cpp \
../../DocDocxConverter/OpenXmlPackage.cpp \
../../DocDocxConverter/ParagraphHeight.cpp \
../../DocDocxConverter/ParagraphPropertiesMapping.cpp \
../../DocDocxConverter/ParagraphPropertyExceptions.cpp \
../../DocDocxConverter/PictureDescriptor.cpp \
../../DocDocxConverter/PieceTable.cpp \
../../DocDocxConverter/PropertiesMapping.cpp \
../../DocDocxConverter/PropertyExceptions.cpp \
../../DocDocxConverter/RevisionData.cpp \
../../DocDocxConverter/SectionPropertiesMapping.cpp \
../../DocDocxConverter/SettingsMapping.cpp \
../../DocDocxConverter/SinglePropertyModifier.cpp \
../../DocDocxConverter/StyleSheet.cpp \
../../DocDocxConverter/StyleSheetDescription.cpp \
../../DocDocxConverter/StyleSheetInformation.cpp \
../../DocDocxConverter/StyleSheetMapping.cpp \
../../DocDocxConverter/TableCellPropertiesMapping.cpp \
../../DocDocxConverter/TableMapping.cpp \
../../DocDocxConverter/TablePropertiesMapping.cpp \
../../DocDocxConverter/TableRowPropertiesMapping.cpp \
../../DocDocxConverter/TextboxMapping.cpp \
../../DocDocxConverter/VMLPictureMapping.cpp \
../../DocDocxConverter/VMLShapeMapping.cpp \
../../DocDocxConverter/VMLShapeTypeMapping.cpp \
../../DocDocxConverter/WordDocument.cpp \
../../DocDocxConverter/WordprocessingDocument.cpp \
../../DocDocxConverter/FormFieldData.cpp \
../../DocDocxConverter/OfficeDrawing/Record.cpp \
../../DocDocxConverter/OfficeDrawing/RecordFactory.cpp \
../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.cpp
}
HEADERS += \
../DocFormatLib.h \
../../Common/Aggregat.h \
../../Common/FormatUtils.h \
../../Common/IOperand.h \
../../Common/IVirtualConstructor.h \
../../Common/LanguageCodes.h \
../../Common/Singleton.h \
../../Common/SPRMCodes.h \
../../Common/TargetOptions.h \
../../Common/TextMark.h \
../../Common/utf8.h \
../../Common/XmlTools.h \
../../DocDocxConverter/AbstractOpenXmlMapping.h \
../../DocDocxConverter/AnnotationOwnerList.h \
../../DocDocxConverter/AnnotationReferenceDescriptor.h \
../../DocDocxConverter/AutoSummaryInfo.h \
../../DocDocxConverter/BookmarkFirst.h \
../../DocDocxConverter/BorderCode.h \
../../DocDocxConverter/ByteStructure.h \
../../DocDocxConverter/CharacterPropertiesMapping.h \
../../DocDocxConverter/CharacterPropertyExceptions.h \
../../DocDocxConverter/CharacterRange.h \
../../DocDocxConverter/CommentsMapping.h \
../../DocDocxConverter/ContentTypes.h \
../../DocDocxConverter/ConversionContext.h \
../../DocDocxConverter/Converter.h \
../../DocDocxConverter/DateAndTime.h \
../../DocDocxConverter/DocumentMapping.h \
../../DocDocxConverter/DocumentProperties.h \
../../DocDocxConverter/DocumentTypographyInfo.h \
../../DocDocxConverter/DrawingObjectGrid.h \
../../DocDocxConverter/EmuValue.h \
../../DocDocxConverter/EndnoteDescriptor.h \
../../DocDocxConverter/EndnotesMapping.h \
../../DocDocxConverter/FieldCharacter.h \
../../DocDocxConverter/FileInformationBlock.h \
../../DocDocxConverter/FixedPointNumber.h \
../../DocDocxConverter/FontFamilyName.h \
../../DocDocxConverter/FontTableMapping.h \
../../DocDocxConverter/FooterMapping.h \
../../DocDocxConverter/FootnoteDescriptor.h \
../../DocDocxConverter/FootnotesMapping.h \
../../DocDocxConverter/FormattedDiskPage.h \
../../DocDocxConverter/FormattedDiskPageCHPX.h \
../../DocDocxConverter/FormattedDiskPagePAPX.h \
../../DocDocxConverter/Global.h \
../../DocDocxConverter/HeaderAndFooterTable.h \
../../DocDocxConverter/HeaderMapping.h \
../../DocDocxConverter/IBinaryReader.h \
../../DocDocxConverter/IMapping.h \
../../DocDocxConverter/IVisitable.h \
../../DocDocxConverter/LanguageId.h \
../../DocDocxConverter/LanguageIdMapping.h \
../../DocDocxConverter/LineSpacingDescriptor.h \
../../DocDocxConverter/ListData.h \
../../DocDocxConverter/ListFormatOverride.h \
../../DocDocxConverter/ListFormatOverrideLevel.h \
../../DocDocxConverter/ListFormatOverrideTable.h \
../../DocDocxConverter/ListLevel.h \
../../DocDocxConverter/ListTable.h \
../../DocDocxConverter/MainDocumentMapping.h \
../../DocDocxConverter/MemoryStream.h \
../../DocDocxConverter/NumberingMapping.h \
../../DocDocxConverter/OfficeArtContent.h \
../../DocDocxConverter/OleObject.h \
../../DocDocxConverter/OleObjectMapping.h \
../../DocDocxConverter/OpenXmlPackage.h \
../../DocDocxConverter/ParagraphHeight.h \
../../DocDocxConverter/ParagraphPropertiesMapping.h \
../../DocDocxConverter/ParagraphPropertyExceptions.h \
../../DocDocxConverter/PictureDescriptor.h \
../../DocDocxConverter/PieceDescriptor.h \
../../DocDocxConverter/PieceTable.h \
../../DocDocxConverter/Plex.h \
../../DocDocxConverter/PropertiesMapping.h \
../../DocDocxConverter/PropertyExceptions.h \
../../DocDocxConverter/RevisionData.h \
../../DocDocxConverter/RGBColor.h \
../../DocDocxConverter/SectionDescriptor.h \
../../DocDocxConverter/SectionPropertiesMapping.h \
../../DocDocxConverter/SectionPropertyExceptions.h \
../../DocDocxConverter/SettingsMapping.h \
../../DocDocxConverter/ShadingDescriptor.h \
../../DocDocxConverter/SinglePropertyModifier.h \
../../DocDocxConverter/Spa.h \
../../DocDocxConverter/SprmTDefTable.h \
../../DocDocxConverter/StringTable.h \
../../DocDocxConverter/StructuredStorageReader.h \
../../DocDocxConverter/StyleSheet.h \
../../DocDocxConverter/StyleSheetDescription.h \
../../DocDocxConverter/StyleSheetInformation.h \
../../DocDocxConverter/StyleSheetMapping.h \
../../DocDocxConverter/TabDescriptor.h \
../../DocDocxConverter/TableCellPropertiesMapping.h \
../../DocDocxConverter/TableInfo.h \
../../DocDocxConverter/TableMapping.h \
../../DocDocxConverter/TablePropertiesMapping.h \
../../DocDocxConverter/TablePropertyExceptions.h \
../../DocDocxConverter/TableRowPropertiesMapping.h \
../../DocDocxConverter/Tbkd.h \
../../DocDocxConverter/TextboxMapping.h \
../../DocDocxConverter/TwipsValue.h \
../../DocDocxConverter/VirtualStreamReader.h \
../../DocDocxConverter/VMLPictureMapping.h \
../../DocDocxConverter/VMLShapeMapping.h \
../../DocDocxConverter/VMLShapeTypeMapping.h \
../../DocDocxConverter/WideString.h \
../../DocDocxConverter/WordDocument.h \
../../DocDocxConverter/WordprocessingDocument.h \
../../DocDocxConverter/OfficeDrawing/BitmapBlip.h \
../../DocDocxConverter/OfficeDrawing/BlipStoreContainer.h \
../../DocDocxConverter/OfficeDrawing/BlipStoreEntry.h \
../../DocDocxConverter/OfficeDrawing/ChildAnchor.h \
../../DocDocxConverter/OfficeDrawing/ClientAnchor.h \
../../DocDocxConverter/OfficeDrawing/ClientData.h \
../../DocDocxConverter/OfficeDrawing/DrawingContainer.h \
../../DocDocxConverter/OfficeDrawing/DrawingGroup.h \
../../DocDocxConverter/OfficeDrawing/DrawingGroupRecord.h \
../../DocDocxConverter/OfficeDrawing/DrawingRecord.h \
../../DocDocxConverter/OfficeDrawing/GroupContainer.h \
../../DocDocxConverter/OfficeDrawing/GroupShapeRecord.h \
../../DocDocxConverter/OfficeDrawing/MetafilePictBlip.h \
../../DocDocxConverter/OfficeDrawing/OfficeArtClientTextbox.h \
../../DocDocxConverter/OfficeDrawing/PathParser.h \
../../DocDocxConverter/OfficeDrawing/PathSegment.h \
../../DocDocxConverter/OfficeDrawing/Record.h \
../../DocDocxConverter/OfficeDrawing/RecordFactory.h \
../../DocDocxConverter/OfficeDrawing/RegularContainer.h \
../../DocDocxConverter/OfficeDrawing/Shape.h \
../../DocDocxConverter/OfficeDrawing/ShapeContainer.h \
../../DocDocxConverter/OfficeDrawing/ShapeOptions.h \
../../DocDocxConverter/OfficeDrawing/ShapeType.h \
../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.h \
../../DocDocxConverter/OfficeDrawing/SplitMenuColorContainer.h \
../../DocDocxConverter/OfficeDrawing/UnknownRecord.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/ArcType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/ArrowType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/BevelType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/BlockArcType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/BracketsType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/CalloutsType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/CanType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/Connector.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/CubeType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/DiamondType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/DonutType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/FlowChartType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/FoldedCornerlType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/HeartType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/HexagonType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/IsoscelesTriangleType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/LightningBoltType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/LineType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/MoonType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/NoSmokingType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/OctagonType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/OvalType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/ParallelogramType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/PentagonType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/PictureFrameType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/PlaqueType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/PlusType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/RectangleType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/RightTriangleType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/RoundedRectangleType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/SmileyFaceType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/StarType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/SunType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/TextboxType.h \
../../DocDocxConverter/OfficeDrawing/Shapetypes/TrapezoidType.h \
../../../Common/3dParty/pole/pole.h \
../../DocDocxConverter/EncryptionHeader.h \
../../DocDocxConverter/DrawingPrimitives.h

View File

@ -1,80 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "../../DocDocxConverter/AnnotationReferenceDescriptor.cpp"
#include "../../DocDocxConverter/CharacterPropertiesMapping.cpp"
#include "../../DocDocxConverter/Converter.cpp"
#include "../../DocDocxConverter/DocumentMapping.cpp"
#include "../../DocDocxConverter/DocumentProperties.cpp"
#include "../../DocDocxConverter/FontFamilyName.cpp"
#include "../../DocDocxConverter/FontTableMapping.cpp"
#include "../../DocDocxConverter/FooterMapping.cpp"
#include "../../DocDocxConverter/FormattedDiskPageCHPX.cpp"
#include "../../DocDocxConverter/FormattedDiskPagePAPX.cpp"
#include "../../DocDocxConverter/HeaderAndFooterTable.cpp"
#include "../../DocDocxConverter/HeaderMapping.cpp"
#include "../../DocDocxConverter/LanguageIdMapping.cpp"
#include "../../DocDocxConverter/ListData.cpp"
#include "../../DocDocxConverter/ListLevel.cpp"
#include "../../DocDocxConverter/ListTable.cpp"
#include "../../DocDocxConverter/MainDocumentMapping.cpp"
#include "../../DocDocxConverter/NumberingMapping.cpp"
#include "../../DocDocxConverter/OpenXmlPackage.cpp"
#include "../../DocDocxConverter/ParagraphHeight.cpp"
#include "../../DocDocxConverter/ParagraphPropertiesMapping.cpp"
#include "../../DocDocxConverter/ParagraphPropertyExceptions.cpp"
#include "../../DocDocxConverter/PictureDescriptor.cpp"
#include "../../DocDocxConverter/PieceTable.cpp"
#include "../../DocDocxConverter/PropertiesMapping.cpp"
#include "../../DocDocxConverter/PropertyExceptions.cpp"
#include "../../DocDocxConverter/RevisionData.cpp"
#include "../../DocDocxConverter/SectionPropertiesMapping.cpp"
#include "../../DocDocxConverter/SettingsMapping.cpp"
#include "../../DocDocxConverter/SinglePropertyModifier.cpp"
#include "../../DocDocxConverter/StyleSheet.cpp"
#include "../../DocDocxConverter/StyleSheetDescription.cpp"
#include "../../DocDocxConverter/StyleSheetInformation.cpp"
#include "../../DocDocxConverter/StyleSheetMapping.cpp"
#include "../../DocDocxConverter/TableCellPropertiesMapping.cpp"
#include "../../DocDocxConverter/TableMapping.cpp"
#include "../../DocDocxConverter/TablePropertiesMapping.cpp"
#include "../../DocDocxConverter/TableRowPropertiesMapping.cpp"
#include "../../DocDocxConverter/TextboxMapping.cpp"
#include "../../DocDocxConverter/VMLPictureMapping.cpp"
#include "../../DocDocxConverter/VMLShapeMapping.cpp"
#include "../../DocDocxConverter/VMLShapeTypeMapping.cpp"
#include "../../DocDocxConverter/WordDocument.cpp"
#include "../../DocDocxConverter/WordprocessingDocument.cpp"
#include "../../DocDocxConverter/FormFieldData.cpp"
#include "../../DocDocxConverter/OfficeDrawing/Record.cpp"
#include "../../DocDocxConverter/OfficeDrawing/RecordFactory.cpp"
#include "../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.cpp"

View File

@ -1,885 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
6967B2F91E27C26800A129E2 /* DocFormatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */; };
6967B3E11E27C2D500A129E2 /* pole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3DF1E27C2D500A129E2 /* pole.cpp */; };
6967B4C31E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */; };
6967B4C41E27C52700A129E2 /* CharacterPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */; };
6967B4C51E27C52700A129E2 /* Converter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F41E27C52700A129E2 /* Converter.cpp */; };
6967B4C61E27C52700A129E2 /* DocumentMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */; };
6967B4C71E27C52700A129E2 /* DocumentProperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */; };
6967B4C81E27C52700A129E2 /* DrawingPrimitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */; };
6967B4C91E27C52700A129E2 /* EncryptionHeader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */; };
6967B4CA1E27C52700A129E2 /* FontFamilyName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4071E27C52700A129E2 /* FontFamilyName.cpp */; };
6967B4CB1E27C52700A129E2 /* FontTableMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4091E27C52700A129E2 /* FontTableMapping.cpp */; };
6967B4CC1E27C52700A129E2 /* FooterMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B40B1E27C52700A129E2 /* FooterMapping.cpp */; };
6967B4CD1E27C52700A129E2 /* FormattedDiskPageCHPX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */; };
6967B4CE1E27C52700A129E2 /* FormattedDiskPagePAPX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */; };
6967B4CF1E27C52700A129E2 /* HeaderAndFooterTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */; };
6967B4D01E27C52700A129E2 /* HeaderMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4171E27C52700A129E2 /* HeaderMapping.cpp */; };
6967B4D11E27C52700A129E2 /* LanguageIdMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */; };
6967B4D21E27C52700A129E2 /* ListData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4201E27C52700A129E2 /* ListData.cpp */; };
6967B4D31E27C52700A129E2 /* ListLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4251E27C52700A129E2 /* ListLevel.cpp */; };
6967B4D41E27C52700A129E2 /* ListTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4271E27C52700A129E2 /* ListTable.cpp */; };
6967B4D51E27C52700A129E2 /* MainDocumentMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */; };
6967B4D61E27C52700A129E2 /* NumberingMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */; };
6967B4DA1E27C52700A129E2 /* OleObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47A1E27C52700A129E2 /* OleObject.cpp */; };
6967B4DB1E27C52700A129E2 /* OpenXmlPackage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */; };
6967B4DC1E27C52700A129E2 /* ParagraphHeight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */; };
6967B4DD1E27C52700A129E2 /* ParagraphPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */; };
6967B4DE1E27C52700A129E2 /* ParagraphPropertyExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */; };
6967B4DF1E27C52700A129E2 /* PictureDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */; };
6967B4E01E27C52700A129E2 /* PieceTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4881E27C52700A129E2 /* PieceTable.cpp */; };
6967B4E11E27C52700A129E2 /* PropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */; };
6967B4E21E27C52700A129E2 /* PropertyExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */; };
6967B4E31E27C52700A129E2 /* RevisionData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48F1E27C52700A129E2 /* RevisionData.cpp */; };
6967B4E41E27C52700A129E2 /* SectionPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */; };
6967B4E51E27C52700A129E2 /* SettingsMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4961E27C52700A129E2 /* SettingsMapping.cpp */; };
6967B4E61E27C52700A129E2 /* SinglePropertyModifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */; };
6967B4E71E27C52700A129E2 /* Spa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B49B1E27C52700A129E2 /* Spa.cpp */; };
6967B4E81E27C52700A129E2 /* StyleSheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A01E27C52700A129E2 /* StyleSheet.cpp */; };
6967B4E91E27C52700A129E2 /* StyleSheetDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */; };
6967B4EA1E27C52700A129E2 /* StyleSheetInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */; };
6967B4EB1E27C52700A129E2 /* StyleSheetMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */; };
6967B4EC1E27C52700A129E2 /* TableCellPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */; };
6967B4ED1E27C52700A129E2 /* TableMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4AC1E27C52700A129E2 /* TableMapping.cpp */; };
6967B4EE1E27C52700A129E2 /* TablePropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */; };
6967B4EF1E27C52700A129E2 /* TableRowPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */; };
6967B4F01E27C52700A129E2 /* TextboxMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */; };
6967B4F11E27C52700A129E2 /* VMLPictureMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */; };
6967B4F21E27C52700A129E2 /* VMLShapeMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */; };
6967B4F31E27C52700A129E2 /* VMLShapeTypeMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */; };
6967B4F41E27C52700A129E2 /* WordDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BF1E27C52700A129E2 /* WordDocument.cpp */; };
6967B4F51E27C52700A129E2 /* WordprocessingDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */; };
8A1BC15322DF34920084799E /* ShapeTypeFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */; };
8A1BC15422DF34920084799E /* Record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC14922DF34920084799E /* Record.cpp */; };
8A1BC15522DF34920084799E /* RecordFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC15222DF34920084799E /* RecordFactory.cpp */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
6967B2E91E27C23A00A129E2 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDocFormatLib.a; sourceTree = BUILT_PRODUCTS_DIR; };
6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DocFormatLib.cpp; path = ../../DocFormatLib.cpp; sourceTree = "<group>"; };
6967B2F81E27C26800A129E2 /* DocFormatLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DocFormatLib.h; path = ../../DocFormatLib.h; sourceTree = "<group>"; };
6967B2FB1E27C2A100A129E2 /* Aggregat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Aggregat.h; sourceTree = "<group>"; };
6967B2FC1E27C2A100A129E2 /* Callback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Callback.h; sourceTree = "<group>"; };
6967B2FD1E27C2A100A129E2 /* FormatUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatUtils.h; sourceTree = "<group>"; };
6967B2FE1E27C2A100A129E2 /* IOperand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOperand.h; sourceTree = "<group>"; };
6967B2FF1E27C2A100A129E2 /* IVirtualConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IVirtualConstructor.h; sourceTree = "<group>"; };
6967B3001E27C2A100A129E2 /* LanguageCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageCodes.h; sourceTree = "<group>"; };
6967B3011E27C2A100A129E2 /* Singleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Singleton.h; sourceTree = "<group>"; };
6967B3021E27C2A100A129E2 /* SPRMCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPRMCodes.h; sourceTree = "<group>"; };
6967B3031E27C2A100A129E2 /* TargetOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetOptions.h; sourceTree = "<group>"; };
6967B3041E27C2A100A129E2 /* TextMark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextMark.h; sourceTree = "<group>"; };
6967B3051E27C2A100A129E2 /* utf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utf8.h; sourceTree = "<group>"; };
6967B3061E27C2A100A129E2 /* XmlTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlTools.h; sourceTree = "<group>"; };
6967B3DF1E27C2D500A129E2 /* pole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pole.cpp; path = ../../../../Common/3dParty/pole/pole.cpp; sourceTree = "<group>"; };
6967B3E01E27C2D500A129E2 /* pole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pole.h; path = ../../../../Common/3dParty/pole/pole.h; sourceTree = "<group>"; };
6967B3E51E27C52700A129E2 /* AbstractOpenXmlMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractOpenXmlMapping.h; sourceTree = "<group>"; };
6967B3E61E27C52700A129E2 /* AnnotationOwnerList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnnotationOwnerList.h; sourceTree = "<group>"; };
6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnnotationReferenceDescriptor.cpp; sourceTree = "<group>"; };
6967B3E81E27C52700A129E2 /* AnnotationReferenceDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnnotationReferenceDescriptor.h; sourceTree = "<group>"; };
6967B3E91E27C52700A129E2 /* AutoSummaryInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoSummaryInfo.h; sourceTree = "<group>"; };
6967B3EA1E27C52700A129E2 /* BookmarkFirst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BookmarkFirst.h; sourceTree = "<group>"; };
6967B3EB1E27C52700A129E2 /* BorderCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BorderCode.h; sourceTree = "<group>"; };
6967B3EC1E27C52700A129E2 /* ByteStructure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteStructure.h; sourceTree = "<group>"; };
6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CharacterPropertiesMapping.cpp; sourceTree = "<group>"; };
6967B3EE1E27C52700A129E2 /* CharacterPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterPropertiesMapping.h; sourceTree = "<group>"; };
6967B3EF1E27C52700A129E2 /* CharacterPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterPropertyExceptions.h; sourceTree = "<group>"; };
6967B3F01E27C52700A129E2 /* CharacterRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterRange.h; sourceTree = "<group>"; };
6967B3F11E27C52700A129E2 /* CommentsMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommentsMapping.h; sourceTree = "<group>"; };
6967B3F21E27C52700A129E2 /* ContentTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentTypes.h; sourceTree = "<group>"; };
6967B3F31E27C52700A129E2 /* ConversionContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConversionContext.h; sourceTree = "<group>"; };
6967B3F41E27C52700A129E2 /* Converter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Converter.cpp; sourceTree = "<group>"; };
6967B3F51E27C52700A129E2 /* Converter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Converter.h; sourceTree = "<group>"; };
6967B3F61E27C52700A129E2 /* DateAndTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateAndTime.h; sourceTree = "<group>"; };
6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentMapping.cpp; sourceTree = "<group>"; };
6967B3F81E27C52700A129E2 /* DocumentMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentMapping.h; sourceTree = "<group>"; };
6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentProperties.cpp; sourceTree = "<group>"; };
6967B3FA1E27C52700A129E2 /* DocumentProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentProperties.h; sourceTree = "<group>"; };
6967B3FB1E27C52700A129E2 /* DocumentTypographyInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentTypographyInfo.h; sourceTree = "<group>"; };
6967B3FC1E27C52700A129E2 /* DrawingObjectGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingObjectGrid.h; sourceTree = "<group>"; };
6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DrawingPrimitives.cpp; sourceTree = "<group>"; };
6967B3FE1E27C52700A129E2 /* DrawingPrimitives.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingPrimitives.h; sourceTree = "<group>"; };
6967B3FF1E27C52700A129E2 /* EmuValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmuValue.h; sourceTree = "<group>"; };
6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EncryptionHeader.cpp; sourceTree = "<group>"; };
6967B4011E27C52700A129E2 /* EncryptionHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EncryptionHeader.h; sourceTree = "<group>"; };
6967B4021E27C52700A129E2 /* EndnoteDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndnoteDescriptor.h; sourceTree = "<group>"; };
6967B4031E27C52700A129E2 /* EndnotesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndnotesMapping.h; sourceTree = "<group>"; };
6967B4041E27C52700A129E2 /* FieldCharacter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FieldCharacter.h; sourceTree = "<group>"; };
6967B4051E27C52700A129E2 /* FileInformationBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileInformationBlock.h; sourceTree = "<group>"; };
6967B4061E27C52700A129E2 /* FixedPointNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixedPointNumber.h; sourceTree = "<group>"; };
6967B4071E27C52700A129E2 /* FontFamilyName.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontFamilyName.cpp; sourceTree = "<group>"; };
6967B4081E27C52700A129E2 /* FontFamilyName.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontFamilyName.h; sourceTree = "<group>"; };
6967B4091E27C52700A129E2 /* FontTableMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontTableMapping.cpp; sourceTree = "<group>"; };
6967B40A1E27C52700A129E2 /* FontTableMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontTableMapping.h; sourceTree = "<group>"; };
6967B40B1E27C52700A129E2 /* FooterMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FooterMapping.cpp; sourceTree = "<group>"; };
6967B40C1E27C52700A129E2 /* FooterMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FooterMapping.h; sourceTree = "<group>"; };
6967B40D1E27C52700A129E2 /* FootnoteDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FootnoteDescriptor.h; sourceTree = "<group>"; };
6967B40E1E27C52700A129E2 /* FootnotesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FootnotesMapping.h; sourceTree = "<group>"; };
6967B40F1E27C52700A129E2 /* FormattedDiskPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPage.h; sourceTree = "<group>"; };
6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormattedDiskPageCHPX.cpp; sourceTree = "<group>"; };
6967B4111E27C52700A129E2 /* FormattedDiskPageCHPX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPageCHPX.h; sourceTree = "<group>"; };
6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormattedDiskPagePAPX.cpp; sourceTree = "<group>"; };
6967B4131E27C52700A129E2 /* FormattedDiskPagePAPX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPagePAPX.h; sourceTree = "<group>"; };
6967B4141E27C52700A129E2 /* Global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Global.h; sourceTree = "<group>"; };
6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderAndFooterTable.cpp; sourceTree = "<group>"; };
6967B4161E27C52700A129E2 /* HeaderAndFooterTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderAndFooterTable.h; sourceTree = "<group>"; };
6967B4171E27C52700A129E2 /* HeaderMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderMapping.cpp; sourceTree = "<group>"; };
6967B4181E27C52700A129E2 /* HeaderMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderMapping.h; sourceTree = "<group>"; };
6967B4191E27C52700A129E2 /* IBinaryReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IBinaryReader.h; sourceTree = "<group>"; };
6967B41A1E27C52700A129E2 /* IMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMapping.h; sourceTree = "<group>"; };
6967B41B1E27C52700A129E2 /* IVisitable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IVisitable.h; sourceTree = "<group>"; };
6967B41C1E27C52700A129E2 /* LanguageId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageId.h; sourceTree = "<group>"; };
6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LanguageIdMapping.cpp; sourceTree = "<group>"; };
6967B41E1E27C52700A129E2 /* LanguageIdMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageIdMapping.h; sourceTree = "<group>"; };
6967B41F1E27C52700A129E2 /* LineSpacingDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineSpacingDescriptor.h; sourceTree = "<group>"; };
6967B4201E27C52700A129E2 /* ListData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListData.cpp; sourceTree = "<group>"; };
6967B4211E27C52700A129E2 /* ListData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListData.h; sourceTree = "<group>"; };
6967B4221E27C52700A129E2 /* ListFormatOverride.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverride.h; sourceTree = "<group>"; };
6967B4231E27C52700A129E2 /* ListFormatOverrideLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverrideLevel.h; sourceTree = "<group>"; };
6967B4241E27C52700A129E2 /* ListFormatOverrideTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverrideTable.h; sourceTree = "<group>"; };
6967B4251E27C52700A129E2 /* ListLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListLevel.cpp; sourceTree = "<group>"; };
6967B4261E27C52700A129E2 /* ListLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListLevel.h; sourceTree = "<group>"; };
6967B4271E27C52700A129E2 /* ListTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListTable.cpp; sourceTree = "<group>"; };
6967B4281E27C52700A129E2 /* ListTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListTable.h; sourceTree = "<group>"; };
6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MainDocumentMapping.cpp; sourceTree = "<group>"; };
6967B42A1E27C52700A129E2 /* MainDocumentMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainDocumentMapping.h; sourceTree = "<group>"; };
6967B42B1E27C52700A129E2 /* MemoryStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = "<group>"; };
6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NumberingMapping.cpp; sourceTree = "<group>"; };
6967B42D1E27C52700A129E2 /* NumberingMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberingMapping.h; sourceTree = "<group>"; };
6967B42E1E27C52700A129E2 /* OfficeArtContent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtContent.h; sourceTree = "<group>"; };
6967B47A1E27C52700A129E2 /* OleObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OleObject.cpp; sourceTree = "<group>"; };
6967B47B1E27C52700A129E2 /* OleObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OleObject.h; sourceTree = "<group>"; };
6967B47C1E27C52700A129E2 /* OleObjectMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OleObjectMapping.h; sourceTree = "<group>"; };
6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OpenXmlPackage.cpp; sourceTree = "<group>"; };
6967B47E1E27C52700A129E2 /* OpenXmlPackage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenXmlPackage.h; sourceTree = "<group>"; };
6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphHeight.cpp; sourceTree = "<group>"; };
6967B4801E27C52700A129E2 /* ParagraphHeight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphHeight.h; sourceTree = "<group>"; };
6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphPropertiesMapping.cpp; sourceTree = "<group>"; };
6967B4821E27C52700A129E2 /* ParagraphPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphPropertiesMapping.h; sourceTree = "<group>"; };
6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphPropertyExceptions.cpp; sourceTree = "<group>"; };
6967B4841E27C52700A129E2 /* ParagraphPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphPropertyExceptions.h; sourceTree = "<group>"; };
6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PictureDescriptor.cpp; sourceTree = "<group>"; };
6967B4861E27C52700A129E2 /* PictureDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureDescriptor.h; sourceTree = "<group>"; };
6967B4871E27C52700A129E2 /* PieceDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieceDescriptor.h; sourceTree = "<group>"; };
6967B4881E27C52700A129E2 /* PieceTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PieceTable.cpp; sourceTree = "<group>"; };
6967B4891E27C52700A129E2 /* PieceTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieceTable.h; sourceTree = "<group>"; };
6967B48A1E27C52700A129E2 /* Plex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Plex.h; sourceTree = "<group>"; };
6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertiesMapping.cpp; sourceTree = "<group>"; };
6967B48C1E27C52700A129E2 /* PropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertiesMapping.h; sourceTree = "<group>"; };
6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertyExceptions.cpp; sourceTree = "<group>"; };
6967B48E1E27C52700A129E2 /* PropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertyExceptions.h; sourceTree = "<group>"; };
6967B48F1E27C52700A129E2 /* RevisionData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RevisionData.cpp; sourceTree = "<group>"; };
6967B4901E27C52700A129E2 /* RevisionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RevisionData.h; sourceTree = "<group>"; };
6967B4911E27C52700A129E2 /* RGBColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RGBColor.h; sourceTree = "<group>"; };
6967B4921E27C52700A129E2 /* SectionDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionDescriptor.h; sourceTree = "<group>"; };
6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SectionPropertiesMapping.cpp; sourceTree = "<group>"; };
6967B4941E27C52700A129E2 /* SectionPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionPropertiesMapping.h; sourceTree = "<group>"; };
6967B4951E27C52700A129E2 /* SectionPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionPropertyExceptions.h; sourceTree = "<group>"; };
6967B4961E27C52700A129E2 /* SettingsMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsMapping.cpp; sourceTree = "<group>"; };
6967B4971E27C52700A129E2 /* SettingsMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsMapping.h; sourceTree = "<group>"; };
6967B4981E27C52700A129E2 /* ShadingDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadingDescriptor.h; sourceTree = "<group>"; };
6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SinglePropertyModifier.cpp; sourceTree = "<group>"; };
6967B49A1E27C52700A129E2 /* SinglePropertyModifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinglePropertyModifier.h; sourceTree = "<group>"; };
6967B49B1E27C52700A129E2 /* Spa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Spa.cpp; sourceTree = "<group>"; };
6967B49C1E27C52700A129E2 /* Spa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spa.h; sourceTree = "<group>"; };
6967B49D1E27C52700A129E2 /* SprmTDefTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SprmTDefTable.h; sourceTree = "<group>"; };
6967B49E1E27C52700A129E2 /* StringTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringTable.h; sourceTree = "<group>"; };
6967B49F1E27C52700A129E2 /* StructuredStorageReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StructuredStorageReader.h; sourceTree = "<group>"; };
6967B4A01E27C52700A129E2 /* StyleSheet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheet.cpp; sourceTree = "<group>"; };
6967B4A11E27C52700A129E2 /* StyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheet.h; sourceTree = "<group>"; };
6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetDescription.cpp; sourceTree = "<group>"; };
6967B4A31E27C52700A129E2 /* StyleSheetDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetDescription.h; sourceTree = "<group>"; };
6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetInformation.cpp; sourceTree = "<group>"; };
6967B4A51E27C52700A129E2 /* StyleSheetInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetInformation.h; sourceTree = "<group>"; };
6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetMapping.cpp; sourceTree = "<group>"; };
6967B4A71E27C52700A129E2 /* StyleSheetMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetMapping.h; sourceTree = "<group>"; };
6967B4A81E27C52700A129E2 /* TabDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TabDescriptor.h; sourceTree = "<group>"; };
6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableCellPropertiesMapping.cpp; sourceTree = "<group>"; };
6967B4AA1E27C52700A129E2 /* TableCellPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableCellPropertiesMapping.h; sourceTree = "<group>"; };
6967B4AB1E27C52700A129E2 /* TableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableInfo.h; sourceTree = "<group>"; };
6967B4AC1E27C52700A129E2 /* TableMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableMapping.cpp; sourceTree = "<group>"; };
6967B4AD1E27C52700A129E2 /* TableMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableMapping.h; sourceTree = "<group>"; };
6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TablePropertiesMapping.cpp; sourceTree = "<group>"; };
6967B4AF1E27C52700A129E2 /* TablePropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePropertiesMapping.h; sourceTree = "<group>"; };
6967B4B01E27C52700A129E2 /* TablePropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePropertyExceptions.h; sourceTree = "<group>"; };
6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableRowPropertiesMapping.cpp; sourceTree = "<group>"; };
6967B4B21E27C52700A129E2 /* TableRowPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableRowPropertiesMapping.h; sourceTree = "<group>"; };
6967B4B31E27C52700A129E2 /* Tbkd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tbkd.h; sourceTree = "<group>"; };
6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextboxMapping.cpp; sourceTree = "<group>"; };
6967B4B51E27C52700A129E2 /* TextboxMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextboxMapping.h; sourceTree = "<group>"; };
6967B4B61E27C52700A129E2 /* TwipsValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwipsValue.h; sourceTree = "<group>"; };
6967B4B71E27C52700A129E2 /* VirtualStreamReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualStreamReader.h; sourceTree = "<group>"; };
6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLPictureMapping.cpp; sourceTree = "<group>"; };
6967B4B91E27C52700A129E2 /* VMLPictureMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLPictureMapping.h; sourceTree = "<group>"; };
6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLShapeMapping.cpp; sourceTree = "<group>"; };
6967B4BB1E27C52700A129E2 /* VMLShapeMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLShapeMapping.h; sourceTree = "<group>"; };
6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLShapeTypeMapping.cpp; sourceTree = "<group>"; };
6967B4BD1E27C52700A129E2 /* VMLShapeTypeMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLShapeTypeMapping.h; sourceTree = "<group>"; };
6967B4BE1E27C52700A129E2 /* WideString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WideString.h; sourceTree = "<group>"; };
6967B4BF1E27C52700A129E2 /* WordDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WordDocument.cpp; sourceTree = "<group>"; };
6967B4C01E27C52700A129E2 /* WordDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordDocument.h; sourceTree = "<group>"; };
6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WordprocessingDocument.cpp; sourceTree = "<group>"; };
6967B4C21E27C52700A129E2 /* WordprocessingDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordprocessingDocument.h; sourceTree = "<group>"; };
8A1BC11122DF348F0084799E /* ClientAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientAnchor.h; sourceTree = "<group>"; };
8A1BC11222DF34900084799E /* ShapeTypeFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeTypeFactory.h; sourceTree = "<group>"; };
8A1BC11322DF34900084799E /* OfficeArtClientTextbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtClientTextbox.h; sourceTree = "<group>"; };
8A1BC11422DF34900084799E /* DiagramBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramBooleanProperties.h; sourceTree = "<group>"; };
8A1BC11522DF34900084799E /* MetafilePictBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetafilePictBlip.h; sourceTree = "<group>"; };
8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeTypeFactory.cpp; sourceTree = "<group>"; };
8A1BC11722DF34900084799E /* DrawingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingContainer.h; sourceTree = "<group>"; };
8A1BC11822DF34900084799E /* UnknownRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownRecord.h; sourceTree = "<group>"; };
8A1BC11922DF34900084799E /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
8A1BC11A22DF34900084799E /* BitmapBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitmapBlip.h; sourceTree = "<group>"; };
8A1BC11B22DF34910084799E /* OfficeArtFRITContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtFRITContainer.h; sourceTree = "<group>"; };
8A1BC11C22DF34910084799E /* DrawingGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroup.h; sourceTree = "<group>"; };
8A1BC11D22DF34910084799E /* ShapeContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeContainer.h; sourceTree = "<group>"; };
8A1BC11E22DF34910084799E /* ShapeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeType.h; sourceTree = "<group>"; };
8A1BC12022DF34910084799E /* PlaqueType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaqueType.h; sourceTree = "<group>"; };
8A1BC12122DF34910084799E /* CubeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CubeType.h; sourceTree = "<group>"; };
8A1BC12222DF34910084799E /* LightningBoltType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightningBoltType.h; sourceTree = "<group>"; };
8A1BC12322DF34910084799E /* OvalType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OvalType.h; sourceTree = "<group>"; };
8A1BC12422DF34910084799E /* CalloutsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalloutsType.h; sourceTree = "<group>"; };
8A1BC12522DF34910084799E /* TextboxType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextboxType.h; sourceTree = "<group>"; };
8A1BC12622DF34910084799E /* HexagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexagonType.h; sourceTree = "<group>"; };
8A1BC12722DF34910084799E /* NoSmokingType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoSmokingType.h; sourceTree = "<group>"; };
8A1BC12822DF34910084799E /* OctagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OctagonType.h; sourceTree = "<group>"; };
8A1BC12922DF34910084799E /* ArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArcType.h; sourceTree = "<group>"; };
8A1BC12A22DF34910084799E /* CanType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanType.h; sourceTree = "<group>"; };
8A1BC12B22DF34910084799E /* PictureFrameType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureFrameType.h; sourceTree = "<group>"; };
8A1BC12C22DF34910084799E /* BevelType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BevelType.h; sourceTree = "<group>"; };
8A1BC12D22DF34910084799E /* MoonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoonType.h; sourceTree = "<group>"; };
8A1BC12E22DF34910084799E /* FoldedCornerlType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoldedCornerlType.h; sourceTree = "<group>"; };
8A1BC12F22DF34910084799E /* PentagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PentagonType.h; sourceTree = "<group>"; };
8A1BC13022DF34910084799E /* BracketsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BracketsType.h; sourceTree = "<group>"; };
8A1BC13122DF34910084799E /* IsoscelesTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IsoscelesTriangleType.h; sourceTree = "<group>"; };
8A1BC13222DF34910084799E /* StarType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StarType.h; sourceTree = "<group>"; };
8A1BC13322DF34910084799E /* DonutType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DonutType.h; sourceTree = "<group>"; };
8A1BC13422DF34910084799E /* RectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RectangleType.h; sourceTree = "<group>"; };
8A1BC13522DF34910084799E /* TrapezoidType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrapezoidType.h; sourceTree = "<group>"; };
8A1BC13622DF34910084799E /* ArrowType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArrowType.h; sourceTree = "<group>"; };
8A1BC13722DF34910084799E /* SmileyFaceType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmileyFaceType.h; sourceTree = "<group>"; };
8A1BC13822DF34910084799E /* PlusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlusType.h; sourceTree = "<group>"; };
8A1BC13922DF34910084799E /* RightTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RightTriangleType.h; sourceTree = "<group>"; };
8A1BC13A22DF34910084799E /* HeartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeartType.h; sourceTree = "<group>"; };
8A1BC13B22DF34910084799E /* SunType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SunType.h; sourceTree = "<group>"; };
8A1BC13C22DF34910084799E /* Connector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Connector.h; sourceTree = "<group>"; };
8A1BC13D22DF34910084799E /* RoundedRectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoundedRectangleType.h; sourceTree = "<group>"; };
8A1BC13E22DF34910084799E /* BlockArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockArcType.h; sourceTree = "<group>"; };
8A1BC13F22DF34910084799E /* WordArtText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordArtText.h; sourceTree = "<group>"; };
8A1BC14022DF34910084799E /* FlowChartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlowChartType.h; sourceTree = "<group>"; };
8A1BC14122DF34910084799E /* LineType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineType.h; sourceTree = "<group>"; };
8A1BC14222DF34910084799E /* DiamondType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiamondType.h; sourceTree = "<group>"; };
8A1BC14322DF34910084799E /* ParallelogramType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParallelogramType.h; sourceTree = "<group>"; };
8A1BC14422DF34910084799E /* ClientData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientData.h; sourceTree = "<group>"; };
8A1BC14522DF34910084799E /* GroupShapeRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupShapeRecord.h; sourceTree = "<group>"; };
8A1BC14622DF34910084799E /* Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shape.h; sourceTree = "<group>"; };
8A1BC14722DF34910084799E /* BlipStoreEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreEntry.h; sourceTree = "<group>"; };
8A1BC14822DF34920084799E /* DrawingGroupRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroupRecord.h; sourceTree = "<group>"; };
8A1BC14922DF34920084799E /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
8A1BC14A22DF34920084799E /* SplitMenuColorContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplitMenuColorContainer.h; sourceTree = "<group>"; };
8A1BC14B22DF34920084799E /* ShapeOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeOptions.h; sourceTree = "<group>"; };
8A1BC14C22DF34920084799E /* RegularContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegularContainer.h; sourceTree = "<group>"; };
8A1BC14D22DF34920084799E /* BlipStoreContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreContainer.h; sourceTree = "<group>"; };
8A1BC14E22DF34920084799E /* RecordFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordFactory.h; sourceTree = "<group>"; };
8A1BC14F22DF34920084799E /* DrawingRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingRecord.h; sourceTree = "<group>"; };
8A1BC15022DF34920084799E /* GroupContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupContainer.h; sourceTree = "<group>"; };
8A1BC15122DF34920084799E /* ChildAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildAnchor.h; sourceTree = "<group>"; };
8A1BC15222DF34920084799E /* RecordFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RecordFactory.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
6967B2E81E27C23A00A129E2 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
6967B2E21E27C23A00A129E2 = {
isa = PBXGroup;
children = (
6967B2ED1E27C23A00A129E2 /* DocFormatLib */,
6967B2EC1E27C23A00A129E2 /* Products */,
);
sourceTree = "<group>";
};
6967B2EC1E27C23A00A129E2 /* Products */ = {
isa = PBXGroup;
children = (
6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */,
);
name = Products;
sourceTree = "<group>";
};
6967B2ED1E27C23A00A129E2 /* DocFormatLib */ = {
isa = PBXGroup;
children = (
6967B3E41E27C52700A129E2 /* DocDocxConverter */,
6967B3E21E27C2D700A129E2 /* pole */,
6967B2FA1E27C2A100A129E2 /* Common */,
6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */,
6967B2F81E27C26800A129E2 /* DocFormatLib.h */,
);
path = DocFormatLib;
sourceTree = "<group>";
};
6967B2FA1E27C2A100A129E2 /* Common */ = {
isa = PBXGroup;
children = (
6967B2FB1E27C2A100A129E2 /* Aggregat.h */,
6967B2FC1E27C2A100A129E2 /* Callback.h */,
6967B2FD1E27C2A100A129E2 /* FormatUtils.h */,
6967B2FE1E27C2A100A129E2 /* IOperand.h */,
6967B2FF1E27C2A100A129E2 /* IVirtualConstructor.h */,
6967B3001E27C2A100A129E2 /* LanguageCodes.h */,
6967B3011E27C2A100A129E2 /* Singleton.h */,
6967B3021E27C2A100A129E2 /* SPRMCodes.h */,
6967B3031E27C2A100A129E2 /* TargetOptions.h */,
6967B3041E27C2A100A129E2 /* TextMark.h */,
6967B3051E27C2A100A129E2 /* utf8.h */,
6967B3061E27C2A100A129E2 /* XmlTools.h */,
);
name = Common;
path = ../../../Common;
sourceTree = "<group>";
};
6967B3E21E27C2D700A129E2 /* pole */ = {
isa = PBXGroup;
children = (
6967B3DF1E27C2D500A129E2 /* pole.cpp */,
6967B3E01E27C2D500A129E2 /* pole.h */,
);
name = pole;
sourceTree = "<group>";
};
6967B3E41E27C52700A129E2 /* DocDocxConverter */ = {
isa = PBXGroup;
children = (
6967B3E51E27C52700A129E2 /* AbstractOpenXmlMapping.h */,
6967B3E61E27C52700A129E2 /* AnnotationOwnerList.h */,
6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */,
6967B3E81E27C52700A129E2 /* AnnotationReferenceDescriptor.h */,
6967B3E91E27C52700A129E2 /* AutoSummaryInfo.h */,
6967B3EA1E27C52700A129E2 /* BookmarkFirst.h */,
6967B3EB1E27C52700A129E2 /* BorderCode.h */,
6967B3EC1E27C52700A129E2 /* ByteStructure.h */,
6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */,
6967B3EE1E27C52700A129E2 /* CharacterPropertiesMapping.h */,
6967B3EF1E27C52700A129E2 /* CharacterPropertyExceptions.h */,
6967B3F01E27C52700A129E2 /* CharacterRange.h */,
6967B3F11E27C52700A129E2 /* CommentsMapping.h */,
6967B3F21E27C52700A129E2 /* ContentTypes.h */,
6967B3F31E27C52700A129E2 /* ConversionContext.h */,
6967B3F41E27C52700A129E2 /* Converter.cpp */,
6967B3F51E27C52700A129E2 /* Converter.h */,
6967B3F61E27C52700A129E2 /* DateAndTime.h */,
6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */,
6967B3F81E27C52700A129E2 /* DocumentMapping.h */,
6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */,
6967B3FA1E27C52700A129E2 /* DocumentProperties.h */,
6967B3FB1E27C52700A129E2 /* DocumentTypographyInfo.h */,
6967B3FC1E27C52700A129E2 /* DrawingObjectGrid.h */,
6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */,
6967B3FE1E27C52700A129E2 /* DrawingPrimitives.h */,
6967B3FF1E27C52700A129E2 /* EmuValue.h */,
6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */,
6967B4011E27C52700A129E2 /* EncryptionHeader.h */,
6967B4021E27C52700A129E2 /* EndnoteDescriptor.h */,
6967B4031E27C52700A129E2 /* EndnotesMapping.h */,
6967B4041E27C52700A129E2 /* FieldCharacter.h */,
6967B4051E27C52700A129E2 /* FileInformationBlock.h */,
6967B4061E27C52700A129E2 /* FixedPointNumber.h */,
6967B4071E27C52700A129E2 /* FontFamilyName.cpp */,
6967B4081E27C52700A129E2 /* FontFamilyName.h */,
6967B4091E27C52700A129E2 /* FontTableMapping.cpp */,
6967B40A1E27C52700A129E2 /* FontTableMapping.h */,
6967B40B1E27C52700A129E2 /* FooterMapping.cpp */,
6967B40C1E27C52700A129E2 /* FooterMapping.h */,
6967B40D1E27C52700A129E2 /* FootnoteDescriptor.h */,
6967B40E1E27C52700A129E2 /* FootnotesMapping.h */,
6967B40F1E27C52700A129E2 /* FormattedDiskPage.h */,
6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */,
6967B4111E27C52700A129E2 /* FormattedDiskPageCHPX.h */,
6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */,
6967B4131E27C52700A129E2 /* FormattedDiskPagePAPX.h */,
6967B4141E27C52700A129E2 /* Global.h */,
6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */,
6967B4161E27C52700A129E2 /* HeaderAndFooterTable.h */,
6967B4171E27C52700A129E2 /* HeaderMapping.cpp */,
6967B4181E27C52700A129E2 /* HeaderMapping.h */,
6967B4191E27C52700A129E2 /* IBinaryReader.h */,
6967B41A1E27C52700A129E2 /* IMapping.h */,
6967B41B1E27C52700A129E2 /* IVisitable.h */,
6967B41C1E27C52700A129E2 /* LanguageId.h */,
6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */,
6967B41E1E27C52700A129E2 /* LanguageIdMapping.h */,
6967B41F1E27C52700A129E2 /* LineSpacingDescriptor.h */,
6967B4201E27C52700A129E2 /* ListData.cpp */,
6967B4211E27C52700A129E2 /* ListData.h */,
6967B4221E27C52700A129E2 /* ListFormatOverride.h */,
6967B4231E27C52700A129E2 /* ListFormatOverrideLevel.h */,
6967B4241E27C52700A129E2 /* ListFormatOverrideTable.h */,
6967B4251E27C52700A129E2 /* ListLevel.cpp */,
6967B4261E27C52700A129E2 /* ListLevel.h */,
6967B4271E27C52700A129E2 /* ListTable.cpp */,
6967B4281E27C52700A129E2 /* ListTable.h */,
6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */,
6967B42A1E27C52700A129E2 /* MainDocumentMapping.h */,
6967B42B1E27C52700A129E2 /* MemoryStream.h */,
6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */,
6967B42D1E27C52700A129E2 /* NumberingMapping.h */,
6967B42E1E27C52700A129E2 /* OfficeArtContent.h */,
6967B42F1E27C52700A129E2 /* OfficeDrawing */,
6967B47A1E27C52700A129E2 /* OleObject.cpp */,
6967B47B1E27C52700A129E2 /* OleObject.h */,
6967B47C1E27C52700A129E2 /* OleObjectMapping.h */,
6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */,
6967B47E1E27C52700A129E2 /* OpenXmlPackage.h */,
6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */,
6967B4801E27C52700A129E2 /* ParagraphHeight.h */,
6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */,
6967B4821E27C52700A129E2 /* ParagraphPropertiesMapping.h */,
6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */,
6967B4841E27C52700A129E2 /* ParagraphPropertyExceptions.h */,
6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */,
6967B4861E27C52700A129E2 /* PictureDescriptor.h */,
6967B4871E27C52700A129E2 /* PieceDescriptor.h */,
6967B4881E27C52700A129E2 /* PieceTable.cpp */,
6967B4891E27C52700A129E2 /* PieceTable.h */,
6967B48A1E27C52700A129E2 /* Plex.h */,
6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */,
6967B48C1E27C52700A129E2 /* PropertiesMapping.h */,
6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */,
6967B48E1E27C52700A129E2 /* PropertyExceptions.h */,
6967B48F1E27C52700A129E2 /* RevisionData.cpp */,
6967B4901E27C52700A129E2 /* RevisionData.h */,
6967B4911E27C52700A129E2 /* RGBColor.h */,
6967B4921E27C52700A129E2 /* SectionDescriptor.h */,
6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */,
6967B4941E27C52700A129E2 /* SectionPropertiesMapping.h */,
6967B4951E27C52700A129E2 /* SectionPropertyExceptions.h */,
6967B4961E27C52700A129E2 /* SettingsMapping.cpp */,
6967B4971E27C52700A129E2 /* SettingsMapping.h */,
6967B4981E27C52700A129E2 /* ShadingDescriptor.h */,
6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */,
6967B49A1E27C52700A129E2 /* SinglePropertyModifier.h */,
6967B49B1E27C52700A129E2 /* Spa.cpp */,
6967B49C1E27C52700A129E2 /* Spa.h */,
6967B49D1E27C52700A129E2 /* SprmTDefTable.h */,
6967B49E1E27C52700A129E2 /* StringTable.h */,
6967B49F1E27C52700A129E2 /* StructuredStorageReader.h */,
6967B4A01E27C52700A129E2 /* StyleSheet.cpp */,
6967B4A11E27C52700A129E2 /* StyleSheet.h */,
6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */,
6967B4A31E27C52700A129E2 /* StyleSheetDescription.h */,
6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */,
6967B4A51E27C52700A129E2 /* StyleSheetInformation.h */,
6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */,
6967B4A71E27C52700A129E2 /* StyleSheetMapping.h */,
6967B4A81E27C52700A129E2 /* TabDescriptor.h */,
6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */,
6967B4AA1E27C52700A129E2 /* TableCellPropertiesMapping.h */,
6967B4AB1E27C52700A129E2 /* TableInfo.h */,
6967B4AC1E27C52700A129E2 /* TableMapping.cpp */,
6967B4AD1E27C52700A129E2 /* TableMapping.h */,
6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */,
6967B4AF1E27C52700A129E2 /* TablePropertiesMapping.h */,
6967B4B01E27C52700A129E2 /* TablePropertyExceptions.h */,
6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */,
6967B4B21E27C52700A129E2 /* TableRowPropertiesMapping.h */,
6967B4B31E27C52700A129E2 /* Tbkd.h */,
6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */,
6967B4B51E27C52700A129E2 /* TextboxMapping.h */,
6967B4B61E27C52700A129E2 /* TwipsValue.h */,
6967B4B71E27C52700A129E2 /* VirtualStreamReader.h */,
6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */,
6967B4B91E27C52700A129E2 /* VMLPictureMapping.h */,
6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */,
6967B4BB1E27C52700A129E2 /* VMLShapeMapping.h */,
6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */,
6967B4BD1E27C52700A129E2 /* VMLShapeTypeMapping.h */,
6967B4BE1E27C52700A129E2 /* WideString.h */,
6967B4BF1E27C52700A129E2 /* WordDocument.cpp */,
6967B4C01E27C52700A129E2 /* WordDocument.h */,
6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */,
6967B4C21E27C52700A129E2 /* WordprocessingDocument.h */,
);
name = DocDocxConverter;
path = ../../../DocDocxConverter;
sourceTree = "<group>";
};
6967B42F1E27C52700A129E2 /* OfficeDrawing */ = {
isa = PBXGroup;
children = (
8A1BC11A22DF34900084799E /* BitmapBlip.h */,
8A1BC14D22DF34920084799E /* BlipStoreContainer.h */,
8A1BC14722DF34910084799E /* BlipStoreEntry.h */,
8A1BC15122DF34920084799E /* ChildAnchor.h */,
8A1BC11122DF348F0084799E /* ClientAnchor.h */,
8A1BC14422DF34910084799E /* ClientData.h */,
8A1BC11422DF34900084799E /* DiagramBooleanProperties.h */,
8A1BC11722DF34900084799E /* DrawingContainer.h */,
8A1BC11C22DF34910084799E /* DrawingGroup.h */,
8A1BC14822DF34920084799E /* DrawingGroupRecord.h */,
8A1BC14F22DF34920084799E /* DrawingRecord.h */,
8A1BC15022DF34920084799E /* GroupContainer.h */,
8A1BC14522DF34910084799E /* GroupShapeRecord.h */,
8A1BC11522DF34900084799E /* MetafilePictBlip.h */,
8A1BC11322DF34900084799E /* OfficeArtClientTextbox.h */,
8A1BC11B22DF34910084799E /* OfficeArtFRITContainer.h */,
8A1BC14922DF34920084799E /* Record.cpp */,
8A1BC11922DF34900084799E /* Record.h */,
8A1BC15222DF34920084799E /* RecordFactory.cpp */,
8A1BC14E22DF34920084799E /* RecordFactory.h */,
8A1BC14C22DF34920084799E /* RegularContainer.h */,
8A1BC14622DF34910084799E /* Shape.h */,
8A1BC11D22DF34910084799E /* ShapeContainer.h */,
8A1BC14B22DF34920084799E /* ShapeOptions.h */,
8A1BC11E22DF34910084799E /* ShapeType.h */,
8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */,
8A1BC11222DF34900084799E /* ShapeTypeFactory.h */,
8A1BC11F22DF34910084799E /* Shapetypes */,
8A1BC14A22DF34920084799E /* SplitMenuColorContainer.h */,
8A1BC11822DF34900084799E /* UnknownRecord.h */,
);
path = OfficeDrawing;
sourceTree = "<group>";
};
8A1BC11F22DF34910084799E /* Shapetypes */ = {
isa = PBXGroup;
children = (
8A1BC12022DF34910084799E /* PlaqueType.h */,
8A1BC12122DF34910084799E /* CubeType.h */,
8A1BC12222DF34910084799E /* LightningBoltType.h */,
8A1BC12322DF34910084799E /* OvalType.h */,
8A1BC12422DF34910084799E /* CalloutsType.h */,
8A1BC12522DF34910084799E /* TextboxType.h */,
8A1BC12622DF34910084799E /* HexagonType.h */,
8A1BC12722DF34910084799E /* NoSmokingType.h */,
8A1BC12822DF34910084799E /* OctagonType.h */,
8A1BC12922DF34910084799E /* ArcType.h */,
8A1BC12A22DF34910084799E /* CanType.h */,
8A1BC12B22DF34910084799E /* PictureFrameType.h */,
8A1BC12C22DF34910084799E /* BevelType.h */,
8A1BC12D22DF34910084799E /* MoonType.h */,
8A1BC12E22DF34910084799E /* FoldedCornerlType.h */,
8A1BC12F22DF34910084799E /* PentagonType.h */,
8A1BC13022DF34910084799E /* BracketsType.h */,
8A1BC13122DF34910084799E /* IsoscelesTriangleType.h */,
8A1BC13222DF34910084799E /* StarType.h */,
8A1BC13322DF34910084799E /* DonutType.h */,
8A1BC13422DF34910084799E /* RectangleType.h */,
8A1BC13522DF34910084799E /* TrapezoidType.h */,
8A1BC13622DF34910084799E /* ArrowType.h */,
8A1BC13722DF34910084799E /* SmileyFaceType.h */,
8A1BC13822DF34910084799E /* PlusType.h */,
8A1BC13922DF34910084799E /* RightTriangleType.h */,
8A1BC13A22DF34910084799E /* HeartType.h */,
8A1BC13B22DF34910084799E /* SunType.h */,
8A1BC13C22DF34910084799E /* Connector.h */,
8A1BC13D22DF34910084799E /* RoundedRectangleType.h */,
8A1BC13E22DF34910084799E /* BlockArcType.h */,
8A1BC13F22DF34910084799E /* WordArtText.h */,
8A1BC14022DF34910084799E /* FlowChartType.h */,
8A1BC14122DF34910084799E /* LineType.h */,
8A1BC14222DF34910084799E /* DiamondType.h */,
8A1BC14322DF34910084799E /* ParallelogramType.h */,
);
path = Shapetypes;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
6967B2EA1E27C23A00A129E2 /* DocFormatLib */ = {
isa = PBXNativeTarget;
buildConfigurationList = 6967B2F41E27C23A00A129E2 /* Build configuration list for PBXNativeTarget "DocFormatLib" */;
buildPhases = (
6967B2E71E27C23A00A129E2 /* Sources */,
6967B2E81E27C23A00A129E2 /* Frameworks */,
6967B2E91E27C23A00A129E2 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = DocFormatLib;
productName = DocFormatLib;
productReference = 6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */;
productType = "com.apple.product-type.library.static";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
6967B2E31E27C23A00A129E2 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0820;
ORGANIZATIONNAME = OnlyOffce;
TargetAttributes = {
6967B2EA1E27C23A00A129E2 = {
CreatedOnToolsVersion = 8.2;
DevelopmentTeam = 2WH24U26GJ;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 6967B2E61E27C23A00A129E2 /* Build configuration list for PBXProject "DocFormatLib" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
);
mainGroup = 6967B2E21E27C23A00A129E2;
productRefGroup = 6967B2EC1E27C23A00A129E2 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
6967B2EA1E27C23A00A129E2 /* DocFormatLib */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
6967B2E71E27C23A00A129E2 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6967B4D11E27C52700A129E2 /* LanguageIdMapping.cpp in Sources */,
6967B4E61E27C52700A129E2 /* SinglePropertyModifier.cpp in Sources */,
6967B4C91E27C52700A129E2 /* EncryptionHeader.cpp in Sources */,
6967B4ED1E27C52700A129E2 /* TableMapping.cpp in Sources */,
6967B4F31E27C52700A129E2 /* VMLShapeTypeMapping.cpp in Sources */,
6967B4E31E27C52700A129E2 /* RevisionData.cpp in Sources */,
6967B4D41E27C52700A129E2 /* ListTable.cpp in Sources */,
6967B4F41E27C52700A129E2 /* WordDocument.cpp in Sources */,
6967B4CD1E27C52700A129E2 /* FormattedDiskPageCHPX.cpp in Sources */,
6967B4F11E27C52700A129E2 /* VMLPictureMapping.cpp in Sources */,
6967B4D21E27C52700A129E2 /* ListData.cpp in Sources */,
6967B4E21E27C52700A129E2 /* PropertyExceptions.cpp in Sources */,
6967B4C31E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp in Sources */,
6967B4D31E27C52700A129E2 /* ListLevel.cpp in Sources */,
8A1BC15322DF34920084799E /* ShapeTypeFactory.cpp in Sources */,
6967B4CB1E27C52700A129E2 /* FontTableMapping.cpp in Sources */,
6967B4EC1E27C52700A129E2 /* TableCellPropertiesMapping.cpp in Sources */,
6967B4C61E27C52700A129E2 /* DocumentMapping.cpp in Sources */,
6967B4CA1E27C52700A129E2 /* FontFamilyName.cpp in Sources */,
6967B4F21E27C52700A129E2 /* VMLShapeMapping.cpp in Sources */,
6967B4C71E27C52700A129E2 /* DocumentProperties.cpp in Sources */,
6967B4EF1E27C52700A129E2 /* TableRowPropertiesMapping.cpp in Sources */,
8A1BC15422DF34920084799E /* Record.cpp in Sources */,
6967B4E01E27C52700A129E2 /* PieceTable.cpp in Sources */,
6967B4E81E27C52700A129E2 /* StyleSheet.cpp in Sources */,
6967B4EA1E27C52700A129E2 /* StyleSheetInformation.cpp in Sources */,
6967B4D01E27C52700A129E2 /* HeaderMapping.cpp in Sources */,
6967B4DA1E27C52700A129E2 /* OleObject.cpp in Sources */,
6967B4D61E27C52700A129E2 /* NumberingMapping.cpp in Sources */,
6967B4CE1E27C52700A129E2 /* FormattedDiskPagePAPX.cpp in Sources */,
6967B4DF1E27C52700A129E2 /* PictureDescriptor.cpp in Sources */,
6967B4C41E27C52700A129E2 /* CharacterPropertiesMapping.cpp in Sources */,
6967B4F01E27C52700A129E2 /* TextboxMapping.cpp in Sources */,
6967B4DC1E27C52700A129E2 /* ParagraphHeight.cpp in Sources */,
6967B4DD1E27C52700A129E2 /* ParagraphPropertiesMapping.cpp in Sources */,
6967B4E11E27C52700A129E2 /* PropertiesMapping.cpp in Sources */,
6967B4C51E27C52700A129E2 /* Converter.cpp in Sources */,
6967B4E91E27C52700A129E2 /* StyleSheetDescription.cpp in Sources */,
6967B4E41E27C52700A129E2 /* SectionPropertiesMapping.cpp in Sources */,
8A1BC15522DF34920084799E /* RecordFactory.cpp in Sources */,
6967B4EE1E27C52700A129E2 /* TablePropertiesMapping.cpp in Sources */,
6967B4D51E27C52700A129E2 /* MainDocumentMapping.cpp in Sources */,
6967B4E51E27C52700A129E2 /* SettingsMapping.cpp in Sources */,
6967B4DB1E27C52700A129E2 /* OpenXmlPackage.cpp in Sources */,
6967B4CF1E27C52700A129E2 /* HeaderAndFooterTable.cpp in Sources */,
6967B4F51E27C52700A129E2 /* WordprocessingDocument.cpp in Sources */,
6967B2F91E27C26800A129E2 /* DocFormatLib.cpp in Sources */,
6967B4CC1E27C52700A129E2 /* FooterMapping.cpp in Sources */,
6967B4C81E27C52700A129E2 /* DrawingPrimitives.cpp in Sources */,
6967B4E71E27C52700A129E2 /* Spa.cpp in Sources */,
6967B3E11E27C2D500A129E2 /* pole.cpp in Sources */,
6967B4EB1E27C52700A129E2 /* StyleSheetMapping.cpp in Sources */,
6967B4DE1E27C52700A129E2 /* ParagraphPropertyExceptions.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
6967B2F21E27C23A00A129E2 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
6967B2F31E27C23A00A129E2 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
6967B2F51E27C23A00A129E2 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEVELOPMENT_TEAM = 2WH24U26GJ;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/,
/usr/include/libxml2/,
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
"$(PROJECT_DIR)/../../../DesktopEditor/agg-2.4/include",
"$(PROJECT_DIR)/../../../Common/3dParty/pole",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
6967B2F61E27C23A00A129E2 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEVELOPMENT_TEAM = 2WH24U26GJ;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
/usr/include/,
/usr/include/libxml2/,
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
"$(PROJECT_DIR)/../../../DesktopEditor/agg-2.4/include",
"$(PROJECT_DIR)/../../../Common/3dParty/pole",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
6967B2E61E27C23A00A129E2 /* Build configuration list for PBXProject "DocFormatLib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6967B2F21E27C23A00A129E2 /* Debug */,
6967B2F31E27C23A00A129E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
6967B2F41E27C23A00A129E2 /* Build configuration list for PBXNativeTarget "DocFormatLib" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6967B2F51E27C23A00A129E2 /* Debug */,
6967B2F61E27C23A00A129E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 6967B2E31E27C23A00A129E2 /* Project object */;
}

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:DocFormatLib.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -1 +0,0 @@
DO NOT REMOVE FOLDER FOR XCODE

Some files were not shown because too many files have changed in this diff Show More