mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
3249 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c29e4d08e | |||
| e7ab7b1558 | |||
| a7b7484cdf | |||
| 88741b4e82 | |||
| 76f94eaacc | |||
| c886e0da68 | |||
| 4ee53a3e27 | |||
| 22943dcf0b | |||
| 63ff79af7f | |||
| 10d2e2c960 | |||
| 2da99edbd6 | |||
| 836b6a638b | |||
| ea59351da8 | |||
| 64bb70bbef | |||
| ca8b6d9c5c | |||
| f6e6fb28ef | |||
| cd82eb40b6 | |||
| 771c813936 | |||
| a4245ef832 | |||
| 06136ddd0d | |||
| 390a568555 | |||
| 8d098d9951 | |||
| 98a8a865fe | |||
| 10348a72f1 | |||
| 8c726e475a | |||
| 334c31fcda | |||
| 70db061853 | |||
| e6cb6d9438 | |||
| 973e263b46 | |||
| 6530ff95db | |||
| ac98378b4b | |||
| 397352fb75 | |||
| 50a765eb4c | |||
| 8c0f2a6b2c | |||
| b5b7ec1633 | |||
| d0b49a7741 | |||
| 77c3a821a0 | |||
| 3cc2d904d4 | |||
| 158546d3fa | |||
| 4570ac9d1a | |||
| 55531d6ede | |||
| d67dc8939a | |||
| 15152283b7 | |||
| 8032e05f7a | |||
| 4ed4163588 | |||
| 6ff2719109 | |||
| f79027d21e | |||
| effb0f0066 | |||
| 79964fc766 | |||
| 0337c4265a | |||
| d590eebbe1 | |||
| 1eea84e369 | |||
| e628644d44 | |||
| b8d065fcdc | |||
| 80e3d5a0a8 | |||
| 0f0a448541 | |||
| 592edbc574 | |||
| 170d26562a | |||
| 40dc29d815 | |||
| 7950b821a0 | |||
| 38f20032f4 | |||
| 6d57eaa978 | |||
| 1534aa4e0c | |||
| 03c6ffa870 | |||
| db74e10f48 | |||
| 2efb111c91 | |||
| edb35f0c55 | |||
| ce1fbdeb4d | |||
| a6b33f977b | |||
| 510291b65a | |||
| b255b5e655 | |||
| 25c133d870 | |||
| a696c46700 | |||
| 6c4bbae905 | |||
| 0a01752648 | |||
| 3e97080d33 | |||
| f93add5032 | |||
| 9b3d0bb323 | |||
| 00be628ec6 | |||
| d9baf576a5 | |||
| 55eac108a4 | |||
| 8d6402acdd | |||
| db5b10ef6d | |||
| 65d846b761 | |||
| d4708d8d2e | |||
| ad4e5d348b | |||
| c62b479832 | |||
| 5003ac4eae | |||
| 90a3231c75 | |||
| beb6bb4dcf | |||
| c888b809b3 | |||
| 2bf24200fb | |||
| 839ecaaefc | |||
| b4ca670737 | |||
| 86d4eb2ac3 | |||
| 2ed79e00e7 | |||
| a4ec9b1b6d | |||
| 178e809729 | |||
| 388c12e177 | |||
| d375e15418 | |||
| a2820bdd79 | |||
| 3cb4c2d23b | |||
| 5752f56314 | |||
| 9c896ec55e | |||
| 8856759922 | |||
| 7c26ca6899 | |||
| 3df76f6c67 | |||
| 24f8b68c0d | |||
| 84c4447fa2 | |||
| 5650a56262 | |||
| 27cac74a8d | |||
| 5d505d58ce | |||
| 72af33964d | |||
| da6b89af94 | |||
| 12f644a898 | |||
| de9812479d | |||
| f8db90b29a | |||
| 9cdd43cfa9 | |||
| 389387eebf | |||
| 0ed170de45 | |||
| 2b0611ac25 | |||
| 11ebcfa476 | |||
| be0e9d4a08 | |||
| 02310f1d64 | |||
| 1d04e2dddc | |||
| 9febebf33c | |||
| ef365fc08e | |||
| 6c28c529e3 | |||
| 86f7a181f8 | |||
| be6871a2a4 | |||
| f43a38bdc9 | |||
| 2a8e8995bd | |||
| 95bba9d44a | |||
| 558cfb8048 | |||
| c031c8e9cd | |||
| b0363dad58 | |||
| 4ff7be8245 | |||
| 476ebe6e95 | |||
| 09c30e2686 | |||
| 8210595178 | |||
| f8f307aa29 | |||
| fb9d4d0460 | |||
| ac865d292f | |||
| bf0b1e8d97 | |||
| f591bcbd45 | |||
| ef277b4656 | |||
| ee19ab476f | |||
| 06c8c0e075 | |||
| 10bf455263 | |||
| 9df5a2616c | |||
| a26264775b | |||
| 6973cec1a1 | |||
| 396fc30ac5 | |||
| 383bae3750 | |||
| 974b9bcc1b | |||
| bbc0f1231d | |||
| 90565663d5 | |||
| 208bf78003 | |||
| a009d4d918 | |||
| d7a801402e | |||
| bbcd181d9d | |||
| 727be4a0da | |||
| 3a97757b86 | |||
| 14c517eaf5 | |||
| 110cee404a | |||
| 0586cabee5 | |||
| d294c98f9e | |||
| bf804905c7 | |||
| a8e537220b | |||
| a2f6876f60 | |||
| 5b53f2395f | |||
| 38c31f25e1 | |||
| 8382ba6fee | |||
| a6bd2e1a74 | |||
| ae20888616 | |||
| ad29f72359 | |||
| 0c1185c9d6 | |||
| e1a08edb99 | |||
| 54f3716ce6 | |||
| 6bafc487d4 | |||
| b2be8e63b6 | |||
| 2559e97f48 | |||
| e37ef6b999 | |||
| 571bad5381 | |||
| 2fea55841a | |||
| 436b268e49 | |||
| b85d11cc05 | |||
| 9d35757245 | |||
| c7e73feb0f | |||
| 53accfc084 | |||
| eb032af457 | |||
| 63cfded90c | |||
| 64453f020c | |||
| ef3e4c2cfa | |||
| 7f6d04eb34 | |||
| 09d3f946e7 | |||
| 589f5cdbe9 | |||
| eb8cea5cb2 | |||
| 5bf3e4d7ab | |||
| 9644701947 | |||
| 043f193f2c | |||
| 83230fb3ec | |||
| e98b542eae | |||
| 825a5d78af | |||
| 66e103fd94 | |||
| a76b7ec328 | |||
| 4df0f97918 | |||
| 79ae7e99d7 | |||
| 7f167d6cbf | |||
| d7dcd96a90 | |||
| 4cdc2b1ea5 | |||
| a3fc7849ae | |||
| 387b89e720 | |||
| 2c45908473 | |||
| 01ee676614 | |||
| edcff7f718 | |||
| e5e0949f39 | |||
| 08e6fee7a8 | |||
| 9afcc242b7 | |||
| bd0b0e7830 | |||
| 06fb3f0203 | |||
| cb55300286 | |||
| be7b3c1bbc | |||
| 5a6d6c9057 | |||
| a2a65579c1 | |||
| 59c0abbee9 | |||
| e4896d7893 | |||
| fac71f7b4a | |||
| 90fd93de9a | |||
| 30ab4a55d1 | |||
| 942d39598e | |||
| be6ade46dd | |||
| 047de070cb | |||
| 4b2439b7d8 | |||
| c2d4d4f9bd | |||
| f687d21149 | |||
| b416c5e85a | |||
| 7a92cca760 | |||
| c71b649621 | |||
| 1f18cd62a5 | |||
| 0594d9decd | |||
| a3fb1eccd1 | |||
| 5dbc4b4d49 | |||
| b2cd5f0211 | |||
| 5a10bb897e | |||
| 89bbbb0aac | |||
| 12789ab7f6 | |||
| 1e5819f9f9 | |||
| 810e01e7e9 | |||
| 7f22ab1ba1 | |||
| 3472edc763 | |||
| 4aa3a5cd36 | |||
| 5422dcc85a | |||
| 686be7c5f0 | |||
| 22bae397cf | |||
| 7c9444e086 | |||
| 46d0acb106 | |||
| 04374ade42 | |||
| f5fa11dde5 | |||
| 389472e2fb | |||
| a977cfd2b9 | |||
| 09c2d38b5c | |||
| f8ba2aeeb3 | |||
| 3afc193c73 | |||
| 3450f81f99 | |||
| 2d97939946 | |||
| 9114aa1f90 | |||
| 79a9292fe8 | |||
| ed98692fa8 | |||
| 4b8c111981 | |||
| 073d7b4d8b | |||
| c7c15ea254 | |||
| 4de3ced875 | |||
| 190f1ffc10 | |||
| 2ddc8e68d3 | |||
| d377bef3a1 | |||
| 3d2c71b51a | |||
| 91688ebc5d | |||
| d83c208339 | |||
| 95b7dae910 | |||
| d065709e0a | |||
| 65ceacc5ac | |||
| 7840995442 | |||
| 76925c03e0 | |||
| 4049fb98e6 | |||
| 87e66482f2 | |||
| 9f6e34b975 | |||
| f95e5a4487 | |||
| a03f7f47bd | |||
| f3b673e85e | |||
| fb72127183 | |||
| a2480098c7 | |||
| 69cf19ddfb | |||
| 8da953facf | |||
| 471bc8a248 | |||
| 1495779207 | |||
| fd02518b7a | |||
| 170974ac60 | |||
| 7c1ab855d1 | |||
| 0ca8ac97c6 | |||
| e5bf10efb4 | |||
| 541b5d7647 | |||
| bd0864fca3 | |||
| 5d2ed89d4f | |||
| 595a95be24 | |||
| 8cd34880e4 | |||
| 24f0fd731d | |||
| a031523e13 | |||
| d5f42cec2b | |||
| 8c95392373 | |||
| 261b9491ea | |||
| 107e6daf2f | |||
| 9df683049d | |||
| f997885e3c | |||
| b41ca06e50 | |||
| 1779672ea6 | |||
| 494f895ce1 | |||
| 327f6982a5 | |||
| a4a6441377 | |||
| a5eda01ad3 | |||
| 1e42d594b7 | |||
| 50733e3979 | |||
| d1ad3cd973 | |||
| a7aa7add19 | |||
| f205b21b76 | |||
| 12e491eed8 | |||
| 683cb6b09a | |||
| 2cadcaaad5 | |||
| e60824467c | |||
| b683c860f2 | |||
| 517d173c45 | |||
| 4e0e17cfb2 | |||
| 05abe91a14 | |||
| 6414a49ae1 | |||
| be19a53b28 | |||
| 39fe62c91a | |||
| 7c0926e250 | |||
| 54e5f27ced | |||
| d1094c0c0b | |||
| 885a225c2e | |||
| 155fea77dc | |||
| d15f25f6ed | |||
| f06abd20e1 | |||
| df4d854010 | |||
| a83c806af2 | |||
| 1522d54735 | |||
| ee3011a7b4 | |||
| d0a64944b7 | |||
| 56105807bf | |||
| 81292abb87 | |||
| e6345385b3 | |||
| c127afb750 | |||
| aefa5038b5 | |||
| 58492a53f8 | |||
| 01b12e4a99 | |||
| a90d4dfd99 | |||
| 94c48a6a3e | |||
| 77c47267f6 | |||
| 8d37f4b433 | |||
| cdef3b3956 | |||
| 757dc61ce8 | |||
| f9c3a41a1d | |||
| eba362d724 | |||
| 3bf78a7828 | |||
| d34b9bb1dd | |||
| 4e7fce4096 | |||
| cceb3194d2 | |||
| 7c2bfcd0ee | |||
| 42170638c2 | |||
| 7c02a9d9fc | |||
| 3254167f08 | |||
| 8ae8b79e9e | |||
| 2bac3ef4cc | |||
| e82056bba1 | |||
| 3c2413d5e0 | |||
| 058b9a5fd4 | |||
| e5bd5342c6 | |||
| 6e3a795078 | |||
| d4e59857ca | |||
| dd599d1f80 | |||
| 36d9b5044c | |||
| fdd4c9b5c4 | |||
| b092ff1371 | |||
| 5912eb238f | |||
| 7a2cd9461d | |||
| 4bc102cade | |||
| 2dcc9adbaf | |||
| d0b617a10c | |||
| 0549e44fdd | |||
| b4cadae376 | |||
| ddc4665c24 | |||
| 83ca6ea779 | |||
| 5b651d0be0 | |||
| 457148ef0c | |||
| fff1c89ecd | |||
| f3803591aa | |||
| 93f8485c6e | |||
| 1524c0f1c8 | |||
| 6d6e217e64 | |||
| 8110e5de7c | |||
| d51e7d3f81 | |||
| f328523112 | |||
| 11d6bfaa01 | |||
| aec48da361 | |||
| 27840241ab | |||
| d5cc39a716 | |||
| 07ddf88a91 | |||
| d88bc8d0cc | |||
| 290ab3fa75 | |||
| e4ca423d50 | |||
| ad8c163aca | |||
| 92e88aaf75 | |||
| 98d04eb7d7 | |||
| 2f10ae5a7c | |||
| 90d7caa71e | |||
| 6878e82310 | |||
| 81004ae5e0 | |||
| fac96d31c4 | |||
| 4743d856d9 | |||
| 76c55a87cb | |||
| 5df8081a58 | |||
| 501778592b | |||
| 864d0af190 | |||
| 11bedcc247 | |||
| 9e6f94600c | |||
| 443fd59974 | |||
| 9ed3502477 | |||
| 94563cfbf5 | |||
| 063c3cf659 | |||
| 68422064cf | |||
| a5f6ad503e | |||
| 2a5a23a990 | |||
| e2227b919d | |||
| ecb0737f84 | |||
| 641691e46a | |||
| bb11c8d2ca | |||
| 6816192a62 | |||
| a66dbdcba3 | |||
| cb61c48a35 | |||
| 0f17cab173 | |||
| 3ee9cd3b43 | |||
| 37d58ec936 | |||
| c4e94c2293 | |||
| 83429f9503 | |||
| b818d1ad55 | |||
| fc2f804662 | |||
| 3d0487c6bc | |||
| d43120cb0e | |||
| 586e4a8edf | |||
| a379970b7a | |||
| 63670c57a8 | |||
| fa93123413 | |||
| 42818f0ea5 | |||
| 9664899a73 | |||
| 37ff56f81b | |||
| 7ca6848e8e | |||
| 758cd5d599 | |||
| 3b2691b186 | |||
| b20ce89c09 | |||
| 95166978ce | |||
| 25bab94a86 | |||
| bcac327a94 | |||
| 091d594e0f | |||
| 8e2bd3331b | |||
| 33b018c910 | |||
| a9f0fcdd47 | |||
| 25523589e7 | |||
| 1c70fb74a2 | |||
| db45280e10 | |||
| eda60dc030 | |||
| ab2eae32df | |||
| 364712c50f | |||
| 47058a4006 | |||
| c7fbfb9d1b | |||
| 6000880da6 | |||
| feced4ff7b | |||
| a6ef44e3fe | |||
| f8f0283b2d | |||
| aeae070e20 | |||
| c7c9199fd4 | |||
| 18db1b9966 | |||
| b1686a04ba | |||
| bdf2c213c0 | |||
| 166564dc6e | |||
| 1254020428 | |||
| ccd2814bee | |||
| 1ab560a957 | |||
| 152300c88e | |||
| 1a75df8721 | |||
| c6b6a54d79 | |||
| d931a2d160 | |||
| dcfe6a2362 | |||
| baebe1da12 | |||
| c8733a6d6f | |||
| 27dcbf4b8b | |||
| c8d01a6352 | |||
| d27fc163ca | |||
| ad5ed9f2e3 | |||
| 5fc2fc799c | |||
| 3c70dc0db4 | |||
| 0894bcef72 | |||
| 4b4c0bf00a | |||
| e3fc5f2513 | |||
| 5e2618a81a | |||
| 357539e84e | |||
| cf76729189 | |||
| 0f9c06bd31 | |||
| bdf9e04eb3 | |||
| f4af806e4f | |||
| bdda7e24dd | |||
| dcd956e1b6 | |||
| 473caef815 | |||
| 19a5e3e384 | |||
| e440f92c7e | |||
| f6e9517474 | |||
| b1a743bc02 | |||
| 560d76feee | |||
| e9911e72f9 | |||
| 308adb9fbe | |||
| 26fe7c877d | |||
| 29252d6ae5 | |||
| 7f289d4ef0 | |||
| 93c919983e | |||
| 24afe7fbe0 | |||
| 37707ade69 | |||
| fe97761316 | |||
| be26a89726 | |||
| e4e5ba0404 | |||
| 0488a8c2c3 | |||
| b8f89ecd10 | |||
| a4f5d5cd09 | |||
| 6f45b3d20c | |||
| e549e89cd0 | |||
| ae204cabcd | |||
| a48056ef36 | |||
| 1a36dc4571 | |||
| 72bd9836fe | |||
| 2a2cafbd65 | |||
| 91c9fd0679 | |||
| 9f5157dc36 | |||
| 4b1334390c | |||
| 4921750dba | |||
| 7a5d2ed9e1 | |||
| 189ce96bb3 | |||
| 8688b13712 | |||
| b4cc129fbd | |||
| d2785de865 | |||
| 72bdd15af6 | |||
| 1ed1326db6 | |||
| 3fa91220ae | |||
| 46b72e3f41 | |||
| 03dee31707 | |||
| ab2a640201 | |||
| 4c5f3592a4 | |||
| 05fe67905d | |||
| 12e6ed399d | |||
| 028efcc57d | |||
| f530fd8819 | |||
| 781a2cf201 | |||
| ac0e7695f9 | |||
| 549436e319 | |||
| 36d173b2b7 | |||
| 78ee67dcaf | |||
| bd79385830 | |||
| 28a08040ed | |||
| 3cb727f8ac | |||
| 7f7510b5b3 | |||
| 79a08e70fe | |||
| 0fb81497a0 | |||
| 83caf6bb40 | |||
| c9a901a737 | |||
| fa58fa1530 | |||
| 72e27000f5 | |||
| ec91eae56c | |||
| cc14b026c8 | |||
| c7461c565d | |||
| 19cc23fb0f | |||
| 4aa119b1d2 | |||
| 64fd2eb8d1 | |||
| 728aefb830 | |||
| a7898d48ad | |||
| e58e2599fb | |||
| ddeca339dd | |||
| d8c99ee661 | |||
| 930c225129 | |||
| cd2a46a163 | |||
| 056a598c08 | |||
| 30366b7f50 | |||
| 4bb783b0ce | |||
| ee7428f9d3 | |||
| fe6a86823a | |||
| 6f8c741d5e | |||
| 46956d6042 | |||
| 34de10c65f | |||
| 054f1ef270 | |||
| ca45de67c2 | |||
| 0fce52e917 | |||
| 2dcad83f5e | |||
| 3b9fff6882 | |||
| 07e9cc5be2 | |||
| 1659e1380b | |||
| 8d73d9e56e | |||
| b077a39dff | |||
| 6c51371d66 | |||
| ad774fa093 | |||
| eb21847d1c | |||
| b07ab36cdd | |||
| ab9ad8b8af | |||
| baeae4a367 | |||
| 6bc8dd7bfc | |||
| 4fbce5218d | |||
| 2c489d7831 | |||
| 0f1e328d06 | |||
| 371e9f4546 | |||
| a554a07954 | |||
| b15f8ca43d | |||
| 48ad1ef291 | |||
| ffb82e3d61 | |||
| ecb8bcd0d4 | |||
| d0e58af962 | |||
| 14a6388688 | |||
| fe5f9a147e | |||
| ce173dc575 | |||
| 19a447cc31 | |||
| 0c2a9ed62c | |||
| 44a6d0a90b | |||
| 7671dcdac6 | |||
| 40595468e7 | |||
| cd943c43fd | |||
| 3b84a04b3a | |||
| 775ff2e284 | |||
| 762d17016d | |||
| d9e7574642 | |||
| ec1ef9b006 | |||
| 5b9903c898 | |||
| b81f542613 | |||
| cca92caa9d | |||
| abb295139b | |||
| 07bab0c3b5 | |||
| 69520e9ecd | |||
| f1843eb7ef | |||
| 542c53649b | |||
| 5a0226e972 | |||
| 9a2e6069b3 | |||
| 87631cdf58 | |||
| fdf85aeae6 | |||
| 49fc75f798 | |||
| 2871a38cd1 | |||
| 31b196840b | |||
| dee89eaa13 | |||
| ed3fff4db5 | |||
| 015a667484 | |||
| f5355c19df | |||
| c38482bb24 | |||
| f39af219f4 | |||
| 0df2234609 | |||
| e8530d6687 | |||
| 396baf8cb7 | |||
| d15e479a17 | |||
| a6e32b99e6 | |||
| cfc17ec834 | |||
| ded9f4198f | |||
| ddbb99414f | |||
| 69c37ebe64 | |||
| 1cdefae044 | |||
| aeb8d53d92 | |||
| 2dc0233b90 | |||
| b8fb0d58ad | |||
| e28d040b7b | |||
| e63e2c77b8 | |||
| c04afe6b66 | |||
| 7dc2e63645 | |||
| c62af51a02 | |||
| 40d02f973d | |||
| 8c986edafe | |||
| cdd0231c65 | |||
| 9a5f5c5f45 | |||
| 9a1f910a4b | |||
| e5d3ad3083 | |||
| 3513563ae7 | |||
| 6d69ddeb8e | |||
| 0f32054f5c | |||
| 0d66f98bf1 | |||
| af5329264e | |||
| ee3d0d2796 | |||
| 7d2c271034 | |||
| e693cb433e | |||
| 8e6c09d77a | |||
| fa9a2ed203 | |||
| 78e211cad4 | |||
| b9ed9e0b0b | |||
| 88686d4e4f | |||
| d3c9d62631 | |||
| 262021c12e | |||
| f9c0982d85 | |||
| 00a553f3f6 | |||
| e606d8a110 | |||
| 71fa7b2196 | |||
| 11e33a2308 | |||
| 54260e7562 | |||
| aed5e9a013 | |||
| b265d2852f | |||
| 049bf6cdd8 | |||
| 9ba46bb6ba | |||
| a0402e1096 | |||
| e096c40166 | |||
| 3919a01c08 | |||
| 4f4553c189 | |||
| 5ec9ad38d0 | |||
| 3a8c3c8d39 | |||
| 762b0a07ea | |||
| 784c7186a8 | |||
| 62a5681771 | |||
| 3cc6a01f5a | |||
| 328ca886c7 | |||
| ff0f58cc3c | |||
| 2708b22cf3 | |||
| 209f664782 | |||
| 67e82e22d8 | |||
| cb6c9838d3 | |||
| 8da8ad22d0 | |||
| 140d86b7ec | |||
| d57b9f975a | |||
| 28c7b54c47 | |||
| 80f51fa151 | |||
| ef3b5c2a6d | |||
| bf8ff829f3 | |||
| 6cc1d99de6 | |||
| f981ff5a2f | |||
| 843e10c4a7 | |||
| d5a96c9828 | |||
| 8e45345f31 | |||
| ad1bf1def6 | |||
| d9c6ade2d9 | |||
| 448dc65550 | |||
| 1a722a46cb | |||
| 56a813e19f | |||
| d3375120d6 | |||
| 3b0a8c12d4 | |||
| 5ae1bfb8e2 | |||
| bd0223ad59 | |||
| 4d4d515c24 | |||
| b00efef486 | |||
| 566d873e1c | |||
| 1bb48ee85a | |||
| e15fdca981 | |||
| 6ccb4ca4ed | |||
| 5d1aadd5eb | |||
| d907d53a16 | |||
| f8211f9aa6 | |||
| 10dde7837b | |||
| 88ae82035e | |||
| 28b5a1fcec | |||
| 40eb9aaf09 | |||
| b17263d758 | |||
| 4e7bad062f | |||
| 781afc8987 | |||
| 8bf0bf840d | |||
| e4e24d0c3e | |||
| c29d9dae9a | |||
| 1b0f0eae33 | |||
| ec93bce61c | |||
| 83311dcc35 | |||
| 4fa865799b | |||
| 69794961e7 | |||
| 2a5a5df225 | |||
| 35547e8b8c | |||
| 141ccbc3f0 | |||
| 1a24a8e297 | |||
| 8d9f2ba374 | |||
| 393bdf3caa | |||
| d91696efea | |||
| 78ef372ede | |||
| 4c3738adf0 | |||
| 9f71304aa2 | |||
| 0a19425077 | |||
| 8e8618380a | |||
| beff8de953 | |||
| 7264e7f397 | |||
| f2f0fce5fb | |||
| 7a4bb715cd | |||
| 69e53d0b4c | |||
| b96c53557a | |||
| 44901d4132 | |||
| 87b9373c3b | |||
| 0b3404fe3f | |||
| 47d58bfaf0 | |||
| b853d09cd0 | |||
| 5bc944da76 | |||
| 4c64e6ff72 | |||
| 16cb56a888 | |||
| a76d6a4a3b | |||
| a11958760f | |||
| 1356e43329 | |||
| cbc817f2c0 | |||
| 9ae53d040b | |||
| a6338dac5d | |||
| 82fab889e5 | |||
| 36358fced8 | |||
| 9b08ff7b20 | |||
| be11acad34 | |||
| f6c46a6258 | |||
| 9bbe9137a7 | |||
| e7bfe36cea | |||
| a6ca030022 | |||
| ac744cfdda | |||
| b69eb36c6c | |||
| da4653dba8 | |||
| f70a032cf3 | |||
| 0a6d73fa66 | |||
| 9bd1e65804 | |||
| 91a03ad51c | |||
| 34475a38c8 | |||
| e148f89897 | |||
| 9ce9a4aef4 | |||
| abffa8d301 | |||
| 23ace16776 | |||
| 81aea03af6 | |||
| a835b52a7e | |||
| fb4d76c5e5 | |||
| 14e387c048 | |||
| c9418370e6 | |||
| 7f946098df | |||
| 0e4fc740d9 | |||
| 6551dd92e5 | |||
| 88c623ba73 | |||
| 40b7dcc64a | |||
| 60411f43f5 | |||
| aa97eb7b17 | |||
| 604aa08a36 | |||
| a1649462ba | |||
| e3de0c20d0 | |||
| 86eee3075c | |||
| 962dfca64c | |||
| c1d9c507cf | |||
| ac57e7096b | |||
| d97cab1499 | |||
| 3a7408aadb | |||
| 39cdb9ee75 | |||
| cfb9ec59b6 | |||
| 6cc7a64878 | |||
| 24285732de | |||
| 7e175302bb | |||
| e54dbd0385 | |||
| e8306f5537 | |||
| a2b717e831 | |||
| 2a56e16fb4 | |||
| 0d3f4612d8 | |||
| e55a46bf41 | |||
| e148929b7f | |||
| 73c1cabf3f | |||
| 773d8edb96 | |||
| eb073ac3d2 | |||
| d23adf75ef | |||
| 662ddfe402 | |||
| df469372bb | |||
| 875640fe36 | |||
| 8d8f7cf0e8 | |||
| f22e95aaaa | |||
| ab9b430ef4 | |||
| ee4a61f8bc | |||
| 9dea45a7af | |||
| 3ddb2addf9 | |||
| efdae85aef | |||
| 5548969d52 | |||
| 92b2b3b837 | |||
| 67550a22e4 | |||
| 2818c8d69c | |||
| 3a726eb21c | |||
| 2fe44439e3 | |||
| 84871ecb52 | |||
| 9b226e3620 | |||
| 6be7618e83 | |||
| 898d84cdad | |||
| 00443fd028 | |||
| d767500bd2 | |||
| f4dec5d70d | |||
| 682c0ea74f | |||
| 07694e9cda | |||
| 6941af13d8 | |||
| 5c0c6c77e8 | |||
| 922211cf4b | |||
| 565bb49ec1 | |||
| 74e5d05ea5 | |||
| 32847c4e3e | |||
| ef57efa56b | |||
| cfb7eb35ab | |||
| e9ca59608e | |||
| ab2829c701 | |||
| bc380dd214 | |||
| 3340ebb712 | |||
| 01bf276697 | |||
| bac1e670e9 | |||
| 9a4e764709 | |||
| ef128b4248 | |||
| 3d2b35f40d | |||
| 3e51e72f84 | |||
| 30d0ea725d | |||
| c4491e12c7 | |||
| 2707b768b1 | |||
| 297653733a | |||
| 3588900943 | |||
| 904561d1da | |||
| 27c4b03b7a | |||
| d135be231d | |||
| 7fbf763afd | |||
| d72257964d | |||
| 4c38d2ea54 | |||
| 428b161983 | |||
| bd9e42ae78 | |||
| c33c5d7b2e | |||
| cc6bcd524d | |||
| 92be21ff2e | |||
| c764cce0da | |||
| af85c07dda | |||
| 81ef6f71c5 | |||
| 9fdfea5ff1 | |||
| 08cc9bc588 | |||
| abd5588eaf | |||
| 1c65f979b3 | |||
| 312956853a | |||
| 06b1af167d | |||
| 8e7deaa1bc | |||
| ad102a4df8 | |||
| 7535e4ccd5 | |||
| 9e8a52fac4 | |||
| cc1f793745 | |||
| ccb2957df2 | |||
| 5c7a6c03b6 | |||
| b4b41956b6 | |||
| d9d815fc13 | |||
| cd92c0d30a | |||
| 7c8c5b0b11 | |||
| d8adb37d49 | |||
| 507cb10285 | |||
| 45b6f1702d | |||
| 91bc1f74ae | |||
| bbf97e2098 | |||
| 0f80aba351 | |||
| f58b7c9a67 | |||
| d82a9886b2 | |||
| 7a9fbdeef7 | |||
| a7e13594a3 | |||
| e384c42230 | |||
| e72e48e587 | |||
| 387a8584d4 | |||
| 9bd7784bcc | |||
| 026c85097f | |||
| fccaaff6f0 | |||
| 30c2d81bbd | |||
| f5384892a3 | |||
| 88ab98b717 | |||
| b8b16ecbe8 | |||
| beb147f15f | |||
| 662c733f30 | |||
| 3bf7fe6a9f | |||
| 76ef6b792f | |||
| a9947bae7d | |||
| 104daa8aa4 | |||
| 2c4d5baac2 | |||
| 43feea8012 | |||
| 2003743229 | |||
| 39ce0299e5 | |||
| d0207ce5b8 | |||
| 2d1db83892 | |||
| 5023e7c206 | |||
| 6496ebd2e8 | |||
| 25de67ba5e | |||
| 090c826a42 | |||
| ad2b830e5a | |||
| 1cc38d78ac | |||
| d26620973b | |||
| 2a339b4bf1 | |||
| 68ef4a93c3 | |||
| 4558e96832 | |||
| 4f6a50abed | |||
| afaeeb6246 | |||
| dd06c23d8e | |||
| 260765b17a | |||
| 096ba027fb | |||
| 1b1db8e70b | |||
| 0567e7f3db | |||
| 325ed1084b | |||
| 762f766a3d | |||
| 7b2f693235 | |||
| 0bc6264d93 | |||
| 5eb7e2f5fc | |||
| ddaafd9190 | |||
| 93dc4cee9c | |||
| 0cd5815f0d | |||
| 9416f364a7 | |||
| 0f7552c96f | |||
| bf4554f3a1 | |||
| 267d1dcfc9 | |||
| 16e4402d32 | |||
| 4341a38b83 | |||
| 988d134f0e | |||
| c841a7249c | |||
| d2fb37c220 | |||
| 762266238e | |||
| 2d65c91c5c | |||
| a995053d47 | |||
| 44d3ec9441 | |||
| 0fa8abe7c6 | |||
| 6537d98c91 | |||
| 0afacbada8 | |||
| 4306bdc73f | |||
| 3a4c034a71 | |||
| bb216f0734 | |||
| 6b6c041437 | |||
| fe67134931 | |||
| bd7ef4eb6b | |||
| d7b5a9d343 | |||
| 0ca1b533a7 | |||
| 9831ba0f4d | |||
| 2202de0b85 | |||
| 266949a9c8 | |||
| 78079ce900 | |||
| e7f784365c | |||
| 1bade8fc10 | |||
| ba5acddccf | |||
| 4046563ab1 | |||
| 61eb76c005 | |||
| 7845871a90 | |||
| 93b04a7a20 | |||
| de1dde6d1b | |||
| 0ee98ce4dd | |||
| 0ab719dee8 | |||
| f9dd2dc239 | |||
| 256f5c05e3 | |||
| cb06c8c255 | |||
| babbc69a22 | |||
| 45ba8b6510 | |||
| d798eb9e5b | |||
| 8148b0065d | |||
| f2b8bd9d47 | |||
| 2fe4615472 | |||
| 081e163e8a | |||
| e612b9bd0b | |||
| 760c74a6d1 | |||
| ca29772f09 | |||
| a88bf6c81d | |||
| 60c99483c4 | |||
| 0d178d7bbf | |||
| 32d56dcb56 | |||
| f38d221946 | |||
| 2c6a25b219 | |||
| e975b8bcfe | |||
| ed7c8e78f9 | |||
| ceb0d864f5 | |||
| dcf5b8820c | |||
| aa7ad9cbae | |||
| 89a53628ec | |||
| 8a42c6077d | |||
| d541b11138 | |||
| e065bd72ff | |||
| a21773976e | |||
| 3125ec4899 | |||
| d2a8ef12db | |||
| ec210a444b | |||
| e8dd903f2e | |||
| 9a99d4da72 | |||
| a419d197e6 | |||
| 62ed1da12c | |||
| 452115f57b | |||
| 11d4b176f4 | |||
| 20fdf3f6eb | |||
| 72de286fb2 | |||
| b87b38bb15 | |||
| 59ccda7344 | |||
| c575a4f40a | |||
| 68d75c3ff3 | |||
| eff7bb6a51 | |||
| a412ab0324 | |||
| 4a99e5d17b | |||
| 625b647a59 | |||
| a268e88747 | |||
| b5a038de2c | |||
| b2868f3c99 | |||
| edb18a87f5 | |||
| 3d0ccd4cd0 | |||
| dc52678838 | |||
| 2c12dfdd51 | |||
| 34f85c5c9f | |||
| 9ee76f0c85 | |||
| 9f4c2505f8 | |||
| a9b00a7877 | |||
| 3bbce36f0f | |||
| e3da3b07bb | |||
| 6c219d6d21 | |||
| 6b8092d9bb | |||
| 7e573eceb8 | |||
| 266e1f086f | |||
| 064923a20e | |||
| 1ef600c39c | |||
| b048ddf795 | |||
| 7f253cc138 | |||
| b026d77b4d | |||
| 3a95871089 | |||
| 6c7a124c77 | |||
| a1f5036df8 | |||
| b4d62b7ef4 | |||
| 489f1c8ad1 | |||
| 46d2242267 | |||
| ebb1fc7f98 | |||
| e5f059b59f | |||
| fb2f3763ad | |||
| 0c2a5ee0c7 | |||
| ca53d8d430 | |||
| 627976f193 | |||
| 19ed94d50e | |||
| 9706f5a530 | |||
| 0f0d13c575 | |||
| 5260986ee8 | |||
| 6824a80fce | |||
| f3ba3ce3be | |||
| a521c65c02 | |||
| 646a3cc07c | |||
| ae43020323 | |||
| 6f5e46c406 | |||
| b39ed42e20 | |||
| 35cd007f40 | |||
| 5f75c1ac90 | |||
| 3c80b7c849 | |||
| 3bca2b1ae9 | |||
| 45bbe26910 | |||
| a6801103f3 | |||
| eb3827a32b | |||
| abf1585789 | |||
| eda3cbf4cf | |||
| 13b315ec60 | |||
| 54b9a225a5 | |||
| c70faceb17 | |||
| 4ca44f2719 | |||
| 3ec8dc1960 | |||
| 25aecb7d7a | |||
| 40450b295e | |||
| efa09b9750 | |||
| e10d655851 | |||
| 628c5dd620 | |||
| 883cc1bbe9 | |||
| 75d2d3a149 | |||
| f0b3dc20fa | |||
| da563f54e2 | |||
| e32d6e2d43 | |||
| 3e86ee829d | |||
| 215e1db226 | |||
| 6e8de01767 | |||
| e519c7a515 | |||
| 4845771a23 | |||
| 2145096522 | |||
| a398e85d44 | |||
| 6accbef7f6 | |||
| fd8cf7c289 | |||
| 49cc7c0f21 | |||
| 7099e5716a | |||
| 65eb7e9271 | |||
| a5bec39d9c | |||
| f97723dbb4 | |||
| a4df8a5882 | |||
| 7fd59fbb67 | |||
| bceac9381d | |||
| 4b21663db7 | |||
| e3176ff244 | |||
| 915dd0fb19 | |||
| a9841ebc4d | |||
| 59be9dfb9a | |||
| 99ad5dae9f | |||
| 2ce1d9fbf1 | |||
| 19c0e2e4d7 | |||
| 973229656e | |||
| fcdf797be4 | |||
| cd7218584b | |||
| 1c3aa72a18 | |||
| 6958bc4026 | |||
| 2e0d235e70 | |||
| 88cd576f06 | |||
| d5cfece1d4 | |||
| 31edc915c5 | |||
| 450957e5b1 | |||
| a70c3bf2b7 | |||
| 7bca9c7804 | |||
| 8355a0f9a7 | |||
| 94bbfe4f57 | |||
| 55bf811df2 | |||
| 85303cc6ce | |||
| ddc6129760 | |||
| f4c6f169d4 | |||
| 2e8aebf496 | |||
| 281736d542 | |||
| 0a7a210ce5 | |||
| 944e2db474 | |||
| a1384690d3 | |||
| 3122a470d9 | |||
| bb5b5f6a1a | |||
| f1e1257868 | |||
| 2f1d03eb0b | |||
| 58ac0964d0 | |||
| 6fdf21dbfc | |||
| 47894d1ae5 | |||
| 123bb7e65b | |||
| 38c002a0d1 | |||
| ee106b22c2 | |||
| 75a45ce60e | |||
| 4f8d76976c | |||
| c6ff482c61 | |||
| 525d1acd76 | |||
| bcfba8dbd9 | |||
| 4bb58257a8 | |||
| 56bca855c3 | |||
| 173fef2766 | |||
| 44a6b3f9bf | |||
| 1af821d2fe | |||
| e74469cf0e | |||
| 0ffc57e7b4 | |||
| dbec928975 | |||
| 007f4ca09e | |||
| 780eaf87e0 | |||
| 8ae3c67cb2 | |||
| b82ae0ffc5 | |||
| c6e4e02e9e | |||
| e4209af801 | |||
| e6aa096e3b | |||
| 59175fc408 | |||
| 858f0057f6 | |||
| 0a15bea133 | |||
| 8f521b463d | |||
| baf29502a3 | |||
| 16efdcd9dd | |||
| 00791b3966 | |||
| 260b3b26da | |||
| 05bd3bd585 | |||
| cb55502e4d | |||
| c7dc6d7892 | |||
| 4fd60a3622 | |||
| bbc8fa08d2 | |||
| bb523a669c | |||
| 06c4419ecd | |||
| 8c74ccc299 | |||
| 2d109db277 | |||
| 8c81396093 | |||
| 0d26a710d2 | |||
| 7fd2a81a78 | |||
| 704209bb97 | |||
| fe1483a36e | |||
| df9cec37e9 | |||
| 10669d244a | |||
| 49c49ee24f | |||
| 2be7dcb569 | |||
| ec882b6ecd | |||
| 4bcab7e8ce | |||
| 13c9a5e872 | |||
| 9b975d3dc2 | |||
| fee0125cdc | |||
| d0a8e93971 | |||
| e46da94d25 | |||
| 9c67379941 | |||
| 5018c9c209 | |||
| dd8aef6e81 | |||
| a749369c68 | |||
| 8b58f36d8d | |||
| ececaee42b | |||
| f265724464 | |||
| d9014b6d8f | |||
| 7d935bb488 | |||
| 58b282c465 | |||
| 5902cbc971 | |||
| 1d1b83e00c | |||
| f268a814b0 | |||
| 9f20345b7c | |||
| 22356c7a89 | |||
| 895fcd1401 | |||
| 63c7ea967c | |||
| 00c2baae23 | |||
| 3be538f3d2 | |||
| 3e13934967 | |||
| 3a312ef626 | |||
| 6ddf737959 | |||
| f3c552ec6d | |||
| 0c0124a9e0 | |||
| c05ada24fd | |||
| 112ed70c8d | |||
| abc8ee4b21 | |||
| 101b43a25a | |||
| 00079a0f40 | |||
| 8b523427bf | |||
| b2c645c4a2 | |||
| 14ef010529 | |||
| a365f6d4cd | |||
| 3ca9fc67ae | |||
| 442c8a327e | |||
| fc7891b176 | |||
| 3e5bc50e3d | |||
| db126f2a92 | |||
| 9672ebca02 | |||
| 96b69dd772 | |||
| c0d2e29dee | |||
| a3be72b2d5 | |||
| 7e55bd6f18 | |||
| f9b5f8ba01 | |||
| 601863ebd5 | |||
| 8345e8bd06 | |||
| 2368e794ba | |||
| 0603ec54dd | |||
| 4c3ef986ab | |||
| 7a337f7c04 | |||
| 966d0898d4 | |||
| c43a6d707c | |||
| e6fbf954fe | |||
| 3e2aed5193 | |||
| 6f316910e2 | |||
| 6022565456 | |||
| fa9843582a | |||
| 7d36820e4c | |||
| b520ed6c95 | |||
| b311b6782b | |||
| 6aa15e467b | |||
| 009579b0da | |||
| 00ef7bb822 | |||
| ccec2e1759 | |||
| c06112d654 | |||
| f53acc2326 | |||
| 90e75e6ba9 | |||
| dc13500fb1 | |||
| 684aed5d00 | |||
| ea3d928f4d | |||
| 64f2bdc90b | |||
| a0892f45dc | |||
| aa0b274729 | |||
| 647d8ce95b | |||
| 485c166a87 | |||
| 8cf3db2980 | |||
| 1576c783dc | |||
| ff1eb08d42 | |||
| 074b533883 | |||
| 6966ef8dc1 | |||
| 4e1804e159 | |||
| ba63a63e81 | |||
| 04ef857a1f | |||
| 60a3d3ad19 | |||
| 541664df92 | |||
| 4ad9aea6f5 | |||
| 47ab073e49 | |||
| d0ca5d1d55 | |||
| 5680ea4c96 | |||
| 3423936326 | |||
| 800f6434e1 | |||
| 668bf4e412 | |||
| 1d2656e891 | |||
| 34b3d38264 | |||
| c4f66953e6 | |||
| cbca4decf9 | |||
| 412391a56f | |||
| 1340447a23 | |||
| a977623f7e | |||
| c5f7aac996 | |||
| 7781a73352 | |||
| bc9f2b1710 | |||
| 3ed7e53fc5 | |||
| 4612076bee | |||
| 28d993bc68 | |||
| bb516d11cd | |||
| f303a8d5e0 | |||
| 883dda0f3f | |||
| 24c13964e6 | |||
| cd0f35999b | |||
| ceeeb7b97f | |||
| d297d7852c | |||
| 84221f619e | |||
| 7b55e13263 | |||
| 7d32d74022 | |||
| e3be6d68ef | |||
| e545cb4c54 | |||
| 2bc4726ca9 | |||
| 0d61c3cacb | |||
| 46a7372ccf | |||
| 5f0f6ec9bc | |||
| 251a3e58b0 | |||
| c5b5fbb763 | |||
| dbd7ed3e1c | |||
| 0c07a6a04c | |||
| ce419dfada | |||
| 00f6534367 | |||
| 214c2e00f1 | |||
| 4d316781ec | |||
| 3e76287416 | |||
| 8cb5886e8d | |||
| b20ffdcc8e | |||
| f8e96ee867 | |||
| 02fb5d5068 | |||
| 08d71c1f4a | |||
| 688e00205b | |||
| 4cc866d5a3 | |||
| 918527ef76 | |||
| 74719a4993 | |||
| 2ad6553bb0 | |||
| 6654e8594d | |||
| b420e808d8 | |||
| 47a453a745 | |||
| 8b594be2ab | |||
| 88cf60a3ed | |||
| e2d2aae2c0 | |||
| a679d5a968 | |||
| e9120c8687 | |||
| 13502765ac | |||
| 80ab6f3ce1 | |||
| a4b163889b | |||
| d93357a34e | |||
| 02557a14f0 | |||
| 9bd4669d99 | |||
| 562b7a7eea | |||
| 55abc7d9c2 | |||
| f74105a8ad | |||
| 8aed2ec3f0 | |||
| 38f9bec1a0 | |||
| 940a721b41 | |||
| 7f5692e73b | |||
| 221bd392d4 | |||
| b6e188e5cf | |||
| 054c33094f | |||
| 362b5355e1 | |||
| c15e096f6d | |||
| 9eeff29b5a | |||
| 7b9aac8be2 | |||
| 85d3b86017 | |||
| 19488bff6e | |||
| 51450a468d | |||
| e67d2f17bd | |||
| 545edb0ce8 | |||
| 32faf79a84 | |||
| 9a9a9277c8 | |||
| 63e45f1bca | |||
| f6d5685d66 | |||
| 90ed77d40d | |||
| 71fd5b74f6 | |||
| 651e2a0090 | |||
| 308c127b89 | |||
| bc71e62a0b | |||
| 9a9d60031e | |||
| 71b1212e0b | |||
| 92fd37db8b | |||
| fffdfeacbd | |||
| 20dfc34567 | |||
| a2fe60c70a | |||
| 63d3db639a | |||
| 0656582552 | |||
| 0c339b640a | |||
| d603d27103 | |||
| e966ce6cdd | |||
| 4c917baaf4 | |||
| d88520764a | |||
| 762d4ab755 | |||
| 9514f915ab | |||
| a4d1dcd164 | |||
| 5b40569188 | |||
| 7519890d85 | |||
| 1705cce230 | |||
| 055a717c10 | |||
| 2e47759d84 | |||
| d340d620e5 | |||
| 117d026b91 | |||
| 24492bf2ce | |||
| d2ba7cde6e | |||
| bf1929f06a | |||
| df764e1940 | |||
| dbc2763df3 | |||
| 4d3718e1ff | |||
| e26946a579 | |||
| cd08cf6766 | |||
| 120c31d8f1 | |||
| be2b16b68d | |||
| 1dc3af61a6 | |||
| dc1113f4b6 | |||
| 349fd6aacc | |||
| f7e77e57d5 | |||
| a7d8e656c6 | |||
| 015f3171bc | |||
| 1b19574f17 | |||
| bea0ddeaf5 | |||
| e846282128 | |||
| 0c54426f3d | |||
| 6f15f57f97 | |||
| 383305310c | |||
| 8bc803850d | |||
| 8fcea44341 | |||
| d47775f113 | |||
| d3224e59c3 | |||
| 5c36946442 | |||
| a3d52549d3 | |||
| 6cfbd4906a | |||
| 6ecdc4acfd | |||
| 66a6b7a111 | |||
| a09de43723 | |||
| b17d5e860f | |||
| 2b3375db10 | |||
| 884aa8e156 | |||
| ca8d2929c3 | |||
| 3aefe16c66 | |||
| 923a461866 | |||
| a2a36d8497 | |||
| 496bfd50c6 | |||
| 2747bc9a2c | |||
| 5f3fc17d6c | |||
| dbf3cbe24b | |||
| 9e053c2ae2 | |||
| 4570a9c3ed | |||
| 047ccd1348 | |||
| 0277d4fbfb | |||
| 294bf17dd0 | |||
| 30673f8623 | |||
| f333a31b17 | |||
| 971d35be22 | |||
| ef8d0624ce | |||
| 1d69a6faa0 | |||
| f02ebf421d | |||
| 11bf7af3d0 | |||
| 7e47faf8d2 | |||
| a22aa2007f | |||
| 0ab2da3cd2 | |||
| e522244a29 | |||
| 979c0a4d19 | |||
| b7527dddf0 | |||
| 3f5134149f | |||
| d5e7c58c57 | |||
| dbb54ec25b | |||
| bc05155a91 | |||
| 9cb98d73c2 | |||
| 5e954a7869 | |||
| 4cd2bd34ce | |||
| 0b3502afdd | |||
| 829fa21ecb | |||
| 9bde9c9557 | |||
| 6ce1ebfb65 | |||
| 8dad97d334 | |||
| d10940a144 | |||
| 7d413f1b1d | |||
| 5d60aa15bc | |||
| be8f863886 | |||
| 835743e25e | |||
| d8d6dab9ea | |||
| b814b52775 | |||
| ed5f14e2b9 | |||
| df4d6a108a | |||
| a9eef2cb2e | |||
| bc693d2902 | |||
| 2b6556916f | |||
| 96321eed74 | |||
| 91c50e6620 | |||
| b6da6093b8 | |||
| 96c8cf69ff | |||
| 8f4d8feffa | |||
| dac851531c | |||
| 4c708ce8f1 | |||
| c3657a6b95 | |||
| 399fa5f51f | |||
| d073526216 | |||
| 379a452cca | |||
| af166c1db3 | |||
| 1aaa19baf9 | |||
| f921f91d44 | |||
| 62746194c0 | |||
| 36da9596c3 | |||
| 7c459a1235 | |||
| 28dfa20cf4 | |||
| 60055e68ee | |||
| 8ff79ae8a5 | |||
| a07bd3632c | |||
| bca41ae58c | |||
| e2c974e3b8 | |||
| 0176766ede | |||
| 3c87ae665f | |||
| 3e2822048a | |||
| 737b58c3fa | |||
| eb332c0435 | |||
| d8736b043f | |||
| 4f91dc8d9c | |||
| adb597dfad | |||
| 70264d5019 | |||
| d6711bf478 | |||
| 2f9c765c14 | |||
| aa8b852cc0 | |||
| 81fa2e8f9a | |||
| 2a8fd22d52 | |||
| e1e189d723 | |||
| a863ffd487 | |||
| 039e5d129b | |||
| c304d0f688 | |||
| d041646709 | |||
| ad28973882 | |||
| db5a85ceec | |||
| 0a7fb90201 | |||
| 6818500ac2 | |||
| 11d271014b | |||
| 5edfe05924 | |||
| f7ed6458c5 | |||
| cb38fae383 | |||
| 0d14c7a5fc | |||
| 915478c1a0 | |||
| 38caa8f2af | |||
| 371fc2573e | |||
| 1278496492 | |||
| e33f92bc04 | |||
| 0041e99ecf | |||
| 42a646c84e | |||
| b13593bae2 | |||
| 5b5adfb47f | |||
| ba5b663df7 | |||
| c4cc96e7e5 | |||
| a68a7b4d7b | |||
| 418b3274d3 | |||
| ccb9796f37 | |||
| 62380b80ba | |||
| a4617a9592 | |||
| 5de053b75e | |||
| 7af5850d05 | |||
| 80919a4a69 | |||
| d6fa93f72d | |||
| e935e36ce6 | |||
| 166a38bca2 | |||
| dbf93d6ba9 | |||
| 3f9b9fab97 | |||
| ae8fc6b167 | |||
| 218bb347f0 | |||
| 88bcfba9c0 | |||
| 0123c54f1a | |||
| 6d9debab6c | |||
| 1d8fc10f2f | |||
| 0d45d9843c | |||
| e43ee93e1d | |||
| ac6597599a | |||
| 8277e3cfcb | |||
| 346c9f5e4b | |||
| cd8adbe83b | |||
| 6456fa802a | |||
| 0f2155a9ec | |||
| 782169425c | |||
| 27b706deba | |||
| 31ff680070 | |||
| 11affc304c | |||
| cb051ec67d | |||
| 770020089b | |||
| d68bf5ab38 | |||
| f905710779 | |||
| 3ace3ca261 | |||
| 6e3cb9e7ef | |||
| 7c0ba8b45f | |||
| 935483f3d0 | |||
| 2487532bd5 | |||
| 022ebce480 | |||
| f8c8115a9d | |||
| 19ce2cf283 | |||
| 54141921ee | |||
| a4c5d25e52 | |||
| a462e4ee5e | |||
| ea04067abf | |||
| 98bee7387b | |||
| cae010a0f1 | |||
| fd1655f00c | |||
| 2e776f986a | |||
| faa6786712 | |||
| 1418211b6a | |||
| ee5235df06 | |||
| f5d5dd00d2 | |||
| 1b7aca691a | |||
| c716298121 | |||
| 75f74b7e41 | |||
| 5906e23c98 | |||
| 3b25bc5e45 | |||
| 8ae9952294 | |||
| 7d86f3e860 | |||
| 1b89d50c20 | |||
| 3033c59eaa | |||
| 874cbb62d2 | |||
| 9e2b51ec6d | |||
| e6235eb59f | |||
| 6c96472c2a | |||
| c455f1b420 | |||
| 7fdb44a93f | |||
| e53ba81da3 | |||
| da1f604f09 | |||
| 68e791c2fd | |||
| 4e5ef04702 | |||
| dd9004f192 | |||
| 4a7f9c7527 | |||
| a2cdc35a56 | |||
| 14f6ccca71 | |||
| 6db5205bfc | |||
| 2de6b9f3ff | |||
| 6e08d09163 | |||
| 3d64c86da9 | |||
| f3ef4f9ee6 | |||
| 8f659219e0 | |||
| 19dd5259f9 | |||
| 30cdf52611 | |||
| 83f1a9e068 | |||
| df3382c616 | |||
| 70c886cd9a | |||
| 2397b1246c | |||
| d0f14e8d26 | |||
| 7a9f133f95 | |||
| 80e871d1b9 | |||
| c92548016a | |||
| 0d8c21af22 | |||
| 8cb6415915 | |||
| 279eaed9c8 | |||
| 7d5f8c2f99 | |||
| f2c69ba9a4 | |||
| c19d95dfb5 | |||
| 078aa9c5e7 | |||
| b76463f8d1 | |||
| 2b1c25bcfa | |||
| b9f9148247 | |||
| 38da9bf300 | |||
| 63ecd19ceb | |||
| 5b159a7e34 | |||
| 8a6e40e34b | |||
| 57ca4280e7 | |||
| a2110b9947 | |||
| de2c16ed7c | |||
| 046a7839d4 | |||
| 794a97d587 | |||
| 5aa32a21f6 | |||
| bec0a59ac1 | |||
| 9024feaf5d | |||
| 078d3bc991 | |||
| f95079d9aa | |||
| b35dfb7158 | |||
| e75ca8c119 | |||
| 81aef5871d | |||
| fb54c393f4 | |||
| 67df72c5b6 | |||
| 7e4b4527c3 | |||
| f86a5fcec7 | |||
| f6d3028a22 | |||
| d9dfe41fe1 | |||
| 2692461e86 | |||
| ae907a2a90 | |||
| 30f801f5e2 | |||
| 49adbd002f | |||
| 55be5be654 | |||
| fbe5ce3dd6 | |||
| 410be67daa | |||
| add45aa331 | |||
| 45e7dbd220 | |||
| 97972ed3fa | |||
| b6f174e17e | |||
| c260db3d3d | |||
| b07c008de6 | |||
| e94e8ee2c8 | |||
| 2cb0628f17 | |||
| 15706ac5a8 | |||
| 53a86a19d4 | |||
| 4b8f72d60a | |||
| 1a2d2157c2 | |||
| 0ed2e406ac | |||
| 2dcc0c1307 | |||
| 71b7b29689 | |||
| 90444cc6d9 | |||
| 4d7479d4c9 | |||
| 66156cd8e4 | |||
| bd8136db38 | |||
| 56b4ccacb0 | |||
| 7d7dcb370e | |||
| 62513d85d4 | |||
| 11c73c24d1 | |||
| 8ca9a86b54 | |||
| 92d908f9f3 | |||
| 2c74f9578b | |||
| f5869553a9 | |||
| adb4b3e7ff | |||
| e6018e634c | |||
| c0570d8ae1 | |||
| 7812ad4c88 | |||
| 221114e8e0 | |||
| 9116b2c13b | |||
| 2b0014bf2d | |||
| 034521b1a0 | |||
| 66fed133d6 | |||
| 5c08c5b365 | |||
| 9c9726e6e3 | |||
| f4c869c423 | |||
| 0bdd1efb6d | |||
| ce566cb1b5 | |||
| c9f367e269 | |||
| 1addfcb6ef | |||
| 0d4f9dd5ce | |||
| 60c24619a8 | |||
| 716edb3bb5 | |||
| d145e59136 | |||
| 3b6375af5e | |||
| 72a75c84b3 | |||
| 3e0552a61f | |||
| 4538a24327 | |||
| 60984ab344 | |||
| 2a013cb61e | |||
| e9f233078b | |||
| bae24b15d6 | |||
| fd432c92af | |||
| d6274ff045 | |||
| 773cb265d9 | |||
| 4859ab54b7 | |||
| eb633a3669 | |||
| 749da667eb | |||
| cbe7ea1497 | |||
| aa7943cd73 | |||
| 791a6c5fce | |||
| 367c6fd8d7 | |||
| 0decad78ab | |||
| 2d54ee0572 | |||
| cca2052446 | |||
| 90951ec125 | |||
| 24e9863f8e | |||
| f6891aa9ff | |||
| 2c8a3e3f17 | |||
| 1472c3e2c4 | |||
| bae53b5bb5 | |||
| b8e749fb82 | |||
| 5745d9af2f | |||
| a68ea4de88 | |||
| f61d6c3f3b | |||
| 08850a0410 | |||
| adad556ac0 | |||
| 47ccf6e724 | |||
| 434dca8930 | |||
| 7d2a88054b | |||
| 997ab10074 | |||
| e2b04f4cc1 | |||
| a14432587e | |||
| b01f578486 | |||
| 8423b72acf | |||
| fc06862474 | |||
| e94848468e | |||
| e654a94465 | |||
| 258d42dc0e | |||
| 3d0741bc49 | |||
| 6fc317590b | |||
| 93469c330a | |||
| c6e465d595 | |||
| 465a45aa43 | |||
| 55a2f2a4a7 | |||
| 49d471d4c0 | |||
| 27dc68ba4f | |||
| 2f940496f1 | |||
| 5309a2d640 | |||
| d837366270 | |||
| 4fa9abfb26 | |||
| 4d67173eb0 | |||
| 5ea1d751a1 | |||
| 9fab383dd3 | |||
| 83ea7c3ea0 | |||
| b1f6bfa36d | |||
| 7576142dd8 | |||
| 8560152cd4 | |||
| 430f85d141 | |||
| 50c40309cb | |||
| c7777fd7f8 | |||
| 553ce58be2 | |||
| c95367ddf9 | |||
| 73ead6c6ec | |||
| 27bd443a6f | |||
| 517e2949cb | |||
| 42cd69d091 | |||
| edac6d4a46 | |||
| 40113bc342 | |||
| 228f8cacf6 | |||
| 1dbbef47eb | |||
| a174df63e8 | |||
| 244b9acc9a | |||
| 147f0fa27d | |||
| 55c17b1690 | |||
| 7061b4e88c | |||
| 83e598cb23 | |||
| 93f74cfbd9 | |||
| 6624a3ab23 | |||
| 4fcf1ebd14 | |||
| ccac25cd47 | |||
| 35681cb76e | |||
| f709aa3611 | |||
| 916499bd12 | |||
| 86182e7c54 | |||
| 4db45ebf4a | |||
| 7f9be93d20 | |||
| bedb6b8705 | |||
| b4a0b83613 | |||
| f9a429e72f | |||
| 97796f06a2 | |||
| 6251278c6e | |||
| bf142acdef | |||
| a8f5a7a1b3 | |||
| fd5f7fd729 | |||
| 593c2feddb | |||
| 3c5681fa25 | |||
| 6533bbd018 | |||
| cb9063a571 | |||
| 35f7c95cd8 | |||
| 327216f6f8 | |||
| 27398b5ccd | |||
| 1586d29593 | |||
| 850e2c2b51 | |||
| 22040a2d7c | |||
| 417248242c | |||
| 38304266a3 | |||
| 00e3ff8ec5 | |||
| ab0a705f0d | |||
| 0f6a0ae616 | |||
| 819fe567db | |||
| 4a43fd11df | |||
| f73da7bec8 | |||
| 009de649f0 | |||
| d0a3c5798f | |||
| 18865cf2d0 | |||
| 9bba7e514b | |||
| 4b6fd719cb | |||
| 79342c6741 | |||
| 1ac8ffd962 | |||
| 27dc086212 | |||
| 08949b6856 | |||
| 95768260d3 | |||
| db3c70f14f | |||
| eb04ddb053 | |||
| 53f2a9d03d | |||
| cd66496411 | |||
| ef6af5a1ae | |||
| 70d8704ca7 | |||
| 546516e23a | |||
| d2ecefd91a | |||
| f88579af37 | |||
| 6231307fa2 | |||
| a098837f71 | |||
| 96b58d1577 | |||
| 33d0ac1415 | |||
| 61f68dcb71 | |||
| 52bcc587ba | |||
| 6e5fe1202e | |||
| 0005b20095 | |||
| d48faa778b | |||
| 10a4437b93 | |||
| e0c2daacb8 | |||
| 2c6b04c230 | |||
| 1eb51d9a39 | |||
| 086fef838e | |||
| d493a1041f | |||
| 7380665334 | |||
| 71142b0b5c | |||
| 680350886f | |||
| 60e148de81 | |||
| f3f5739cb7 | |||
| 5bc84b6702 | |||
| 6570319bfe | |||
| 14ad7ac534 | |||
| ee6c0d8a50 | |||
| 5f28b285aa | |||
| 75d3f78ca2 | |||
| ba2c191fa5 | |||
| abaf777273 | |||
| e346bf2348 | |||
| 0d1693c159 | |||
| a7f528d240 | |||
| 975f19c98e | |||
| 0f515c9e83 | |||
| 537b268a11 | |||
| 6a8e7be3fb | |||
| 6f49c93f5b | |||
| 4782fadbf8 | |||
| 2d0f97b850 | |||
| 1905155d01 | |||
| 4597e0ad4f | |||
| a7da029138 | |||
| 837f69ca3d | |||
| 82cdd75365 | |||
| 132f993d9a | |||
| d36fe84d44 | |||
| 0613e138f1 | |||
| 85530bc3b5 | |||
| d0bbe683e0 | |||
| 14e49aeb9a | |||
| f7753759d3 | |||
| d6d4a3e006 | |||
| c8961a8d3b | |||
| 98f26e034b | |||
| 9b7e7fd42e | |||
| 54d555e4d6 | |||
| d309db527f | |||
| 5bd2ad6487 | |||
| c584a27727 | |||
| 19d5a8d04f | |||
| bb9fc2c5e4 | |||
| 967c2e2227 | |||
| 3d37e10264 | |||
| fcddfea07c | |||
| 53f849afe2 | |||
| 41395bd365 | |||
| ca16c2572f | |||
| 0de46cb7fc | |||
| 8f46992f34 | |||
| 67754efca8 | |||
| 4d71d17734 | |||
| ce9b10ef48 | |||
| 21aa0626f1 | |||
| 7dab2f7f20 | |||
| 0b161a0013 | |||
| 95061bf343 | |||
| 1175eed5c0 | |||
| 72c5ff0e51 | |||
| ca13768358 | |||
| f26eeb10ef | |||
| 4490ff1d61 | |||
| 25c3011fb3 | |||
| 803e8b0584 | |||
| b2efe4183e | |||
| 95c4cf28e0 | |||
| 3410e157e0 | |||
| 92d0edeb48 | |||
| 10a970efb0 | |||
| e1c97deae5 | |||
| 605decbe8b | |||
| 11f47fd82c | |||
| ca58e21339 | |||
| b4d04ad5ce | |||
| 170e5c1a51 | |||
| 0148670403 | |||
| 943cb2e612 | |||
| 6ef9388f99 | |||
| 2548438f95 | |||
| e8686cf5bc | |||
| db7ccd281f | |||
| 2bb35f193d | |||
| cddc0e0596 | |||
| 12af514875 | |||
| c11b7acdfa | |||
| 60b032bb06 | |||
| 7e0a650934 | |||
| 2ad5200e3a | |||
| 63a076fc2a | |||
| 099899a7b0 | |||
| 3ae5b6b0f9 | |||
| 0a484ceab6 | |||
| 6aa516874e | |||
| 162f94c07c | |||
| e1d5b58c66 | |||
| 388923afe2 | |||
| 44951621fb | |||
| e6928330d4 | |||
| 7ae9986f67 | |||
| c3ad1b86d5 | |||
| d5dedb219e | |||
| 8f6691751a | |||
| 6b315996ab | |||
| 5a9550ca47 | |||
| 326daad961 | |||
| e4bb008fa5 | |||
| a8be92a272 | |||
| 38a9bc9175 | |||
| 197525991a | |||
| 56609c5d53 | |||
| 77b2c7e58d | |||
| 6522a682e0 | |||
| a63adfcb97 | |||
| f78fe7db45 | |||
| a9f5eeca1a | |||
| bc91a3a19c | |||
| 3fa6584793 | |||
| 46bd3427f8 | |||
| ef6c86e186 | |||
| 0fb9ebd00b | |||
| a66dfaae60 | |||
| fa499cca1f | |||
| 623279bb66 | |||
| cd0a19e9e0 | |||
| ec24932bf3 | |||
| be67e37ff7 | |||
| 671f9f543a | |||
| 9174529906 | |||
| 76044dfa68 | |||
| a7c6eeeced | |||
| 5ce6fa0288 | |||
| 736f00e774 | |||
| 651df27d74 | |||
| 706f4db53c | |||
| 6785d185c8 | |||
| e9097be275 | |||
| 3779977d69 | |||
| 0a6dc92e83 | |||
| b362ad446a | |||
| afa037fe90 | |||
| e4deac2ae2 | |||
| 81a7416403 | |||
| 6d8ac07e60 | |||
| 551f366de8 | |||
| d1e399ba83 | |||
| 72edd021d0 | |||
| 0333dbd449 | |||
| 1d8860f73e | |||
| d67fa60bae | |||
| 1616870a65 | |||
| 173a429725 | |||
| ce397b13f6 | |||
| c9ba87d0bc | |||
| 67d43b7ac6 | |||
| 295a3e1a7e | |||
| 206f53f0c1 | |||
| eb699347d4 | |||
| d10a0ccadd | |||
| 8c605dca1c | |||
| b4830f457d | |||
| 52ac2a7524 | |||
| 4b961b000f | |||
| da2df6358e | |||
| 975e604267 | |||
| b691f7bf0b | |||
| 6a80730e36 | |||
| 8b5947ff7e | |||
| 04240aa8df | |||
| 8df6583150 | |||
| 67af48a458 | |||
| 128c1de405 | |||
| 15ab138261 | |||
| 9d065c546a | |||
| b6a85a292c | |||
| 4906c77f53 | |||
| 3a7bc3a5fa | |||
| d197c0da15 | |||
| 1fed9b0aed | |||
| 0e7a8c1af9 | |||
| a52bcb3205 | |||
| b57bf58068 | |||
| e5c1b645e5 | |||
| 618e61e012 | |||
| d70bf7d361 | |||
| a0f4d06ca7 | |||
| 3825f0b224 | |||
| f06d02bac2 | |||
| c835a0741e | |||
| a8ee916ffa | |||
| 2e7d1c74b2 | |||
| d1b6d37886 | |||
| b8442ce2fb | |||
| 26ea36f242 | |||
| 6b89ec979d | |||
| 568aa779be | |||
| 07ae2759e5 | |||
| 57181892ca | |||
| 98ad79bf5f | |||
| 156ae1a475 | |||
| 7a4ac7cf27 | |||
| e95ba86048 | |||
| ed9df925aa | |||
| c473bccc2e | |||
| 802dfe7da6 | |||
| 7be6410a13 | |||
| 76375da047 | |||
| 528806df30 | |||
| 46fdd6aaa7 | |||
| aa24bb6f19 | |||
| d41c7e4832 | |||
| aec74169ef | |||
| 5d7122ed5c | |||
| 7abd1d3c5d | |||
| 438969f986 | |||
| f44ea8046e | |||
| a2627e5b33 | |||
| dbe8fe29f7 | |||
| 468bf90f9f | |||
| 84789d2083 | |||
| eee4fadc49 | |||
| 1ef73f12a4 | |||
| 9706ca50d5 | |||
| 7fba804f17 | |||
| d4f9eecbba | |||
| 9719490d68 | |||
| 4a288be02e | |||
| 31585ce1a9 | |||
| ef8a52575e | |||
| 8812c7b8e9 | |||
| 248c8838f7 | |||
| e58036d664 | |||
| 27454ae3e4 | |||
| 4ac26edee1 | |||
| 839b1bee9f | |||
| e8920f3ced | |||
| 245dfe198a | |||
| 9aad184fca | |||
| 8fc7db8e4e | |||
| f3a807b65e | |||
| bbe07b8166 | |||
| 546ba267ac | |||
| 7d2e0db0c0 | |||
| 3b8c1c1f01 | |||
| d49bed47b6 | |||
| 52b9a4b683 | |||
| 6d949ed6bf | |||
| 61973714b9 | |||
| 4b2656b07c | |||
| 9c5e79619a | |||
| 302f3aa7b6 | |||
| daf05b4410 | |||
| 9a8d01b7e8 | |||
| a103fc00b5 | |||
| f9de7868c5 | |||
| e72a4f2c76 | |||
| 374d005e14 | |||
| b95065fd70 | |||
| 106880b7f4 | |||
| de9d2b303d | |||
| 4082244e80 | |||
| ec8a674be4 | |||
| f917165411 | |||
| f4b46d144d | |||
| add0ab9dd3 | |||
| 5227586f80 | |||
| afedec1dd2 | |||
| 75386cab65 | |||
| 7df59d9491 | |||
| 93d05da838 | |||
| dcda192c0a | |||
| 961bde6723 | |||
| 59a41500e7 | |||
| 704bd18f7f | |||
| 2261de2884 | |||
| 7bc4ab9655 | |||
| 5e6d2f12d5 | |||
| fb7d20c7e0 | |||
| 60ba4407b9 | |||
| ba518d7c85 | |||
| a045f57430 | |||
| b10274c65d | |||
| 567ecfb5e2 | |||
| cd62b1d5c0 | |||
| 7a32e5f163 | |||
| a79fa0a2c5 | |||
| 2c64e08e3c | |||
| c1e4a2ce33 | |||
| c277590e3b | |||
| 42c89ac604 | |||
| bfc691741a | |||
| 517e71a6fb | |||
| ab68837a90 | |||
| ba122b98f0 | |||
| 8900c58bd3 | |||
| 6573ce860e | |||
| 681935eb68 | |||
| afd58646be | |||
| 4503678e2c | |||
| 1bc81c9be9 | |||
| 1cffeea6ab | |||
| d4b91d828a | |||
| 5e36f80c93 | |||
| 49a1a2d6a1 | |||
| 6389bd4d3d | |||
| 92c2aa3d06 | |||
| a25ecc22fb | |||
| 8417eedf84 | |||
| 89e88c03c4 | |||
| 785f5ae1db | |||
| aaf3fb5652 | |||
| 6bdcfe53de | |||
| ee091e7ca9 | |||
| 4eb58cd967 | |||
| d0df8d17a1 | |||
| 8751075b26 | |||
| d1b70c416a | |||
| f9c71dff07 | |||
| 8b49cc5463 | |||
| fbd4ad1565 | |||
| 45b3b568b6 | |||
| a654eb9396 | |||
| 7ab24309ee | |||
| 10b087b946 | |||
| baa9a19b70 | |||
| 5a416e201a | |||
| 3d814e7b40 | |||
| 5eb1fac52c | |||
| 987396b426 | |||
| 9caaab8942 | |||
| 52e558103b | |||
| 7c723b6c2a | |||
| 0e782ab80f | |||
| 2e2218d495 | |||
| 5f44b7fea0 | |||
| 824c59cbd8 | |||
| 06b4a03ebc | |||
| 1cb65a3f4f | |||
| 7259801cd5 | |||
| 1256f87df0 | |||
| 4512d9e22c | |||
| 49d51257ba | |||
| 7d5f2a4d41 | |||
| 46df190a44 | |||
| 13d7538d4e | |||
| f912aa1fb5 | |||
| bb65549dc1 | |||
| a99eaf1ec4 | |||
| a25e9e98c8 | |||
| 6015132652 | |||
| ac0c16e475 | |||
| 5294089fd0 | |||
| 3ec24e5e39 | |||
| dc44dc5e84 | |||
| cf76de8811 | |||
| 86421d8235 | |||
| 5e77e96e5f | |||
| 2f4296001a | |||
| 1ba171c2fe | |||
| 75e64e8c1d | |||
| 916c61483d | |||
| 0bf013e118 | |||
| 973b89609d | |||
| 93d96145b9 | |||
| cb48a131ce | |||
| a0c0171d12 | |||
| 736476f9cc | |||
| d5c5c4b8cf | |||
| 8e0e8e96af | |||
| 23b4fb4722 | |||
| 93f6d44759 | |||
| 23546dc602 | |||
| 89976b31dd | |||
| 60904a6df0 | |||
| 07295de852 | |||
| 72315d1229 | |||
| fef5735437 | |||
| 61f4ef0f3c | |||
| e3c66e7f54 | |||
| 91918313b4 | |||
| abb5fd1ec1 | |||
| fd6beb0044 | |||
| 3e8816786a | |||
| 1b6eff5cb7 | |||
| f018582446 | |||
| 4fc6511b37 | |||
| 52ff8af2be | |||
| d29475b6fb | |||
| 32e7193212 | |||
| 23fc146eca | |||
| c4ac29a97d | |||
| 9c24d4a4bb | |||
| bd579b8004 | |||
| 7fd9e52bc3 | |||
| dd13f9f24c | |||
| a2d9c972c1 | |||
| 0fe3c3ece5 | |||
| 963d2f9589 | |||
| d5574186b1 | |||
| 5d148a6d0d | |||
| d7af2cb41d | |||
| ed5bfb7b27 | |||
| b81e988da5 | |||
| a7c868d3d1 | |||
| d34d80788b | |||
| a381305a9f | |||
| bb022c49bd | |||
| 31e8a1cbdd | |||
| a19074993d | |||
| 2621ff9b5c | |||
| 0a1c718cc0 | |||
| 751e39960c | |||
| bc0bb1a721 | |||
| fb5da5e4ff | |||
| addd684e4a | |||
| 293f3c6cef | |||
| 61a157a3c4 | |||
| a7ba4c471e | |||
| d9d161655c | |||
| 8c18843b58 | |||
| 04d796d760 | |||
| 12c427b11e | |||
| 9415983797 | |||
| e82ea1bc5c | |||
| b100cb3927 | |||
| 2b3a0cd5b3 | |||
| 49f4bdb933 | |||
| 911fe73f58 | |||
| a577378a1e | |||
| 997bf0b887 | |||
| 428a2652de | |||
| 0580375bf4 | |||
| 51c1b7d21a | |||
| c8fbd13a31 | |||
| 4b0ce196e8 | |||
| ddacd8f2b0 | |||
| 49597e16ab | |||
| 7a713f925f | |||
| d64bfc230a | |||
| 938d593fc4 | |||
| b96189c213 | |||
| 987e6b6e76 | |||
| a39652e1eb | |||
| f62781de18 | |||
| aefef93e21 | |||
| 4d4142f3ae | |||
| 22f9c5188d | |||
| 1781318bad | |||
| b936394a68 | |||
| 38926d086c | |||
| f49d3756ea | |||
| dcb0621e5f | |||
| 5a5a444f42 | |||
| 9b608b2f76 | |||
| 2c04e9fb57 | |||
| 4142577664 | |||
| 30e92bab83 | |||
| 6957af8450 | |||
| 9ba350035f | |||
| f356755725 | |||
| d865ec0b59 | |||
| 2cdbcf4017 | |||
| 319a66181a | |||
| e6007815a2 | |||
| e4090bb123 | |||
| b9d6e370ca | |||
| 0b5e521f0d | |||
| 593e18225e | |||
| c064daed08 | |||
| 838d506af6 | |||
| 56482f0524 | |||
| dbf78d4c9f | |||
| e1ec5066f5 | |||
| 70cefc0467 | |||
| 3b4d6147b3 | |||
| 8114811bce | |||
| 006d79851a | |||
| 656b443af7 | |||
| fa472b3d9f | |||
| b901073171 | |||
| 03404d74a4 | |||
| 2154cb1dba | |||
| f3fb3f7ca7 | |||
| 3d154f9915 | |||
| 20090072ae | |||
| 7a0c3c9bfa | |||
| 0cfb79f2aa | |||
| 405e5a4aaa | |||
| 45cfdde703 | |||
| 5fe7642ad7 | |||
| bd85ec1b10 | |||
| 18d61f9f14 | |||
| cee502b855 | |||
| 524eac388e | |||
| 9197a889a2 | |||
| 0daaf560ae | |||
| e7c87085a7 | |||
| 1b445aa3bb | |||
| 9a5cb77ca0 | |||
| 39ddc7582f | |||
| 6225da01dc | |||
| 0e17401c16 | |||
| 00b16d548c | |||
| 9f5b114106 | |||
| b277385d4f | |||
| e91718f11b | |||
| aacc6faf88 | |||
| 442413f4a8 | |||
| 4f69be6dc5 | |||
| 6522ded7d9 | |||
| 68f2c3f6eb | |||
| 6a8d109a47 | |||
| 0ffe61b2fc | |||
| f38e31a081 | |||
| 9a925ffa1b | |||
| f47b968000 | |||
| 1dfef1f347 | |||
| f774f78a8d | |||
| 699e533fff | |||
| 88fcbcee28 | |||
| f754f81e6b | |||
| 19ae5946b9 | |||
| 3b8959b8a3 | |||
| 0b651a95bc | |||
| 43ce595c92 | |||
| 9ba07b30f0 | |||
| 4c956f9a91 | |||
| ca5307dd5d | |||
| ca348a9ea9 | |||
| e94dfb53b0 | |||
| b4d1b414ee | |||
| 19ec211697 | |||
| 384d51318c | |||
| 5a00bfb7b8 | |||
| 453b3dc2b6 | |||
| 6d70e67649 | |||
| 1e8b88b032 | |||
| 2f078de341 | |||
| ec7d1efc93 | |||
| ea99cf21b4 | |||
| 0b8b524ebc | |||
| 1097518927 | |||
| 26a9eda4ea | |||
| 3012252048 | |||
| f3fd70a895 | |||
| 998742d331 | |||
| 0e9f4386cc | |||
| 0b518d2272 | |||
| 44b4a808c4 | |||
| 3e6c04fdf2 | |||
| f2c4f429b7 | |||
| 2565ccacd7 | |||
| f914bc03ea | |||
| 06b73865b8 | |||
| 3e651985c1 | |||
| 9ead37d43f | |||
| 26b1b5acf0 | |||
| 194cd7b9dd | |||
| 1724504378 | |||
| 9b75205de1 | |||
| 4b78d15845 | |||
| 93108c244a | |||
| fd1bc80682 | |||
| 723c0f9f34 | |||
| 86fd036bad | |||
| 932ec85676 | |||
| 84919a9a02 | |||
| bd702e9c61 | |||
| 5d7348ac8a | |||
| a547fa8ad1 | |||
| 30424c3c1f | |||
| 4e3dda042d | |||
| 40009363ee | |||
| 70ccf677c3 | |||
| 50032f2fbf | |||
| 04c0030a85 | |||
| 95a8c7870b | |||
| b58194b5b4 | |||
| be35df9b5c | |||
| b638f6336a | |||
| 79cfaed6a8 | |||
| f677bf91e9 | |||
| 3f5bc0f444 | |||
| c2cd9b7b87 | |||
| 68ad5e9515 | |||
| d808689cb3 | |||
| f736a6e5fa | |||
| 460b087b1f | |||
| 447b590365 | |||
| af50daa022 | |||
| 89df29b945 | |||
| b5b35f1d3d | |||
| b48406c941 | |||
| 47826b7e23 | |||
| b9865d09c7 | |||
| d4577a487e | |||
| 36332af06e | |||
| 8c93208255 | |||
| 7d45cfaf45 | |||
| 858def093f | |||
| be04366d4c | |||
| 8ab28c7ad3 | |||
| 8d6249f9a5 | |||
| 1bc6615534 | |||
| 6d46824387 | |||
| 84a9194649 | |||
| f8c7bda679 | |||
| ea6f776dcb | |||
| 9254479612 | |||
| 4f01ab3f7a | |||
| e2d2e2a7f2 | |||
| 32909effd9 | |||
| 354a02b94c | |||
| 195520d21c | |||
| 3d2069592c | |||
| 368ccff384 | |||
| 6774ab10f5 | |||
| d3110f5c43 | |||
| 015146a927 | |||
| ecbfefeb5c | |||
| 57d0475281 | |||
| 88aa8a4c54 | |||
| 56348548be | |||
| b21ff58336 | |||
| baaa6ed85b | |||
| 8f3ae7e04b | |||
| 542d000435 | |||
| 9edd45f1bb | |||
| d9eb4f2cdc | |||
| 590da3344b | |||
| 81a50062b1 | |||
| c204d77b0d | |||
| c6750bb7bc | |||
| 53d4825b13 | |||
| 0be8ff94a1 | |||
| 7d7d60bf08 | |||
| c5c1911791 | |||
| 0fb95e259c | |||
| 5db9ebe93a | |||
| 39ed75c19c | |||
| 5b9688e087 | |||
| bd92dcf80b | |||
| f77dfa7825 | |||
| c26dc8cd78 | |||
| c7308f4211 | |||
| cbb2628856 | |||
| ae90c75b78 | |||
| 5be7ca2bc5 | |||
| 79bccd5002 | |||
| 254db1fc2c | |||
| d6735d1fb5 | |||
| 9b3944a017 | |||
| 6ebeaae305 | |||
| 8cdaf43001 | |||
| ee0329cc1d | |||
| 52bf8581e7 | |||
| afc60a62a7 | |||
| cb25a15a36 | |||
| cd0e152dbe | |||
| 8d014ee27a | |||
| 67a09bf28e | |||
| 9b1e705347 | |||
| 4f09747caf | |||
| 3af89f83eb | |||
| d4f2f69ed0 | |||
| 21984680ce | |||
| 6e2e23f5d0 | |||
| 06b5f0e8b8 | |||
| 484f6d2889 | |||
| 1eaa656001 | |||
| 5075d49b40 | |||
| d5529f4077 | |||
| b4240ca49b | |||
| b04c6b2f87 | |||
| 9d3b9ef021 | |||
| 01577278f0 | |||
| f97050a685 | |||
| 2715c774ed | |||
| aa545edf3d | |||
| 7626d6d75f | |||
| c8def9eb7b | |||
| cba74d6e8d | |||
| 62c9490282 | |||
| 048318e341 | |||
| 0f25a738d5 | |||
| 0d327e7743 | |||
| 49ee434202 | |||
| 8b3f1b9d86 | |||
| a76e93cea6 | |||
| c26252d25f | |||
| 2e23b79ab8 | |||
| 7faa83eb8a | |||
| 6d6d097069 | |||
| e9c1deaca6 | |||
| 0b34858d49 | |||
| b900613df1 | |||
| 095c53a61a | |||
| 640b914ff8 | |||
| e48be100ed | |||
| 429b4f1245 | |||
| cc7dee211a | |||
| 3238d504eb | |||
| aeda8ec571 | |||
| ec440d0bd3 | |||
| 2d094ae872 | |||
| 839c180d8c | |||
| 3f55d6d4ff | |||
| d67a4b9f6e | |||
| eb9242cba0 | |||
| 11eb11e502 | |||
| cf4451e60f | |||
| 1e2b9dbc34 | |||
| 7d7b4b816f | |||
| 5405763b05 | |||
| 0b468d5dd5 | |||
| 50477b5091 | |||
| f53103efe0 | |||
| f57e9718b9 | |||
| a747f96a9d | |||
| c5db9cf61f | |||
| c0cf748677 | |||
| 148d6b01ef | |||
| 54dbe697f1 | |||
| 22306842d6 | |||
| e1237b99e2 | |||
| 66d534a415 | |||
| 72467589e2 | |||
| 9739507dcd | |||
| c215344550 | |||
| f849f79595 | |||
| 4f42a2230e | |||
| 11dad1b10b | |||
| 9fb9fd3511 | |||
| 246474a2f7 | |||
| af0f878de2 | |||
| fc8d16196d | |||
| 41fc3eb8c1 | |||
| 53878c9d88 | |||
| 677982b4ce | |||
| e7290f5ad9 | |||
| 816c43bffe | |||
| 8dd58a2050 | |||
| e96221c83b | |||
| 2214e2d535 | |||
| 2a4ee72059 | |||
| 9a3e9a9851 | |||
| 41920875ff | |||
| 4fd933f393 | |||
| 1165189242 | |||
| 0ae9b97774 | |||
| c644c419ec | |||
| b6e88ce999 | |||
| 3874b56289 | |||
| 29df40407e | |||
| 8a7b6fbb2b | |||
| e3ff8912f0 | |||
| ae6d231acc | |||
| 98114aa7a5 | |||
| 6bd1d9b90b | |||
| cc8cfb6124 | |||
| 36aa148aa0 | |||
| f69180dcf6 | |||
| 864c3bfdc7 | |||
| 4bb34abf91 | |||
| 3887879671 | |||
| 9516a0b02b | |||
| 047041aa9b | |||
| ca5e70118c | |||
| 99159d5932 | |||
| 5d89558b5d | |||
| 5058d41d6a | |||
| 69be19feda | |||
| 73933c683e | |||
| 55e4902d66 | |||
| 2dc1ad5af7 | |||
| ab0def1840 | |||
| 957972e3be | |||
| 49e31f2c0c | |||
| 4585e86fb7 | |||
| 6bcafa516a | |||
| e41f8019d6 | |||
| e8f1da2478 | |||
| b378084925 | |||
| 99f47b43a5 | |||
| dc1999482e | |||
| 7c764f5b84 | |||
| 03316ea82d | |||
| 567f547d10 | |||
| a4a52ec016 | |||
| 1458b1c57f | |||
| 7d59211e67 | |||
| f68662827d | |||
| bd61eb4bef | |||
| 63fabad661 | |||
| b9981cffef | |||
| 30a30d1bc6 | |||
| d5d086d286 | |||
| 6822c8b7dd | |||
| 56b7889270 | |||
| f4cdfc49bb | |||
| 972f1ef4e5 | |||
| 8fda74aefc | |||
| 7bba282321 | |||
| 8c8f59da80 | |||
| 3027a038d0 | |||
| 9c6ee2a171 | |||
| e8d6092a95 | |||
| 3bc08e72dc | |||
| c094962751 | |||
| 70f8abf0bf | |||
| 47318eef9c | |||
| 094a1d98d6 | |||
| 471219e59a | |||
| 2cfd2a0126 | |||
| f3ec039a01 | |||
| f4795db0b8 | |||
| b52d9cb5d6 | |||
| ff2303f386 | |||
| d78fe3b9b1 | |||
| b589d53213 | |||
| fcb01e9675 | |||
| 60b41cae31 | |||
| ecca92951c | |||
| 5612c09b0c | |||
| 8926c52369 | |||
| b1d0b7aac7 | |||
| 923fbfcbe0 | |||
| fc6f8bdba9 | |||
| e6da67b3e1 | |||
| 49fa17978d | |||
| 61211fc08c | |||
| 8316861e00 | |||
| 8ebf0c590a | |||
| 3451d93b57 | |||
| f36ba68722 | |||
| 9a8a0a9bf2 | |||
| ae6d97ffd8 | |||
| 16ffb9cefd | |||
| 92beed0782 | |||
| 27e68c0fa7 | |||
| 9cdd977367 | |||
| 6ad996780b | |||
| bd0a2bcbd7 | |||
| a4e2fcad31 | |||
| 7e23508e06 | |||
| c9928f0929 | |||
| 207549cc88 | |||
| a16d889984 | |||
| 8600020fb0 | |||
| 8950201785 | |||
| c600841902 | |||
| 1a3a73d0ec | |||
| 5a82c47fa0 | |||
| 65f7a4a170 | |||
| 413424bf62 | |||
| 41606e907a | |||
| 01499a21f3 | |||
| a9215a867b | |||
| e9fd8205fa | |||
| f30a3c4ae8 | |||
| 615179f9da | |||
| 2fc5a4f37a | |||
| 25af6b2ecf | |||
| f0fdf9f86e | |||
| 5d5e7bce72 | |||
| 58903d92e1 | |||
| b7ea6bb376 | |||
| a1007d4522 | |||
| 4b68d3294c | |||
| 24b44f6b03 | |||
| 9f20ee6fef | |||
| 14921ca98d | |||
| 663bf866ed | |||
| 4894639c09 | |||
| 2314452d5a | |||
| 22c8ae9d0e | |||
| 996fa5c84d | |||
| 59d2dd2840 | |||
| 3727c2e982 | |||
| 1b67ebe9a6 | |||
| 967ab71adc | |||
| d7c7dadbba | |||
| a48322f1cc | |||
| bd41922f66 | |||
| ccd73c8c68 | |||
| 5b6659f816 | |||
| a5122a6a47 | |||
| 7a4cf11c62 | |||
| 9b9d7df4e2 | |||
| c9330ee0f1 | |||
| 2214362426 | |||
| bdce91fccf | |||
| f9e35983f4 | |||
| dd65f70fcb | |||
| bf600c6eb0 | |||
| 0db6728463 | |||
| 03bccc6b10 | |||
| 09c43b1179 | |||
| e6134405cb | |||
| 0499c6ff4f | |||
| 1860c19539 | |||
| 2d5015bcf2 | |||
| 390ab3bcc8 | |||
| c0d16ed7c3 | |||
| 075f70c220 | |||
| 6abf1613ec | |||
| 0abc21d4ee | |||
| 7a7cdab770 | |||
| 7c6218ccb5 | |||
| 34c5a4b3af | |||
| 9256b0f9a3 | |||
| ce370581a8 | |||
| 39647894a8 | |||
| 3d456bcc80 | |||
| 7ae3c6f2ea | |||
| 404058354e | |||
| d398488f3d | |||
| 35bd2803a4 | |||
| c312a2b868 | |||
| 08f75771b9 | |||
| 060f695fb1 | |||
| de3261521e | |||
| e7bf661432 | |||
| 6470a3a8a4 | |||
| 14aed88307 | |||
| 132f770d28 | |||
| 8f5318a9a2 | |||
| 635265eaa2 | |||
| 038a687d01 | |||
| 69e8ea6f4b | |||
| 1393de8057 | |||
| 7636ff79cc | |||
| 2092aef589 | |||
| eff937699b | |||
| 3efc1f0432 | |||
| 69fee1ae0b | |||
| a0cc6b6274 | |||
| 31eb395858 | |||
| ed1019a004 | |||
| 4e554d128a | |||
| b8d441a327 | |||
| 8fb809bf4a | |||
| cabf6ab32a | |||
| 35c4d70cf5 | |||
| 58952393f0 | |||
| 688d5972ea | |||
| 81176e851c | |||
| 0b987aeed2 | |||
| c7315e2f21 | |||
| aefb229343 | |||
| ac080b3485 | |||
| eb9d69d1ec | |||
| eb4ffee9e7 | |||
| 763347d8ec | |||
| 9670d021c2 | |||
| 232115e684 | |||
| 79f18355fe | |||
| f86055c713 | |||
| ea82bea6f1 | |||
| 28f5b1251a | |||
| 39fbf06511 | |||
| a265d82dda | |||
| e68b550d1e | |||
| 0821edca07 | |||
| bc4faa26b9 | |||
| 668a89bbd1 | |||
| 832d35dc17 | |||
| 2d21d334cf | |||
| b23bc97fdb | |||
| f4df80ebf3 | |||
| 230c51689d | |||
| 799fcbc342 | |||
| 1d25f72ac9 | |||
| 9bfb0321b2 | |||
| 6c1bdc6ff8 | |||
| 826be463f5 | |||
| 469ce9aafb | |||
| 29bb606d04 | |||
| 8f8995cbe7 | |||
| fb1ae2c79a | |||
| 0f4d594248 | |||
| 152d05d5a5 | |||
| 942767eb79 | |||
| 5c070f0475 | |||
| 17c68ae414 | |||
| ab45804644 | |||
| 5f7288f66f | |||
| b308f53e76 | |||
| 0982b8fb11 | |||
| 4cca54900d | |||
| b66ed403e1 | |||
| 692fe69426 | |||
| 428b5971e8 | |||
| 32193b8a04 | |||
| 5bb1de7dbd | |||
| 97531fe80f | |||
| 84755143fa | |||
| 37ab11c58a | |||
| 22cdeaf821 | |||
| ee4d2079dc | |||
| 68606f4cb0 | |||
| dbb11a480e | |||
| 6c29f811d9 | |||
| eb157610d3 | |||
| 89ac698d35 | |||
| e1d910f952 | |||
| ef7331d803 | |||
| 5bb3ca6aff | |||
| bae655ba49 | |||
| e4b4949471 | |||
| 2bfcfbf21c | |||
| 1266382747 | |||
| 287059a891 | |||
| 966809a8f2 | |||
| d8f8720d05 | |||
| aa8471b024 | |||
| 27c9b40ad3 | |||
| 699eb731b4 | |||
| 0eb032a281 | |||
| f89174ded5 | |||
| ff1d53637a | |||
| e825b4359f | |||
| d11b74007d | |||
| 45d5f3b130 | |||
| 25022ceecc | |||
| 1a7476e465 | |||
| 0edc2729e8 | |||
| d898f0ef2f | |||
| d51f004b11 | |||
| c645ed6aeb | |||
| 79aa50d712 | |||
| 3dcb378de7 | |||
| 87c4ebe1d4 | |||
| fdef699b9b | |||
| 498d58e856 | |||
| 441aa277e3 | |||
| e8c314e535 | |||
| 12c8cf112a | |||
| c9fb5cbe4d | |||
| 8573513168 | |||
| 4e337b5ef1 | |||
| 7e0e30d00f | |||
| 72c4727a1e | |||
| 29c197f383 | |||
| c07bd58bda | |||
| ae9a7f7fad | |||
| 1157d6f97f | |||
| 5483547ee7 | |||
| b9608771a9 | |||
| b3d219ef58 | |||
| 46a6e35a35 | |||
| cfea717d20 | |||
| ae45b240a3 | |||
| 0ec79f2c2d | |||
| 6f0d22c3a4 | |||
| 8d074cadf8 | |||
| 4a3b56d0d5 | |||
| 195e9079db | |||
| 8e8fd1096f | |||
| b60811fd0d | |||
| 9eb82fa85e | |||
| 6d6cbd51c3 | |||
| 9e0ff699aa | |||
| 9c1b107998 | |||
| c0d38c97f8 | |||
| f2e003b12c | |||
| ee43592691 | |||
| a1b2979f0f | |||
| 00328e88b2 | |||
| ed2878a8cc | |||
| bc18304827 | |||
| 8d59eeabd5 | |||
| df894c0193 | |||
| 655c393a1b | |||
| 06b25e1cc6 | |||
| e4ed9cade7 | |||
| 47dc96ba3c | |||
| 3c4154b3ac | |||
| 455c8b3836 | |||
| a9252192e8 | |||
| e31f101021 | |||
| f34660291a | |||
| cebfe04802 | |||
| 746490cea1 | |||
| 18df04b508 | |||
| 0bd1fb972f | |||
| 7b92c7d079 | |||
| 7e3aebe79c | |||
| 34fc112d0e | |||
| 2d219d5a74 | |||
| 9d30e3ecab | |||
| c6de9b9e52 | |||
| affc65c679 | |||
| 2cff8d9804 | |||
| 28f8de794f | |||
| daac90f8dc | |||
| 30adbb0a24 | |||
| 94e59cfc82 | |||
| 9794d714d3 | |||
| 8d80005bab | |||
| a4d22be862 | |||
| 3f615c2ece | |||
| 95e1a1edf9 | |||
| f7f9346286 | |||
| c0c6baf636 | |||
| ccbc044f11 | |||
| a8668df5fd | |||
| cc228f3393 | |||
| 19904acd30 | |||
| 30d175144a | |||
| acf15abe41 | |||
| 5a7fc7f548 | |||
| e7326556e0 | |||
| c589d8fe8a | |||
| a28e8f1357 | |||
| 8b7bb944bc | |||
| 14ee946069 | |||
| 7aebdd8ec5 | |||
| 977baafc03 | |||
| 31b854bc70 | |||
| e274dc50d7 | |||
| d153db627b | |||
| 9cc6bc14c5 | |||
| 775c57be5d | |||
| da37aeb039 | |||
| 751c6647a2 | |||
| ec2344ccd5 | |||
| 0494882541 | |||
| 07b0ba71d9 | |||
| 299ef4873f | |||
| 93c7819106 | |||
| 16c3f81dee | |||
| 7fc67bdadf | |||
| 31deb60343 | |||
| 7e83e168db | |||
| a4c0fbe4ea | |||
| ae0f5867dd | |||
| 0dd4fc9c14 | |||
| 3a92ef2395 | |||
| 23c9a65fcb | |||
| ba55f1436d | |||
| f1c1d62a4d | |||
| c2bdec6bde | |||
| 93d0ebfa09 | |||
| 6f881e2066 | |||
| 8be0d7f2b3 | |||
| cbbb4c19de | |||
| f4e0ce53b4 | |||
| 8f332c3c09 | |||
| 4721a4a96b | |||
| 44a0c65637 | |||
| 4de7090c78 | |||
| 6f09ec71f9 | |||
| b122d75f34 | |||
| ed613f7ec1 | |||
| e0bc06d3db | |||
| 366f16aa4f | |||
| efc70421e2 | |||
| f7922fcea8 | |||
| 84bd16951f | |||
| 4e4e1e4ba5 | |||
| 7959642072 | |||
| 815f96a50a | |||
| eb493b4f11 | |||
| 64702e3797 | |||
| 97818245dc | |||
| 3821c60576 | |||
| cc06effd5e | |||
| 94beedb1ec | |||
| 102db77f55 | |||
| 0181cf493f | |||
| c515c2bf00 | |||
| bea475a3cd | |||
| a2454e78d4 | |||
| abbbda090d | |||
| f4d9901576 | |||
| c727f0cba8 | |||
| 8b568ddefb | |||
| 3953fd1add | |||
| d0661e871d | |||
| ec173776ea | |||
| 0a3b9fb8e9 | |||
| c4a46114a2 | |||
| e0630979c5 | |||
| 8bc8b7cf58 | |||
| 14f4364962 | |||
| 9de3cb016f | |||
| f12cd8ff8f | |||
| 436015b5d2 | |||
| c078df93c9 | |||
| e5e8e01490 | |||
| 4fcc3b4f41 | |||
| ce44e50d0e | |||
| 143590f17b | |||
| abb7a85337 | |||
| f0fe00aa3e | |||
| e58f1929e1 | |||
| 2143869e69 | |||
| ac6a1a19da | |||
| fb574f1994 | |||
| 3cde3a4444 | |||
| eb2221f006 | |||
| d9d1473fd0 | |||
| 9576ce5f28 | |||
| 7092922d1b | |||
| e112c63f12 | |||
| ae9ec197f1 | |||
| f467912988 | |||
| 63b71d256b | |||
| 51cbcfa9f2 | |||
| 945d43997a | |||
| b64541e6bd | |||
| 5b7d637c78 | |||
| f6d38c1f1b | |||
| 503e87077b | |||
| 73ef4140a2 | |||
| fcede43d99 | |||
| c37f011d6d | |||
| 52ec27a679 | |||
| a687e49a6a | |||
| 4dddc6d9bc | |||
| 8bb23e9ce1 | |||
| d2b6444730 | |||
| 08738092c6 | |||
| 8e220427eb | |||
| 962c31dc2a | |||
| d12cc81745 | |||
| e21e0afb45 | |||
| f40d82a097 | |||
| 9112c87b1f | |||
| 78bbaecefe | |||
| ee4167ec8c | |||
| 658bfbc348 | |||
| 5ca5597c58 | |||
| e2db849b03 | |||
| 23ba8a23a4 | |||
| 4df09fd25a | |||
| 6180fedb0b | |||
| 5895bc9641 | |||
| a5a6686501 | |||
| 4c930e716b | |||
| 595ecae254 | |||
| d34b850c52 | |||
| 24332cca42 | |||
| 55e7777abb | |||
| b7c8bc2769 | |||
| 13900daf08 | |||
| 2feb1ac8e8 | |||
| d872f4220c | |||
| e859821647 | |||
| 18cbd41c84 | |||
| 8985395ef1 | |||
| f4d72572c0 | |||
| bc319bddbf | |||
| 8625e93ac5 | |||
| 1493e4a949 | |||
| 85bf4b8fac | |||
| b1b911b538 | |||
| 2192bff46b | |||
| e4e6acd1bc | |||
| 7418b2327a | |||
| 18d610e3e0 | |||
| 4e81420eed | |||
| e26f836da7 | |||
| 538e477818 | |||
| b212e878c6 | |||
| 05694d13f3 | |||
| 1dd72c99a2 | |||
| 4b73e58693 | |||
| bee4f57dd3 | |||
| 142f9f57a3 | |||
| 28346c4571 | |||
| 9810087ee1 | |||
| 2b8e1456c2 | |||
| 49723e648a | |||
| b0a2104b21 | |||
| e4986f4202 | |||
| bd1dc5a7b6 | |||
| 1ccbe323f4 | |||
| 3811169415 | |||
| 2871769479 | |||
| acdce1edb9 | |||
| 67a40a5fc4 | |||
| 67cd654785 | |||
| 3816162555 | |||
| d8121d1a12 | |||
| a76bf57051 | |||
| 97b92cf75c | |||
| 506de8e9e1 | |||
| 677e3e49e0 | |||
| 02c84d107b | |||
| 49cd76d0f3 | |||
| 26f32dd511 | |||
| 395e54cf76 | |||
| 40476e7555 | |||
| 04f06c23a1 | |||
| a9a635747a | |||
| 4027a0de25 | |||
| f4fa754ce4 | |||
| 7d88a91fcc | |||
| 069b12839f | |||
| aa609336ca | |||
| 452917f213 | |||
| 5b5ccdc9be | |||
| adf7ca65ea |
13
.gitignore
vendored
13
.gitignore
vendored
@ -3,11 +3,18 @@ dictionaries/
|
||||
LicenceManager/
|
||||
Common/boost_1_58_0
|
||||
Common/3dParty/boost/boost_1_58_0
|
||||
Common/3dParty/boost/boost.data
|
||||
Common/3dParty/boost/ios
|
||||
Common/3dParty/boost/osx
|
||||
Common/3dParty/icu/icu
|
||||
Common/3dParty/icu/win_64
|
||||
Common/3dParty/icu/win_32
|
||||
Common/3dParty/icu/linux_64
|
||||
Common/3dParty/icu/linux_32
|
||||
Common/3dParty/icu/mac_64
|
||||
Common/3dParty/icu/ios
|
||||
Common/3dParty/icu/android
|
||||
Common/3dParty/icu/mac-build
|
||||
Common/3dParty/cef/win_64
|
||||
Common/3dParty/cef/win_32
|
||||
Common/3dParty/cef/linux_64
|
||||
@ -42,6 +49,7 @@ Common/3dParty/openssl/openssl
|
||||
Thumbs.db
|
||||
*.xcuserstate
|
||||
*.xcuserdatad
|
||||
**/Makefile.*
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.idl
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.tlb
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.h
|
||||
@ -49,7 +57,6 @@ ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_i.c
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_p.c
|
||||
ASCOfficeXlsFile2/win32/dlldata.c
|
||||
OfficeUtils/win32/OfficeUtilsLib/OfficeUtilsLib/ReadMe.txt
|
||||
X2tConverter/**/Makefile.*
|
||||
X2tConverter/ASCOfficePPTXFile/PPTXLib/Linux/PPTXFormatLib/Makefile
|
||||
X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
|
||||
*.7z
|
||||
@ -61,4 +68,6 @@ X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
|
||||
*.zip
|
||||
*.tar.gz
|
||||
**/*.build/
|
||||
|
||||
*.dat
|
||||
*.txt
|
||||
*.log
|
||||
|
||||
14
.travis.yml
14
.travis.yml
@ -1,14 +0,0 @@
|
||||
language: cpp
|
||||
compiler: gcc
|
||||
dist: trusty
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- p7zip-full
|
||||
script:
|
||||
- exit 0
|
||||
# Build fails anyway. See explanation in
|
||||
# https://github.com/ONLYOFFICE/core/pull/29#issuecomment-306773327
|
||||
- cd Common/3dParty && ./make.sh
|
||||
- cd ../../
|
||||
- make
|
||||
@ -52,6 +52,7 @@
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
#include "../../DesktopEditor/common/Types.h"
|
||||
#include "../../Common/DocxFormat/Source/Base/unicode_util.h"
|
||||
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
@ -640,7 +641,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
std::string sCodePage;
|
||||
std::map<int, std::string>::const_iterator pFind = NSUnicodeConverter::mapEncodingsICU.find(code_page);
|
||||
if (pFind != NSUnicodeConverter::mapEncodingsICU.end())
|
||||
@ -652,7 +653,7 @@ namespace DocFileFormat
|
||||
sCodePage = "CP1250"/* + std::to_string(code_page)*/;
|
||||
|
||||
NSUnicodeConverter::CUnicodeConverter oConverter;
|
||||
std::wstring unicode_string = oConverter.toUnicode((char*)bytes, size, sCodePage.c_str());
|
||||
std::wstring unicode_string = oConverter.toUnicode((char*)bytes, (unsigned int)size, sCodePage.c_str());
|
||||
|
||||
for (size_t i = 0; i < unicode_string.size(); i++)
|
||||
{
|
||||
@ -768,12 +769,18 @@ namespace DocFileFormat
|
||||
|
||||
return bytes;
|
||||
}
|
||||
|
||||
static inline std::wstring IntToWideString(int value)
|
||||
static inline std::wstring IntToWideString(unsigned int value)
|
||||
{
|
||||
return (std::to_wstring(value));
|
||||
}
|
||||
|
||||
static inline std::wstring IntToWideString(int value)
|
||||
{
|
||||
return (std::to_wstring(value));
|
||||
}
|
||||
static inline std::wstring SizeTToWideString(size_t value)
|
||||
{
|
||||
return (std::to_wstring((unsigned int)value));
|
||||
}
|
||||
static inline std::wstring DoubleToWideString(double value)
|
||||
{
|
||||
std::wstringstream src;
|
||||
|
||||
@ -35,6 +35,7 @@
|
||||
#include <map>
|
||||
#include <list>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include "../../DesktopEditor/common/File.h"
|
||||
|
||||
@ -112,7 +113,10 @@ namespace XMLTools
|
||||
class XMLElement
|
||||
========================================================================================================*/
|
||||
|
||||
class XMLElement
|
||||
class XMLElement;
|
||||
typedef class boost::shared_ptr<XMLElement> XMLElementPtr;
|
||||
|
||||
class XMLElement
|
||||
{
|
||||
typedef std::pair< std::wstring, std::wstring> AttributeValuePair;
|
||||
|
||||
@ -180,7 +184,20 @@ namespace XMLTools
|
||||
}
|
||||
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 );
|
||||
@ -368,7 +385,6 @@ namespace XMLTools
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class CStringXmlWriter
|
||||
{
|
||||
std::wstring m_str;
|
||||
@ -383,6 +399,10 @@ namespace XMLTools
|
||||
{
|
||||
m_str = strValue;
|
||||
}
|
||||
void Clear()
|
||||
{
|
||||
m_str.clear();
|
||||
}
|
||||
bool SaveToFile(const std::wstring& strFilePath, bool bEncodingToUTF8 = false)
|
||||
{
|
||||
NSFile::CFileBinary file;
|
||||
|
||||
@ -77,25 +77,28 @@ namespace DocFileFormat
|
||||
|
||||
return static_cast<ByteStructure*>(newObject);
|
||||
}
|
||||
ByteStructure* AnnotationReferenceExDescriptor::ConstructObject(VirtualStreamReader* reader, int length)
|
||||
AnnotationReferenceExDescriptors::AnnotationReferenceExDescriptors(size_t count, POLE::Stream* stream, unsigned int fc, unsigned int lcb)
|
||||
{
|
||||
AnnotationReferenceExDescriptor *newObject = new AnnotationReferenceExDescriptor();
|
||||
|
||||
if (reader->nWordVersion > 0)
|
||||
if ((lcb > 0) && (NULL != stream))
|
||||
{
|
||||
VirtualStreamReader reader(stream, (ULONG)fc, 0);
|
||||
|
||||
if (fc > reader.GetSize()) return;
|
||||
|
||||
for (size_t i = 0; i < (std::min)((unsigned int)count, lcb / 18); i++)
|
||||
{
|
||||
_desc desc;
|
||||
|
||||
desc.nDTTM = DateAndTime(reader.ReadUInt32());
|
||||
reader.ReadUInt16(); //padding1
|
||||
desc.nDepth = reader.ReadUInt32();
|
||||
desc.nDiatrdParent = reader.ReadUInt32();
|
||||
unsigned int flag = reader.ReadUInt32();
|
||||
|
||||
desc.fInkAtn = GETBIT(flag, 1);
|
||||
|
||||
m_ReferencesEx.push_back(desc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nDTTM = reader->ReadUInt32();
|
||||
reader->ReadUInt16(); //padding1
|
||||
m_nDepth = reader->ReadUInt32();
|
||||
m_nDiatrdParent = reader->ReadUInt32();
|
||||
unsigned int flag = reader->ReadUInt32();
|
||||
m_fInkAtn = GETBIT(flag, 1);
|
||||
}
|
||||
|
||||
|
||||
return static_cast<ByteStructure*>(newObject);
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "ByteStructure.h"
|
||||
#include "DateAndTime.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
@ -46,7 +47,7 @@ namespace DocFileFormat
|
||||
return (nWordVersion > 0) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
|
||||
}
|
||||
|
||||
AnnotationReferenceDescriptor() : m_AuthorIndex(0), m_BookmarkId(0)
|
||||
AnnotationReferenceDescriptor() : m_AuthorIndex(0), m_BookmarkId(0), m_CommentId(-1)
|
||||
{
|
||||
}
|
||||
|
||||
@ -59,32 +60,28 @@ namespace DocFileFormat
|
||||
std::wstring m_UserInitials;
|
||||
unsigned short m_AuthorIndex;
|
||||
int m_BookmarkId;
|
||||
int m_CommentId;
|
||||
};
|
||||
|
||||
class AnnotationReferenceExDescriptor: public ByteStructure
|
||||
class AnnotationReferenceExDescriptors
|
||||
{
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 18;
|
||||
static const int STRUCTURE_SIZE_OLD = 0;
|
||||
AnnotationReferenceExDescriptors(size_t count, POLE::Stream* stream, unsigned int fc, unsigned int lcb);
|
||||
|
||||
static const int GetSize(int nWordVersion)
|
||||
{
|
||||
return (nWordVersion > 0) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
|
||||
}
|
||||
|
||||
AnnotationReferenceExDescriptor() : m_nDTTM(0), m_nDepth(0), m_nDiatrdParent(0), m_fInkAtn(false)
|
||||
virtual ~AnnotationReferenceExDescriptors()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~AnnotationReferenceExDescriptor()
|
||||
//virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length );
|
||||
|
||||
struct _desc
|
||||
{
|
||||
}
|
||||
DateAndTime nDTTM;
|
||||
unsigned int nDepth = 0;
|
||||
int nDiatrdParent = 0;
|
||||
bool fInkAtn = false;
|
||||
};
|
||||
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length );
|
||||
|
||||
unsigned int m_nDTTM;
|
||||
unsigned int m_nDepth;
|
||||
unsigned int m_nDiatrdParent;
|
||||
bool m_fInkAtn;
|
||||
std::vector<_desc> m_ReferencesEx;
|
||||
};
|
||||
}
|
||||
|
||||
@ -85,12 +85,17 @@ namespace DocFileFormat
|
||||
|
||||
if (author_str)
|
||||
{
|
||||
XMLTools::XMLAttribute author( L"w:author", FormatUtils::XmlEncode(*author_str));
|
||||
XMLTools::XMLAttribute author( L"w:author", FormatUtils::XmlEncode(*author_str));
|
||||
rPrChange.AppendAttribute( author );
|
||||
}
|
||||
XMLTools::XMLAttribute date( L"w:date", _revisionData->Dttm.getString());
|
||||
rPrChange.AppendAttribute( date );
|
||||
|
||||
XMLTools::XMLElement rPr(L"w:rPr");
|
||||
//convert revision stack
|
||||
convertSprms( _revisionData->Changes, &rPrChange );
|
||||
convertSprms( _revisionData->Changes, &rPr);
|
||||
|
||||
rPrChange.AppendChild(rPr);
|
||||
|
||||
_rPr->AppendChild( rPrChange );
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ namespace DocFileFormat
|
||||
if (nWordVersion == 3)
|
||||
{
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
|
||||
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned char val;
|
||||
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
|
||||
@ -75,57 +75,57 @@ namespace DocFileFormat
|
||||
|
||||
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 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
|
||||
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)
|
||||
{
|
||||
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 )
|
||||
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);
|
||||
|
||||
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
|
||||
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;
|
||||
|
||||
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 short fChar = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned char val;
|
||||
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
|
||||
@ -160,30 +160,30 @@ namespace DocFileFormat
|
||||
bool fsLidBi = GETBIT(fChar2, 10);
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short ftc = oStream.ReadUInt16(); pos += 2; // Font Code
|
||||
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)
|
||||
{
|
||||
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 )
|
||||
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);
|
||||
|
||||
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));
|
||||
|
||||
@ -195,11 +195,11 @@ namespace DocFileFormat
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCLid, 2, (BYTE*)&lid));
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short ftcBi = oStream.ReadUInt16(); pos += 2;
|
||||
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;
|
||||
//unsigned short hpsBi = oStream.ReadUInt16(); pos += 2;
|
||||
//grpprl->push_back(SinglePropertyModifier(sprmCHpsBi, 4, (BYTE*)&hpsBi));
|
||||
|
||||
//if (pos + 2 > size) return;
|
||||
@ -207,12 +207,12 @@ namespace DocFileFormat
|
||||
//grpprl->push_back(SinglePropertyModifier(sprmCLidBi, 2, (BYTE*)&lidBi));
|
||||
|
||||
if (pos + 4 > size) return;
|
||||
unsigned int fcPic = oStream.ReadUInt16(); pos += 4; //pos = 8
|
||||
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;
|
||||
|
||||
unsigned char fnPic = oStream.ReadByte(); pos += 1;
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short hpsLargeChp = oStream.ReadUInt16(); pos += 2;// ??? type
|
||||
}
|
||||
|
||||
@ -48,6 +48,9 @@ namespace DocFileFormat
|
||||
{
|
||||
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();
|
||||
@ -55,7 +58,6 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?");
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:comments", 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 );
|
||||
@ -82,39 +84,28 @@ namespace DocFileFormat
|
||||
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)
|
||||
{
|
||||
AnnotationReferenceDescriptor* atrdPre10 = static_cast<AnnotationReferenceDescriptor*>(m_document->AnnotationsReferencePlex->Elements[index]);
|
||||
AnnotationReferenceExDescriptor* atrdPost10 = m_document->AnnotationsReferenceExPlex ? static_cast<AnnotationReferenceExDescriptor*>(m_document->AnnotationsReferenceExPlex->Elements[index]) : NULL;
|
||||
|
||||
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 );
|
||||
if (atrdPre10->m_BookmarkId < 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( index + 1 + count + 1024 ));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( index + 1 ));
|
||||
}
|
||||
if (atrdPost10)
|
||||
{
|
||||
//!!!TODO!!!
|
||||
/*//ATRDpost10 is optional and not saved in all files
|
||||
if (doc.AnnotationReferenceExtraTable != null &&
|
||||
doc.AnnotationReferenceExtraTable.Count > index)
|
||||
{
|
||||
AnnotationReferenceDescriptorExtra atrdPost10 = doc.AnnotationReferenceExtraTable[index];
|
||||
atrdPost10.Date.Convert(new DateMapping(_writer));
|
||||
}*/
|
||||
}
|
||||
|
||||
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 ) ));
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:initials", atrdPre10->m_UserInitials);
|
||||
|
||||
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 );
|
||||
|
||||
@ -135,16 +126,70 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
//this PAPX is for a normal paragraph
|
||||
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"?xml version=\"1.0\" encoding=\"UTF-8\"?");
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -91,6 +91,7 @@ namespace WordprocessingMLContentTypes
|
||||
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";
|
||||
@ -154,6 +155,7 @@ namespace OpenXmlRelationshipTypes
|
||||
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";
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
Converter::Converter()
|
||||
Converter::Converter() : m_nUserLCID(-1)
|
||||
{
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ namespace DocFileFormat
|
||||
|
||||
_UINT32 Converter::LoadAndConvert(const std::wstring& strSrcFile, const std::wstring& strDstDirectory, const std::wstring& password, const ProgressCallback* progress, bool &bMacros)
|
||||
{
|
||||
WordDocument doc(progress, m_sTempFolder);
|
||||
WordDocument doc(progress, m_sTempFolder, m_nUserLCID);
|
||||
WordprocessingDocument docx(strDstDirectory, &doc);
|
||||
|
||||
_UINT32 result = doc.LoadDocument(strSrcFile, password);
|
||||
|
||||
@ -48,6 +48,7 @@ namespace DocFileFormat
|
||||
~Converter();
|
||||
|
||||
std::wstring m_sTempFolder;
|
||||
int m_nUserLCID;
|
||||
|
||||
_UINT32 LoadAndConvert(const std::wstring & strSrcFile, const std::wstring & strDstDirectory, const std::wstring & password, const ProgressCallback* progress, bool &bMacros);
|
||||
|
||||
|
||||
@ -37,95 +37,80 @@ namespace DocFileFormat
|
||||
{
|
||||
class DateAndTime
|
||||
{
|
||||
private:
|
||||
/// minutes (0-59)
|
||||
short mint;
|
||||
/// hours (0-23)
|
||||
short hr;
|
||||
/// day of month (1-31)
|
||||
short dom;
|
||||
/// month (1-12)
|
||||
short mon;
|
||||
/// year (1900-2411)-1900
|
||||
short yr;
|
||||
/// weekday<br/>
|
||||
/// 0 Sunday
|
||||
/// 1 Monday
|
||||
/// 2 Tuesday
|
||||
/// 3 Wednesday
|
||||
/// 4 Thursday
|
||||
/// 5 Friday
|
||||
/// 6 Saturday
|
||||
short wdy;
|
||||
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( unsigned int val )
|
||||
DateAndTime( _UINT32 val )
|
||||
{
|
||||
DateAndTime((unsigned char*)&val, 4);
|
||||
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 )
|
||||
{
|
||||
this->mint = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 0, 6 );
|
||||
this->hr = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 6, 5 );
|
||||
this->dom = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 11, 5 );
|
||||
this->mon = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 16, 4 );
|
||||
this->yr = (short)( 1900 + FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 20, 9 ) );
|
||||
this->wdy = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 29, 3 );
|
||||
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");
|
||||
}
|
||||
}
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
SYSTEMTIME ToSYSTEMTIME()
|
||||
{
|
||||
SYSTEMTIME st = { 0 };
|
||||
|
||||
if ( ( this->yr == 1900 ) && ( this->mon == 0 ) && ( this->dom == 0 ) &&
|
||||
( this->hr == 0 ) && ( this->mint == 0 ) )
|
||||
{
|
||||
st.wYear = 1900;
|
||||
st.wMonth = 1;
|
||||
st.wDayOfWeek = 0;
|
||||
st.wDay = 1;
|
||||
st.wHour = 0;
|
||||
st.wMinute = 0;
|
||||
st.wSecond = 0;
|
||||
st.wMilliseconds = 0;
|
||||
|
||||
return st;
|
||||
}
|
||||
else
|
||||
{
|
||||
st.wYear = this->yr;
|
||||
st.wMonth = this->mon;
|
||||
st.wDayOfWeek = 0;
|
||||
st.wDay = this->dom;
|
||||
st.wHour = this->hr;
|
||||
st.wMinute = this->mint;
|
||||
st.wSecond = 0;
|
||||
st.wMilliseconds = 0;
|
||||
|
||||
return st;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
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()
|
||||
{
|
||||
this->dom = 0;
|
||||
this->hr = 0;
|
||||
this->mint = 0;
|
||||
this->mon = 0;
|
||||
this->wdy = 0;
|
||||
this->yr = 0;
|
||||
day = 0;
|
||||
hour = 0;
|
||||
minutes = 0;
|
||||
month = 0;
|
||||
weekday = 0;
|
||||
year = 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ namespace DocFileFormat
|
||||
|
||||
DocumentMapping::DocumentMapping(ConversionContext* context, XMLTools::CStringXmlWriter* writer, IMapping* caller):_skipRuns(0), _lastValidPapx(NULL), _lastValidSepx(NULL),
|
||||
AbstractOpenXmlMapping(writer), _sectionNr(0), _footnoteNr(0), _endnoteNr(0),
|
||||
_commentNr(0), _caller(caller)
|
||||
_commentNr(1), _caller(caller)
|
||||
{
|
||||
m_document = NULL;
|
||||
m_context = context;
|
||||
@ -217,6 +217,11 @@ namespace DocFileFormat
|
||||
// start paragraph
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:p", true);
|
||||
|
||||
if (false == _paraId.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute(L"w14:paraId", _paraId);
|
||||
}
|
||||
writeParagraphRsid(papx);
|
||||
|
||||
// ----------- check for section properties
|
||||
@ -369,7 +374,7 @@ namespace DocFileFormat
|
||||
|
||||
if (DocFileFormat::sprmPRsid == iter->OpCode)
|
||||
{
|
||||
std::wstring id = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), L"%08x");
|
||||
std::wstring id = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), L"%08X");
|
||||
m_context->AddRsid(id);
|
||||
m_pXmlWriter->WriteAttribute(L"w:rsidP", id);
|
||||
|
||||
@ -394,20 +399,21 @@ namespace DocFileFormat
|
||||
|
||||
if (Deleted == rev.Type)
|
||||
{
|
||||
//If it's a deleted run
|
||||
WideString* author = dynamic_cast<WideString*>(m_document->RevisionAuthorTable->operator[](rev.Isbt));
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:del", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:author", L"[b2x: could not retrieve author]");
|
||||
m_pXmlWriter->WriteAttribute(L"w:date", L"[b2x: could not retrieve date]");
|
||||
m_pXmlWriter->WriteNodeEnd(L"", true, false);
|
||||
m_pXmlWriter->WriteAttribute(L"w:author", FormatUtils::XmlEncode(*author));
|
||||
m_pXmlWriter->WriteAttribute(L"w:date", FormatUtils::XmlEncode(rev.Dttm.getString()));
|
||||
m_pXmlWriter->WriteNodeEnd(L"", true, false);
|
||||
}
|
||||
else if ( rev.Type == Inserted )
|
||||
{
|
||||
WideString* author = dynamic_cast<WideString*>(m_document->RevisionAuthorTable->operator[](rev.Isbt));
|
||||
//if it's a inserted run
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:ins", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:author", FormatUtils::XmlEncode(*author));
|
||||
m_pXmlWriter->WriteAttribute(L"w:date", FormatUtils::XmlEncode(rev.Dttm.getString()));
|
||||
m_pXmlWriter->WriteNodeEnd(L"", true, false);
|
||||
//rev.Dttm.Convert(new DateMapping(m_pXmlWriter));
|
||||
}
|
||||
|
||||
//start run
|
||||
@ -416,21 +422,21 @@ namespace DocFileFormat
|
||||
//append rsids
|
||||
if (0 != rev.Rsid)
|
||||
{
|
||||
std::wstring rsid = FormatUtils::IntToFormattedWideString(rev.Rsid, L"%08x");
|
||||
std::wstring rsid = FormatUtils::IntToFormattedWideString(rev.Rsid, L"%08X");
|
||||
m_pXmlWriter->WriteAttribute(L"w:rsidR", rsid);
|
||||
m_context->AddRsid(rsid);
|
||||
}
|
||||
|
||||
if (0 != rev.RsidDel)
|
||||
{
|
||||
std::wstring rsidDel = FormatUtils::IntToFormattedWideString(rev.RsidDel, L"%08x");
|
||||
std::wstring rsidDel = FormatUtils::IntToFormattedWideString(rev.RsidDel, L"%08X");
|
||||
m_pXmlWriter->WriteAttribute(L"w:rsidDel", rsidDel);
|
||||
m_context->AddRsid(rsidDel);
|
||||
}
|
||||
|
||||
if (0 != rev.RsidProp)
|
||||
{
|
||||
std::wstring rsidProp = FormatUtils::IntToFormattedWideString(rev.RsidProp, L"%08x");
|
||||
std::wstring rsidProp = FormatUtils::IntToFormattedWideString(rev.RsidProp, L"%08X");
|
||||
m_pXmlWriter->WriteAttribute(L"w:rsidRPr", rsidProp);
|
||||
m_context->AddRsid(rsidProp);
|
||||
}
|
||||
@ -624,8 +630,8 @@ namespace DocFileFormat
|
||||
d = (int)_writeTocLink.find(L" ");
|
||||
_writeTocLink = _writeTocLink.substr(0, d);
|
||||
|
||||
_writeAfterRun = std::wstring (L"<w:hyperlink w:anchor = \"");
|
||||
_writeAfterRun += _writeTocLink;
|
||||
_writeAfterRun = std::wstring (L"<w:hyperlink w:anchor=\"");
|
||||
_writeAfterRun += XmlUtils::EncodeXmlString(_writeTocLink);
|
||||
_writeAfterRun += std::wstring (L"\" w:history=\"1\">");
|
||||
|
||||
break;
|
||||
@ -661,7 +667,7 @@ namespace DocFileFormat
|
||||
|
||||
VMLPictureMapping oVmlMapper (m_context, &oleWriter, true, _caller);
|
||||
|
||||
if (!m_shapeIdOwner.empty()) //4571833.doc
|
||||
if (false == m_shapeIdOwner.empty()) //4571833.doc
|
||||
oVmlMapper.m_shapeId = m_shapeIdOwner;
|
||||
|
||||
if (m_document->nWordVersion > 0)
|
||||
@ -717,6 +723,10 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
oleWriter.WriteString( _lastOLEObject );
|
||||
|
||||
if (false == m_bOleInPicture)
|
||||
_lastOLEObject.clear();
|
||||
|
||||
oleWriter.WriteNodeEnd( L"w:object" );
|
||||
|
||||
if (!oVmlMapper.m_isEmbedded && oVmlMapper.m_isEquation)
|
||||
@ -800,6 +810,8 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
XMLTools::XMLElement elem(L"w:br");
|
||||
//СЗ в МРФ Техноград о предоставлении ТП 1 квартал 2019_MO_Q31.doc
|
||||
//Документ на бланке 2.doc
|
||||
elem.AppendAttribute(L"w:type", L"textWrapping");
|
||||
elem.AppendAttribute(L"w:clear", L"all");
|
||||
|
||||
@ -811,8 +823,10 @@ namespace DocFileFormat
|
||||
}
|
||||
else if (TextMark::PageBreakOrSectionMark == code)
|
||||
{
|
||||
if (_isSectionPageBreak == 0)
|
||||
if (_isSectionPageBreak == 0 || _isSectionPageBreak == 2)
|
||||
{
|
||||
_isSectionPageBreak = -1;
|
||||
|
||||
writeTextElement(text, textType);
|
||||
|
||||
text.clear();
|
||||
@ -836,6 +850,8 @@ namespace DocFileFormat
|
||||
}
|
||||
else if (TextMark::FieldBeginMark == code)
|
||||
{
|
||||
_embeddedObject = false;
|
||||
|
||||
int cpFieldStart = initialCp + i;
|
||||
int cpFieldEnd = searchNextTextMark( m_document->Text, cpFieldStart, TextMark::FieldEndMark );
|
||||
|
||||
@ -892,12 +908,16 @@ namespace DocFileFormat
|
||||
}
|
||||
else if ((TextMark::Symbol == code) && fSpec)
|
||||
{
|
||||
writeNotesReferences(cp);//for word95 & non-automatic notes
|
||||
|
||||
Symbol s = getSymbol( chpx );
|
||||
|
||||
//m_pXmlWriter->WriteNodeBegin(L"w:sym", true);
|
||||
//m_pXmlWriter->WriteAttribute(L"w:font", FormatUtils::XmlEncode(s.FontName));
|
||||
//m_pXmlWriter->WriteAttribute(L"w:char", FormatUtils::XmlEncode(s.HexValue));
|
||||
//m_pXmlWriter->WriteNodeEnd(L"", true);
|
||||
//<w:sym w:font="Symbol" w:char="F062"/>
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:sym", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:font", FormatUtils::XmlEncode(s.FontName));
|
||||
m_pXmlWriter->WriteAttribute(L"w:char", FormatUtils::XmlEncode(s.HexValue));
|
||||
m_pXmlWriter->WriteNodeEnd(L"", true);
|
||||
}
|
||||
else if ((TextMark::DrawnObject == code) && fSpec)
|
||||
{
|
||||
@ -912,19 +932,25 @@ namespace DocFileFormat
|
||||
pSpa = static_cast<Spa*>(m_document->OfficeDrawingPlexHeader->GetStruct(headerCp));
|
||||
}
|
||||
|
||||
bool bPicture = false;
|
||||
if (pSpa)
|
||||
{
|
||||
PictureDescriptor pictDiscr(chpx, m_document->WordDocumentStream, 0x7fffffff, m_document->nWordVersion);
|
||||
ShapeContainer* pShape = m_document->GetOfficeArt()->GetShapeContainer(pSpa->GetShapeID());
|
||||
|
||||
if ((pShape) /*&& (false == pShape->isLastIdentify())*/)
|
||||
if (pShape) ///*&& (false == pShape->isLastIdentify())
|
||||
{
|
||||
VMLShapeMapping oVmlWriter (m_context, m_pXmlWriter, pSpa, &pictDiscr, _caller);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin (L"w:pict");
|
||||
std::wstring strNode = pShape->m_bOLE ? L"w:object" : L"w:pict";
|
||||
|
||||
pShape->m_bOleInPicture = pShape->m_bOLE ? true : false;
|
||||
m_pXmlWriter->WriteNodeBegin (strNode);
|
||||
|
||||
pShape->Convert(&oVmlWriter);
|
||||
m_pXmlWriter->WriteNodeEnd (L"w:pict");
|
||||
m_pXmlWriter->WriteNodeEnd (strNode);
|
||||
|
||||
bPicture = true;
|
||||
}
|
||||
|
||||
if (!pSpa->primitives.empty())
|
||||
@ -933,8 +959,13 @@ namespace DocFileFormat
|
||||
VMLShapeMapping oVmlWriter (m_context, m_pXmlWriter, pSpa, &pictDiscr, _caller);
|
||||
pSpa->primitives.Convert(&oVmlWriter);
|
||||
m_pXmlWriter->WriteNodeEnd (L"w:pict");
|
||||
|
||||
bPicture = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ((false == _fieldLevels.empty()) && (_fieldLevels.back().bSeparate))
|
||||
_fieldLevels.back().bResult = bPicture;
|
||||
}
|
||||
else if (TextMark::Picture == code && fSpec)
|
||||
{
|
||||
@ -992,56 +1023,35 @@ namespace DocFileFormat
|
||||
_writeAfterRun = oVmlMapper.m_equationXml;
|
||||
bFormula = true;
|
||||
}
|
||||
else if (oVmlMapper.m_isBlob)
|
||||
{
|
||||
_writeAfterRun = oVmlMapper.m_blobXml;
|
||||
bFormula = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
VMLShapeMapping oVmlMapper(m_context, &pictWriter, NULL, &oPicture, _caller, isInline);
|
||||
VMLShapeMapping oVmlMapper(m_context, &pictWriter, NULL, &oPicture, _caller, isInline, false);
|
||||
oPicture.shapeContainer->Convert(&oVmlMapper);
|
||||
}
|
||||
|
||||
pictWriter.WriteNodeEnd (L"w:pict");
|
||||
pictWriter.WriteNodeEnd (L"w:pict");
|
||||
|
||||
if (!bFormula)
|
||||
{
|
||||
m_pXmlWriter->WriteString(pictWriter.GetXmlString());
|
||||
|
||||
if ((false == _fieldLevels.empty()) && (_fieldLevels.back().bSeparate && !_fieldLevels.back().bResult)) //ege15.doc
|
||||
{
|
||||
_fieldLevels.back().bResult = true;
|
||||
}//imrtemplate(endnotes).doc
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else if ((TextMark::AutoNumberedFootnoteReference == code) && fSpec)
|
||||
{
|
||||
if ((m_document->FootnoteReferenceCharactersPlex != NULL) && (m_document->FootnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnoteReference", true );
|
||||
FootnoteDescriptor* desc = dynamic_cast<FootnoteDescriptor*>(m_document->FootnoteReferenceCharactersPlex->Elements[_footnoteNr]);
|
||||
if (desc && desc->aFtnIdx == 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:customMarkFollows", L"1");
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString(_footnoteNr++ ) );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if ((m_document->IndividualFootnotesPlex != NULL) && (m_document->IndividualFootnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnoteRef", true );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if ((m_document->EndnoteReferenceCharactersPlex != NULL) && (m_document->EndnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnoteReference", true );
|
||||
EndnoteDescriptor* desc = dynamic_cast<EndnoteDescriptor*>(m_document->EndnoteReferenceCharactersPlex->Elements[_endnoteNr]);
|
||||
if (desc && desc->aEndIdx == 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:customMarkFollows", L"1");
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString(_endnoteNr++ ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if ((m_document->IndividualEndnotesPlex != NULL) &&
|
||||
(m_document->IndividualEndnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpAtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnoteRef", true );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
writeNotesReferences(cp);
|
||||
}
|
||||
else if (TextMark::AnnotationReference == code)
|
||||
{
|
||||
@ -1050,16 +1060,56 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:annotationRef", true );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if ((m_document->AnnotationsReferencePlex) && (_commentNr <= m_document->AnnotationsReferencePlex->Elements.size()))
|
||||
else if (m_document->AnnotationsReferencePlex)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:commentReference", true );
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( _commentNr++ ));
|
||||
|
||||
AnnotationReferenceDescriptor* atrdPre10 = dynamic_cast<AnnotationReferenceDescriptor*>( m_document->AnnotationsReferencePlex->GetStruct(cp));
|
||||
|
||||
if (atrdPre10)
|
||||
{
|
||||
if (atrdPre10->m_CommentId < 0)
|
||||
{
|
||||
if (atrdPre10->m_BookmarkId < 0)
|
||||
{
|
||||
atrdPre10->m_CommentId = _commentNr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::map<int, int>::iterator pFind = m_document->mapCommentsBookmarks.find(atrdPre10->m_BookmarkId);
|
||||
if (pFind == m_document->mapCommentsBookmarks.end())
|
||||
{
|
||||
atrdPre10->m_CommentId = _commentNr++;
|
||||
m_document->mapCommentsBookmarks.insert(std::make_pair(atrdPre10->m_BookmarkId, atrdPre10->m_CommentId));
|
||||
}
|
||||
else
|
||||
{
|
||||
atrdPre10->m_CommentId = pFind->second;
|
||||
}
|
||||
}
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString(atrdPre10->m_CommentId));
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
}
|
||||
else if (!FormatUtils::IsControlSymbol(c) && ((int)c != 0xFFFF))
|
||||
{
|
||||
text += FormatUtils::GetXMLSymbol(c);
|
||||
|
||||
//non-automatic notes
|
||||
if ((m_document->IndividualFootnotesPlex != NULL) && (m_document->IndividualFootnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
_writeNoteRef = L"<w:footnoteRef/>";
|
||||
}
|
||||
else if ((m_document->IndividualEndnotesPlex != NULL) &&
|
||||
(m_document->IndividualEndnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpAtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
_writeNoteRef = L"<w:endnoteRef/>";
|
||||
}
|
||||
else
|
||||
writeNotesReferences(cp);//for word95
|
||||
}
|
||||
|
||||
cp++;
|
||||
@ -1311,7 +1361,7 @@ namespace DocFileFormat
|
||||
{
|
||||
ParagraphPropertyExceptions* backup = _lastValidPapx;
|
||||
|
||||
std::map<short, short> boundaries;
|
||||
std::map<short, short> mapBoundaries;
|
||||
|
||||
int cp = initialCp;
|
||||
int fc = m_document->FindFileCharPos( cp );
|
||||
@ -1344,6 +1394,7 @@ namespace DocFileFormat
|
||||
fEndNestingLevel = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
}break;
|
||||
|
||||
case sprmOldPFInTable:
|
||||
case sprmPItap:
|
||||
{
|
||||
iTap_current = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
@ -1353,8 +1404,9 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
if (nestingLevel == iTap_current)
|
||||
{
|
||||
for ( std::list<SinglePropertyModifier>::iterator iter = papx->grpprl->begin(); iter != papx->grpprl->end(); iter++ )
|
||||
{
|
||||
bool bPresent = false; //118854.doc
|
||||
for ( std::list<SinglePropertyModifier>::reverse_iterator iter = papx->grpprl->rbegin(); !bPresent && iter != papx->grpprl->rend(); iter++ )
|
||||
{
|
||||
//find the tDef SPRM
|
||||
DWORD code = iter->OpCode;
|
||||
@ -1372,19 +1424,27 @@ namespace DocFileFormat
|
||||
boundary1 = FormatUtils::BytesToInt16( iter->Arguments + 1, i * 2 , iter->argumentsSize );
|
||||
boundary2 = FormatUtils::BytesToInt16( iter->Arguments + 1, ( i + 1 ) * 2, iter->argumentsSize );
|
||||
|
||||
AddBoundary(boundary1, boundary2, boundaries);
|
||||
//if (boundary1 < 0) boundary1 = 0;
|
||||
//if (boundary2 < 0) boundary2 = 0;
|
||||
|
||||
mapBoundaries.insert(std::make_pair(boundary1, 0));
|
||||
mapBoundaries.insert(std::make_pair(boundary2, 0));
|
||||
//AddBoundary(boundary1, boundary2, mapBoundaries);
|
||||
}
|
||||
if (max_boundary < boundary2)
|
||||
max_boundary = boundary2;
|
||||
|
||||
AddBoundary(boundary2, max_boundary, boundaries);
|
||||
mapBoundaries.insert(std::make_pair(boundary2, 0));
|
||||
mapBoundaries.insert(std::make_pair(max_boundary, 0));
|
||||
//AddBoundary(boundary2, max_boundary, mapBoundaries);
|
||||
bPresent = true;
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nestingLevel > 1 && fEndNestingLevel && !boundaries.empty())
|
||||
if (nestingLevel != iTap_current && fEndNestingLevel && !mapBoundaries.empty())
|
||||
break;
|
||||
//get the next papx
|
||||
papx = findValidPapx( fcRowEnd );
|
||||
@ -1397,11 +1457,16 @@ namespace DocFileFormat
|
||||
|
||||
}
|
||||
|
||||
if ( !boundaries.empty() )
|
||||
if ( !mapBoundaries.empty() )
|
||||
{
|
||||
for ( std::map<short, short>::iterator it = boundaries.begin(); it != boundaries.end(); ++it)
|
||||
std::map<short, short>::iterator it = mapBoundaries.begin();
|
||||
std::map<short, short>::iterator it_next = it; it_next++;
|
||||
|
||||
for ( ; it_next != mapBoundaries.end(); ++it_next, ++it)
|
||||
{
|
||||
grid.push_back( it->second );
|
||||
int sz = it_next->first - it->first;
|
||||
if (sz > 2)
|
||||
grid.push_back( it_next->first - it->first );
|
||||
}
|
||||
}
|
||||
_lastValidPapx = backup;
|
||||
@ -1667,20 +1732,9 @@ namespace DocFileFormat
|
||||
ParagraphPropertyExceptions* papx = findValidPapx( fc );
|
||||
TableInfo tai( papx, m_document->nWordVersion );
|
||||
|
||||
//cp = writeParagraph(cp);
|
||||
|
||||
//!!!TODO: Inner Tables!!!
|
||||
if ( tai.iTap > nestingLevel )
|
||||
{
|
||||
//write the inner table if this is not a inner table (endless loop)
|
||||
cp = writeTable( cp, tai.iTap );
|
||||
|
||||
//after a inner table must be at least one paragraph
|
||||
/*if ( cp >= cpCellEnd )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:p" );
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:p" );
|
||||
}*/
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1730,7 +1784,56 @@ namespace DocFileFormat
|
||||
|
||||
return cpCellEnd;
|
||||
}
|
||||
|
||||
bool DocumentMapping::writeNotesReferences(int cp)
|
||||
{
|
||||
if ((m_document->FootnoteReferenceCharactersPlex != NULL) && (m_document->FootnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
FootnoteDescriptor* desc = dynamic_cast<FootnoteDescriptor*>(m_document->FootnoteReferenceCharactersPlex->Elements[_footnoteNr]);
|
||||
if ((desc) && (false == desc->bUsed))
|
||||
{
|
||||
desc->bUsed = true;
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnoteReference", true );
|
||||
if (desc->aFtnIdx == 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:customMarkFollows", L"1");
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString(_footnoteNr++ ) );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
}
|
||||
else if ((m_document->IndividualFootnotesPlex != NULL) && (m_document->IndividualFootnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnoteRef", true );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if ((m_document->EndnoteReferenceCharactersPlex != NULL) && (m_document->EndnoteReferenceCharactersPlex->IsCpExists(cp)))
|
||||
{
|
||||
EndnoteDescriptor* desc = dynamic_cast<EndnoteDescriptor*>(m_document->EndnoteReferenceCharactersPlex->Elements[_endnoteNr]);
|
||||
if ((desc) && (false == desc->bUsed))
|
||||
{
|
||||
desc->bUsed = true;
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnoteReference", true );
|
||||
if (desc->aEndIdx == 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:customMarkFollows", L"1");
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString(_endnoteNr++ ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
}
|
||||
else if ((m_document->IndividualEndnotesPlex != NULL) &&
|
||||
(m_document->IndividualEndnotesPlex->IsCpExists(cp - m_document->FIB->m_RgLw97.ccpAtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpText)))
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnoteRef", true );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
else if (false == _writeNoteRef.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteString(_writeNoteRef);
|
||||
_writeNoteRef.clear();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool DocumentMapping::writeBookmarks(int cp)
|
||||
{
|
||||
bool result = true;
|
||||
@ -1757,16 +1860,32 @@ namespace DocFileFormat
|
||||
|
||||
for (size_t i = 0; i < m_document->AnnotStartEndCPs.size(); i++)
|
||||
{
|
||||
if (m_document->AnnotStartEndCPs[i].first == cp)
|
||||
if (m_document->AnnotStartEndCPs[i].start == cp)
|
||||
{
|
||||
result = writeAnnotationStart(i + 1);
|
||||
_commentNr = i + 1;
|
||||
int index = -1;
|
||||
std::map<int, int>::iterator pFind = m_document->mapCommentsBookmarks.find(m_document->AnnotStartEndCPs[i].bookmarkId);
|
||||
if (pFind == m_document->mapCommentsBookmarks.end())
|
||||
{
|
||||
index = _commentNr++;
|
||||
m_document->mapCommentsBookmarks.insert(std::make_pair(m_document->AnnotStartEndCPs[i].bookmarkId, index ));
|
||||
}
|
||||
else index = pFind->second;
|
||||
|
||||
result = writeAnnotationStart(index);
|
||||
}
|
||||
|
||||
if (m_document->AnnotStartEndCPs[i].second == cp)
|
||||
if (m_document->AnnotStartEndCPs[i].end == cp)
|
||||
{
|
||||
result = writeAnnotationEnd(i + 1);
|
||||
_commentNr = i + 1;
|
||||
int index = -1;
|
||||
std::map<int, int>::iterator pFind = m_document->mapCommentsBookmarks.find(m_document->AnnotStartEndCPs[i].bookmarkId);
|
||||
if (pFind == m_document->mapCommentsBookmarks.end())
|
||||
{
|
||||
index = _commentNr++;
|
||||
m_document->mapCommentsBookmarks.insert(std::make_pair(m_document->AnnotStartEndCPs[i].bookmarkId, index ));
|
||||
}
|
||||
else index = pFind->second;
|
||||
|
||||
result = writeAnnotationEnd(index);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1873,7 +1992,7 @@ namespace DocFileFormat
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( m_document->FontTable->operator [] ( fontIndex ) );
|
||||
|
||||
ret.FontName = ffn->xszFtn;
|
||||
ret.HexValue = FormatUtils::IntToFormattedWideString( code, L"%04x" );
|
||||
ret.HexValue = FormatUtils::IntToFormattedWideString( code, L"%04X" );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@ -79,6 +79,7 @@ namespace DocFileFormat
|
||||
//--------------------------------- 4571833.doc
|
||||
std::wstring m_shapeIdOwner;
|
||||
std::wstring getOLEObject() { return _lastOLEObject; }
|
||||
bool m_bOleInPicture = false;
|
||||
protected:
|
||||
|
||||
int getListNumCache (int fc, int fc_end);
|
||||
@ -121,6 +122,8 @@ namespace DocFileFormat
|
||||
bool writeBookmarkStart ( short id );
|
||||
bool writeBookmarkEnd ( short id );
|
||||
|
||||
bool writeNotesReferences(int cp);
|
||||
|
||||
bool writeAnnotations ( int cp );
|
||||
bool writeAnnotationStart( short id );
|
||||
bool writeAnnotationEnd ( short id );
|
||||
@ -151,16 +154,20 @@ namespace DocFileFormat
|
||||
int _endnoteNr;
|
||||
int _commentNr;
|
||||
bool _isTextBoxContent;
|
||||
int _isSectionPageBreak; //0 - not set, 1 -page break, 2 - continues
|
||||
int _isSectionPageBreak; //0 - not set, 1 -page break, 2 - continues, -1 - already
|
||||
bool _writeWebHidden;
|
||||
std::wstring _writeAfterRun;
|
||||
std::wstring _lastOLEObject;
|
||||
std::wstring _writeNoteRef;
|
||||
int _cacheListNum;
|
||||
|
||||
std::wstring _paraId;
|
||||
|
||||
struct fieldLevels
|
||||
{
|
||||
bool bBegin = false;
|
||||
bool bSeparate = false;
|
||||
bool bResult = false;
|
||||
//bool bInstrText = false;
|
||||
bool bEnd = false;
|
||||
};
|
||||
|
||||
@ -44,7 +44,7 @@ namespace DocFileFormat
|
||||
/*========================================================================================================*/
|
||||
|
||||
WordDocumentProperties::WordDocumentProperties(FileInformationBlock* fib, POLE::Stream* tableStream) :
|
||||
doptypography(NULL), dogrid(NULL), asumyi(NULL), bDisplayBackgroundShape(false)
|
||||
doptypography(NULL), dogrid(NULL), asumyi(NULL)
|
||||
{
|
||||
Initialize();
|
||||
|
||||
@ -59,434 +59,438 @@ namespace DocFileFormat
|
||||
{
|
||||
if (fib->m_nWordVersion == 2)
|
||||
{
|
||||
unsigned char* Temp = tStream.ReadBytes(size, true);
|
||||
//unsigned char* Temp = tStream.ReadBytes(size, true);
|
||||
//delete []Temp;
|
||||
tStream.Seek(fib->m_FibWord97.fcDop, 0);
|
||||
delete []Temp;
|
||||
|
||||
unsigned char flags1 = tStream.ReadByte();
|
||||
|
||||
fFacingPages = GETBIT(flags1, 0);
|
||||
fWindowControl = GETBIT(flags1, 1);
|
||||
Fpc = GETBITS(flags1, 5, 6);
|
||||
bool fWide = GETBIT(flags1, 7);
|
||||
|
||||
grpfIhdt = tStream.ReadByte();
|
||||
|
||||
unsigned short flags2 = tStream.ReadUInt16();
|
||||
rncFtn = GETBIT(flags2, 0);
|
||||
nFtn = GETBITS(flags2, 1, 15);
|
||||
|
||||
unsigned char irmBar = tStream.ReadByte();
|
||||
|
||||
unsigned char flags3 = tStream.ReadByte();
|
||||
unsigned char irmProps = GETBITS(flags3, 0, 6);
|
||||
fRevMarking = GETBIT(flags3, 7);
|
||||
|
||||
unsigned short flags4 = tStream.ReadUInt16();
|
||||
fBackup = GETBIT(flags4, 0);
|
||||
fExactWords = GETBIT(flags4, 1);
|
||||
fPagHidden = GETBIT(flags4, 2);
|
||||
fPagResults = GETBIT(flags4, 3);
|
||||
fLockAtn = GETBIT(flags4, 4);
|
||||
fMirrorMargins = GETBIT(flags4, 5);
|
||||
bool fKeepFileFormat = GETBIT(flags4, 6);
|
||||
fDflttrueType = GETBIT(flags4, 7);
|
||||
|
||||
fPagSuppressTopSpacing = GETBIT(flags4, 8);
|
||||
fMaybeRTLTables = GETBIT(flags4, 9);
|
||||
|
||||
bool fSpares = tStream.ReadUInt16();
|
||||
dxaTab = tStream.ReadUInt16();
|
||||
|
||||
wSpare = tStream.ReadUInt16();//ftcDefaultBi
|
||||
dxaHotZ = tStream.ReadUInt16();
|
||||
|
||||
wSpare2 = tStream.ReadUInt16();
|
||||
wSpare3 = tStream.ReadUInt16();
|
||||
|
||||
unsigned char flags1 = tStream.ReadByte();
|
||||
|
||||
fFacingPages = GETBIT(flags1, 0);
|
||||
fWindowControl = GETBIT(flags1, 1);
|
||||
Fpc = GETBITS(flags1, 5, 6);
|
||||
bool fWide = GETBIT(flags1, 7);
|
||||
|
||||
grpfIhdt = tStream.ReadByte();
|
||||
|
||||
unsigned short flags2 = tStream.ReadUInt16();
|
||||
rncFtn = GETBIT(flags2, 0);
|
||||
nFtn = GETBITS(flags2, 1, 15);
|
||||
|
||||
unsigned char irmBar = tStream.ReadByte();
|
||||
|
||||
unsigned char flags3 = tStream.ReadByte();
|
||||
unsigned char irmProps = GETBITS(flags3, 0, 6);
|
||||
fRevMarking = GETBIT(flags3, 7);
|
||||
|
||||
unsigned short flags4 = tStream.ReadUInt16();
|
||||
fBackup = GETBIT(flags4, 0);
|
||||
fExactWords = GETBIT(flags4, 1);
|
||||
fPagHidden = GETBIT(flags4, 2);
|
||||
fPagResults = GETBIT(flags4, 3);
|
||||
fLockAtn = GETBIT(flags4, 4);
|
||||
fMirrorMargins = GETBIT(flags4, 5);
|
||||
bool fKeepFileFormat = GETBIT(flags4, 6);
|
||||
fDflttrueType = GETBIT(flags4, 7);
|
||||
|
||||
fPagSuppressTopSpacing = GETBIT(flags4, 8);
|
||||
fMaybeRTLTables = GETBIT(flags4, 9);
|
||||
|
||||
bool fSpares = tStream.ReadUInt16();
|
||||
dxaTab = tStream.ReadUInt16();
|
||||
|
||||
wSpare = tStream.ReadUInt16();//ftcDefaultBi
|
||||
dxaHotZ = tStream.ReadUInt16();
|
||||
|
||||
wSpare2 = tStream.ReadUInt16();
|
||||
wSpare3 = tStream.ReadUInt16();
|
||||
|
||||
dttmCreated = DateAndTime( tStream.ReadUInt32() );
|
||||
dttmRevised = DateAndTime( tStream.ReadUInt32() );
|
||||
dttmLastPrint = DateAndTime( tStream.ReadUInt32() );
|
||||
|
||||
nRevision = tStream.ReadUInt16();
|
||||
tmEdited = tStream.ReadUInt32();
|
||||
|
||||
cWords = tStream.ReadUInt32();
|
||||
cCh = tStream.ReadUInt32();
|
||||
cPg = tStream.ReadUInt16();
|
||||
|
||||
unsigned short rgwSpareDocSum[2];
|
||||
rgwSpareDocSum[0] = tStream.ReadUInt16();
|
||||
rgwSpareDocSum[1] = tStream.ReadUInt16();
|
||||
dttmRevised = DateAndTime( tStream.ReadUInt32() );
|
||||
dttmLastPrint = DateAndTime( tStream.ReadUInt32() );
|
||||
|
||||
nRevision = tStream.ReadUInt16();
|
||||
tmEdited = tStream.ReadUInt32();
|
||||
|
||||
cWords = tStream.ReadUInt32();
|
||||
cCh = tStream.ReadUInt32();
|
||||
cPg = tStream.ReadUInt16();
|
||||
|
||||
unsigned short rgwSpareDocSum[2];
|
||||
rgwSpareDocSum[0] = tStream.ReadUInt16();
|
||||
rgwSpareDocSum[1] = tStream.ReadUInt16();
|
||||
|
||||
}
|
||||
else if ( size > 0 )
|
||||
{
|
||||
bytes = tStream.ReadBytes( size, true );
|
||||
else //for other versions fib->m_nWordVersion
|
||||
{
|
||||
bytes = tStream.ReadBytes( size, true );
|
||||
|
||||
if ( size > 0 && size > 83) //start && stop bound
|
||||
{
|
||||
|
||||
fFacingPages = FormatUtils::GetBitFromBytes( bytes, 2, 0 );
|
||||
fWindowControl = FormatUtils::GetBitFromBytes( bytes, 2, 1 );
|
||||
fPMHMainDoc = FormatUtils::GetBitFromBytes( bytes, 2, 2 );
|
||||
grfSuppression = (short)FormatUtils::GetUIntFromBytesBits( bytes, 2, 3, 2 );
|
||||
Fpc = (short)FormatUtils::GetUIntFromBytesBits( bytes, 2, 5, 2 );
|
||||
fFacingPages = FormatUtils::GetBitFromBytes( bytes, 2, 0 );
|
||||
fWindowControl = FormatUtils::GetBitFromBytes( bytes, 2, 1 );
|
||||
fPMHMainDoc = FormatUtils::GetBitFromBytes( bytes, 2, 2 );
|
||||
grfSuppression = (short)FormatUtils::GetUIntFromBytesBits( bytes, 2, 3, 2 );
|
||||
Fpc = (short)FormatUtils::GetUIntFromBytesBits( bytes, 2, 5, 2 );
|
||||
|
||||
grpfIhdt = FormatUtils::BytesToUChar( bytes, 1, size );
|
||||
grpfIhdt = FormatUtils::BytesToUChar( bytes, 1, size );
|
||||
|
||||
rncFtn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 2 ), 2, 0, 2 );
|
||||
nFtn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 2 ), 2, 2, 14 );
|
||||
rncFtn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 2 ), 2, 0, 2 );
|
||||
nFtn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 2 ), 2, 2, 14 );
|
||||
|
||||
fOutlineDirtySave = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 0 );
|
||||
fOnlyMacPics = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 8 );
|
||||
fOnlyWinPics = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 9 );
|
||||
fLabelDoc = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 10 );
|
||||
fHyphCapitals = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 11 );
|
||||
fAutoHyphen = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 12 );
|
||||
fFormNoFields = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 13 );
|
||||
fLinkStyles = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 14 );
|
||||
fRevMarking = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 15 );
|
||||
fOutlineDirtySave = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 0 );
|
||||
fOnlyMacPics = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 8 );
|
||||
fOnlyWinPics = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 9 );
|
||||
fLabelDoc = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 10 );
|
||||
fHyphCapitals = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 11 );
|
||||
fAutoHyphen = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 12 );
|
||||
fFormNoFields = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 13 );
|
||||
fLinkStyles = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 14 );
|
||||
fRevMarking = FormatUtils::GetBitFromBytes( ( bytes + 4 ), 2, 15 );
|
||||
|
||||
fBackup = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 0 );
|
||||
fExactWords = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 1 );
|
||||
fPagHidden = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 2 );
|
||||
fPagResults = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 3 );
|
||||
fLockAtn = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 4 );
|
||||
fMirrorMargins = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 5 );
|
||||
fBackup = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 0 );
|
||||
fExactWords = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 1 );
|
||||
fPagHidden = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 2 );
|
||||
fPagResults = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 3 );
|
||||
fLockAtn = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 4 );
|
||||
fMirrorMargins = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 5 );
|
||||
|
||||
fDflttrueType = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 7 );
|
||||
fProtEnabled = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 8 );
|
||||
fDispFormFldSel = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 9 );
|
||||
fRMView = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 10 );
|
||||
fRMPrint = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 11 );
|
||||
fDflttrueType = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 7 );
|
||||
fProtEnabled = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 8 );
|
||||
fDispFormFldSel = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 9 );
|
||||
fRMView = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 10 );
|
||||
fRMPrint = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 11 );
|
||||
|
||||
fLockRev = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 14 );
|
||||
fEmbedFonts = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 15 );
|
||||
fLockRev = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 14 );
|
||||
fEmbedFonts = FormatUtils::GetBitFromBytes( ( bytes + 6 ), 2, 15 );
|
||||
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 0 );
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 1 );
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 2 );
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 3 );
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 4 );
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 5 );
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 6 );
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 7 );
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 8 );
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 9 );
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 10 );
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 11 );
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 0 );
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 1 );
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 2 );
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 3 );
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 4 );
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 5 );
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 6 );
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 7 );
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 8 );
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 9 );
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 10 );
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 11 );
|
||||
|
||||
dxaTab = FormatUtils::BytesToUInt16( bytes, 10, size );
|
||||
dxaHotZ = FormatUtils::BytesToUInt16( bytes, 14, size );
|
||||
cConsecHypLim = FormatUtils::BytesToUInt16( bytes, 16, size );
|
||||
dxaTab = FormatUtils::BytesToUInt16( bytes, 10, size );
|
||||
dxaHotZ = FormatUtils::BytesToUInt16( bytes, 14, size );
|
||||
cConsecHypLim = FormatUtils::BytesToUInt16( bytes, 16, size );
|
||||
|
||||
unsigned char createdbytes[4];
|
||||
memcpy( createdbytes, ( bytes + 20 ), 4 );
|
||||
dttmCreated = DateAndTime( createdbytes, 4 );
|
||||
unsigned char createdbytes[4];
|
||||
memcpy( createdbytes, ( bytes + 20 ), 4 );
|
||||
dttmCreated = DateAndTime( createdbytes, 4 );
|
||||
|
||||
unsigned char revisedbytes[4];
|
||||
memcpy( revisedbytes, ( bytes + 24 ), 4 );
|
||||
dttmRevised = DateAndTime( revisedbytes, 4 );
|
||||
unsigned char revisedbytes[4];
|
||||
memcpy( revisedbytes, ( bytes + 24 ), 4 );
|
||||
dttmRevised = DateAndTime( revisedbytes, 4 );
|
||||
|
||||
unsigned char printbytes[4];
|
||||
memcpy( printbytes, ( bytes + 28 ), 4 );
|
||||
dttmLastPrint = DateAndTime( printbytes, 4 );
|
||||
unsigned char printbytes[4];
|
||||
memcpy( printbytes, ( bytes + 28 ), 4 );
|
||||
dttmLastPrint = DateAndTime( printbytes, 4 );
|
||||
|
||||
nRevision = FormatUtils::BytesToInt16( bytes, 32, size );
|
||||
tmEdited = FormatUtils::BytesToInt32( bytes, 34, size );
|
||||
cWords = FormatUtils::BytesToInt32( bytes, 38, size );
|
||||
cCh = FormatUtils::BytesToInt32( bytes, 42, size );
|
||||
cPg = FormatUtils::BytesToInt16( bytes, 46, size );
|
||||
cParas = FormatUtils::BytesToInt32( bytes, 48, size );
|
||||
nRevision = FormatUtils::BytesToInt16( bytes, 32, size );
|
||||
tmEdited = FormatUtils::BytesToInt32( bytes, 34, size );
|
||||
cWords = FormatUtils::BytesToInt32( bytes, 38, size );
|
||||
cCh = FormatUtils::BytesToInt32( bytes, 42, size );
|
||||
cPg = FormatUtils::BytesToInt16( bytes, 46, size );
|
||||
cParas = FormatUtils::BytesToInt32( bytes, 48, size );
|
||||
|
||||
rncEdn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 52 ), 2, 0, 2 );
|
||||
nEdn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 52 ), 2, 2, 14 );
|
||||
rncEdn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 52 ), 2, 0, 2 );
|
||||
nEdn = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 52 ), 2, 2, 14 );
|
||||
|
||||
Epc = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 0, 2 );
|
||||
nfcFtnRef = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 2, 4 );
|
||||
nfcEdnRef = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 6, 4 );
|
||||
fPrintFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 10 );
|
||||
fSaveFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 11 );
|
||||
fShadeFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 12 );
|
||||
Epc = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 0, 2 );
|
||||
nfcFtnRef = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 2, 4 );
|
||||
nfcEdnRef = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 54 ), 2, 6, 4 );
|
||||
fPrintFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 10 );
|
||||
fSaveFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 11 );
|
||||
fShadeFormData = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 12 );
|
||||
|
||||
fWCFtnEdn = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 15 );
|
||||
fWCFtnEdn = FormatUtils::GetBitFromBytes( ( bytes + 54 ), 2, 15 );
|
||||
|
||||
cLines = FormatUtils::BytesToInt32( bytes, 56, size );
|
||||
cWordsFtnEdn = FormatUtils::BytesToInt32( bytes, 60, size );
|
||||
cChFtnEdn = FormatUtils::BytesToInt32( bytes, 64, size );
|
||||
cPgFtnEdn = FormatUtils::BytesToInt16( bytes, 68, size );
|
||||
cParasFtnEdn = FormatUtils::BytesToInt32( bytes, 70, size );
|
||||
cLinesFtnEdn = FormatUtils::BytesToInt32( bytes, 74, size );
|
||||
lKeyProtDoc = FormatUtils::BytesToInt32( bytes, 78, size );
|
||||
cLines = FormatUtils::BytesToInt32( bytes, 56, size );
|
||||
cWordsFtnEdn = FormatUtils::BytesToInt32( bytes, 60, size );
|
||||
cChFtnEdn = FormatUtils::BytesToInt32( bytes, 64, size );
|
||||
cPgFtnEdn = FormatUtils::BytesToInt16( bytes, 68, size );
|
||||
cParasFtnEdn = FormatUtils::BytesToInt32( bytes, 70, size );
|
||||
cLinesFtnEdn = FormatUtils::BytesToInt32( bytes, 74, size );
|
||||
lKeyProtDoc = FormatUtils::BytesToInt32( bytes, 78, size );
|
||||
|
||||
wvkSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 0, 3 );
|
||||
wScaleSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 3, 9 );
|
||||
zkSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 12, 2 );
|
||||
fRotateFontW6 = FormatUtils::GetBitFromBytes( ( bytes + 82 ), 2, 14 );
|
||||
iGutterPos = FormatUtils::GetBitFromBytes( ( bytes + 82 ), 2, 15 );
|
||||
wvkSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 0, 3 );
|
||||
wScaleSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 3, 9 );
|
||||
zkSaved = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 82 ), 2, 12, 2 );
|
||||
fRotateFontW6 = FormatUtils::GetBitFromBytes( ( bytes + 82 ), 2, 14 );
|
||||
iGutterPos = FormatUtils::GetBitFromBytes( ( bytes + 82 ), 2, 15 );
|
||||
|
||||
//compatibility options section
|
||||
if ( size > 84 )
|
||||
{
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 0 );
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 1 );
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 2 );
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 3 );
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 4 );
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 5 );
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 6 );
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 7 );
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 8 );
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 9 );
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 10 );
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 11 );
|
||||
//compatibility options section
|
||||
if ( size > 84 && size > 87) //start && stop bound
|
||||
{
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 0 );
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 1 );
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 2 );
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 3 );
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 4 );
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 5 );
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 6 );
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 7 );
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 8 );
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 9 );
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 10 );
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 11 );
|
||||
|
||||
fSuppressTopSpacingMac5 = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 16 );
|
||||
fTruncDxaExpand = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 17 );
|
||||
fPrintBodyBeforeHdr = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 18 );
|
||||
fNoLeading = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 19 );
|
||||
fSuppressTopSpacingMac5 = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 16 );
|
||||
fTruncDxaExpand = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 17 );
|
||||
fPrintBodyBeforeHdr = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 18 );
|
||||
fNoLeading = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 19 );
|
||||
|
||||
fMWSmallCaps = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 21 );
|
||||
fMWSmallCaps = FormatUtils::GetBitFromBytes( ( bytes + 84 ), 4, 21 );
|
||||
|
||||
if ( size > 88 )
|
||||
{
|
||||
adt = FormatUtils::BytesToUInt16( bytes, 88, size );
|
||||
if (size > 88 && size > 499) //start && stop bound
|
||||
{
|
||||
adt = FormatUtils::BytesToUInt16(bytes, 88, size);
|
||||
|
||||
unsigned char doptypoBytes[310];
|
||||
memcpy( doptypoBytes, ( bytes + 90 ), 310 );
|
||||
doptypography = new DocumentTypographyInfo( doptypoBytes, 310 );
|
||||
unsigned char doptypoBytes[310];
|
||||
memcpy(doptypoBytes, (bytes + 90), 310);
|
||||
doptypography = new DocumentTypographyInfo(doptypoBytes, 310);
|
||||
|
||||
unsigned char dogridBytes[10];
|
||||
memcpy( dogridBytes, ( bytes + 400 ), 10 );
|
||||
dogrid = new DrawingObjectGrid( dogridBytes, 10 );
|
||||
unsigned char dogridBytes[10];
|
||||
memcpy(dogridBytes, (bytes + 400), 10);
|
||||
dogrid = new DrawingObjectGrid(dogridBytes, 10);
|
||||
|
||||
lvl = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 410 ), 2, 1, 4 );
|
||||
fGramAllDone = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 5 );
|
||||
fGramAllClean = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 6 );
|
||||
fSubsetFonts = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 7 );
|
||||
fHideLastVersion = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 8 );
|
||||
fHtmlDoc = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 9 );
|
||||
lvl = (short)FormatUtils::GetUIntFromBytesBits((bytes + 410), 2, 1, 4);
|
||||
fGramAllDone = FormatUtils::GetBitFromBytes((bytes + 410), 2, 5);
|
||||
fGramAllClean = FormatUtils::GetBitFromBytes((bytes + 410), 2, 6);
|
||||
fSubsetFonts = FormatUtils::GetBitFromBytes((bytes + 410), 2, 7);
|
||||
fHideLastVersion = FormatUtils::GetBitFromBytes((bytes + 410), 2, 8);
|
||||
fHtmlDoc = FormatUtils::GetBitFromBytes((bytes + 410), 2, 9);
|
||||
|
||||
fSnapBorder = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 11 );
|
||||
fIncludeHeader = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 12 );
|
||||
fIncludeFooter = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 13 );
|
||||
fForcePageSizePag = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 14 );
|
||||
fMinFontSizePag = FormatUtils::GetBitFromBytes( ( bytes + 410 ), 2, 15 );
|
||||
fSnapBorder = FormatUtils::GetBitFromBytes((bytes + 410), 2, 11);
|
||||
fIncludeHeader = FormatUtils::GetBitFromBytes((bytes + 410), 2, 12);
|
||||
fIncludeFooter = FormatUtils::GetBitFromBytes((bytes + 410), 2, 13);
|
||||
fForcePageSizePag = FormatUtils::GetBitFromBytes((bytes + 410), 2, 14);
|
||||
fMinFontSizePag = FormatUtils::GetBitFromBytes((bytes + 410), 2, 15);
|
||||
|
||||
fHaveVersions = FormatUtils::GetBitFromBytes( ( bytes + 412 ), 2, 0 );
|
||||
fAutoVersion = FormatUtils::GetBitFromBytes( ( bytes + 412 ), 2, 1 );
|
||||
fHaveVersions = FormatUtils::GetBitFromBytes((bytes + 412), 2, 0);
|
||||
fAutoVersion = FormatUtils::GetBitFromBytes((bytes + 412), 2, 1);
|
||||
|
||||
unsigned char asumybits[12];
|
||||
memcpy( asumybits, ( bytes + 414 ), 12 );
|
||||
asumyi = new AutoSummaryInfo( asumybits, 12 );
|
||||
unsigned char asumybits[12];
|
||||
memcpy(asumybits, (bytes + 414), 12);
|
||||
asumyi = new AutoSummaryInfo(asumybits, 12);
|
||||
|
||||
cChWS = FormatUtils::BytesToInt32( bytes, 426, size );
|
||||
cChWSFtnEdn = FormatUtils::BytesToInt32( bytes, 430, size );
|
||||
grfDocEvents = FormatUtils::BytesToInt32( bytes, 434, size );
|
||||
cChWS = FormatUtils::BytesToInt32(bytes, 426, size);
|
||||
cChWSFtnEdn = FormatUtils::BytesToInt32(bytes, 430, size);
|
||||
grfDocEvents = FormatUtils::BytesToInt32(bytes, 434, size);
|
||||
|
||||
fVirusPromted = FormatUtils::GetBitFromBytes( ( bytes + 438 ), 4, 0 );
|
||||
fVirusLoadSafe = FormatUtils::GetBitFromBytes( ( bytes + 438 ), 4, 1 );
|
||||
KeyVirusSession30 = (int)FormatUtils::GetUIntFromBytesBits( ( bytes + 438 ), 4, 2, 30 );
|
||||
fVirusPromted = FormatUtils::GetBitFromBytes((bytes + 438), 4, 0);
|
||||
fVirusLoadSafe = FormatUtils::GetBitFromBytes((bytes + 438), 4, 1);
|
||||
KeyVirusSession30 = (int)FormatUtils::GetUIntFromBytesBits((bytes + 438), 4, 2, 30);
|
||||
|
||||
cDBC = FormatUtils::BytesToInt32( bytes, 480, size );
|
||||
cDBCFtnEdn = FormatUtils::BytesToInt32( bytes, 484, size );
|
||||
nfcEdnRef = FormatUtils::BytesToInt16( bytes, 492, size );
|
||||
nfcFtnRef = FormatUtils::BytesToInt16( bytes, 494, size );
|
||||
hpsZoonFontPag = FormatUtils::BytesToInt16( bytes, 496, size );
|
||||
dywDispPag = FormatUtils::BytesToInt16( bytes, 498, size );
|
||||
cDBC = FormatUtils::BytesToInt32(bytes, 480, size);
|
||||
cDBCFtnEdn = FormatUtils::BytesToInt32(bytes, 484, size);
|
||||
nfcEdnRef = FormatUtils::BytesToInt16(bytes, 492, size);
|
||||
nfcFtnRef = FormatUtils::BytesToInt16(bytes, 494, size);
|
||||
hpsZoonFontPag = FormatUtils::BytesToInt16(bytes, 496, size);
|
||||
dywDispPag = FormatUtils::BytesToInt16(bytes, 498, size);
|
||||
|
||||
//WORD 2000, 2002, 2003 PART
|
||||
if ( size > 500/* && fib->m_FibNew.nFibNew > Fib1997*/)
|
||||
{
|
||||
ilvlLastBulletMain = bytes[500];
|
||||
ilvlLastNumberMain = bytes[501];
|
||||
istdClickTypePara = FormatUtils::BytesToInt16( bytes, 502, size );
|
||||
|
||||
fLADAllDone = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 0 );
|
||||
fEnvelopeVis = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 1 );
|
||||
fMaybeTentativeListInDoc = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 2 );
|
||||
fMaybeFitText = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 3 );
|
||||
fRelyOnCss_WebOpt = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 9 );
|
||||
fRelyOnVML_WebOpt = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 10 );
|
||||
fAllowPNG_WebOpt = FormatUtils::GetBitFromBytes( ( bytes + 504 ), 2, 11 );
|
||||
screenSize_WebOpt = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 504 ), 2, 12, 4 );
|
||||
|
||||
fOrganizeInFolder_WebOpt = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 0 );
|
||||
fUseLongFileNames_WebOpt = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 1 );
|
||||
iPixelsPerInch_WebOpt = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 506 ), 2, 2, 10 );
|
||||
fWebOptionsInit = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 12 );
|
||||
fMaybeFEL = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 13 );
|
||||
fCharLineUnits = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 14 );
|
||||
fMaybeRTLTables = FormatUtils::GetBitFromBytes( ( bytes + 506 ), 2, 15 );
|
||||
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 0 );
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 1 );
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 2 );
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 3 );
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 4 );
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 5 );
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 6 );
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 7 );
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 8 );
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 9 );
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 10 );
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 11 );
|
||||
fLeaveBackslashAlone = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 12 );
|
||||
fExpShRtn = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 13 );
|
||||
fDntULTrlSpc = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 14 );
|
||||
fDntBlnSbDbWid = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 15 );
|
||||
fSuppressTopSpacingMac5 = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 16 );
|
||||
fTruncDxaExpand = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 17 );
|
||||
fPrintBodyBeforeHdr = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 18 );
|
||||
fNoLeading = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 19 );
|
||||
fMakeSpaceForUL = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 20 );
|
||||
fMWSmallCaps = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 21 );
|
||||
f2ptExtLeadingOnly = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 22 );
|
||||
fTruncFontHeight = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 23 );
|
||||
fSubOnSize = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 24 );
|
||||
fLineWrapLikeWord6 = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 25 );
|
||||
fWW6BorderRules = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 26 );
|
||||
fExactOnTop = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 27 );
|
||||
fExtraAfter = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 28 );
|
||||
fWPSpace = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 29 );
|
||||
fWPJust = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 30 );
|
||||
fPrintMet = FormatUtils::GetBitFromBytes( ( bytes + 508 ), 4, 31 );
|
||||
|
||||
//split bytes 512,513,514,515 into bits
|
||||
fSpLayoutLikeWW8 = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 0 );
|
||||
fFtnLayoutLikeWW8 = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 1 );
|
||||
fDontUseHTMLParagraphAutoSpacing = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 2 );
|
||||
fDontAdjustLineHeightInTable = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 3 );
|
||||
fForgetLastTabAlign = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 4 );
|
||||
fUseAutoSpaceForFullWidthAlpha = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 5 );
|
||||
fAlignTablesRowByRow = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 6 );
|
||||
fLayoutRawTableWidth = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 7 );
|
||||
fLayoutTableRowsApart = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 8 );
|
||||
fUserWord97LineBreakingRules = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 9 );
|
||||
fDontBreakWrappedTables = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 10 );
|
||||
fDontSnapToGridInCell = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 11 );
|
||||
fDontAllowFieldEndSelect = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 12 );
|
||||
fApplyBreakingRules = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 13 );
|
||||
fDontWrapTextWithPunct = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 14 );
|
||||
fDontUseAsianBreakRules = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 15 );
|
||||
fUseWord2002TableStyleRules = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 16 );
|
||||
fGrowAutofit = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 17 );
|
||||
fUseNormalStyleForList = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 18 );
|
||||
fDontUseIndentAsNumberingTabStop = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 19 );
|
||||
fFELineBreak11 = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 20 );
|
||||
fAllowSpaceOfSameStyleInTable = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 21 );
|
||||
fWW11IndentRules = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 22 );
|
||||
fDontAutofitConstrainedTables = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 23 );
|
||||
fAutofitLikeWW11 = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 24 );
|
||||
fUnderlineTabInNumList = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 25 );
|
||||
fHangulWidthLikeWW11 = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 26 );
|
||||
fSplitPgBreakAndParaMark = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 27 );
|
||||
fDontVertAlignCellWithSp = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 28 );
|
||||
fDontBreakConstrainedForcedTables = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 29 );
|
||||
fDontVertAlignInTxbx = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 30 );
|
||||
fWord11KerningPairs = FormatUtils::GetBitFromBytes( ( bytes + 512 ), 4, 31 );
|
||||
|
||||
fCachedColBalance = FormatUtils::GetBitFromBytes( ( bytes + 516 ), 4, 0 );
|
||||
|
||||
//bytes 517-539 are unused
|
||||
|
||||
verCompatPreW10 = (unsigned short)FormatUtils::GetUIntFromBytesBits( ( bytes + 540 ), 4, 0, 16 );
|
||||
fNoMargPgvwSaved = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 16 );
|
||||
fNoMargPgvWPag = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 17 );
|
||||
fWebViewPag = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 18 );
|
||||
fSeeDrawingsPag = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 19 );
|
||||
fBulletProofed = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 20 );
|
||||
fCorrupted = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 21 );
|
||||
fSaveUim = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 22 );
|
||||
fFilterPrivacy = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 23 );
|
||||
fInFReplaceNoRM = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 24 );
|
||||
fSeenRepairs = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 25 );
|
||||
fHasXML = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 26 );
|
||||
fSeeScriptAnchorsPag = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 27 );
|
||||
fValidateXML = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 28 );
|
||||
fSaveIfInvalidXML = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 29 );
|
||||
fShowXMLErrors = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 30 );
|
||||
fAlwaysMergeEmptyNamespace = FormatUtils::GetBitFromBytes( ( bytes + 540 ), 4, 31 );
|
||||
|
||||
if ( size > 544/* && fib->m_FibNew.nFibNew > Fib2000*/)
|
||||
//WORD 2000, 2002, 2003 PART
|
||||
if (size > 500 && size > 543) //start && stop bound /* && fib->m_FibNew.nFibNew > Fib1997*/
|
||||
{
|
||||
cpMaxListCacheMainDoc = FormatUtils::BytesToInt32( bytes, 544, size ); //unused
|
||||
ilvlLastBulletMain = bytes[500];
|
||||
ilvlLastNumberMain = bytes[501];
|
||||
istdClickTypePara = FormatUtils::BytesToInt16(bytes, 502, size);
|
||||
|
||||
//split bytes 548,549 into bits
|
||||
fDoNotEmbedSystemFont = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 0 );
|
||||
fWordCompact = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 1 );
|
||||
fLiveRecover = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 2 );
|
||||
fEmbedFactoids = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 3 );
|
||||
fFactoidXML = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 4 );
|
||||
fFactoidAllDone = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 5 );
|
||||
fFolioPrint = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 6 );
|
||||
fReverseFolio = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 7 );
|
||||
iTextLineEnding = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 548 ), 2, 8, 3 );
|
||||
fHideFcc = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 11 );
|
||||
fAcetateShowMarkup = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 12 );
|
||||
fAcetateShowAtn = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 13 );
|
||||
fAcetateShowInsDel = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 14 );
|
||||
fAcetateShowProps = FormatUtils::GetBitFromBytes( ( bytes + 548 ), 2, 15 );
|
||||
fLADAllDone = FormatUtils::GetBitFromBytes((bytes + 504), 2, 0);
|
||||
fEnvelopeVis = FormatUtils::GetBitFromBytes((bytes + 504), 2, 1);
|
||||
fMaybeTentativeListInDoc = FormatUtils::GetBitFromBytes((bytes + 504), 2, 2);
|
||||
fMaybeFitText = FormatUtils::GetBitFromBytes((bytes + 504), 2, 3);
|
||||
fRelyOnCss_WebOpt = FormatUtils::GetBitFromBytes((bytes + 504), 2, 9);
|
||||
fRelyOnVML_WebOpt = FormatUtils::GetBitFromBytes((bytes + 504), 2, 10);
|
||||
fAllowPNG_WebOpt = FormatUtils::GetBitFromBytes((bytes + 504), 2, 11);
|
||||
screenSize_WebOpt = (short)FormatUtils::GetUIntFromBytesBits((bytes + 504), 2, 12, 4);
|
||||
|
||||
istdTableDflt = FormatUtils::BytesToUInt16( bytes, 550, size );
|
||||
verCompat = FormatUtils::BytesToUInt16( bytes, 552, size );
|
||||
grfFmtFilter = FormatUtils::BytesToUInt16( bytes, 554, size );
|
||||
iFolioPages = FormatUtils::BytesToInt16 ( bytes, 556, size );
|
||||
cpgText = FormatUtils::BytesToUInt16( bytes, 558, size );
|
||||
cpMinRMText = FormatUtils::BytesToInt32 ( bytes, 560, size );
|
||||
cpMinRMFtn = FormatUtils::BytesToInt32 ( bytes, 564, size );
|
||||
cpMinRMHdd = FormatUtils::BytesToInt32 ( bytes, 568, size );
|
||||
cpMinRMAtn = FormatUtils::BytesToInt32 ( bytes, 572, size );
|
||||
cpMinRMEdn = FormatUtils::BytesToInt32 ( bytes, 576, size );
|
||||
cpMinRMTxbx = FormatUtils::BytesToInt32 ( bytes, 580, size );
|
||||
cpMinRMHdrTxbx = FormatUtils::BytesToInt32 ( bytes, 584, size );
|
||||
rsidRoot = FormatUtils::BytesToInt32 ( bytes, 588, size );
|
||||
//unused 2
|
||||
fOrganizeInFolder_WebOpt = FormatUtils::GetBitFromBytes((bytes + 506), 2, 0);
|
||||
fUseLongFileNames_WebOpt = FormatUtils::GetBitFromBytes((bytes + 506), 2, 1);
|
||||
iPixelsPerInch_WebOpt = (short)FormatUtils::GetUIntFromBytesBits((bytes + 506), 2, 2, 10);
|
||||
fWebOptionsInit = FormatUtils::GetBitFromBytes((bytes + 506), 2, 12);
|
||||
fMaybeFEL = FormatUtils::GetBitFromBytes((bytes + 506), 2, 13);
|
||||
fCharLineUnits = FormatUtils::GetBitFromBytes((bytes + 506), 2, 14);
|
||||
fMaybeRTLTables = FormatUtils::GetBitFromBytes((bytes + 506), 2, 15);
|
||||
|
||||
if ( size > 594/* && fib->m_FibNew.nFibNew > Fib2002*/)
|
||||
fNoTabForInd = FormatUtils::GetBitFromBytes((bytes + 508), 4, 0);
|
||||
fNoSpaceRaiseLower = FormatUtils::GetBitFromBytes((bytes + 508), 4, 1);
|
||||
fSuppressSpbfAfterPageBreak = FormatUtils::GetBitFromBytes((bytes + 508), 4, 2);
|
||||
fWrapTrailSpaces = FormatUtils::GetBitFromBytes((bytes + 508), 4, 3);
|
||||
fMapPrintTextColor = FormatUtils::GetBitFromBytes((bytes + 508), 4, 4);
|
||||
fNoColumnBalance = FormatUtils::GetBitFromBytes((bytes + 508), 4, 5);
|
||||
fConvMailMergeEsc = FormatUtils::GetBitFromBytes((bytes + 508), 4, 6);
|
||||
fSuppressTopSpacing = FormatUtils::GetBitFromBytes((bytes + 508), 4, 7);
|
||||
fOrigWordTableRules = FormatUtils::GetBitFromBytes((bytes + 508), 4, 8);
|
||||
fTransparentMetafiles = FormatUtils::GetBitFromBytes((bytes + 508), 4, 9);
|
||||
fShowBreaksInFrames = FormatUtils::GetBitFromBytes((bytes + 508), 4, 10);
|
||||
fSwapBordersFacingPgs = FormatUtils::GetBitFromBytes((bytes + 508), 4, 11);
|
||||
fLeaveBackslashAlone = FormatUtils::GetBitFromBytes((bytes + 508), 4, 12);
|
||||
fExpShRtn = FormatUtils::GetBitFromBytes((bytes + 508), 4, 13);
|
||||
fDntULTrlSpc = FormatUtils::GetBitFromBytes((bytes + 508), 4, 14);
|
||||
fDntBlnSbDbWid = FormatUtils::GetBitFromBytes((bytes + 508), 4, 15);
|
||||
fSuppressTopSpacingMac5 = FormatUtils::GetBitFromBytes((bytes + 508), 4, 16);
|
||||
fTruncDxaExpand = FormatUtils::GetBitFromBytes((bytes + 508), 4, 17);
|
||||
fPrintBodyBeforeHdr = FormatUtils::GetBitFromBytes((bytes + 508), 4, 18);
|
||||
fNoLeading = FormatUtils::GetBitFromBytes((bytes + 508), 4, 19);
|
||||
fMakeSpaceForUL = FormatUtils::GetBitFromBytes((bytes + 508), 4, 20);
|
||||
fMWSmallCaps = FormatUtils::GetBitFromBytes((bytes + 508), 4, 21);
|
||||
f2ptExtLeadingOnly = FormatUtils::GetBitFromBytes((bytes + 508), 4, 22);
|
||||
fTruncFontHeight = FormatUtils::GetBitFromBytes((bytes + 508), 4, 23);
|
||||
fSubOnSize = FormatUtils::GetBitFromBytes((bytes + 508), 4, 24);
|
||||
fLineWrapLikeWord6 = FormatUtils::GetBitFromBytes((bytes + 508), 4, 25);
|
||||
fWW6BorderRules = FormatUtils::GetBitFromBytes((bytes + 508), 4, 26);
|
||||
fExactOnTop = FormatUtils::GetBitFromBytes((bytes + 508), 4, 27);
|
||||
fExtraAfter = FormatUtils::GetBitFromBytes((bytes + 508), 4, 28);
|
||||
fWPSpace = FormatUtils::GetBitFromBytes((bytes + 508), 4, 29);
|
||||
fWPJust = FormatUtils::GetBitFromBytes((bytes + 508), 4, 30);
|
||||
fPrintMet = FormatUtils::GetBitFromBytes((bytes + 508), 4, 31);
|
||||
|
||||
//split bytes 512,513,514,515 into bits
|
||||
fSpLayoutLikeWW8 = FormatUtils::GetBitFromBytes((bytes + 512), 4, 0);
|
||||
fFtnLayoutLikeWW8 = FormatUtils::GetBitFromBytes((bytes + 512), 4, 1);
|
||||
fDontUseHTMLParagraphAutoSpacing = FormatUtils::GetBitFromBytes((bytes + 512), 4, 2);
|
||||
fDontAdjustLineHeightInTable = FormatUtils::GetBitFromBytes((bytes + 512), 4, 3);
|
||||
fForgetLastTabAlign = FormatUtils::GetBitFromBytes((bytes + 512), 4, 4);
|
||||
fUseAutoSpaceForFullWidthAlpha = FormatUtils::GetBitFromBytes((bytes + 512), 4, 5);
|
||||
fAlignTablesRowByRow = FormatUtils::GetBitFromBytes((bytes + 512), 4, 6);
|
||||
fLayoutRawTableWidth = FormatUtils::GetBitFromBytes((bytes + 512), 4, 7);
|
||||
fLayoutTableRowsApart = FormatUtils::GetBitFromBytes((bytes + 512), 4, 8);
|
||||
fUserWord97LineBreakingRules = FormatUtils::GetBitFromBytes((bytes + 512), 4, 9);
|
||||
fDontBreakWrappedTables = FormatUtils::GetBitFromBytes((bytes + 512), 4, 10);
|
||||
fDontSnapToGridInCell = FormatUtils::GetBitFromBytes((bytes + 512), 4, 11);
|
||||
fDontAllowFieldEndSelect = FormatUtils::GetBitFromBytes((bytes + 512), 4, 12);
|
||||
fApplyBreakingRules = FormatUtils::GetBitFromBytes((bytes + 512), 4, 13);
|
||||
fDontWrapTextWithPunct = FormatUtils::GetBitFromBytes((bytes + 512), 4, 14);
|
||||
fDontUseAsianBreakRules = FormatUtils::GetBitFromBytes((bytes + 512), 4, 15);
|
||||
fUseWord2002TableStyleRules = FormatUtils::GetBitFromBytes((bytes + 512), 4, 16);
|
||||
fGrowAutofit = FormatUtils::GetBitFromBytes((bytes + 512), 4, 17);
|
||||
fUseNormalStyleForList = FormatUtils::GetBitFromBytes((bytes + 512), 4, 18);
|
||||
fDontUseIndentAsNumberingTabStop = FormatUtils::GetBitFromBytes((bytes + 512), 4, 19);
|
||||
fFELineBreak11 = FormatUtils::GetBitFromBytes((bytes + 512), 4, 20);
|
||||
fAllowSpaceOfSameStyleInTable = FormatUtils::GetBitFromBytes((bytes + 512), 4, 21);
|
||||
fWW11IndentRules = FormatUtils::GetBitFromBytes((bytes + 512), 4, 22);
|
||||
fDontAutofitConstrainedTables = FormatUtils::GetBitFromBytes((bytes + 512), 4, 23);
|
||||
fAutofitLikeWW11 = FormatUtils::GetBitFromBytes((bytes + 512), 4, 24);
|
||||
fUnderlineTabInNumList = FormatUtils::GetBitFromBytes((bytes + 512), 4, 25);
|
||||
fHangulWidthLikeWW11 = FormatUtils::GetBitFromBytes((bytes + 512), 4, 26);
|
||||
fSplitPgBreakAndParaMark = FormatUtils::GetBitFromBytes((bytes + 512), 4, 27);
|
||||
fDontVertAlignCellWithSp = FormatUtils::GetBitFromBytes((bytes + 512), 4, 28);
|
||||
fDontBreakConstrainedForcedTables = FormatUtils::GetBitFromBytes((bytes + 512), 4, 29);
|
||||
fDontVertAlignInTxbx = FormatUtils::GetBitFromBytes((bytes + 512), 4, 30);
|
||||
fWord11KerningPairs = FormatUtils::GetBitFromBytes((bytes + 512), 4, 31);
|
||||
|
||||
fCachedColBalance = FormatUtils::GetBitFromBytes((bytes + 516), 4, 0);
|
||||
|
||||
//bytes 517-539 are unused
|
||||
|
||||
verCompatPreW10 = (unsigned short)FormatUtils::GetUIntFromBytesBits((bytes + 540), 4, 0, 16);
|
||||
fNoMargPgvwSaved = FormatUtils::GetBitFromBytes((bytes + 540), 4, 16);
|
||||
fNoMargPgvWPag = FormatUtils::GetBitFromBytes((bytes + 540), 4, 17);
|
||||
fWebViewPag = FormatUtils::GetBitFromBytes((bytes + 540), 4, 18);
|
||||
fSeeDrawingsPag = FormatUtils::GetBitFromBytes((bytes + 540), 4, 19);
|
||||
fBulletProofed = FormatUtils::GetBitFromBytes((bytes + 540), 4, 20);
|
||||
fCorrupted = FormatUtils::GetBitFromBytes((bytes + 540), 4, 21);
|
||||
fSaveUim = FormatUtils::GetBitFromBytes((bytes + 540), 4, 22);
|
||||
fFilterPrivacy = FormatUtils::GetBitFromBytes((bytes + 540), 4, 23);
|
||||
fInFReplaceNoRM = FormatUtils::GetBitFromBytes((bytes + 540), 4, 24);
|
||||
fSeenRepairs = FormatUtils::GetBitFromBytes((bytes + 540), 4, 25);
|
||||
fHasXML = FormatUtils::GetBitFromBytes((bytes + 540), 4, 26);
|
||||
fSeeScriptAnchorsPag = FormatUtils::GetBitFromBytes((bytes + 540), 4, 27);
|
||||
fValidateXML = FormatUtils::GetBitFromBytes((bytes + 540), 4, 28);
|
||||
fSaveIfInvalidXML = FormatUtils::GetBitFromBytes((bytes + 540), 4, 29);
|
||||
fShowXMLErrors = FormatUtils::GetBitFromBytes((bytes + 540), 4, 30);
|
||||
fAlwaysMergeEmptyNamespace = FormatUtils::GetBitFromBytes((bytes + 540), 4, 31);
|
||||
|
||||
if (size > 544 && size > 592) //start && stop bound /* && fib->m_FibNew.nFibNew > Fib2000*/
|
||||
{
|
||||
//split bytes 592,593,594,595 into bits
|
||||
fTreatLockAtnAsReadOnly = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 0 );
|
||||
fStyleLock = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 1 );
|
||||
fAutoFmtOverride = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 2 );
|
||||
fRemoveWordML = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 3 );
|
||||
fApplyCustomXForm = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 4 );
|
||||
fStyeLockEnforced = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 5 );
|
||||
fFakeLockAtn = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 6 );
|
||||
fIgnoreMixedContent = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 7 );
|
||||
fShowPlaceholderText = FormatUtils::GetBitFromBytes( ( bytes + 592 ), 4, 8 );
|
||||
grf = FormatUtils::GetUIntFromBytesBits( ( bytes + 592 ), 4, 9, 23 );
|
||||
cpMaxListCacheMainDoc = FormatUtils::BytesToInt32(bytes, 544, size); //unused
|
||||
|
||||
//split bytes 596 and 597 into bits
|
||||
fReadingModeInkLockDown = FormatUtils::GetBitFromBytes( ( bytes + 596 ), 2, 0 );
|
||||
fAcetateShowInkAtn = FormatUtils::GetBitFromBytes( ( bytes + 596 ), 2, 1 );
|
||||
fFilterDttm = FormatUtils::GetBitFromBytes( ( bytes + 596 ), 2, 2 );
|
||||
fEnforceDocProt = FormatUtils::GetBitFromBytes( ( bytes + 596 ), 2, 3 );
|
||||
iDocProtCur = (unsigned short)FormatUtils::GetUIntFromBytesBits( ( bytes + 596 ), 2, 4, 3 );
|
||||
fDispBkSpSaved = FormatUtils::GetBitFromBytes( ( bytes + 596 ), 2, 7 );
|
||||
//split bytes 548,549 into bits
|
||||
fDoNotEmbedSystemFont = FormatUtils::GetBitFromBytes((bytes + 548), 2, 0);
|
||||
fWordCompact = FormatUtils::GetBitFromBytes((bytes + 548), 2, 1);
|
||||
fLiveRecover = FormatUtils::GetBitFromBytes((bytes + 548), 2, 2);
|
||||
fEmbedFactoids = FormatUtils::GetBitFromBytes((bytes + 548), 2, 3);
|
||||
fFactoidXML = FormatUtils::GetBitFromBytes((bytes + 548), 2, 4);
|
||||
fFactoidAllDone = FormatUtils::GetBitFromBytes((bytes + 548), 2, 5);
|
||||
fFolioPrint = FormatUtils::GetBitFromBytes((bytes + 548), 2, 6);
|
||||
fReverseFolio = FormatUtils::GetBitFromBytes((bytes + 548), 2, 7);
|
||||
iTextLineEnding = (short)FormatUtils::GetUIntFromBytesBits((bytes + 548), 2, 8, 3);
|
||||
fHideFcc = FormatUtils::GetBitFromBytes((bytes + 548), 2, 11);
|
||||
fAcetateShowMarkup = FormatUtils::GetBitFromBytes((bytes + 548), 2, 12);
|
||||
fAcetateShowAtn = FormatUtils::GetBitFromBytes((bytes + 548), 2, 13);
|
||||
fAcetateShowInsDel = FormatUtils::GetBitFromBytes((bytes + 548), 2, 14);
|
||||
fAcetateShowProps = FormatUtils::GetBitFromBytes((bytes + 548), 2, 15);
|
||||
|
||||
dxaPageLock = FormatUtils::BytesToInt16( bytes, 598, size );
|
||||
dyaPageLock = FormatUtils::BytesToInt16( bytes, 600, size );
|
||||
pctFontLock = FormatUtils::BytesToInt32( bytes, 602, size );
|
||||
grfitbid = bytes[606];
|
||||
//unsigned char 607 is unused
|
||||
ilfoMacAtCleanup = FormatUtils::BytesToUInt16( bytes, 608, size );
|
||||
|
||||
if ( size > 616/* && fib->m_FibNew.nFibNew > Fib2003*/)
|
||||
istdTableDflt = FormatUtils::BytesToUInt16(bytes, 550, size);
|
||||
verCompat = FormatUtils::BytesToUInt16(bytes, 552, size);
|
||||
grfFmtFilter = FormatUtils::BytesToUInt16(bytes, 554, size);
|
||||
iFolioPages = FormatUtils::BytesToInt16(bytes, 556, size);
|
||||
cpgText = FormatUtils::BytesToUInt16(bytes, 558, size);
|
||||
cpMinRMText = FormatUtils::BytesToInt32(bytes, 560, size);
|
||||
cpMinRMFtn = FormatUtils::BytesToInt32(bytes, 564, size);
|
||||
cpMinRMHdd = FormatUtils::BytesToInt32(bytes, 568, size);
|
||||
cpMinRMAtn = FormatUtils::BytesToInt32(bytes, 572, size);
|
||||
cpMinRMEdn = FormatUtils::BytesToInt32(bytes, 576, size);
|
||||
cpMinRMTxbx = FormatUtils::BytesToInt32(bytes, 580, size);
|
||||
cpMinRMHdrTxbx = FormatUtils::BytesToInt32(bytes, 584, size);
|
||||
rsidRoot = FormatUtils::BytesToInt32(bytes, 588, size);
|
||||
//unused 2
|
||||
|
||||
if (size > 594 && size > 609) //start && stop bound /* && fib->m_FibNew.nFibNew > Fib2002*/
|
||||
{
|
||||
//4 bytes reserved
|
||||
bool fRMTrackFormatting = FormatUtils::GetBitFromBytes( ( bytes + 620 ), 2, 0 );
|
||||
bool fRMTrackMoves = FormatUtils::GetBitFromBytes( ( bytes + 620 ), 2, 1 );
|
||||
//dopMth = 34 bytes from 624 = 658
|
||||
|
||||
if ( size > 674/* && fib->m_FibNew.nFibNew > Fib2007*/)
|
||||
//split bytes 592,593,594,595 into bits
|
||||
fTreatLockAtnAsReadOnly = FormatUtils::GetBitFromBytes((bytes + 592), 4, 0);
|
||||
fStyleLock = FormatUtils::GetBitFromBytes((bytes + 592), 4, 1);
|
||||
fAutoFmtOverride = FormatUtils::GetBitFromBytes((bytes + 592), 4, 2);
|
||||
fRemoveWordML = FormatUtils::GetBitFromBytes((bytes + 592), 4, 3);
|
||||
fApplyCustomXForm = FormatUtils::GetBitFromBytes((bytes + 592), 4, 4);
|
||||
fStyeLockEnforced = FormatUtils::GetBitFromBytes((bytes + 592), 4, 5);
|
||||
fFakeLockAtn = FormatUtils::GetBitFromBytes((bytes + 592), 4, 6);
|
||||
fIgnoreMixedContent = FormatUtils::GetBitFromBytes((bytes + 592), 4, 7);
|
||||
fShowPlaceholderText = FormatUtils::GetBitFromBytes((bytes + 592), 4, 8);
|
||||
grf = FormatUtils::GetUIntFromBytesBits((bytes + 592), 4, 9, 23);
|
||||
|
||||
//split bytes 596 and 597 into bits
|
||||
fReadingModeInkLockDown = FormatUtils::GetBitFromBytes((bytes + 596), 2, 0);
|
||||
fAcetateShowInkAtn = FormatUtils::GetBitFromBytes((bytes + 596), 2, 1);
|
||||
fFilterDttm = FormatUtils::GetBitFromBytes((bytes + 596), 2, 2);
|
||||
fEnforceDocProt = FormatUtils::GetBitFromBytes((bytes + 596), 2, 3);
|
||||
iDocProtCur = (unsigned short)FormatUtils::GetUIntFromBytesBits((bytes + 596), 2, 4, 3);
|
||||
fDispBkSpSaved = FormatUtils::GetBitFromBytes((bytes + 596), 2, 7);
|
||||
|
||||
dxaPageLock = FormatUtils::BytesToInt16(bytes, 598, size);
|
||||
dyaPageLock = FormatUtils::BytesToInt16(bytes, 600, size);
|
||||
pctFontLock = FormatUtils::BytesToInt32(bytes, 602, size);
|
||||
grfitbid = bytes[606];
|
||||
//unsigned char 607 is unused
|
||||
ilfoMacAtCleanup = FormatUtils::BytesToUInt16(bytes, 608, size);
|
||||
|
||||
if (size > 616 && size > 621) //start && stop bound /* && fib->m_FibNew.nFibNew > Fib2003*/
|
||||
{
|
||||
if ( size > 690/* && fib->m_FibNew.nFibNew > Fib2010*/)
|
||||
//4 bytes reserved
|
||||
bool fRMTrackFormatting = FormatUtils::GetBitFromBytes((bytes + 620), 2, 0);
|
||||
bool fRMTrackMoves = FormatUtils::GetBitFromBytes((bytes + 620), 2, 1);
|
||||
//dopMth = 34 bytes from 624 = 658
|
||||
|
||||
if (size > 674/* && fib->m_FibNew.nFibNew > Fib2007*/)
|
||||
{
|
||||
if (size > 690/* && fib->m_FibNew.nFibNew > Fib2010*/)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -801,7 +805,7 @@ namespace DocFileFormat
|
||||
fFilterDttm = false;
|
||||
fEnforceDocProt = false;
|
||||
iDocProtCur = 0;
|
||||
fDispBkSpSaved = false;
|
||||
fDispBkSpSaved = true;
|
||||
dxaPageLock = 0;
|
||||
dyaPageLock = 0;
|
||||
pctFontLock = 0;
|
||||
|
||||
@ -53,8 +53,6 @@ namespace DocFileFormat
|
||||
WordDocumentProperties( FileInformationBlock* fib, POLE::Stream* tableStream );
|
||||
|
||||
friend class SettingsMapping;
|
||||
|
||||
bool bDisplayBackgroundShape;
|
||||
private:
|
||||
// True when facing pages should be printed
|
||||
bool fFacingPages;
|
||||
|
||||
@ -40,7 +40,7 @@ namespace DocFileFormat
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 2;
|
||||
|
||||
EndnoteDescriptor(): aEndIdx(0) {}
|
||||
EndnoteDescriptor(): aEndIdx(0), bUsed(false) {}
|
||||
|
||||
virtual ~EndnoteDescriptor()
|
||||
{
|
||||
@ -54,6 +54,7 @@ namespace DocFileFormat
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
|
||||
bool bUsed;
|
||||
short aEndIdx;
|
||||
};
|
||||
}
|
||||
|
||||
@ -492,9 +492,12 @@ namespace DocFileFormat
|
||||
|
||||
struct FibNew
|
||||
{
|
||||
FibNew() : nFibNew(Fib1997), cQuickSavesNew(0) {}
|
||||
FibNew() : nFibNew(Fib1997), cQuickSavesNew(0), lidThemeOther(0), lidThemeFE(0), lidThemeCS(0) {}
|
||||
FibVersion nFibNew;
|
||||
WORD cQuickSavesNew;
|
||||
WORD lidThemeOther;
|
||||
WORD lidThemeFE;
|
||||
WORD lidThemeCS;
|
||||
};
|
||||
|
||||
|
||||
@ -545,11 +548,11 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
/*ccpSpare0 = */ reader.ReadInt32();
|
||||
/*ccpSpare1 = */ reader.ReadInt32();
|
||||
/*ccpSpare2 = */ reader.ReadInt32();
|
||||
int ccpSpare0 = reader.ReadInt32();
|
||||
int ccpSpare1 = reader.ReadInt32();
|
||||
int ccpSpare2 = reader.ReadInt32();
|
||||
}
|
||||
/*ccpSpare3 = */ reader.ReadInt32();
|
||||
int ccpSpare3 = reader.ReadInt32();
|
||||
|
||||
if (m_FibBase.nFib > Fib1985)
|
||||
{
|
||||
@ -872,23 +875,43 @@ namespace DocFileFormat
|
||||
}
|
||||
if (m_FibBase.nFib > Fib1995 || m_FibBase.nFib == 0)
|
||||
{
|
||||
reader.ReadBytes(8, false); //68
|
||||
int reserv1 = reader.ReadInt32();
|
||||
int reserv2 = reader.ReadInt32();
|
||||
|
||||
m_RgLw97.ccpText = reader.ReadInt32(); //76
|
||||
m_RgLw97.ccpFtn = reader.ReadInt32(); //80
|
||||
m_RgLw97.ccpHdr = reader.ReadInt32(); //84
|
||||
|
||||
reader.ReadBytes( 4, false ); //88
|
||||
int reserv3 = reader.ReadInt32();
|
||||
|
||||
m_RgLw97.ccpAtn = reader.ReadInt32(); //92
|
||||
m_RgLw97.ccpEdn = reader.ReadInt32(); //96
|
||||
m_RgLw97.ccpTxbx = reader.ReadInt32(); //100
|
||||
m_RgLw97.ccpHdrTxbx = reader.ReadInt32(); //104
|
||||
|
||||
reader.ReadBytes(44, false); //108
|
||||
int reserv4 = reader.ReadInt32();
|
||||
int reserv5 = reader.ReadInt32();
|
||||
int reserv6 = reader.ReadInt32();
|
||||
int reserv7 = reader.ReadInt32();
|
||||
int reserv8 = reader.ReadInt32();
|
||||
int reserv9 = reader.ReadInt32();
|
||||
int reserv10 = reader.ReadInt32();
|
||||
int reserv11 = reader.ReadInt32();
|
||||
int reserv12 = reader.ReadInt32();
|
||||
int reserv13 = reader.ReadInt32();
|
||||
int reserv14 = reader.ReadInt32();
|
||||
|
||||
cbRgFcLcb = reader.ReadUInt16(); //152
|
||||
|
||||
|
||||
switch(cbRgFcLcb)
|
||||
{
|
||||
case 0x005D: m_FibBase.nFib = Fib1997; break;
|
||||
case 0x006C: m_FibBase.nFib = Fib2000; break;
|
||||
case 0x0088: m_FibBase.nFib = Fib2002; break;
|
||||
case 0x00A4: m_FibBase.nFib = Fib2003; break;
|
||||
case 0x00B7: m_FibBase.nFib = Fib2007; break;
|
||||
}
|
||||
|
||||
m_FibWord97.fcStshfOrig = reader.ReadUInt32(); //154
|
||||
m_FibWord97.lcbStshfOrig = reader.ReadUInt32(); //158
|
||||
m_FibWord97.fcStshf = reader.ReadUInt32(); //162
|
||||
@ -922,7 +945,7 @@ namespace DocFileFormat
|
||||
m_FibWord97.fcSttbfFfn = reader.ReadUInt32(); //274
|
||||
m_FibWord97.lcbSttbfFfn = reader.ReadUInt32(); //278
|
||||
m_FibWord97.fcPlcfFldMom = reader.ReadUInt32(); //282
|
||||
m_FibWord97.lcbPlcfFldMom = reader.ReadUInt32(); //286
|
||||
m_FibWord97.lcbPlcfFldMom = reader.ReadUInt32(); //286
|
||||
m_FibWord97.fcPlcfFldHdr = reader.ReadUInt32(); //290
|
||||
m_FibWord97.lcbPlcfFldHdr = reader.ReadUInt32(); //294
|
||||
m_FibWord97.fcPlcfFldFtn = reader.ReadUInt32(); //298
|
||||
@ -1286,11 +1309,24 @@ namespace DocFileFormat
|
||||
|
||||
if (cswNew != 0)
|
||||
{
|
||||
//Read the FibRgCswNew
|
||||
//Read the FibRgCswNew
|
||||
m_FibNew.nFibNew = (FibVersion)reader.ReadUInt16();
|
||||
|
||||
if (m_FibNew.nFibNew == 0) m_FibNew.nFibNew = Fib1997;
|
||||
|
||||
m_FibNew.cQuickSavesNew = reader.ReadUInt16();
|
||||
|
||||
if (m_FibNew.nFibNew == 0x00D9 ||
|
||||
m_FibNew.nFibNew == 0x0101 ||
|
||||
m_FibNew.nFibNew == 0x010C )
|
||||
{
|
||||
}
|
||||
else if (m_FibNew.nFibNew == 0x0112)
|
||||
{
|
||||
m_FibNew.lidThemeOther = reader.ReadUInt16();
|
||||
m_FibNew.lidThemeFE = reader.ReadUInt16();
|
||||
m_FibNew.lidThemeCS = reader.ReadUInt16();
|
||||
}
|
||||
}
|
||||
}
|
||||
FileInformationBlock( VirtualStreamReader reader )
|
||||
@ -1363,13 +1399,26 @@ namespace DocFileFormat
|
||||
}
|
||||
else if (m_FibBase.nFib > Fib1995 || m_FibBase.nFib == 0)
|
||||
{
|
||||
//read the RgW97
|
||||
reader.ReadBytes( 26, false ); //34
|
||||
//read the RgW97
|
||||
int reserv1 = reader.ReadUInt16();
|
||||
int reserv2 = reader.ReadUInt16();
|
||||
int reserv3 = reader.ReadUInt16();
|
||||
int reserv4 = reader.ReadUInt16();
|
||||
int reserv5 = reader.ReadUInt16();
|
||||
int reserv6 = reader.ReadUInt16();
|
||||
int reserv7 = reader.ReadUInt16();
|
||||
int reserv8 = reader.ReadUInt16();
|
||||
int reserv9 = reader.ReadUInt16();
|
||||
int reserv10 = reader.ReadUInt16();
|
||||
int reserv11 = reader.ReadUInt16();
|
||||
int reserv12 = reader.ReadUInt16();
|
||||
int reserv13 = reader.ReadUInt16();
|
||||
|
||||
m_RgW97.lidFE = reader.ReadUInt16(); //60
|
||||
|
||||
cslw = reader.ReadUInt16(); //62
|
||||
|
||||
//read the RgLW97
|
||||
//read the RgLW97
|
||||
|
||||
m_RgLw97.cbMac = reader.ReadInt32(); //64
|
||||
}
|
||||
|
||||
@ -124,12 +124,12 @@ namespace DocFileFormat
|
||||
|
||||
//font signature
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:sig", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb0", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield0, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb1", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield1, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb2", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield2, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb3", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield3, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:csb0", FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield0, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:csb1", FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield1, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb0", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield0, L"%08X" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb1", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield1, L"%08X" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb2", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield2, L"%08X" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:usb3", FormatUtils::IntToFormattedWideString( font->fs.UnicodeSubsetBitfield3, L"%08X" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:csb0", FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield0, L"%08X" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:csb1", FormatUtils::IntToFormattedWideString( font->fs.CodePageBitfield1, L"%08X" ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:sig" );
|
||||
|
||||
|
||||
@ -76,7 +76,6 @@ namespace DocFileFormat
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
int start_table_cp = cp;
|
||||
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
|
||||
@ -41,7 +41,7 @@ namespace DocFileFormat
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 2;
|
||||
|
||||
FootnoteDescriptor() : aFtnIdx(0) {}
|
||||
FootnoteDescriptor() : aFtnIdx(0), bUsed(false) {}
|
||||
|
||||
virtual ~FootnoteDescriptor()
|
||||
{
|
||||
@ -56,5 +56,6 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
short aFtnIdx;
|
||||
bool bUsed;
|
||||
};
|
||||
}
|
||||
|
||||
@ -88,15 +88,26 @@ void FormFieldData::_FFData::read(VirtualStreamReader *reader)
|
||||
hps = reader->ReadUInt16();
|
||||
|
||||
xstzName = readXstz(reader);
|
||||
xstzTextDef = readXstz(reader);
|
||||
|
||||
wDef = reader->ReadUInt16();
|
||||
if (iType == 0)
|
||||
{
|
||||
xstzTextDef = readXstz(reader);
|
||||
}
|
||||
else if (iType == 1 || iType == 2)
|
||||
{
|
||||
wDef = reader->ReadUInt16();
|
||||
}
|
||||
|
||||
xstzTextFormat = readXstz(reader);
|
||||
xstzHelpText = readXstz(reader);
|
||||
xstzStatText = readXstz(reader);
|
||||
xstzEntryMcr = readXstz(reader);
|
||||
xstzExitMcr = readXstz(reader);
|
||||
|
||||
if (iType == 2)
|
||||
{
|
||||
//hsttbDropList
|
||||
}
|
||||
}
|
||||
FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx, POLE::Stream* stream, int nWordVersion )
|
||||
{
|
||||
@ -115,6 +126,18 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx,
|
||||
{
|
||||
}
|
||||
break;
|
||||
case sprmCHps:
|
||||
{
|
||||
}
|
||||
break;
|
||||
case sprmCHpsBi:
|
||||
{
|
||||
}
|
||||
break;
|
||||
case sprmCCv:
|
||||
{
|
||||
}
|
||||
break;
|
||||
case sprmCFFldVanish:
|
||||
{
|
||||
}
|
||||
@ -124,9 +147,18 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx,
|
||||
fc = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
case sprmCRsidProp:
|
||||
{
|
||||
}break;
|
||||
case sprmCFBold:
|
||||
{
|
||||
}break;
|
||||
case sprmCIco:
|
||||
{
|
||||
}break;
|
||||
case sprmCRsidText:
|
||||
{
|
||||
rsid = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), L"%08x");
|
||||
rsid = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), L"%08X");
|
||||
}
|
||||
break;
|
||||
case sprmCFData:
|
||||
@ -148,7 +180,7 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx,
|
||||
int lcb = reader.ReadUInt32();
|
||||
int cbHeader = reader.ReadUInt16();
|
||||
|
||||
if (cbHeader != 0x44) return;
|
||||
if (cbHeader != 0x44) return;
|
||||
|
||||
//ignored
|
||||
reader.ReadBytes(62, false);
|
||||
|
||||
@ -60,20 +60,83 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:ffData");
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:name", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzName);
|
||||
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 );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:textInput");
|
||||
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");
|
||||
|
||||
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 );
|
||||
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->WriteNodeEnd( L"w:textInput" );
|
||||
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" );
|
||||
}
|
||||
|
||||
@ -76,7 +76,6 @@ namespace DocFileFormat
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
|
||||
@ -122,7 +122,8 @@ namespace DocFileFormat
|
||||
fNumber1 == val.fNumber1 &&
|
||||
fNumberAcross == val.fNumberAcross &&
|
||||
fRestartHdn == val.fRestartHdn &&
|
||||
fSpareX == val.fSpareX;
|
||||
fSpareX == val.fSpareX &&
|
||||
xst == val.xst;
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -158,7 +159,8 @@ namespace DocFileFormat
|
||||
fNumber1 == val->fNumber1 &&
|
||||
fNumberAcross == val->fNumberAcross &&
|
||||
fRestartHdn == val->fRestartHdn &&
|
||||
fSpareX == val->fSpareX;
|
||||
fSpareX == val->fSpareX &&
|
||||
xst == val->xst;
|
||||
|
||||
return res;
|
||||
|
||||
|
||||
@ -129,6 +129,7 @@ namespace DocFileFormat
|
||||
std::wstring xst; //32 chars ansi
|
||||
|
||||
public:
|
||||
std::wstring rPr;
|
||||
|
||||
bool operator == (const NumberingDescriptor & val) const;
|
||||
bool operator == (const NumberingDescriptorPtr & val) const;
|
||||
|
||||
@ -72,16 +72,17 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
size_t ListTable::appendNumbering( NumberingDescriptorPtr &desc )
|
||||
size_t ListTable::appendNumbering( NumberingDescriptorPtr &desc, const std::wstring & rPr )
|
||||
{
|
||||
for (size_t i = 0; i < listNumbering.size(); ++i)
|
||||
{
|
||||
if (listNumbering[i]->operator==(desc))
|
||||
if (listNumbering[i]->operator == (desc))
|
||||
{
|
||||
return listNumbering[i]->id;
|
||||
}
|
||||
}
|
||||
desc->id = listData.size() + listNumbering.size()/* + 1*/;
|
||||
desc->rPr = rPr;
|
||||
desc->id = listData.size() + listNumbering.size() + 1; // 23.doc
|
||||
listNumbering.push_back(desc);
|
||||
return desc->id;
|
||||
}
|
||||
|
||||
@ -47,6 +47,6 @@ namespace DocFileFormat
|
||||
virtual ~ListTable();
|
||||
ListTable( FileInformationBlock* fib, POLE::Stream* tableStream );
|
||||
|
||||
size_t appendNumbering( NumberingDescriptorPtr &desc );
|
||||
size_t appendNumbering( NumberingDescriptorPtr &desc, const std::wstring & rPr );
|
||||
};
|
||||
}
|
||||
@ -31,7 +31,6 @@
|
||||
*/
|
||||
|
||||
#include "MainDocumentMapping.h"
|
||||
#include "OfficeDrawing/FillStyleBooleanProperties.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
@ -85,13 +84,13 @@ namespace DocFileFormat
|
||||
if ((m_document->GetOfficeArt()) && (m_document->GetOfficeArt()->GetShapeBackgound()))
|
||||
{
|
||||
bool bFilled = true;
|
||||
m_document->DocProperties->bDisplayBackgroundShape = true;
|
||||
ShapeContainer* pShape = m_document->GetOfficeArt()->GetShapeBackgound();
|
||||
|
||||
OptionEntryPtr boolFill = pShape->ExtractOption(fillStyleBooleanProperties);
|
||||
ODRAW::OfficeArtFOPTEPtr boolFill = pShape->ExtractOption(ODRAW::fillStyleBooleanProperties);
|
||||
|
||||
FillStyleBooleanProperties booleans(boolFill ? boolFill->op : 0);
|
||||
if (booleans.fUsefFilled && !booleans.fFilled)
|
||||
ODRAW::FillStyleBooleanProperties* booleans = dynamic_cast<ODRAW::FillStyleBooleanProperties*>(boolFill.get());
|
||||
|
||||
if (booleans && (booleans->fUsefFilled && !booleans->fFilled))
|
||||
{
|
||||
bFilled = false;
|
||||
}
|
||||
@ -142,7 +141,6 @@ namespace DocFileFormat
|
||||
{
|
||||
int cpStart = cp;
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert(this);
|
||||
cp = table.GetCPEnd();
|
||||
|
||||
@ -80,7 +80,7 @@ public:
|
||||
}
|
||||
void WriteUInt16(unsigned short val)
|
||||
{
|
||||
if (m_Data)
|
||||
if (m_Data && (m_Position + sizeof(unsigned short) <= m_Size))
|
||||
{
|
||||
((unsigned short *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(unsigned short);
|
||||
@ -113,7 +113,7 @@ public:
|
||||
}
|
||||
void WriteInt32(_INT32 val)
|
||||
{
|
||||
if (m_Data)
|
||||
if (m_Data && (m_Position + sizeof(_INT32) <= m_Size))
|
||||
{
|
||||
((_INT32 *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(_INT32);
|
||||
@ -133,7 +133,7 @@ public:
|
||||
}
|
||||
void WriteByte(unsigned char val)
|
||||
{
|
||||
if (m_Data)
|
||||
if (m_Data && (m_Position + 1 <= m_Size))
|
||||
{
|
||||
m_Data[m_Position] = val;
|
||||
m_Position += 1;
|
||||
@ -141,7 +141,7 @@ public:
|
||||
}
|
||||
void WriteUInt32(_UINT32 val)
|
||||
{
|
||||
if (m_Data)
|
||||
if (m_Data && (m_Position + sizeof(_UINT32) <= m_Size))
|
||||
{
|
||||
((_UINT32 *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(_UINT32);
|
||||
@ -162,35 +162,23 @@ public:
|
||||
|
||||
virtual unsigned char* ReadBytes (unsigned int count, bool isResultNeeded)
|
||||
{
|
||||
unsigned char* pBytes = NULL;
|
||||
if (!m_Data) return NULL;
|
||||
|
||||
unsigned int size = 0;
|
||||
unsigned int size = ( count <= (m_Size - m_Position) ) ? (count) : (m_Size - m_Position);
|
||||
|
||||
size = ( count <= (m_Size - m_Position) ) ? (count) : (m_Size - m_Position);
|
||||
unsigned char* pBytes = (isResultNeeded && count > 0) ? new unsigned char[count] : NULL;
|
||||
|
||||
if ( ( m_Data != NULL ) && ( size != 0 ) )
|
||||
if (pBytes)
|
||||
{
|
||||
pBytes = new unsigned char[size];
|
||||
|
||||
if (pBytes)
|
||||
{
|
||||
memcpy(pBytes, (m_Data + m_Position), size);
|
||||
m_Position += sizeof(unsigned char)*size;
|
||||
|
||||
//------------------------------------------------------------------------------------------------------
|
||||
|
||||
if ( !isResultNeeded )
|
||||
{
|
||||
RELEASEARRAYOBJECTS (pBytes);
|
||||
}
|
||||
}
|
||||
memcpy(pBytes, (m_Data + m_Position), size);
|
||||
}
|
||||
m_Position += size;
|
||||
|
||||
return pBytes;
|
||||
}
|
||||
void WriteBytes(unsigned char* pData, int size)
|
||||
{
|
||||
if (m_Data)
|
||||
if (m_Data && (m_Position + size <= m_Size))
|
||||
{
|
||||
memcpy(m_Data + m_Position, pData, size);
|
||||
m_Position += size;
|
||||
@ -217,7 +205,7 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
unsigned char* m_Data;
|
||||
unsigned char* m_Data;
|
||||
unsigned long m_Size;
|
||||
unsigned long m_Position;
|
||||
bool bMemoryCopy;
|
||||
|
||||
@ -92,12 +92,12 @@ namespace DocFileFormat
|
||||
{
|
||||
//start abstractNum
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:abstractNum", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:abstractNumId", FormatUtils::IntToWideString( i /*+ 1 */));
|
||||
m_pXmlWriter->WriteAttribute( L"w:abstractNumId", FormatUtils::SizeTToWideString( i /*+ 1 */));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
//nsid
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:nsid", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( rglst->listData[i]->lsid, L"%08x" ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( rglst->listData[i]->lsid, L"%08X" ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE );
|
||||
|
||||
//multiLevelType
|
||||
@ -120,7 +120,7 @@ namespace DocFileFormat
|
||||
|
||||
//template
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:tmpl", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( rglst->listData[i]->tplc, L"%08x"));
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::IntToFormattedWideString( rglst->listData[i]->tplc, L"%08X"));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE );
|
||||
|
||||
// writes the levels
|
||||
@ -140,7 +140,7 @@ namespace DocFileFormat
|
||||
{
|
||||
//start abstractNum
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:abstractNum", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:abstractNumId", FormatUtils::IntToWideString( rglst->listNumbering[i]->id ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:abstractNumId", FormatUtils::SizeTToWideString( rglst->listNumbering[i]->id ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
////nsid
|
||||
@ -169,7 +169,7 @@ namespace DocFileFormat
|
||||
|
||||
//start num
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:num", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:numId", FormatUtils::IntToWideString(i + 1));
|
||||
m_pXmlWriter->WriteAttribute( L"w:numId", FormatUtils::SizeTToWideString(i + 1));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
int index = FindIndexbyId( rglst->listData, lfo->lsid );
|
||||
@ -205,12 +205,12 @@ namespace DocFileFormat
|
||||
for (size_t i = 0; i < rglst->listNumbering.size(); ++i)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:num", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:numId", FormatUtils::IntToWideString(rglst->listNumbering[i]->id));
|
||||
m_pXmlWriter->WriteAttribute( L"w:numId", FormatUtils::SizeTToWideString(rglst->listNumbering[i]->id));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:abstractNumId", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::IntToWideString( rglst->listNumbering[i]->id ));
|
||||
m_pXmlWriter->WriteAttribute( L"w:val", FormatUtils::SizeTToWideString( rglst->listNumbering[i]->id ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:num");
|
||||
@ -285,7 +285,7 @@ namespace DocFileFormat
|
||||
newResult = find_if((result + 1), lvl->xst.end(), &NumberingMapping::IsPlaceholder);
|
||||
|
||||
ret += L"%";
|
||||
ret += FormatUtils::IntToWideString(*result + 1);
|
||||
ret += FormatUtils::SizeTToWideString(*result + 1);
|
||||
ret += std::wstring((result + 1), newResult);
|
||||
result = newResult;
|
||||
}
|
||||
@ -540,17 +540,24 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:pPr");
|
||||
|
||||
// rPr
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:rPr", FALSE );
|
||||
|
||||
if (!fontFamily.empty())
|
||||
if (false == lvl->rPr.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:rFonts", TRUE );
|
||||
// w:hint="default"
|
||||
m_pXmlWriter->WriteAttribute(L"w:hAnsi",fontFamily);
|
||||
m_pXmlWriter->WriteAttribute(L"w:ascii",fontFamily);
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE );
|
||||
m_pXmlWriter->WriteString( lvl->rPr );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:rPr", FALSE );
|
||||
|
||||
if (!fontFamily.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:rFonts", TRUE );
|
||||
// w:hint="default"
|
||||
m_pXmlWriter->WriteAttribute(L"w:hAnsi", fontFamily);
|
||||
m_pXmlWriter->WriteAttribute(L"w:ascii", fontFamily);
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE );
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:rPr");
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:rPr");
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:lvl");
|
||||
}
|
||||
@ -702,7 +709,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
if (isPictureBullet)
|
||||
if (isPictureBullet && false == m_document->PictureBulletsCPsMap.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:lvlPicBulletId",TRUE);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val",FormatUtils::IntToWideString(index));
|
||||
|
||||
@ -89,7 +89,7 @@ namespace DocFileFormat
|
||||
GroupContainer* group = static_cast<GroupContainer*>(groupChild);
|
||||
if (group)
|
||||
{
|
||||
group->Index = i;
|
||||
group->Index = (int)i;
|
||||
}
|
||||
}
|
||||
else if (ShapeContainer::TYPE_CODE_0xF004 == groupChild->TypeCode)
|
||||
|
||||
@ -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
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
// 2.3.7.43 Fill Style Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class FillStyleBooleanProperties
|
||||
{
|
||||
public:
|
||||
FillStyleBooleanProperties(unsigned int op)
|
||||
{
|
||||
fNoFillHitTest = FormatUtils::BitmaskToBool(op, 0x1);
|
||||
fillUseRect = FormatUtils::BitmaskToBool(op, 0x1 << 1);
|
||||
fillShape = FormatUtils::BitmaskToBool(op, 0x1 << 2);
|
||||
fHitTestFill = FormatUtils::BitmaskToBool(op, 0x1 << 3);
|
||||
fFilled = FormatUtils::BitmaskToBool(op, 0x1 << 4);
|
||||
fUseShapeAnchor = FormatUtils::BitmaskToBool(op, 0x1 << 5);
|
||||
fRecolorFillAsPicture = FormatUtils::BitmaskToBool(op, 0x1 << 6);
|
||||
|
||||
// 0x1 << 7-15 is ununsed
|
||||
|
||||
fUsefNoFillHitTest = FormatUtils::BitmaskToBool(op, 0x1 << 16);
|
||||
fUsefillUseRect = FormatUtils::BitmaskToBool(op, 0x1 << 17);
|
||||
fUsefillShape = FormatUtils::BitmaskToBool(op, 0x1 << 18);
|
||||
fUseHitTestFill = FormatUtils::BitmaskToBool(op, 0x1 << 19);
|
||||
fUsefFilled = FormatUtils::BitmaskToBool(op, 0x1 << 20);
|
||||
fUsefUseShapeAnchor = FormatUtils::BitmaskToBool(op, 0x1 << 21);
|
||||
fUsefRecolorFillAsPicture = FormatUtils::BitmaskToBool(op, 0x1 << 22);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool fNoFillHitTest;
|
||||
bool fillUseRect;
|
||||
bool fillShape;
|
||||
bool fHitTestFill;
|
||||
bool fFilled;
|
||||
bool fUseShapeAnchor;
|
||||
bool fRecolorFillAsPicture;
|
||||
bool fUsefNoFillHitTest;
|
||||
bool fUsefillUseRect;
|
||||
bool fUsefillShape;
|
||||
bool fUseHitTestFill;
|
||||
bool fUsefFilled;
|
||||
bool fUsefUseShapeAnchor;
|
||||
bool fUsefRecolorFillAsPicture;
|
||||
|
||||
};
|
||||
}
|
||||
@ -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
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
// 2.3.6.31 Geometry Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class GeometryBooleanProperties
|
||||
{
|
||||
public:
|
||||
|
||||
GeometryBooleanProperties(unsigned int op)
|
||||
{
|
||||
fUsefShadowOK = GETBIT(op, 8);
|
||||
fUsef3DOK = GETBIT(op, 9);
|
||||
fUsefLineOK = GETBIT(op, 10);
|
||||
fUsefGtextOK = GETBIT(op, 11);
|
||||
fUsefFillShadeShapeOK = GETBIT(op, 12);
|
||||
fUsefFillOK = GETBIT(op, 13);
|
||||
|
||||
fShadowOK = GETBIT(op, 22);
|
||||
f3DOK = GETBIT(op, 23);
|
||||
fLineOK = GETBIT(op, 24);
|
||||
fGtextOK = GETBIT(op, 25);
|
||||
fFillShadeShapeOK = GETBIT(op, 26);
|
||||
fFillOK = GETBIT(op, 27);
|
||||
}
|
||||
bool fFillOK;
|
||||
bool fFillShadeShapeOK;
|
||||
bool fGtextOK;
|
||||
bool fLineOK;
|
||||
bool f3DOK;
|
||||
bool fShadowOK;
|
||||
|
||||
bool fUsefFillOK;
|
||||
bool fUsefFillShadeShapeOK;
|
||||
bool fUsefGtextOK;
|
||||
bool fUsefLineOK;
|
||||
bool fUsef3DOK;
|
||||
bool fUsefShadowOK;
|
||||
};
|
||||
}
|
||||
@ -1,114 +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.6.31 Geometry Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class GeometryTextBooleanProperties
|
||||
{
|
||||
public:
|
||||
GeometryTextBooleanProperties(unsigned int op)
|
||||
{
|
||||
gtextFStrikethrough = FormatUtils::BitmaskToBool(op, 0x1);
|
||||
gtextFSmallcaps = FormatUtils::BitmaskToBool(op, 0x1 << 1);
|
||||
gtextFShadow = FormatUtils::BitmaskToBool(op, 0x1 << 2);
|
||||
gtextFUnderline = FormatUtils::BitmaskToBool(op, 0x1 << 3);
|
||||
gtextFItalic = FormatUtils::BitmaskToBool(op, 0x1 << 4);
|
||||
gtextFBold = FormatUtils::BitmaskToBool(op, 0x1 << 5);
|
||||
gtextFDxMeasure = FormatUtils::BitmaskToBool(op, 0x1 << 6);
|
||||
gtextFNormalize = FormatUtils::BitmaskToBool(op, 0x1 << 7);
|
||||
gtextFBestFit = FormatUtils::BitmaskToBool(op, 0x1 << 8);
|
||||
gtextFShrinkFit = FormatUtils::BitmaskToBool(op, 0x1 << 9);
|
||||
gtextFStretch = FormatUtils::BitmaskToBool(op, 0x1 << 10);
|
||||
gtextFTight = FormatUtils::BitmaskToBool(op, 0x1 << 11);
|
||||
gtextFKern = FormatUtils::BitmaskToBool(op, 0x1 << 12);
|
||||
gtextFVertical = FormatUtils::BitmaskToBool(op, 0x1 << 13);
|
||||
fGtext = FormatUtils::BitmaskToBool(op, 0x1 << 14);
|
||||
gtextFReverseRows = FormatUtils::BitmaskToBool(op, 0x1 << 15);
|
||||
|
||||
fUsegtextFSStrikeThrough = FormatUtils::BitmaskToBool(op, 0x1 << 16);
|
||||
fUsegtextFSmallcaps = FormatUtils::BitmaskToBool(op, 0x1 << 17);
|
||||
fUsegtextFShadow = FormatUtils::BitmaskToBool(op, 0x1 << 18);
|
||||
fUsegtextFUnderline = FormatUtils::BitmaskToBool(op, 0x1 << 19);
|
||||
fUsegtextFItalic = FormatUtils::BitmaskToBool(op, 0x1 << 20);
|
||||
fUsegtextFBold = FormatUtils::BitmaskToBool(op, 0x1 << 21);
|
||||
fUsegtextFDxMeasure = FormatUtils::BitmaskToBool(op, 0x1 << 22);
|
||||
fUsegtextFNormalize = FormatUtils::BitmaskToBool(op, 0x1 << 23);
|
||||
fUsegtextFBestFit = FormatUtils::BitmaskToBool(op, 0x1 << 24);
|
||||
fUsegtextFShrinkFit = FormatUtils::BitmaskToBool(op, 0x1 << 25);
|
||||
fUsegtextFStretch = FormatUtils::BitmaskToBool(op, 0x1 << 26);
|
||||
fUsegtextFTight = FormatUtils::BitmaskToBool(op, 0x1 << 27);
|
||||
fUsegtextFKern = FormatUtils::BitmaskToBool(op, 0x1 << 28);
|
||||
fUsegtextFVertical = FormatUtils::BitmaskToBool(op, 0x1 << 29);
|
||||
fUsefGtext = FormatUtils::BitmaskToBool(op, 0x1 << 30);
|
||||
fUsegtextFReverseRows = FormatUtils::BitmaskToBool(op, 0x40000000);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool gtextFStrikethrough;
|
||||
bool gtextFSmallcaps;
|
||||
bool gtextFShadow;
|
||||
bool gtextFUnderline;
|
||||
bool gtextFItalic;
|
||||
bool gtextFBold;
|
||||
bool gtextFDxMeasure;
|
||||
bool gtextFNormalize;
|
||||
bool gtextFBestFit;
|
||||
bool gtextFShrinkFit;
|
||||
bool gtextFStretch;
|
||||
bool gtextFTight;
|
||||
bool gtextFKern;
|
||||
bool gtextFVertical;
|
||||
bool fGtext;
|
||||
bool gtextFReverseRows;
|
||||
|
||||
bool fUsegtextFSStrikeThrough;
|
||||
bool fUsegtextFSmallcaps;
|
||||
bool fUsegtextFShadow;
|
||||
bool fUsegtextFUnderline;
|
||||
bool fUsegtextFItalic;
|
||||
bool fUsegtextFBold;
|
||||
bool fUsegtextFDxMeasure;
|
||||
bool fUsegtextFNormalize;
|
||||
bool fUsegtextFBestFit;
|
||||
bool fUsegtextFShrinkFit;
|
||||
bool fUsegtextFStretch;
|
||||
bool fUsegtextFTight;
|
||||
bool fUsegtextFKern;
|
||||
bool fUsegtextFVertical;
|
||||
bool fUsefGtext;
|
||||
bool fUsegtextFReverseRows;
|
||||
};
|
||||
}
|
||||
@ -1,126 +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.4.44 Group Shape Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class GroupShapeBooleanProperties
|
||||
{
|
||||
public:
|
||||
GroupShapeBooleanProperties(unsigned int op)
|
||||
{
|
||||
fPrint = FormatUtils::BitmaskToBool(op, 0x1);
|
||||
fHidden = FormatUtils::BitmaskToBool(op, 0x2);
|
||||
fOneD = FormatUtils::BitmaskToBool(op, 0x4);
|
||||
fIsButton = FormatUtils::BitmaskToBool(op, 0x8);
|
||||
|
||||
fOnDblClickNotify = FormatUtils::BitmaskToBool(op, 0x10);
|
||||
fBehindDocument = FormatUtils::BitmaskToBool(op, 0x20);
|
||||
fEditedWrap = FormatUtils::BitmaskToBool(op, 0x40);
|
||||
fScriptAnchor = FormatUtils::BitmaskToBool(op, 0x80);
|
||||
|
||||
fReallyHidden = FormatUtils::BitmaskToBool(op, 0x100);
|
||||
fAllowOverlap = FormatUtils::BitmaskToBool(op, 0x200);
|
||||
fUserDrawn = FormatUtils::BitmaskToBool(op, 0x400);
|
||||
fHorizRule = FormatUtils::BitmaskToBool(op, 0x800);
|
||||
|
||||
fNoshadeHR = FormatUtils::BitmaskToBool(op, 0x1000);
|
||||
fStandardHR = FormatUtils::BitmaskToBool(op, 0x2000);
|
||||
fIsBullet = FormatUtils::BitmaskToBool(op, 0x4000);
|
||||
fLayoutInCell = FormatUtils::BitmaskToBool(op, 0x8000);
|
||||
|
||||
fUsefPrint = FormatUtils::BitmaskToBool(op, 0x10000);
|
||||
fUsefHidden = FormatUtils::BitmaskToBool(op, 0x20000);
|
||||
fUsefOneD = FormatUtils::BitmaskToBool(op, 0x40000);
|
||||
fUsefIsButton = FormatUtils::BitmaskToBool(op, 0x80000);
|
||||
|
||||
fUsefOnDblClickNotify = FormatUtils::BitmaskToBool(op, 0x100000);
|
||||
fUsefBehindDocument = FormatUtils::BitmaskToBool(op, 0x200000);
|
||||
fUsefEditedWrap = FormatUtils::BitmaskToBool(op, 0x400000);
|
||||
fUsefScriptAnchor = FormatUtils::BitmaskToBool(op, 0x800000);
|
||||
|
||||
fUsefReallyHidden = FormatUtils::BitmaskToBool(op, 0x1000000);
|
||||
fUsefAllowOverlap = FormatUtils::BitmaskToBool(op, 0x2000000);
|
||||
fUsefUserDrawn = FormatUtils::BitmaskToBool(op, 0x4000000);
|
||||
fUsefHorizRule = FormatUtils::BitmaskToBool(op, 0x8000000);
|
||||
|
||||
fUsefNoshadeHR = FormatUtils::BitmaskToBool(op, 0x10000000);
|
||||
fUsefStandardHR = FormatUtils::BitmaskToBool(op, 0x20000000);
|
||||
fUsefIsBullet = FormatUtils::BitmaskToBool(op, 0x40000000);
|
||||
fUsefLayoutInCell = FormatUtils::BitmaskToBool(op, 0x80000000);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool fPrint;
|
||||
bool fHidden;
|
||||
bool fOneD;
|
||||
bool fIsButton;
|
||||
|
||||
bool fOnDblClickNotify;
|
||||
bool fBehindDocument;
|
||||
bool fEditedWrap;
|
||||
bool fScriptAnchor;
|
||||
|
||||
bool fReallyHidden;
|
||||
bool fAllowOverlap;
|
||||
bool fUserDrawn;
|
||||
bool fHorizRule;
|
||||
|
||||
bool fNoshadeHR;
|
||||
bool fStandardHR;
|
||||
bool fIsBullet;
|
||||
bool fLayoutInCell;
|
||||
|
||||
bool fUsefPrint;
|
||||
bool fUsefHidden;
|
||||
bool fUsefOneD;
|
||||
bool fUsefIsButton;
|
||||
|
||||
bool fUsefOnDblClickNotify;
|
||||
bool fUsefBehindDocument;
|
||||
bool fUsefEditedWrap;
|
||||
bool fUsefScriptAnchor;
|
||||
|
||||
bool fUsefReallyHidden;
|
||||
bool fUsefAllowOverlap;
|
||||
bool fUsefUserDrawn;
|
||||
bool fUsefHorizRule;
|
||||
|
||||
bool fUsefNoshadeHR;
|
||||
bool fUsefStandardHR;
|
||||
bool fUsefIsBullet;
|
||||
bool fUsefLayoutInCell;
|
||||
};
|
||||
}
|
||||
@ -1,91 +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.8.38 Line Style Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class LineStyleBooleanProperties
|
||||
{
|
||||
public:
|
||||
LineStyleBooleanProperties(unsigned int op)
|
||||
{
|
||||
fNoLineDrawDash = FormatUtils::BitmaskToBool(op, 0x1);
|
||||
fLineFillShape = FormatUtils::BitmaskToBool(op, 0x2);
|
||||
fHitTestLine = FormatUtils::BitmaskToBool(op, 0x4);
|
||||
fLine = FormatUtils::BitmaskToBool(op, 0x8);
|
||||
|
||||
fArrowheadsOK = FormatUtils::BitmaskToBool(op, 0x10);
|
||||
fInsetPenOK = FormatUtils::BitmaskToBool(op, 0x20);
|
||||
fInsetPen = FormatUtils::BitmaskToBool(op, 0x40);
|
||||
|
||||
//Reserved 0x80 0x100
|
||||
|
||||
fLineOpaqueBackColor = FormatUtils::BitmaskToBool(op, 0x200);
|
||||
|
||||
//Unused 0x400 0x800 0x1000 0x2000 0x4000 0x8000
|
||||
|
||||
fUsefNoLineDrawDash = FormatUtils::BitmaskToBool(op, 0x10000);
|
||||
fUsefLineFillShape = FormatUtils::BitmaskToBool(op, 0x20000);
|
||||
fUsefHitTestLine = FormatUtils::BitmaskToBool(op, 0x40000);
|
||||
fUsefLine = FormatUtils::BitmaskToBool(op, 0x80000);
|
||||
fUsefArrowheadsOK = FormatUtils::BitmaskToBool(op, 0x100000);
|
||||
fUsefInsetPenOK = FormatUtils::BitmaskToBool(op, 0x200000);
|
||||
fUsefInsetPen = FormatUtils::BitmaskToBool(op, 0x400000);
|
||||
|
||||
//Reserved 0x800000 0x1000000
|
||||
|
||||
fUsefLineOpaqueBackColor = FormatUtils::BitmaskToBool(op, 0x2000000);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool fNoLineDrawDash;
|
||||
bool fLineFillShape;
|
||||
bool fHitTestLine;
|
||||
bool fLine;
|
||||
bool fArrowheadsOK;
|
||||
bool fInsetPenOK;
|
||||
bool fInsetPen;
|
||||
bool fLineOpaqueBackColor;
|
||||
|
||||
bool fUsefNoLineDrawDash;
|
||||
bool fUsefLineFillShape;
|
||||
bool fUsefHitTestLine;
|
||||
bool fUsefLine;
|
||||
bool fUsefArrowheadsOK;
|
||||
bool fUsefInsetPenOK;
|
||||
bool fUsefInsetPen;
|
||||
bool fUsefLineOpaqueBackColor;
|
||||
};
|
||||
}
|
||||
@ -1,280 +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 "PathSegment.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
struct _guides
|
||||
{
|
||||
unsigned char type;
|
||||
|
||||
unsigned char param_type1;
|
||||
unsigned char param_type2;
|
||||
unsigned char param_type3;
|
||||
|
||||
WORD param1;
|
||||
WORD param2;
|
||||
WORD param3;
|
||||
};
|
||||
class PathParser
|
||||
{
|
||||
public:
|
||||
|
||||
PathParser (const unsigned char* pSegmentInfo, unsigned int pSegmentInfoSize, const unsigned char* pVertices, unsigned int pVerticesSize, std::vector<_guides> & guides)
|
||||
{
|
||||
|
||||
if ((pSegmentInfo != NULL) && (pSegmentInfoSize > 0))
|
||||
{
|
||||
unsigned short nElems = FormatUtils::BytesToUInt16(pSegmentInfo, 0, pSegmentInfoSize);
|
||||
unsigned short nElemsAlloc = FormatUtils::BytesToUInt16(pSegmentInfo, 2, pSegmentInfoSize);
|
||||
unsigned short cb = FormatUtils::BytesToUInt16(pSegmentInfo, 4, pSegmentInfoSize);
|
||||
|
||||
unsigned short cbElement = 4;
|
||||
|
||||
int offset = 6;
|
||||
if (cb == 0xfff0)
|
||||
cbElement = 2;
|
||||
|
||||
if (nElems == 0)
|
||||
{
|
||||
nElems = (pSegmentInfoSize - offset) / cbElement;
|
||||
}
|
||||
for (unsigned short i = 0; i < nElems; ++i)
|
||||
{
|
||||
PathSegment oSegment = PathSegment(FormatUtils::BytesToInt32(pSegmentInfo + offset, (i * cbElement), pSegmentInfoSize - offset));
|
||||
m_arSegments.push_back (oSegment);
|
||||
}
|
||||
|
||||
if ((long)pSegmentInfoSize < (long)(cb * nElems)) // Есть несколько файлов с мусором вместо данных
|
||||
m_arSegments.clear();
|
||||
}
|
||||
|
||||
if ((NULL != pVertices) && (pVerticesSize > 0))
|
||||
{
|
||||
unsigned short nElems = FormatUtils::BytesToUInt16(pVertices, 0, pVerticesSize);
|
||||
unsigned short nElemsAlloc = FormatUtils::BytesToUInt16(pVertices, 2, pVerticesSize);
|
||||
unsigned short cb = FormatUtils::BytesToUInt16(pVertices, 4, pVerticesSize);
|
||||
|
||||
unsigned short cbElement = 4;
|
||||
|
||||
if (cb == 0xfff0)
|
||||
cbElement = 2;
|
||||
|
||||
int offset = 6;
|
||||
|
||||
for (unsigned short i = 0; i < nElems; ++i)
|
||||
{
|
||||
POINT point;
|
||||
if (cbElement == 4)
|
||||
{
|
||||
point.x = FormatUtils::BytesToInt32(pVertices + offset, 0, pVerticesSize - offset);
|
||||
point.y = FormatUtils::BytesToInt32(pVertices + offset + cbElement, 0 , pVerticesSize - offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
point.x = FormatUtils::BytesToInt16(pVertices + offset, 0, pVerticesSize - offset);
|
||||
point.y = FormatUtils::BytesToInt16(pVertices + offset + cbElement, 0 , pVerticesSize - offset);
|
||||
}
|
||||
offset += cbElement * 2;
|
||||
|
||||
LONG lMinF = (LONG)0x80000000;
|
||||
if (lMinF <= point.x)
|
||||
{
|
||||
int index = (DWORD)point.x - 0x80000000;
|
||||
if (index >= 0 && index < (int)guides.size())
|
||||
{
|
||||
point.x = guides[index].param3;
|
||||
}
|
||||
}
|
||||
if (lMinF <= point.y)
|
||||
{
|
||||
int index = (DWORD)point.y - 0x80000000;
|
||||
if (index >= 0 && index < (int)guides.size())
|
||||
{
|
||||
point.y = guides[index].param3;
|
||||
}
|
||||
}
|
||||
if ((size_t)point.y > 0xffff)
|
||||
{
|
||||
point.y &= 0xffff;
|
||||
}
|
||||
if ((size_t)point.x > 0xffff)
|
||||
{
|
||||
point.x &= 0xffff;
|
||||
}
|
||||
m_arPoints.push_back(point);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline std::wstring GetVmlPath () const
|
||||
{
|
||||
if ((0 == m_arSegments.size()) && (0 == m_arPoints.size()))
|
||||
return std::wstring(L"");
|
||||
|
||||
std::wstring strVmlPath;
|
||||
int valuePointer = 0;
|
||||
|
||||
if (0 == m_arSegments.size())
|
||||
{
|
||||
for (size_t i = 0; i < m_arPoints.size(); ++i)
|
||||
{
|
||||
strVmlPath += L"l";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[i].x);
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[i].y);
|
||||
|
||||
++valuePointer;
|
||||
}
|
||||
|
||||
strVmlPath += L"xe";
|
||||
|
||||
return strVmlPath;
|
||||
}
|
||||
|
||||
int cc = 0;
|
||||
std::vector<PathSegment>::const_iterator end = m_arSegments.end();
|
||||
for (std::vector<PathSegment>::const_iterator iter = m_arSegments.begin(); iter != end; ++iter, cc++)
|
||||
{
|
||||
switch (iter->Type)
|
||||
{
|
||||
case PathSegment::msopathLineTo:
|
||||
{
|
||||
for (int i = 0; i < iter->Count; ++i)
|
||||
{
|
||||
if (valuePointer + 1 > (int)m_arPoints.size())
|
||||
{
|
||||
break;
|
||||
|
||||
strVmlPath += L"l";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[0].x);
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[0].y);
|
||||
|
||||
++valuePointer;
|
||||
|
||||
//break;
|
||||
}
|
||||
else
|
||||
{
|
||||
strVmlPath += L"l";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].x );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].y );
|
||||
|
||||
++valuePointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PathSegment::msopathCurveTo:
|
||||
{
|
||||
for (int i = 0; i < iter->Count; ++i)
|
||||
{
|
||||
if (valuePointer + 3 > (int)m_arPoints.size())
|
||||
break;
|
||||
strVmlPath += L"c";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].x );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].y );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer + 1].x );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer + 1].y );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer + 2].x );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer + 2].y );
|
||||
valuePointer += 3;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PathSegment::msopathMoveTo:
|
||||
{
|
||||
if (valuePointer < (int)m_arPoints.size())
|
||||
{
|
||||
strVmlPath += L"m";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].x );
|
||||
strVmlPath += L",";
|
||||
strVmlPath += FormatUtils::IntToWideString(m_arPoints[valuePointer].y );
|
||||
|
||||
++valuePointer;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PathSegment::msopathClose:
|
||||
{
|
||||
strVmlPath += L"x";
|
||||
}
|
||||
break;
|
||||
|
||||
case PathSegment::msopathEnd:
|
||||
{
|
||||
strVmlPath += L"e";
|
||||
}
|
||||
break;
|
||||
|
||||
case PathSegment::msopathEscape:
|
||||
{
|
||||
if (PathSegment::msopathEscapeNoFill == iter->EscapeCode)
|
||||
strVmlPath += L"nf";
|
||||
|
||||
if (PathSegment::msopathEscapeNoLine == iter->EscapeCode)
|
||||
strVmlPath += L"ns";
|
||||
}
|
||||
case PathSegment::msopathClientEscape:
|
||||
case PathSegment::msopathInvalid:
|
||||
{
|
||||
//ignore escape segments and invalid segments
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// end the path
|
||||
if ( !strVmlPath.empty() && ( strVmlPath[strVmlPath.size() - 1] != L'e' ) )
|
||||
strVmlPath +=L"e";
|
||||
|
||||
return strVmlPath;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
std::vector<POINT> m_arPoints;
|
||||
std::vector<PathSegment> m_arSegments;
|
||||
};
|
||||
}
|
||||
@ -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
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class PathSegment
|
||||
{
|
||||
public:
|
||||
|
||||
enum MSOPATHTYPE
|
||||
{
|
||||
msopathLineTo,
|
||||
msopathCurveTo,
|
||||
msopathMoveTo,
|
||||
msopathClose,
|
||||
msopathEnd,
|
||||
msopathEscape,
|
||||
msopathClientEscape,
|
||||
msopathInvalid
|
||||
};
|
||||
|
||||
enum MSOPATHESCAPE
|
||||
{
|
||||
msopathEscapeExtension = 0x00000000,
|
||||
msopathEscapeAngleEllipseTo = 0x00000001,
|
||||
msopathEscapeAngleEllipse = 0x00000002,
|
||||
msopathEscapeArcTo = 0x00000003,
|
||||
msopathEscapeArc = 0x00000004,
|
||||
msopathEscapeClockwiseArcTo = 0x00000005,
|
||||
msopathEscapeClockwiseArc = 0x00000006,
|
||||
msopathEscapeEllipticalQuadrantX = 0x00000007,
|
||||
msopathEscapeEllipticalQuadrantY = 0x00000008,
|
||||
msopathEscapeQuadraticBezier = 0x00000009,
|
||||
msopathEscapeNoFill = 0x0000000A,
|
||||
msopathEscapeNoLine = 0x0000000B,
|
||||
msopathEscapeAutoLine = 0x0000000C,
|
||||
msopathEscapeAutoCurve = 0x0000000D,
|
||||
msopathEscapeCornerLine = 0x0000000E,
|
||||
msopathEscapeCornerCurve = 0x0000000F,
|
||||
msopathEscapeSmoothLine = 0x00000010,
|
||||
msopathEscapeSmoothCurve = 0x00000011,
|
||||
msopathEscapeSymmetricLine = 0x00000012,
|
||||
msopathEscapeSymmetricCurve = 0x00000013,
|
||||
msopathEscapeFreeform = 0x00000014,
|
||||
msopathEscapeFillColor = 0x00000015,
|
||||
msopathEscapeLineColor = 0x00000016
|
||||
};
|
||||
|
||||
PathSegment (unsigned short segment): Type(msopathInvalid), Count(0), EscapeCode(msopathEscapeExtension), VertexCount(0)
|
||||
{
|
||||
Type = (MSOPATHTYPE)FormatUtils::BitmaskToInt (segment, 0xE000);
|
||||
|
||||
if (msopathEscape == Type)
|
||||
{
|
||||
EscapeCode = (MSOPATHESCAPE)FormatUtils::BitmaskToInt (segment, 0x1F00);
|
||||
VertexCount = FormatUtils::BitmaskToInt (segment, 0x00FF);
|
||||
}
|
||||
else
|
||||
{
|
||||
Count = FormatUtils::BitmaskToInt (segment, 0x1FFF);
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
MSOPATHTYPE Type;
|
||||
int Count;
|
||||
int VertexCount;
|
||||
MSOPATHESCAPE EscapeCode;
|
||||
};
|
||||
}
|
||||
@ -1,97 +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
|
||||
{
|
||||
// 2.3.20.1 Protection Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class ProtectionBooleanProperties
|
||||
{
|
||||
public:
|
||||
ProtectionBooleanProperties(unsigned int op)
|
||||
{
|
||||
fLockAgainstGrouping = FormatUtils::BitmaskToBool(op,0x1);
|
||||
fLockAdjustHandles = FormatUtils::BitmaskToBool(op,0x2);
|
||||
fLockText = FormatUtils::BitmaskToBool(op,0x4);
|
||||
fLockVertices = FormatUtils::BitmaskToBool(op,0x8);
|
||||
|
||||
fLockCropping = FormatUtils::BitmaskToBool(op,0x10);
|
||||
fLockAgainstSelect = FormatUtils::BitmaskToBool(op,0x20);
|
||||
fLockPosition = FormatUtils::BitmaskToBool(op,0x30);
|
||||
fLockAspectRatio = FormatUtils::BitmaskToBool(op,0x40);
|
||||
|
||||
fLockRotation = FormatUtils::BitmaskToBool(op,0x100);
|
||||
fLockAgainstUngrouping = FormatUtils::BitmaskToBool(op,0x200);
|
||||
|
||||
//unused 0x400 0x800 0x1000 0x2000 0x4000 0x8000
|
||||
|
||||
fUsefLockAgainstGrouping = FormatUtils::BitmaskToBool(op,0x10000);
|
||||
fUsefLockAdjustHandles = FormatUtils::BitmaskToBool(op,0x20000);
|
||||
fUsefLockText = FormatUtils::BitmaskToBool(op,0x40000);
|
||||
fUsefLockVertices = FormatUtils::BitmaskToBool(op,0x80000);
|
||||
|
||||
fUsefLockCropping = FormatUtils::BitmaskToBool(op,0x100000);
|
||||
fUsefLockAgainstSelect = FormatUtils::BitmaskToBool(op,0x200000);
|
||||
fUsefLockPosition = FormatUtils::BitmaskToBool(op,0x400000);
|
||||
fUsefLockAspectRatio = FormatUtils::BitmaskToBool(op,0x800000);
|
||||
|
||||
fUsefLockRotation = FormatUtils::BitmaskToBool(op,0x1000000);
|
||||
fUsefLockAgainstUngrouping = FormatUtils::BitmaskToBool(op,0x2000000);
|
||||
}
|
||||
|
||||
|
||||
bool fLockAgainstGrouping;
|
||||
bool fLockAdjustHandles;
|
||||
bool fLockText;
|
||||
bool fLockVertices;
|
||||
bool fLockCropping;
|
||||
bool fLockAgainstSelect;
|
||||
bool fLockPosition;
|
||||
bool fLockAspectRatio;
|
||||
bool fLockRotation;
|
||||
bool fLockAgainstUngrouping;
|
||||
|
||||
bool fUsefLockAgainstGrouping;
|
||||
bool fUsefLockAdjustHandles;
|
||||
bool fUsefLockText;
|
||||
bool fUsefLockVertices;
|
||||
bool fUsefLockCropping;
|
||||
bool fUsefLockAgainstSelect;
|
||||
bool fUsefLockPosition;
|
||||
bool fUsefLockAspectRatio;
|
||||
bool fUsefLockRotation;
|
||||
bool fUsefLockAgainstUngrouping;
|
||||
};
|
||||
}
|
||||
@ -1,58 +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.13.23 Shadow Style Boolean Properties - [MS-ODRAW] — v20130726
|
||||
|
||||
class ShadowStyleBooleanProperties
|
||||
{
|
||||
public:
|
||||
ShadowStyleBooleanProperties(unsigned int op)
|
||||
{
|
||||
fshadowObscured = FormatUtils::BitmaskToBool(op, 0x1);
|
||||
fShadow = FormatUtils::BitmaskToBool(op, 0x1 << 1);
|
||||
|
||||
fUsefshadowObscured = FormatUtils::BitmaskToBool(op, 0x1 << 16);
|
||||
fUsefShadow = FormatUtils::BitmaskToBool(op, 0x1 << 17);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool fUsefShadow;
|
||||
bool fUsefshadowObscured;
|
||||
|
||||
bool fShadow;
|
||||
bool fshadowObscured;
|
||||
};
|
||||
}
|
||||
@ -47,10 +47,11 @@ namespace DocFileFormat
|
||||
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)
|
||||
RegularContainer(), m_nIndex(0), m_nShapeType(0), m_bSkip(false), m_bBackground(false), m_bOLE(false), m_bOleInPicture(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -75,12 +76,12 @@ namespace DocFileFormat
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( std::vector<Record*>::const_iterator iter1 = this->Children.begin(); iter1 != this->Children.end(); iter1++ )
|
||||
for ( size_t j = 0; j < this->Children.size(); ++j)
|
||||
{
|
||||
ShapeOptions* sh_options = dynamic_cast<ShapeOptions*>( *iter1 );
|
||||
ShapeOptions* sh_options = dynamic_cast<ShapeOptions*>( this->Children[j] );
|
||||
if (sh_options)
|
||||
{
|
||||
if (sh_options->OptionsByID.end() != sh_options->OptionsByID.find(Pib))
|
||||
if (sh_options->OptionsByID.end() != sh_options->OptionsByID.find(ODRAW::pib))
|
||||
{
|
||||
m_nShapeType = msosptPictureFrame;
|
||||
}
|
||||
@ -101,16 +102,17 @@ namespace DocFileFormat
|
||||
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
OptionEntryPtr ExtractOption(const PropertyId & prop) const
|
||||
ODRAW::OfficeArtFOPTEPtr ExtractOption(const ODRAW::ePropertyId & prop) const
|
||||
{
|
||||
OptionEntryPtr ret;
|
||||
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<PropertyId, OptionEntryPtr>::iterator pFind = opt->OptionsByID.find(prop);
|
||||
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr>::iterator pFind = opt->OptionsByID.find(prop);
|
||||
if (pFind != opt->OptionsByID.end())
|
||||
{
|
||||
ret = pFind->second;
|
||||
@ -119,9 +121,9 @@ namespace DocFileFormat
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<OptionEntryPtr> ExtractOptions() const
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> ExtractOptions() const
|
||||
{
|
||||
std::vector<OptionEntryPtr> ret;
|
||||
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 )
|
||||
|
||||
@ -32,435 +32,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
#include "../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtRGFOPTE.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef enum _PropertyId
|
||||
{
|
||||
//Transform
|
||||
PropertyId_left=0,
|
||||
PropertyId_top=1,
|
||||
PropertyId_right=2,
|
||||
PropertyId_bottom=3,
|
||||
PropertyId_rotation=4,
|
||||
PropertyId_gvPage=5,
|
||||
PropertyId_fChangePage=61,
|
||||
PropertyId_fFlipV=62,
|
||||
PropertyId_fFlipH=63,
|
||||
|
||||
//Protection
|
||||
//fLockAgainstUngrouping=118,
|
||||
//fLockRotation=119,
|
||||
//fLockAspectRatio=120,
|
||||
//fLockPosition=121,
|
||||
//fLockAgainstSelect=122,
|
||||
//fLockCropping=123,
|
||||
//fLockVertices=124,
|
||||
//fLockText=125,
|
||||
//fLockAdjustHandles=126,
|
||||
protectionBooleans=127,
|
||||
|
||||
//Text
|
||||
lTxid=128,
|
||||
dxTextLeft=129,
|
||||
dyTextTop=130,
|
||||
dxTextRight=131,
|
||||
dyTextBottom=132,
|
||||
WrapText=133,
|
||||
scaleText=134,
|
||||
anchorText=135,
|
||||
txflTextFlow=136,
|
||||
cdirFont=137,
|
||||
hspNext=138,
|
||||
txdir=139,
|
||||
ccol=140,
|
||||
dzColMargin=141,
|
||||
|
||||
textBooleanProperties=191,
|
||||
|
||||
//GeoText
|
||||
gtextUNICODE=192,
|
||||
gtextRTF=193,
|
||||
gtextAlign=194,
|
||||
gtextSize=195,
|
||||
gtextSpacing=196,
|
||||
gtextFont=197,
|
||||
gtextCSSFont=198,
|
||||
//gtextFReverseRows=240,
|
||||
//fGtext=241,
|
||||
//gtextFVertical=242,
|
||||
//gtextFKern=243,
|
||||
//gtextFTight=244,
|
||||
//gtextFStretch=245,
|
||||
//gtextFShrinkFit=246,
|
||||
//gtextFBestFit=247,
|
||||
//gtextFNormalize=248,
|
||||
//gtextFDxMeasure=249,
|
||||
//gtextFBold=250,
|
||||
//gtextFItalic=251,
|
||||
//gtextFUnderline=252,
|
||||
//gtextFShadow=253,
|
||||
//gtextFSmallcaps=254,
|
||||
geometryTextBooleanProperties=255,
|
||||
|
||||
//BLIP
|
||||
cropFromTop=256,
|
||||
cropFromBottom=257,
|
||||
cropFromLeft=258,
|
||||
cropFromRight=259,
|
||||
Pib=260,
|
||||
pibName=261,
|
||||
pibFlags=262,
|
||||
pictureTransparent=263,
|
||||
pictureContrast=264,
|
||||
pictureBrightness=265,
|
||||
pictureGamma=266,
|
||||
pictureId=267,
|
||||
pictureDblCrMod=268,
|
||||
pictureFillCrMod=269,
|
||||
pictureLineCrMod=270,
|
||||
pibPrint=271,
|
||||
pibPrintName=272,
|
||||
pibPrintFlags=273,
|
||||
movie=274,
|
||||
pictureRecolor=282,
|
||||
picturePreserveGrays=313,
|
||||
|
||||
blipBooleanProperties=319,
|
||||
|
||||
//Geometry
|
||||
geoLeft=320,
|
||||
geoTop=321,
|
||||
geoRight=322,
|
||||
geoBottom=323,
|
||||
shapePath=324,
|
||||
pVertices=325,
|
||||
pSegmentInfo=326,
|
||||
adjustValue=327,
|
||||
adjust2Value=328,
|
||||
adjust3Value=329,
|
||||
adjust4Value=330,
|
||||
adjust5Value=331,
|
||||
adjust6Value=332,
|
||||
adjust7Value=333,
|
||||
adjust8Value=334,
|
||||
adjust9Value=335,
|
||||
adjust10Value=336,
|
||||
pConnectionSites=337,
|
||||
pConnectionSitesDir=338,
|
||||
xLimo=339,
|
||||
yLimo=340,
|
||||
pAdjustHandles=341,
|
||||
pGuides=342,
|
||||
pInscribe=343,
|
||||
cxk=344,
|
||||
pFragments=345,
|
||||
|
||||
geometryBooleans=383,
|
||||
|
||||
//Fill Style
|
||||
fillType=384,
|
||||
fillColor=385,
|
||||
fillOpacity=386,
|
||||
fillBackColor=387,
|
||||
fillBackOpacity=388,
|
||||
fillCrMod=389,
|
||||
fillBlip=390,
|
||||
fillBlipName=391,
|
||||
fillBlipFlags=392,
|
||||
fillWidth=393,
|
||||
fillHeight=394,
|
||||
fillAngle=395,
|
||||
fillFocus=396,
|
||||
fillToLeft=397,
|
||||
fillToTop=398,
|
||||
fillToRight=399,
|
||||
fillToBottom=400,
|
||||
fillRectLeft=401,
|
||||
fillRectTop=402,
|
||||
fillRectRight=403,
|
||||
fillRectBottom=404,
|
||||
fillDztype=405,
|
||||
fillShadePreset=406,
|
||||
fillShadeColors=407,
|
||||
fillOriginX=408,
|
||||
fillOriginY=409,
|
||||
fillShapeOriginX=410,
|
||||
fillShapeOriginY=411,
|
||||
fillShadeType=412,
|
||||
|
||||
fillColorExt=414,
|
||||
fillColorExtMod=416,
|
||||
fillBackColorExt=418,
|
||||
fillBackColorExtMod=420,
|
||||
|
||||
fillStyleBooleanProperties=447,
|
||||
|
||||
//Line Style
|
||||
lineColor=448,
|
||||
lineOpacity=449,
|
||||
lineBackColor=450,
|
||||
lineCrMod=451,
|
||||
lineType=452,
|
||||
lineFillBlip=453,
|
||||
lineFillBlipName=454,
|
||||
lineFillBlipFlags=455,
|
||||
lineFillWidth=456,
|
||||
lineFillHeight=457,
|
||||
lineFillDztype=458,
|
||||
lineWidth=459,
|
||||
lineMiterLimit=460,
|
||||
lineStyle=461,
|
||||
lineDashing=462,
|
||||
lineDashStyle=463,
|
||||
lineStartArrowhead=464,
|
||||
lineEndArrowhead=465,
|
||||
lineStartArrowWidth=466,
|
||||
lineStartArrowLength=467,
|
||||
lineEndArrowWidth=468,
|
||||
lineEndArrowLength=469,
|
||||
lineJoinStyle=470,
|
||||
lineEndCapStyle=471,
|
||||
|
||||
lineStyleBooleans=511,
|
||||
|
||||
//Shadow Style
|
||||
shadowType=512,
|
||||
shadowColor=513,
|
||||
shadowHighlight=514,
|
||||
shadowCrMod=515,
|
||||
shadowOpacity=516,
|
||||
shadowOffsetX=517,
|
||||
shadowOffsetY=518,
|
||||
shadowSecondOffsetX=519,
|
||||
shadowSecondOffsetY=520,
|
||||
shadowScaleXToX=521,
|
||||
shadowScaleYToX=522,
|
||||
shadowScaleXToY=523,
|
||||
shadowScaleYToY=524,
|
||||
shadowPerspectiveX=525,
|
||||
shadowPerspectiveY=526,
|
||||
shadowWeight=527,
|
||||
shadowOriginX=528,
|
||||
shadowOriginY=529,
|
||||
|
||||
shadowStyleBooleanProperties=575,
|
||||
|
||||
//Perspective Style
|
||||
perspectiveType=576,
|
||||
perspectiveOffsetX=577,
|
||||
perspectiveOffsetY=578,
|
||||
perspectiveScaleXToX=579,
|
||||
perspectiveScaleYToX=580,
|
||||
perspectiveScaleXToY=581,
|
||||
perspectiveScaleYToY=582,
|
||||
perspectivePerspectiveX=583,
|
||||
perspectivePerspectiveY=584,
|
||||
perspectiveWeight=585,
|
||||
perspectiveOriginX=586,
|
||||
perspectiveOriginY=587,
|
||||
|
||||
perspectiveStyleBooleanProperties=639,
|
||||
|
||||
//3D Object
|
||||
c3DSpecularAmt=640,
|
||||
c3DDiffuseAmt=641,
|
||||
c3DShininess=642,
|
||||
c3DEdgeThickness=643,
|
||||
C3DExtrudeForward=644,
|
||||
c3DExtrudeBackward=645,
|
||||
c3DExtrudePlane=646,
|
||||
c3DExtrusionColor=647,
|
||||
c3DCrMod=648,
|
||||
|
||||
threeDObjectBooleanProperties=703,
|
||||
|
||||
//3D Style
|
||||
c3DYRotationAngle=704,
|
||||
c3DXRotationAngle=705,
|
||||
c3DRotationAxisX=706,
|
||||
c3DRotationAxisY=707,
|
||||
c3DRotationAxisZ=708,
|
||||
c3DRotationAngle=709,
|
||||
c3DRotationCenterX=710,
|
||||
c3DRotationCenterY=711,
|
||||
c3DRotationCenterZ=712,
|
||||
c3DRenderMode=713,
|
||||
c3DTolerance=714,
|
||||
c3DXViewpoint=715,
|
||||
c3DYViewpoint=716,
|
||||
c3DZViewpoint=717,
|
||||
c3DOriginX=718,
|
||||
c3DOriginY=719,
|
||||
c3DSkewAngle=720,
|
||||
c3DSkewAmount=721,
|
||||
c3DAmbientIntensity=722,
|
||||
c3DKeyX=723,
|
||||
c3DKeyY=724,
|
||||
c3DKeyZ=725,
|
||||
c3DKeyIntensity=726,
|
||||
c3DFillX=727,
|
||||
c3DFillY=728,
|
||||
c3DFillZ=729,
|
||||
c3DFillIntensity=730,
|
||||
|
||||
threeDStyleBooleanProperties=767,
|
||||
|
||||
//Shape
|
||||
hspMaster=769,
|
||||
cxstyle=771,
|
||||
bWMode=772,
|
||||
bWModePureBW=773,
|
||||
bWModeBW=774,
|
||||
idDiscussAnchor=775,
|
||||
dgmLayout=777,
|
||||
dgmNodeKind=778,
|
||||
dgmLayoutMRU=779,
|
||||
wzEquationXML=780,
|
||||
|
||||
shapeBooleans=831,
|
||||
|
||||
//Callout
|
||||
spcot=832,
|
||||
dxyCalloutGap=833,
|
||||
spcoa=834,
|
||||
spcod=835,
|
||||
dxyCalloutDropSpecified=836,
|
||||
dxyCalloutLengthSpecified=837,
|
||||
fCallout=889,
|
||||
fCalloutAccentBar=890,
|
||||
fCalloutTextBorder=891,
|
||||
fCalloutMinusX=892,
|
||||
fCalloutMinusY=893,
|
||||
fCalloutDropAuto=894,
|
||||
fCalloutLengthSpecified=895,
|
||||
|
||||
//Groupe Shape
|
||||
wzName=896,
|
||||
wzDescription=897,
|
||||
pihlShape=898,
|
||||
pWrapPolygonVertices=899,
|
||||
dxWrapDistLeft=900,
|
||||
dyWrapDistTop=901,
|
||||
dxWrapDistRight=902,
|
||||
dyWrapDistBottom=903,
|
||||
lidRegroup=904,
|
||||
groupLeft=905,
|
||||
groupTop=906,
|
||||
groupRight=907,
|
||||
groupBottom=908,
|
||||
wzTooltip=909,
|
||||
wzScript=910,
|
||||
posh=911,
|
||||
posrelh=912,
|
||||
posv=913,
|
||||
posrelv=914,
|
||||
pctHR=915,
|
||||
alignHR=916,
|
||||
dxHeightHR=917,
|
||||
dxWidthHR=918,
|
||||
wzScriptExtAttr=919,
|
||||
scriptLang=920,
|
||||
wzScriptIdAttr=921,
|
||||
wzScriptLangAttr=922,
|
||||
borderTopColor=923,
|
||||
borderLeftColor=924,
|
||||
borderBottomColor=925,
|
||||
borderRightColor=926,
|
||||
tableProperties=927,
|
||||
tableRowProperties=928,
|
||||
scriptHtmlLocation=929,
|
||||
wzApplet=930,
|
||||
wzFrameTrgtUnused=932,
|
||||
wzWebBot=933,
|
||||
wzAppletArg=934,
|
||||
wzAccessBlob=936,
|
||||
metroBlob=937,
|
||||
dhgt=938,
|
||||
|
||||
groupShapeBooleans = 959,
|
||||
|
||||
relRotation = 964,
|
||||
|
||||
//Unknown HTML
|
||||
wzLineId=1026,
|
||||
wzFillId=1027,
|
||||
wzPictureId=1028,
|
||||
wzPathId=1029,
|
||||
wzShadowId=1030,
|
||||
wzPerspectiveId=1031,
|
||||
wzGtextId=1032,
|
||||
wzFormulaeId=1033,
|
||||
wzHandlesId=1034,
|
||||
wzCalloutId=1035,
|
||||
wzLockId=1036,
|
||||
wzTextId=1037,
|
||||
wzThreeDId=1038,
|
||||
FakeShapeType=1039,
|
||||
fFakeMaster=1086,
|
||||
|
||||
//Diagramm
|
||||
dgmt=1280,
|
||||
dgmStyle=1281,
|
||||
pRelationTbl=1284,
|
||||
dgmScaleX=1285,
|
||||
dgmScaleY=1286,
|
||||
dgmDefaultFontSize=1287,
|
||||
dgmConstrainBounds=1288,
|
||||
dgmBaseTextScale=1289,
|
||||
fBorderlessCanvas=1338,
|
||||
fNonStickyInkCanvas=1339,
|
||||
fDoFormat=1340,
|
||||
fReverse=1341,
|
||||
fDoLayout=1342,
|
||||
diagramBooleans=1343,
|
||||
|
||||
//Web Component
|
||||
webComponentWzHtml=1664,
|
||||
webComponentWzName=1665,
|
||||
webComponentWzUrl=1666,
|
||||
webComponentWzProperties=1667,
|
||||
fIsWebComponent=1727,
|
||||
|
||||
//Clip
|
||||
pVerticesClip=1728,
|
||||
pSegmentInfoClip=1729,
|
||||
shapePathClip=1730,
|
||||
fClipToWrap=1790,
|
||||
fClippedOK=1791,
|
||||
|
||||
//Ink
|
||||
pInkData=1792,
|
||||
fInkAnnotation=1852,
|
||||
fHitTestInk=1853,
|
||||
fRenderShape=1854,
|
||||
fRenderInk=1855,
|
||||
|
||||
//Signature
|
||||
wzSigSetupId=1921,
|
||||
wzSigSetupProvId=192,
|
||||
wzSigSetupSuggSigner=1923,
|
||||
wzSigSetupSuggSigner2=1924,
|
||||
wzSigSetupSuggSignerEmail=1925,
|
||||
wzSigSetupSignInst=1926,
|
||||
wzSigSetupAddlXml=1927,
|
||||
wzSigSetupProvUrl=1928,
|
||||
fSigSetupShowSignDate=1980,
|
||||
fSigSetupAllowComments=1981,
|
||||
fSigSetupSignInstSet=1982,
|
||||
fIsSignatureLine=1983,
|
||||
|
||||
//Groupe Shape 2
|
||||
pctHoriz=1984,
|
||||
pctVert=1985,
|
||||
pctHorizPos=1986,
|
||||
pctVertPos=1987,
|
||||
sizerelh=1988,
|
||||
sizerelv=1989,
|
||||
colStart=1990,
|
||||
colSpan=1991
|
||||
} PropertyId;
|
||||
|
||||
//!!!TODO: Реальные значения не соответствуют значениям из спецификации!!!
|
||||
typedef enum _PositionHorizontal
|
||||
{
|
||||
@ -526,21 +101,6 @@ namespace DocFileFormat
|
||||
LineDashing_LongDashDotDotGEL
|
||||
} LineDashing;
|
||||
|
||||
struct OptionEntry
|
||||
{
|
||||
OptionEntry() : pid(PropertyId_left), fBid(false), fComplex(false), op(0)
|
||||
{
|
||||
}
|
||||
|
||||
PropertyId pid;
|
||||
bool fBid;
|
||||
bool fComplex;
|
||||
unsigned int op;
|
||||
std::shared_ptr<unsigned char> opComplex;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<OptionEntry> OptionEntryPtr;
|
||||
|
||||
class ShapeOptions: public Record
|
||||
{
|
||||
public:
|
||||
@ -548,9 +108,9 @@ namespace DocFileFormat
|
||||
static const unsigned short TYPE_CODE_0xF121 = 0xF121;
|
||||
static const unsigned short TYPE_CODE_0xF122 = 0xF122;
|
||||
|
||||
std::vector<OptionEntryPtr> Options;
|
||||
std::map<PropertyId, OptionEntryPtr> OptionsByID;
|
||||
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> Options;
|
||||
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr> OptionsByID;
|
||||
|
||||
ShapeOptions() : Record()
|
||||
{
|
||||
}
|
||||
@ -563,41 +123,24 @@ namespace DocFileFormat
|
||||
{
|
||||
long pos = Reader->GetPosition();
|
||||
|
||||
//parse the flags and the simple values
|
||||
// parse the flags and the simple values
|
||||
for (unsigned int i = 0; i < instance; ++i)
|
||||
{
|
||||
OptionEntryPtr entry = std::shared_ptr<OptionEntry>(new OptionEntry());
|
||||
unsigned short flag = Reader->ReadUInt16();
|
||||
ODRAW::OfficeArtFOPTEPtr fopte = ODRAW::OfficeArtFOPTE::load_and_create(Reader);
|
||||
if (!fopte)continue;
|
||||
|
||||
entry->pid = (PropertyId)FormatUtils::BitmaskToInt (flag, 0x3FFF);
|
||||
entry->fBid = FormatUtils::BitmaskToBool (flag, 0x4000);
|
||||
entry->fComplex = FormatUtils::BitmaskToBool (flag, 0x8000);
|
||||
entry->op = Reader->ReadUInt32();
|
||||
|
||||
Options.push_back( entry );
|
||||
Options.push_back(fopte);
|
||||
}
|
||||
// complex load
|
||||
|
||||
//parse the complex values & sorted by pid
|
||||
for (unsigned int i = 0; i < instance; ++i)
|
||||
for(size_t i = 0; i < Options.size(); ++i)
|
||||
{
|
||||
if (Options[i]->fComplex && Options[i]->op > 0)
|
||||
{
|
||||
unsigned int size = Options[i]->op;
|
||||
|
||||
if (Options[i]->pid == 0x0145 ||
|
||||
Options[i]->pid == 0x0146 ||
|
||||
Options[i]->pid == 0x0197 ||
|
||||
Options[i]->pid == 0x0156 ||
|
||||
Options[i]->pid == 0x0155 ||
|
||||
Options[i]->pid == 0x0151 ||
|
||||
Options[i]->pid == 0x0152 ||
|
||||
Options[i]->pid == 0x0157 ||
|
||||
Options[i]->pid == 0x0158)//mso arrays
|
||||
size += 6;
|
||||
Options[i]->opComplex = std::shared_ptr<unsigned char>(Reader->ReadBytes( size, true ));
|
||||
if(Options[i]->fComplex && Options[i]->op > 0)
|
||||
{
|
||||
Options[i]->ReadComplexData(Reader);
|
||||
}
|
||||
|
||||
OptionsByID.insert(std::make_pair(Options[i]->pid, Options[i]));
|
||||
OptionsByID.insert(std::make_pair((ODRAW::ePropertyId)Options[i]->opid, Options[i]));
|
||||
}
|
||||
|
||||
Reader->Seek(( pos + size ), 0/*STREAM_SEEK_SET*/);
|
||||
|
||||
@ -31,13 +31,15 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ProtectionBooleanProperties.h"
|
||||
#include "../IVisitable.h"
|
||||
#include "../../Common/XmlTools.h"
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
|
||||
#include <list>
|
||||
|
||||
namespace ODRAW
|
||||
{
|
||||
class OfficeArtFOPTE;
|
||||
typedef boost::shared_ptr<OfficeArtFOPTE> OfficeArtFOPTEPtr;
|
||||
}
|
||||
namespace DocFileFormat
|
||||
{
|
||||
enum MSOSPT
|
||||
@ -274,9 +276,6 @@ namespace DocFileFormat
|
||||
position = pos;
|
||||
xrange = xRange;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
std::wstring position;
|
||||
std::wstring xrange;
|
||||
std::wstring switchHandle;
|
||||
@ -289,7 +288,7 @@ namespace DocFileFormat
|
||||
{
|
||||
public:
|
||||
|
||||
ShapeType (unsigned int typeCode) : Filled(true), Stroked(true), Lock(0), TypeCode(typeCode), Joins(miter), ShapeConcentricFill(false)
|
||||
ShapeType (unsigned int typeCode) : Filled(true), Stroked(true), TypeCode(typeCode), Joins(miter), ShapeConcentricFill(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -301,8 +300,7 @@ namespace DocFileFormat
|
||||
{
|
||||
return TypeCode;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
/// This string describes a sequence of commands that define the shape’s path.
|
||||
/// This string describes both the pSegmentInfo array and pVertices array in the shape’s geometry properties.
|
||||
std::wstring Path;
|
||||
@ -344,7 +342,7 @@ namespace DocFileFormat
|
||||
bool Stroked;
|
||||
/// Speicfies the locked properties of teh shape.
|
||||
/// By default nothing is locked.
|
||||
ProtectionBooleanProperties Lock;
|
||||
ODRAW::OfficeArtFOPTEPtr Lock;
|
||||
|
||||
///
|
||||
std::wstring Textpath;
|
||||
|
||||
@ -60,9 +60,9 @@ namespace DocFileFormat
|
||||
this->Filled = false;
|
||||
this->Stroked = false;
|
||||
|
||||
//pictures have a lock on the aspect ratio by default
|
||||
this->Lock.fUsefLockAspectRatio = true;
|
||||
this->Lock.fLockAspectRatio = true;
|
||||
// //pictures have a lock on the aspect ratio by default
|
||||
//this->Lock.fUsefLockAspectRatio = true;
|
||||
// this->Lock.fLockAspectRatio = true;
|
||||
}
|
||||
void SetType(unsigned int nType)
|
||||
{
|
||||
|
||||
@ -1,92 +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 ThreeDStyleBooleanProperties
|
||||
{
|
||||
public:
|
||||
ThreeDStyleBooleanProperties(unsigned int op)
|
||||
{
|
||||
fUsefc3DConstrainRotation = GETBIT(op, 0);
|
||||
fUsefc3DRotationCenterAuto = GETBIT(op, 1);
|
||||
fUsefc3DParallel = GETBIT(op, 2);
|
||||
fUsefc3DKeyHarsh = GETBIT(op, 3);
|
||||
fUsefc3DFillHarsh = GETBIT(op, 4);
|
||||
|
||||
fc3DConstrainRotation = GETBIT(op, 16);
|
||||
fc3DRotationCenterAuto = GETBIT(op, 17);
|
||||
fc3DParallel = GETBIT(op, 18);
|
||||
fc3DKeyHarsh = GETBIT(op, 19);
|
||||
fc3DFillHarsh = GETBIT(op, 20);
|
||||
}
|
||||
bool fUsefc3DConstrainRotation;
|
||||
bool fUsefc3DRotationCenterAuto;
|
||||
bool fUsefc3DParallel;
|
||||
bool fUsefc3DKeyHarsh;
|
||||
bool fUsefc3DFillHarsh;
|
||||
|
||||
bool fc3DConstrainRotation;
|
||||
bool fc3DRotationCenterAuto;
|
||||
bool fc3DParallel;
|
||||
bool fc3DKeyHarsh;
|
||||
bool fc3DFillHarsh;
|
||||
};
|
||||
class ThreeDObjectBooleanProperties
|
||||
{
|
||||
public:
|
||||
ThreeDObjectBooleanProperties(unsigned int op)
|
||||
{
|
||||
fUsef3D = GETBIT(op, 0);
|
||||
fUsefc3DMetallic = GETBIT(op, 1);
|
||||
fUsefc3DUseExtrusionColor = GETBIT(op, 2);
|
||||
fUsefc3DLightFace = GETBIT(op, 3);
|
||||
|
||||
// 12 unused
|
||||
|
||||
f3D = GETBIT(op, 16);
|
||||
fc3DMetallic = GETBIT(op, 17);
|
||||
fc3DUseExtrusionColor = GETBIT(op, 18);
|
||||
fc3DLightFace = GETBIT(op, 19);
|
||||
}
|
||||
bool fUsef3D;
|
||||
bool fUsefc3DMetallic;
|
||||
bool fUsefc3DUseExtrusionColor;
|
||||
bool fUsefc3DLightFace;
|
||||
|
||||
bool f3D;
|
||||
bool fc3DMetallic;
|
||||
bool fc3DUseExtrusionColor;
|
||||
bool fc3DLightFace;
|
||||
};
|
||||
}
|
||||
@ -359,24 +359,24 @@ namespace DocFileFormat
|
||||
|
||||
return FootnotesRelationshipsFile.RelID;
|
||||
}
|
||||
|
||||
int OpenXmlPackage::RegisterEndnotes()
|
||||
{
|
||||
return AddPart( L"word", L"endnotes.xml", WordprocessingMLContentTypes::Endnotes, OpenXmlRelationshipTypes::Endnotes );
|
||||
}
|
||||
|
||||
int OpenXmlPackage::AddEndnotesPart( const std::wstring& fileName, const std::wstring& relationshipType, const std::wstring& targetMode )
|
||||
{
|
||||
EndnotesRelationshipsFile.Relationships.push_back( Relationship( ( std::wstring( L"rId" ) + FormatUtils::IntToWideString( ++EndnotesRelationshipsFile.RelID ) ), relationshipType, fileName, targetMode ) );
|
||||
|
||||
return EndnotesRelationshipsFile.RelID;
|
||||
}
|
||||
|
||||
int OpenXmlPackage::RegisterComments()
|
||||
{
|
||||
return AddPart( L"word", L"comments.xml", WordprocessingMLContentTypes::Comments, OpenXmlRelationshipTypes::Comments );
|
||||
}
|
||||
|
||||
int OpenXmlPackage::RegisterCommentsExtended()
|
||||
{
|
||||
return AddPart( L"word", L"commentsExtended.xml", WordprocessingMLContentTypes::CommentsExtended, OpenXmlRelationshipTypes::CommentsExtended );
|
||||
}
|
||||
int OpenXmlPackage::AddCommentsPart( const std::wstring& fileName, const std::wstring& relationshipType, const std::wstring& targetMode )
|
||||
{
|
||||
CommentsRelationshipsFile.Relationships.push_back( Relationship( ( std::wstring( L"rId" ) + FormatUtils::IntToWideString( ++CommentsRelationshipsFile.RelID ) ), relationshipType, fileName, targetMode ) );
|
||||
|
||||
@ -85,19 +85,19 @@ namespace DocFileFormat
|
||||
|
||||
struct ImageFileStructure
|
||||
{
|
||||
ImageFileStructure()
|
||||
ImageFileStructure(const std::wstring& _ext, boost::shared_array<unsigned char> _data, unsigned int _size, Global::BlipType _blipType = Global::msoblipUNKNOWN) : ext(_ext), data(_data), size(_size), blipType(_blipType)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ImageFileStructure(const std::wstring& _ext, const std::vector<unsigned char>& _data, Global::BlipType _blipType = Global::msoblipUNKNOWN) : ext(_ext), data(_data), blipType(_blipType)
|
||||
ImageFileStructure(const std::wstring& _ext, unsigned char* _data, unsigned int _size, Global::BlipType _blipType = Global::msoblipUNKNOWN) : ext(_ext), size(_size), blipType(_blipType)
|
||||
{
|
||||
|
||||
data = boost::shared_array<unsigned char>(new unsigned char[size]);
|
||||
memcpy(data.get(), _data, size);
|
||||
}
|
||||
|
||||
std::wstring ext;
|
||||
std::vector<unsigned char> data;
|
||||
Global::BlipType blipType;
|
||||
std::wstring ext;
|
||||
boost::shared_array<unsigned char> data;
|
||||
unsigned int size;
|
||||
Global::BlipType blipType;
|
||||
};
|
||||
|
||||
struct OleObjectFileStructure
|
||||
@ -176,6 +176,7 @@ namespace DocFileFormat
|
||||
int RegisterFootnotes();
|
||||
int RegisterEndnotes();
|
||||
int RegisterComments();
|
||||
int RegisterCommentsExtended();
|
||||
int RegisterImage ( const IMapping* mapping, Global::BlipType blipType );
|
||||
int RegisterHyperlink ( const IMapping* mapping, const std::wstring& link);
|
||||
int RegisterOLEObject ( const IMapping* mapping, const std::wstring& objectType );
|
||||
|
||||
@ -104,32 +104,33 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//append formatting of paragraph end mark
|
||||
|
||||
XMLTools::XMLElementPtr rPr = XMLTools::XMLElementPtr(XMLTools::XMLElementPtr(new XMLTools::XMLElement( L"w:rPr" )));
|
||||
|
||||
if ( _paraEndChpx != NULL )
|
||||
{
|
||||
XMLTools::XMLElement* rPr = new XMLTools::XMLElement( L"w:rPr" );
|
||||
|
||||
//append properties
|
||||
RevisionData* rev = new RevisionData( _paraEndChpx );
|
||||
CharacterPropertiesMapping* ccMapping = new CharacterPropertiesMapping( rPr, m_document, rev, papx, false );
|
||||
CharacterPropertiesMapping* ccMapping = new CharacterPropertiesMapping( rPr.get(), m_document, rev, papx, false );
|
||||
|
||||
_paraEndChpx->Convert( ccMapping );
|
||||
|
||||
//append delete infos
|
||||
if ( rev->Type == Deleted )
|
||||
{
|
||||
XMLTools::XMLElement del( L"w:del" );
|
||||
XMLTools::XMLElement del( L"w:del" );
|
||||
rPr->AppendChild( del );
|
||||
}
|
||||
|
||||
if( rPr->GetChildCount() >0 )
|
||||
if( rPr->GetChildCount() > 0 )
|
||||
{
|
||||
_pPr->AppendChild( *rPr );
|
||||
_pPr->AppendChild( rPr );
|
||||
}
|
||||
|
||||
RELEASEOBJECT( ccMapping );
|
||||
RELEASEOBJECT( rev );
|
||||
RELEASEOBJECT( rPr );
|
||||
}
|
||||
|
||||
bool bNumPr = false;
|
||||
|
||||
std::list<SinglePropertyModifier>::iterator end = papx->grpprl->end();
|
||||
for (std::list<SinglePropertyModifier>::iterator iter = papx->grpprl->begin(); iter != end; ++iter)
|
||||
{
|
||||
@ -426,7 +427,10 @@ namespace DocFileFormat
|
||||
|
||||
if (m_document->listTable)
|
||||
{
|
||||
unsigned short numId = m_document->listTable->appendNumbering( desc );
|
||||
std::wstring sRPr;
|
||||
if (rPr->GetChildCount() > 0) sRPr = rPr->GetXMLString();
|
||||
|
||||
unsigned short numId = m_document->listTable->appendNumbering( desc, sRPr );
|
||||
appendValueElement( &numPr, L"numId", numId, true );
|
||||
}
|
||||
}break;
|
||||
@ -439,8 +443,10 @@ namespace DocFileFormat
|
||||
case sprmOldPNLvlAnm:
|
||||
{
|
||||
short level = FormatUtils::BytesToUChar( iter->Arguments, 0, iter->argumentsSize) - 1;
|
||||
if (level > 0 && level < 10)
|
||||
appendValueElement( _pPr, L"outlineLvl", level, false );
|
||||
|
||||
level = 0;
|
||||
appendValueElement( &numPr, L"ilvl", level, true );
|
||||
bNumPr = true;
|
||||
}break;
|
||||
|
||||
case sprmOldPFNoLineNumb:
|
||||
@ -456,25 +462,11 @@ namespace DocFileFormat
|
||||
case sprmPIlfo:
|
||||
{
|
||||
//Если numbering.xml пустой, то не пищем свойство
|
||||
//Todo разобраться с закоментированным кодом
|
||||
if (NULL != m_document->listTable && false == m_document->listTable->listData.empty())
|
||||
{
|
||||
unsigned short numId = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
appendValueElement( &numPr, L"numId", numId, true );
|
||||
}
|
||||
|
||||
//check if there is a ilvl reference, if not, check the count of LVLs.
|
||||
//if only one LVL exists in the referenced list, create a hard reference to that LVL
|
||||
//if (containsLvlReference(papx.grpprl) == false)
|
||||
//{
|
||||
// ListFormatOverride lfo = m_context.Doc.ListFormatOverrideTable[val];
|
||||
// int index = NumberingMapping.FindIndexbyId(m_context.Doc.ListTable, lfo.lsid);
|
||||
// ListData lst = m_context.Doc.ListTable[index];
|
||||
// if (lst.rglvl.Length == 1)
|
||||
// {
|
||||
// appendValueElement(numPr, "ilvl", "0", true);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -645,15 +637,18 @@ namespace DocFileFormat
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
//append frame properties
|
||||
|
||||
if ( numPr.GetChildCount() > 0 && ((bNumPr && m_document->nWordVersion > 0) || m_document->nWordVersion == 0))//append numPr
|
||||
{//23.doc
|
||||
_pPr->AppendChild( numPr );
|
||||
}
|
||||
|
||||
if ( _framePr->GetAttributeCount() > 0 )
|
||||
{
|
||||
_pPr->AppendChild( *_framePr );
|
||||
}
|
||||
|
||||
_isSectionPageBreak = 0;
|
||||
//append section properties
|
||||
if ( _sepx != NULL )
|
||||
{
|
||||
XMLTools::XMLElement sectPr( L"w:sectPr" );
|
||||
@ -666,40 +661,34 @@ namespace DocFileFormat
|
||||
//Vinci_Customer_Case_Study.doc
|
||||
_isSectionPageBreak = 1;
|
||||
}
|
||||
else _isSectionPageBreak = 2;
|
||||
else
|
||||
_isSectionPageBreak = 2;
|
||||
|
||||
RELEASEOBJECT( sectionPropertiesMapping );
|
||||
_pPr->AppendChild( sectPr );
|
||||
}
|
||||
|
||||
//append indent
|
||||
if ( ind.GetAttributeCount() > 0 )
|
||||
{
|
||||
_pPr->AppendChild( ind );
|
||||
}
|
||||
|
||||
if ( spacing.GetAttributeCount() > 0 )//append spacing
|
||||
if ( spacing.GetAttributeCount() > 0 )
|
||||
{
|
||||
_pPr->AppendChild( spacing );
|
||||
}
|
||||
|
||||
if ( jc ) //append justification
|
||||
if ( jc )
|
||||
{
|
||||
_pPr->AppendChild( *jc );
|
||||
RELEASEOBJECT( jc );
|
||||
}
|
||||
|
||||
if ( numPr.GetChildCount() > 0 )//append numPr
|
||||
{
|
||||
_pPr->AppendChild( numPr );
|
||||
}
|
||||
|
||||
if ( pBdr.GetChildCount() > 0 ) //append borders
|
||||
|
||||
if ( pBdr.GetChildCount() > 0 )
|
||||
{
|
||||
_pPr->AppendChild( pBdr );
|
||||
}
|
||||
|
||||
//write Properties
|
||||
if ( ( _pPr->GetChildCount() > 0 ) || ( _pPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _pPr->GetXMLString() );
|
||||
|
||||
@ -33,6 +33,8 @@
|
||||
#include "PictureDescriptor.h"
|
||||
#include "OfficeDrawing/MetafilePictBlip.h"
|
||||
|
||||
#include "../../DesktopEditor/raster/BgraFrame.h"
|
||||
|
||||
#ifndef MM_ISOTROPIC
|
||||
#define MM_ISOTROPIC 7
|
||||
#endif
|
||||
@ -41,6 +43,122 @@
|
||||
#define MM_ANISOTROPIC 8
|
||||
#endif
|
||||
|
||||
namespace ImageHelper
|
||||
{
|
||||
Global::_BlipType SaveImageToFileFromDIB(unsigned char* data, int size, std::wstring& file_name)//without ext
|
||||
{
|
||||
Global::_BlipType result = Global::msoblipERROR;
|
||||
|
||||
CBgraFrame oFrame;
|
||||
int offset = 0, biSizeImage = 0;
|
||||
|
||||
__BITMAPINFOHEADER * header = (__BITMAPINFOHEADER*)data;
|
||||
if (!header) return result;
|
||||
|
||||
result = Global::msoblipDIB;
|
||||
|
||||
if (header->biWidth > 100000 || header->biHeight > 100000 || header->biSize != 40)
|
||||
{
|
||||
__BITMAPCOREHEADER * header_core = (__BITMAPCOREHEADER *)data;
|
||||
if (header_core->bcSize != 12)
|
||||
{
|
||||
result = Global::msoblipWMF;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset = 12; //sizeof(BITMAPCOREHEADER)
|
||||
|
||||
oFrame.put_Height (header_core->bcHeight );
|
||||
oFrame.put_Width (header_core->bcWidth );
|
||||
|
||||
int sz_bitmap = header_core->bcHeight * header_core->bcWidth * header_core->bcBitCount/ 8;
|
||||
|
||||
//if (header_core->bcWidth % 2 != 0 && sz_bitmap < size - offset)
|
||||
// header_core->bcWidth++;
|
||||
///???? todooo непонятно .. в biff5 нужно флипать картинку, в biff8 не ясно ( -
|
||||
|
||||
int stride = -(size - offset) / header_core->bcHeight;
|
||||
oFrame.put_Stride (stride/*header_core->bcBitCount * header_core->bcWidth /8 */);
|
||||
|
||||
biSizeImage = size - offset;
|
||||
|
||||
if (-stride >= header_core->bcWidth && header_core->bcBitCount >=24 )
|
||||
{
|
||||
result = Global::msoblipPNG;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offset = 40; //sizeof(BITMAPINFOHEADER)
|
||||
|
||||
oFrame.put_Height (header->biHeight );
|
||||
oFrame.put_Width (header->biWidth );
|
||||
|
||||
int sz_bitmap = header->biHeight * header->biWidth * header->biBitCount/ 8;
|
||||
|
||||
//if (header->biWidth % 2 != 0 && sz_bitmap < size -offset)
|
||||
// header->biWidth++;
|
||||
|
||||
if (header->biClrUsed > 0)
|
||||
{
|
||||
oFrame.put_Palette((unsigned char*)data + offset, header->biClrUsed);
|
||||
|
||||
offset += header->biClrUsed * 4;
|
||||
}
|
||||
|
||||
int stride = -(size - offset) / header->biHeight;
|
||||
|
||||
if (-stride >= header->biWidth/* && header->biBitCount >= 24*/)
|
||||
{
|
||||
result = Global::msoblipPNG;
|
||||
}
|
||||
oFrame.put_Stride(stride);
|
||||
|
||||
biSizeImage = header->biSizeImage > 0 ? header->biSizeImage : (size - offset);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------
|
||||
|
||||
if (result == Global::msoblipPNG)
|
||||
{
|
||||
oFrame.put_Data((unsigned char*)data + offset);
|
||||
|
||||
file_name += L".png";
|
||||
if (!oFrame.SaveFile(file_name, 4/*CXIMAGE_FORMAT_PNG*/))
|
||||
{
|
||||
result = Global::msoblipDIB;
|
||||
}
|
||||
oFrame.put_Data(NULL);
|
||||
}
|
||||
else if (result == Global::msoblipWMF)
|
||||
{
|
||||
file_name += L".wmf";
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name))
|
||||
{
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
}
|
||||
}
|
||||
if (biSizeImage > 0 && result == Global::msoblipDIB)
|
||||
{
|
||||
file_name += L".bmp";
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name))
|
||||
{
|
||||
_UINT16 vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
_UINT32 dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
_UINT32 dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
_UINT32 dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
namespace DocFileFormat
|
||||
{
|
||||
/// Parses the CHPX for a fcPic an loads the PictureDescriptor at this offset
|
||||
|
||||
@ -134,3 +134,34 @@ namespace DocFileFormat
|
||||
int embeddedDataSize;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
namespace ImageHelper
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
|
||||
Global::_BlipType SaveImageToFileFromDIB(unsigned char* data, int size, std::wstring& file_name);
|
||||
}
|
||||
|
||||
|
||||
@ -60,65 +60,50 @@ namespace DocFileFormat
|
||||
{
|
||||
switch ( iter->OpCode)
|
||||
{
|
||||
//revision data
|
||||
case 0xCA89:
|
||||
case sprmCPropRMark2:
|
||||
{
|
||||
//revision mark
|
||||
collectRevisionData = false;
|
||||
//author
|
||||
this->Isbt = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
//date
|
||||
this->Dttm = DateAndTime( ( iter->Arguments + 3 ), 4 );
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x0801:
|
||||
}break;
|
||||
case sprmCFRMark:
|
||||
{
|
||||
//revision mark
|
||||
collectRevisionData = false;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x4804:
|
||||
}break;
|
||||
case sprmCIbstRMark:
|
||||
{
|
||||
//author
|
||||
this->Isbt = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6805:
|
||||
}break;
|
||||
case sprmCIbstRMarkDel:
|
||||
{
|
||||
this->Isbt = FormatUtils::BytesToInt16(iter->Arguments, 0, iter->argumentsSize);
|
||||
}break;
|
||||
case sprmCDttmRMark:
|
||||
{
|
||||
//date
|
||||
this->Dttm = DateAndTime( iter->Arguments, 4 );
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x0800:
|
||||
}break;
|
||||
case sprmCDttmRMarkDel:
|
||||
{
|
||||
this->Dttm = DateAndTime(iter->Arguments, 4);
|
||||
}break;
|
||||
case sprmCFRMarkDel:
|
||||
{
|
||||
//delete mark
|
||||
this->Type = Deleted;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6815:
|
||||
}break;
|
||||
case sprmCRsidProp:
|
||||
{
|
||||
this->RsidProp = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6816:
|
||||
}break;
|
||||
case sprmCRsidText:
|
||||
{
|
||||
this->Rsid = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6817:
|
||||
}break;
|
||||
case sprmCRsidRMDel:
|
||||
{
|
||||
this->RsidDel = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//put the sprm on the revision stack
|
||||
|
||||
@ -352,10 +352,10 @@ namespace DocFileFormat
|
||||
case sprmOldSCcolumns:
|
||||
case sprmSCcolumns:
|
||||
{
|
||||
m_nColumns = static_cast<int> (FormatUtils::BytesToInt16 (iter->Arguments, 0, iter->argumentsSize) + 1);
|
||||
m_nColumns = static_cast<int> (FormatUtils::BytesToInt16 (iter->Arguments, 0, iter->argumentsSize) + 1);
|
||||
|
||||
RELEASEARRAYOBJECTS (m_arrSpace);
|
||||
m_arrSpace = new short [m_nColumns];
|
||||
m_arrSpace = new short [m_nColumns];
|
||||
|
||||
appendValueAttribute (&cols, L"w:num", FormatUtils::IntToWideString (m_nColumns));
|
||||
}
|
||||
@ -388,10 +388,13 @@ namespace DocFileFormat
|
||||
if (m_nColumns)
|
||||
{
|
||||
if (NULL == m_arrSpace)
|
||||
m_arrSpace = new short[m_nColumns];
|
||||
m_arrSpace = new short[m_nColumns];
|
||||
|
||||
unsigned char nInd = iter->Arguments[0];
|
||||
m_arrSpace [nInd] = FormatUtils::BytesToInt16 (iter->Arguments, 1, iter->argumentsSize);
|
||||
unsigned char nInd = iter->Arguments[0];
|
||||
if (nInd < m_nColumns)
|
||||
{
|
||||
m_arrSpace[nInd] = FormatUtils::BytesToInt16(iter->Arguments, 1, iter->argumentsSize);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
|
||||
|
||||
@ -32,9 +32,38 @@
|
||||
|
||||
|
||||
#include "SettingsMapping.h"
|
||||
#include "../../OfficeCryptReader/source/CryptTransform.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
std::string DecodeBase64(const std::string & value)
|
||||
{
|
||||
int nLength = 0;
|
||||
unsigned char *pData = NULL;
|
||||
std::string result;
|
||||
|
||||
NSFile::CBase64Converter::Decode(value.c_str(), value.length(), pData, nLength);
|
||||
if (pData)
|
||||
{
|
||||
result = std::string((char*)pData, nLength);
|
||||
delete []pData; pData = NULL;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
std::wstring EncodeBase64(const std::string & value)
|
||||
{
|
||||
int nLength = 0;
|
||||
char *pData = NULL;
|
||||
std::string result;
|
||||
|
||||
NSFile::CBase64Converter::Encode((BYTE*)value.c_str(), value.length(), pData, nLength, NSBase64::B64_BASE64_FLAG_NOCRLF);
|
||||
if (pData)
|
||||
{
|
||||
result = std::string(pData, nLength);
|
||||
delete []pData; pData = NULL;
|
||||
}
|
||||
return std::wstring(result.begin(), result.end());
|
||||
}
|
||||
SettingsMapping::SettingsMapping (ConversionContext* ctx): PropertiesMapping(&m_oXmlWriter)
|
||||
{
|
||||
_ctx = ctx;
|
||||
@ -49,11 +78,39 @@ namespace DocFileFormat
|
||||
//start w:settings
|
||||
m_oXmlWriter.WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?" );
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:settings", TRUE );
|
||||
|
||||
//write namespaces
|
||||
m_oXmlWriter.WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
if (_ctx->_doc->FIB->m_FibBase.fWriteReservation)
|
||||
{
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:writeProtection", TRUE );
|
||||
WideString* passw = static_cast<WideString*>(_ctx->_doc->AssocNames->operator[]( 17 ));
|
||||
if (passw && false == passw->empty())
|
||||
{
|
||||
CRYPT::_ecmaWriteProtectData data;
|
||||
|
||||
CRYPT::ECMAWriteProtect protect;
|
||||
protect.SetCryptData(data);
|
||||
protect.SetPassword(*passw);
|
||||
|
||||
protect.Generate();
|
||||
protect.GetCryptData(data);
|
||||
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:cryptProviderType", L"rsaAES");
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:cryptAlgorithmSid", 14); //sha-512
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:cryptAlgorithmType", L"typeAny");
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:cryptAlgorithmClass", L"hash");
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:cryptSpinCount", data.spinCount);
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:hash", EncodeBase64(data.hashValue));
|
||||
//m_oXmlWriter.WriteAttribute ( L"w:salt", EncodeBase64(data.saltValue));
|
||||
m_oXmlWriter.WriteAttribute ( L"w:algorithmName", L"SHA-512");
|
||||
m_oXmlWriter.WriteAttribute ( L"w:spinCount", data.spinCount);
|
||||
m_oXmlWriter.WriteAttribute ( L"w:hashValue", EncodeBase64(data.hashValue));
|
||||
m_oXmlWriter.WriteAttribute ( L"w:saltValue", EncodeBase64(data.saltValue));
|
||||
}
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE, TRUE );
|
||||
}
|
||||
//zoom
|
||||
m_oXmlWriter.WriteNodeBegin ( L"w:zoom", TRUE );
|
||||
m_oXmlWriter.WriteAttribute ( L"w:percent", FormatUtils::IntToWideString( dop->wScaleSaved > 0 ? dop->wScaleSaved : 100 ) );
|
||||
@ -64,7 +121,7 @@ namespace DocFileFormat
|
||||
}
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
if (dop->bDisplayBackgroundShape)
|
||||
if (dop->fDispBkSpSaved)
|
||||
{
|
||||
m_oXmlWriter.WriteNodeBegin ( L"w:displayBackgroundShape", TRUE );
|
||||
m_oXmlWriter.WriteNodeEnd ( L"", TRUE );
|
||||
@ -202,6 +259,12 @@ namespace DocFileFormat
|
||||
//compatibility settings
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:compat" );
|
||||
|
||||
m_oXmlWriter.WriteNodeBegin( L"w:compatSetting", TRUE);
|
||||
m_oXmlWriter.WriteAttribute( L"w:name", L"compatibilityMode" );
|
||||
m_oXmlWriter.WriteAttribute( L"w:uri", L"http://schemas.microsoft.com/office/word" );
|
||||
m_oXmlWriter.WriteAttribute( L"w:val", L"11" );
|
||||
m_oXmlWriter.WriteNodeEnd( L"", TRUE );
|
||||
|
||||
//some settings must always be written
|
||||
|
||||
if ( dop->fUseNormalStyleForList )
|
||||
|
||||
@ -55,32 +55,45 @@ namespace DocFileFormat
|
||||
|
||||
std::vector<ByteStructure*> Data;
|
||||
|
||||
std::vector<unsigned char*> DataExtra;
|
||||
int code_page;
|
||||
public:
|
||||
virtual ~StringTable()
|
||||
{
|
||||
for ( std::vector<ByteStructure*>::iterator iter = this->Data.begin(); iter != this->Data.end(); iter++ )
|
||||
for ( size_t i = 0; i < this->Data.size(); ++i )
|
||||
{
|
||||
RELEASEOBJECT( *iter );
|
||||
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() );
|
||||
parse( reader, (unsigned int)reader->GetPosition(), 0, false );
|
||||
}
|
||||
|
||||
StringTable( POLE::Stream* tableStream, unsigned int fc, unsigned int lcb, int nWordVersion ) :
|
||||
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 ) ;
|
||||
parse( &reader, fc, lcb, bReadExta ) ;
|
||||
}
|
||||
}
|
||||
std::vector<unsigned char*> & getDataExtra() {return DataExtra;}
|
||||
unsigned short getDataExtraSize() {return cbExtra;}
|
||||
|
||||
ByteStructure* operator [] ( size_t index ) const
|
||||
{
|
||||
@ -96,7 +109,7 @@ namespace DocFileFormat
|
||||
|
||||
private:
|
||||
|
||||
void parse( VirtualStreamReader *reader, unsigned int fc, unsigned int lcb = 0 )
|
||||
void parse( VirtualStreamReader *reader, unsigned int fc, unsigned int lcb = 0, bool bReadExta = false )
|
||||
{
|
||||
if ( reader == NULL ) return;
|
||||
if (fc > reader->GetSize()) return;
|
||||
@ -191,8 +204,15 @@ namespace DocFileFormat
|
||||
|
||||
reader->Seek( (int)( posBeforeType + cbData ), 0/*STREAM_SEEK_SET */);
|
||||
|
||||
|
||||
reader->ReadBytes( cbExtra, false );//skip the extra unsigned char
|
||||
if (bReadExta)
|
||||
{
|
||||
unsigned char* pData = reader->ReadBytes( cbExtra, true );
|
||||
DataExtra.push_back(pData);
|
||||
}
|
||||
else
|
||||
{
|
||||
reader->ReadBytes( cbExtra, false );
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -75,7 +75,7 @@ namespace DocFileFormat
|
||||
void TableCellPropertiesMapping::Apply (IVisitable* visited)
|
||||
{
|
||||
TablePropertyExceptions* tapx = static_cast<TablePropertyExceptions*>(visited);
|
||||
int nComputedCellWidth = 0;
|
||||
int nComputedCellWidth = 0, nComputedCellWidths = 0;
|
||||
|
||||
_gridSpan = 0;
|
||||
_bCoverCell = false;
|
||||
@ -96,90 +96,101 @@ namespace DocFileFormat
|
||||
break;
|
||||
}
|
||||
}
|
||||
std::list<SinglePropertyModifier>::const_reverse_iterator rend = tapx->grpprl->rend();
|
||||
|
||||
for (std::list<SinglePropertyModifier>::const_reverse_iterator iter = tapx->grpprl->rbegin(); iter != rend; ++iter)
|
||||
|
||||
bool bPresentDefTable = false;
|
||||
for (std::list<SinglePropertyModifier>::reverse_iterator iter = tapx->grpprl->rbegin(); iter != tapx->grpprl->rend(); ++iter)
|
||||
{
|
||||
switch (iter->OpCode)
|
||||
{
|
||||
case sprmOldTDefTable:
|
||||
case sprmTDefTable:
|
||||
{
|
||||
SprmTDefTable tdef(iter->Arguments, iter->argumentsSize);
|
||||
int cc = tdef.numberOfColumns;
|
||||
|
||||
_tGrid = tdef.rgdxaCenter;
|
||||
_tcDef = tdef.rgTc80[(std::min)(_cellIndex, (int)tdef.rgTc80.size() - 1)];
|
||||
|
||||
appendValueElement( _tcPr, L"textDirection", FormatUtils::MapValueToWideString( _tcDef.textFlow, &Global::TextFlowMap[0][0], 6, 6 ), false );
|
||||
|
||||
if ( _tcDef.vertMerge == Global::fvmMerge )
|
||||
if (!bPresentDefTable) //118854.doc
|
||||
{
|
||||
appendValueElement( _tcPr, L"vMerge", L"continue", false );
|
||||
}
|
||||
else if ( _tcDef.vertMerge == Global::fvmRestart )
|
||||
{
|
||||
appendValueElement( _tcPr, L"vMerge", L"restart", false );
|
||||
}
|
||||
bPresentDefTable = true;
|
||||
|
||||
appendValueElement( _tcPr, L"vAlign", FormatUtils::MapValueToWideString( _tcDef.vertAlign, &Global::VerticalAlignMap[0][0], 3, 7 ), false );
|
||||
SprmTDefTable tdef(iter->Arguments, iter->argumentsSize);
|
||||
int cc = tdef.numberOfColumns;
|
||||
|
||||
if ( _tcDef.fFitText )
|
||||
{
|
||||
appendValueElement( _tcPr, L"tcFitText", L"", false );
|
||||
}
|
||||
_tGrid = tdef.rgdxaCenter;
|
||||
_tcDef = tdef.rgTc80[(std::min)(_cellIndex, (int)tdef.rgTc80.size() - 1)];
|
||||
|
||||
if ( _tcDef.fNoWrap )
|
||||
{
|
||||
appendValueElement( _tcPr, L"noWrap", L"", true );
|
||||
}
|
||||
//int ind = (std::min)(_cellIndex, (int)tdef.rgTc80.size() - 1);
|
||||
//int ind1 = ind;
|
||||
//while (ind1 < tdef.rgdxaCenter.size() - 1)
|
||||
//{
|
||||
// int sz = tdef.rgdxaCenter[ ind1 + 1] - tdef.rgdxaCenter[ ind1 ] ;
|
||||
// if (sz > 1)
|
||||
// break;
|
||||
// ind1++;
|
||||
//}
|
||||
appendValueElement( _tcPr, L"textDirection", FormatUtils::MapValueToWideString( _tcDef.textFlow, &Global::TextFlowMap[0][0], 6, 6 ), false );
|
||||
|
||||
if (tdef.rgTc80[_cellIndex].horzMerge == 1)
|
||||
{
|
||||
for (size_t i = _cellIndex; i < tdef.rgTc80.size(); i++)
|
||||
if ( _tcDef.vertMerge == Global::fvmMerge )
|
||||
{
|
||||
if (tdef.rgTc80[i].horzMerge < 1)
|
||||
break;
|
||||
|
||||
nComputedCellWidth += tdef.rgdxaCenter[ i + 1] - tdef.rgdxaCenter[ i ] ;
|
||||
_gridSpan++;
|
||||
appendValueElement( _tcPr, L"vMerge", L"continue", false );
|
||||
}
|
||||
else if ( _tcDef.vertMerge == Global::fvmRestart )
|
||||
{
|
||||
appendValueElement( _tcPr, L"vMerge", L"restart", false );
|
||||
}
|
||||
}
|
||||
else if (tdef.rgTc80[_cellIndex].horzMerge == 2)
|
||||
{//skip cover cell
|
||||
_gridSpan = 1;
|
||||
nComputedCellWidth = 0;
|
||||
_bCoverCell = true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
_gridSpan = 1;
|
||||
nComputedCellWidth += tdef.rgdxaCenter[ _cellIndex + 1] - tdef.rgdxaCenter[ _cellIndex ] ;
|
||||
}
|
||||
appendValueElement( _tcPr, L"vAlign", FormatUtils::MapValueToWideString( _tcDef.vertAlign, &Global::VerticalAlignMap[0][0], 3, 7 ), false );
|
||||
|
||||
if (!IsTableBordersDefined(tapx->grpprl))
|
||||
{
|
||||
RELEASEOBJECT(_brcTop);
|
||||
_brcTop = new BorderCode(*_tcDef.brcTop);
|
||||
if ( _tcDef.fFitText )
|
||||
{
|
||||
appendValueElement( _tcPr, L"tcFitText", L"", false );
|
||||
}
|
||||
|
||||
RELEASEOBJECT(_brcLeft);
|
||||
_brcLeft = new BorderCode(*_tcDef.brcLeft);
|
||||
if ( _tcDef.fNoWrap )
|
||||
{
|
||||
appendValueElement( _tcPr, L"noWrap", L"", true );
|
||||
}
|
||||
//int ind = (std::min)(_cellIndex, (int)tdef.rgTc80.size() - 1);
|
||||
//int ind1 = ind;
|
||||
//while (ind1 < tdef.rgdxaCenter.size() - 1)
|
||||
//{
|
||||
// int sz = tdef.rgdxaCenter[ ind1 + 1] - tdef.rgdxaCenter[ ind1 ] ;
|
||||
// if (sz > 1)
|
||||
// break;
|
||||
// ind1++;
|
||||
//}
|
||||
_ftsWidth = (Global::CellWidthType)(_tcDef.ftsWidth);
|
||||
|
||||
RELEASEOBJECT(_brcRight);
|
||||
_brcRight = new BorderCode(*_tcDef.brcRight);
|
||||
if (tdef.rgTc80[_cellIndex].horzMerge == 1)
|
||||
{
|
||||
for (size_t i = _cellIndex; i < tdef.rgTc80.size(); i++)
|
||||
{
|
||||
if (tdef.rgTc80[i].horzMerge < 1)
|
||||
break;
|
||||
|
||||
nComputedCellWidth += tdef.rgdxaCenter[ i + 1] - tdef.rgdxaCenter[ i ] ;
|
||||
_gridSpan++;
|
||||
}
|
||||
}
|
||||
else if (tdef.rgTc80[_cellIndex].horzMerge == 2)
|
||||
{//skip cover cell
|
||||
_gridSpan = 1;
|
||||
nComputedCellWidth = 0;
|
||||
_bCoverCell = true;
|
||||
|
||||
RELEASEOBJECT(_brcBottom);
|
||||
_brcBottom = new BorderCode(*_tcDef.brcBottom);
|
||||
}
|
||||
else
|
||||
{
|
||||
_gridSpan = 1;
|
||||
|
||||
nComputedCellWidths += (tdef.rgdxaCenter[ _cellIndex + 1] - tdef.rgdxaCenter[ 0 ]);
|
||||
nComputedCellWidth += tdef.rgTc80[ _cellIndex].wWidth > 1 ? tdef.rgTc80[ _cellIndex].wWidth : (tdef.rgdxaCenter[ _cellIndex + 1] - tdef.rgdxaCenter[ _cellIndex ]);
|
||||
//Технические_Требования_1_287_ДИТ.DOC
|
||||
|
||||
}
|
||||
|
||||
if (!IsTableBordersDefined(tapx->grpprl))
|
||||
{
|
||||
RELEASEOBJECT(_brcTop);
|
||||
_brcTop = new BorderCode(*_tcDef.brcTop);
|
||||
|
||||
RELEASEOBJECT(_brcLeft);
|
||||
_brcLeft = new BorderCode(*_tcDef.brcLeft);
|
||||
|
||||
RELEASEOBJECT(_brcRight);
|
||||
_brcRight = new BorderCode(*_tcDef.brcRight);
|
||||
|
||||
RELEASEOBJECT(_brcBottom);
|
||||
_brcBottom = new BorderCode(*_tcDef.brcBottom);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -341,26 +352,28 @@ namespace DocFileFormat
|
||||
|
||||
|
||||
XMLTools::XMLAttribute tcWVal ( L"w:w", FormatUtils::IntToWideString( _width > 1 ? _width : nComputedCellWidth) );
|
||||
XMLTools::XMLAttribute tcWType ( L"w:type", _width > 1 ? FormatUtils::MapValueToWideString( _ftsWidth, &Global::CellWidthTypeMap[0][0], 4, 5 ) :
|
||||
(nComputedCellWidth > 0 ? L"dxa" : L"auto"));
|
||||
XMLTools::XMLAttribute tcWType ( L"w:type", (_width > 1 || nComputedCellWidth > 0) ? FormatUtils::MapValueToWideString( _ftsWidth, &Global::CellWidthTypeMap[0][0], 4, 5 ) : L"auto");
|
||||
|
||||
tcW.AppendAttribute( tcWType );
|
||||
tcW.AppendAttribute( tcWVal );
|
||||
_tcPr->AppendChild( tcW );
|
||||
|
||||
int nComputedCellWidthsGrid = 0;
|
||||
|
||||
if ( _gridSpan == 1 && ( _gridIndex < (int)_grid->size() ) && ( nComputedCellWidth > _grid->at( _gridIndex ) ) )
|
||||
for (size_t ccc = 0; ccc < _grid->size() && ccc <= _gridIndex; ccc++)
|
||||
{
|
||||
nComputedCellWidthsGrid += _grid->at(ccc);
|
||||
}
|
||||
if ( _gridSpan == 1 && ( _gridIndex < (int)_grid->size() ) && ( nComputedCellWidths > nComputedCellWidthsGrid ) )
|
||||
{
|
||||
//check the number of merged cells
|
||||
int w = _grid->at( _gridIndex );
|
||||
|
||||
for ( size_t i = _gridIndex + 1; i < _grid->size(); i++ )
|
||||
{
|
||||
_gridSpan++;
|
||||
|
||||
w += _grid->at( i );
|
||||
nComputedCellWidthsGrid += _grid->at( i );
|
||||
|
||||
if ( w >= nComputedCellWidth )
|
||||
if ( nComputedCellWidthsGrid >= nComputedCellWidths )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
@ -57,6 +57,8 @@ namespace DocFileFormat
|
||||
case sprmPFInTable:
|
||||
{
|
||||
fInTable = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
|
||||
if (iTap < 1 && fInTable) iTap = 1;
|
||||
}break;
|
||||
|
||||
//case sprmOldPFTtp:
|
||||
@ -92,7 +94,6 @@ namespace DocFileFormat
|
||||
|
||||
if ( (int)( iter->OpCode ) == sprmTCnf )//66a
|
||||
{
|
||||
//add value!
|
||||
iTap = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if ( iTap > 0 )
|
||||
|
||||
@ -225,8 +225,11 @@ namespace DocFileFormat
|
||||
documentMapping->m_document->nWordVersion);
|
||||
|
||||
std::list<CharacterPropertyExceptions*>* chpxs = documentMapping->m_document->GetCharacterPropertyExceptions( fcRowEnd, fcRowEnd + 1 );
|
||||
TableRowPropertiesMapping trpMapping( documentMapping->GetXMLWriter(), *(chpxs->begin()) );
|
||||
tapx.Convert( &trpMapping );
|
||||
if (chpxs)
|
||||
{
|
||||
TableRowPropertiesMapping trpMapping( documentMapping->GetXMLWriter(), *(chpxs->begin()) );
|
||||
tapx.Convert( &trpMapping );
|
||||
}
|
||||
|
||||
documentMapping->_lastValidPapx = papxBackup;
|
||||
documentMapping->_lastValidSepx = sepxBackup;
|
||||
@ -324,7 +327,6 @@ namespace DocFileFormat
|
||||
|
||||
TableInfo tai( papx, documentMapping->m_document->nWordVersion );
|
||||
|
||||
|
||||
return ( ( tai.fInTable ) && ( ( ( documentMapping->m_document->Text->at( _cp ) == 0x0007 ) && ( tai.iTap <= 1 ) &&
|
||||
( !tai.fTtp ) ) ||
|
||||
( ( documentMapping->m_document->Text->at( _cp ) == 0x000D ) && ( tai.iTap > 1 ) &&
|
||||
|
||||
@ -64,10 +64,12 @@ namespace DocFileFormat
|
||||
XMLTools::XMLElement tblCellMar ( L"w:tblCellMar");
|
||||
XMLTools::XMLElement tblLayout ( L"w:tblLayout");
|
||||
XMLTools::XMLElement tblpPr ( L"w:tblpPr");
|
||||
XMLTools::XMLAttribute layoutType ( L"w:type", L"fixed");
|
||||
XMLTools::XMLAttribute layoutType ( L"w:type", L"");
|
||||
|
||||
bool bLayoutFixed = true;
|
||||
//layoutType.SetValue(L"fixed");
|
||||
|
||||
short tblIndent = 0;
|
||||
_CP_OPT(short) tblIndent;
|
||||
short gabHalf = 0;
|
||||
short marginLeft = 0;
|
||||
short marginRight = 0;
|
||||
@ -98,8 +100,7 @@ namespace DocFileFormat
|
||||
//For this cases we can calculate the indent of the table by getting the
|
||||
//first boundary of the TDef and adding the padding of the cells
|
||||
|
||||
tblIndent = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
tblIndent += gabHalf;
|
||||
tblIndent = gabHalf + FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
//If there follows a real sprmTWidthIndent, this value will be overwritten
|
||||
|
||||
//tblIndent = (std::max)((int)tblIndent,0); //cerere.doc
|
||||
@ -184,18 +185,16 @@ namespace DocFileFormat
|
||||
appendValueElement( _tblPr, L"tblLook", FormatUtils::IntToFormattedWideString( FormatUtils::BytesToInt16( iter->Arguments, 2, iter->argumentsSize ), L"%04x" ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTFAutofit:
|
||||
{ //autofit
|
||||
{//autofit
|
||||
|
||||
layoutType.SetValue(L"fixed");
|
||||
if ( iter->Arguments[0] == 1 )
|
||||
{
|
||||
layoutType.SetValue( L"auto" );
|
||||
bLayoutFixed = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}break;
|
||||
case sprmTCellPadding:
|
||||
case sprmTCellPaddingDefault:
|
||||
case sprmTCellPaddingOuter:
|
||||
@ -404,11 +403,11 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//indent
|
||||
if ( tblIndent != 0 )
|
||||
if ( tblIndent )
|
||||
{
|
||||
XMLTools::XMLElement tblInd( L"w:tblInd");
|
||||
|
||||
XMLTools::XMLAttribute tblIndW( L"w:w", FormatUtils::IntToWideString( tblIndent ) );
|
||||
XMLTools::XMLAttribute tblIndW( L"w:w", FormatUtils::IntToWideString( *tblIndent ) );
|
||||
tblInd.AppendAttribute( tblIndW );
|
||||
|
||||
XMLTools::XMLAttribute tblIndType( L"w:type", L"dxa");
|
||||
@ -471,11 +470,12 @@ namespace DocFileFormat
|
||||
_tblPr->AppendChild( *_tblBorders );
|
||||
}
|
||||
|
||||
//append layout type
|
||||
tblLayout.AppendAttribute( layoutType );
|
||||
if (false == layoutType.GetValue().empty())
|
||||
{
|
||||
tblLayout.AppendAttribute(layoutType);
|
||||
}
|
||||
_tblPr->AppendChild( tblLayout );
|
||||
|
||||
//append margins
|
||||
if ( ( marginLeft == 0 ) && ( gabHalf != 0 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"left", FormatUtils::IntToWideString( gabHalf ), true );
|
||||
@ -506,8 +506,9 @@ namespace DocFileFormat
|
||||
_tblGrid = new XMLTools::XMLElement( L"w:tblGrid");
|
||||
|
||||
//Если _grid состоит из одних DocFormatUtils::gc_nZeroWidth и layout != "fixed", значит это doc полученный нами при конвертации из html. Таблицу размеров писать не нужно
|
||||
|
||||
bool bWriteGridCol = false;
|
||||
if(true == bLayoutFixed)
|
||||
if (true == bLayoutFixed)
|
||||
bWriteGridCol = true;
|
||||
else
|
||||
{
|
||||
@ -520,7 +521,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
}
|
||||
if(true == bWriteGridCol)
|
||||
if (true == bWriteGridCol)
|
||||
{
|
||||
for ( size_t i = 0; i < _grid->size(); i++ )
|
||||
{
|
||||
|
||||
@ -165,7 +165,6 @@ namespace DocFileFormat
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
|
||||
@ -33,41 +33,18 @@
|
||||
#include "VMLPictureMapping.h"
|
||||
#include "VMLShapeMapping.h"
|
||||
|
||||
#include "OfficeDrawing/GeometryBooleanProperties.h"
|
||||
#include "OfficeDrawing/GeometryTextBooleanProperties.h"
|
||||
#include "OfficeDrawing/GroupShapeBooleanProperties.h"
|
||||
#include "OfficeDrawing/MetafilePictBlip.h"
|
||||
|
||||
#include "../../DesktopEditor/common/String.h"
|
||||
#include "../../DesktopEditor/common/StringExt.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Document.h"
|
||||
|
||||
#include "../../DesktopEditor/common/File.h"
|
||||
#include "../../DesktopEditor/raster/BgraFrame.h"
|
||||
|
||||
#include "../../ASCOfficePPTFile/PPTFormatLib/Reader/ReadStructures.h"
|
||||
|
||||
using namespace DocFileFormat;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD iType; // Record type EMR_HEADER
|
||||
DWORD nSize; // Record size in bytes. This may be greater
|
||||
// than the sizeof(ENHMETAHEADER).
|
||||
RECT rclBounds; // Inclusive-inclusive bounds in device units
|
||||
RECT rclFrame; // Inclusive-inclusive Picture Frame .01mm unit
|
||||
DWORD dSignature; // Signature. Must be ENHMETA_SIGNATURE.
|
||||
DWORD nVersion; // Version number
|
||||
DWORD nBytes; // Size of the metafile in bytes
|
||||
DWORD nRecords; // Number of records in the metafile
|
||||
WORD nHandles; // Number of handles in the handle table
|
||||
// Handle index zero is reserved.
|
||||
WORD sReserved; // Reserved. Must be zero.
|
||||
DWORD nDescription; // Number of chars in the unicode desc string
|
||||
// This is 0 if there is no description string
|
||||
DWORD offDescription; // Offset to the metafile description record.
|
||||
// This is 0 if there is no description string
|
||||
DWORD nPalEntries; // Number of entries in the metafile palette.
|
||||
SIZE szlDevice; // Size of the reference device in pels
|
||||
SIZE szlMillimeters; // Size of the reference device in millimeters
|
||||
} ENHMETAHEADER3;
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
@ -138,6 +115,51 @@ namespace DocFileFormat
|
||||
}
|
||||
return btWin32;
|
||||
}
|
||||
bool VMLPictureMapping::ParseEmbeddedBlob( const std::string & xmlString, std::wstring & newXmlString)
|
||||
{
|
||||
newXmlString.clear();
|
||||
|
||||
std::wstring sTempFolder = m_context->_doc->m_sTempFolder;
|
||||
if (sTempFolder.empty())
|
||||
{
|
||||
sTempFolder = NSFile::CFileBinary::GetTempPath();
|
||||
}
|
||||
|
||||
std::wstring sTempXmlFile = NSDirectory::CreateTempFileWithUniqueName(sTempFolder, L"emb");
|
||||
|
||||
NSFile::CFileBinary file;
|
||||
file.CreateFileW(sTempXmlFile);
|
||||
file.WriteFile((BYTE*)xmlString.c_str(), xmlString.size());
|
||||
file.CloseFile();
|
||||
|
||||
COfficeUtils officeUtils(NULL);
|
||||
|
||||
BYTE *utf8Data = NULL;
|
||||
ULONG utf8DataSize = 0;
|
||||
if (S_OK != officeUtils.LoadFileFromArchive(sTempXmlFile, L"drs/shapexml.xml", &utf8Data, utf8DataSize))
|
||||
{
|
||||
if (S_OK == officeUtils.IsFileExistInArchive(sTempXmlFile, L"drs/diagrams"))
|
||||
{
|
||||
officeUtils.LoadFileFromArchive(sTempXmlFile, L"drs/diagrams/drawing1.xml", &utf8Data, utf8DataSize);
|
||||
}
|
||||
else if (S_OK != officeUtils.LoadFileFromArchive(sTempXmlFile, L"drs/e2oDoc.xml", &utf8Data, utf8DataSize))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (utf8Data && utf8DataSize > 0)
|
||||
{
|
||||
newXmlString = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8(utf8Data, utf8DataSize);
|
||||
|
||||
delete []utf8Data;
|
||||
}
|
||||
NSFile::CFileBinary::Remove(sTempXmlFile);
|
||||
|
||||
if (newXmlString.empty()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
bool VMLPictureMapping::ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString)
|
||||
{
|
||||
newXmlString.clear();
|
||||
@ -198,18 +220,15 @@ namespace DocFileFormat
|
||||
return res;
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
void VMLPictureMapping::appendStyleProperty(std::wstring* b, const std::wstring& propName, const std::wstring& propValue) const
|
||||
void VMLPictureMapping::appendStyleProperty(std::wstring& style, const std::wstring& propName, const std::wstring& propValue) const
|
||||
{
|
||||
if ( b != NULL )
|
||||
{
|
||||
b->operator += ( propName );
|
||||
b->operator += ( L":" );
|
||||
b->operator += ( propValue );
|
||||
b->operator +=( L";" );
|
||||
}
|
||||
style += ( propName );
|
||||
style += ( L":" );
|
||||
style += ( propValue );
|
||||
style +=( L";" );
|
||||
}
|
||||
|
||||
VMLPictureMapping::VMLPictureMapping(ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, bool olePreview, IMapping* caller, bool isInlinePicture) : PropertiesMapping(writer)
|
||||
VMLPictureMapping::VMLPictureMapping(ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, bool olePreview, IMapping* caller, bool isInlinePicture, bool inGroup) : PropertiesMapping(writer)
|
||||
{
|
||||
m_context = ctx;
|
||||
m_isOlePreview = olePreview;
|
||||
@ -217,10 +236,12 @@ namespace DocFileFormat
|
||||
m_nImageId = 0;
|
||||
m_caller = caller;
|
||||
m_isInlinePicture = isInlinePicture;
|
||||
m_inGroup = inGroup;
|
||||
|
||||
m_isBullete = false;
|
||||
m_isEquation = false;
|
||||
m_isEmbedded = false;
|
||||
m_isBlob = false;
|
||||
|
||||
m_imageData = new XMLTools::XMLElement( L"v:imagedata" );
|
||||
}
|
||||
@ -256,7 +277,7 @@ namespace DocFileFormat
|
||||
std::wstring strHeight = FormatUtils::DoubleToWideString( height.ToPoints() );
|
||||
std::wstring strStyle;
|
||||
|
||||
std::vector<OptionEntryPtr> options;
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> options;
|
||||
|
||||
PictureFrameType type;
|
||||
Shape* pShape = NULL;
|
||||
@ -272,6 +293,7 @@ namespace DocFileFormat
|
||||
|
||||
type.Convert( vmlShapeTypeMapping );
|
||||
RELEASEOBJECT( vmlShapeTypeMapping );
|
||||
|
||||
}
|
||||
else if (pict->embeddedData)
|
||||
{
|
||||
@ -296,55 +318,61 @@ namespace DocFileFormat
|
||||
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
OptionEntryPtr & iter = options[i];
|
||||
switch ( iter->pid )
|
||||
ODRAW::OfficeArtFOPTEPtr & iter = options[i];
|
||||
switch ( iter->opid )
|
||||
{
|
||||
case wzEquationXML:
|
||||
{
|
||||
m_isEquation = true;
|
||||
m_isEmbedded = true;
|
||||
|
||||
m_embeddedData = std::string((char*)iter->opComplex.get(), iter->op);
|
||||
|
||||
if (ParseEmbeddedEquation( m_embeddedData, m_equationXml))
|
||||
ODRAW::XmlString *pXml = dynamic_cast<ODRAW::XmlString*>(iter.get());
|
||||
if (pXml)
|
||||
{
|
||||
m_isEmbedded = false;
|
||||
m_isEquation = true;
|
||||
m_isEmbedded = true;
|
||||
|
||||
m_embeddedData = pXml->data;
|
||||
|
||||
if (ParseEmbeddedEquation( m_embeddedData, m_equationXml))
|
||||
{
|
||||
m_isEmbedded = false;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case metroBlob:
|
||||
{
|
||||
//встроенная неведомая хуйня
|
||||
m_isEmbedded = true;
|
||||
m_embeddedData = std::string((char*)iter->opComplex.get(), iter->op);
|
||||
|
||||
//if (ParseEmbeddedBlob( m_embeddedData, m_blobXml)) // todoooo
|
||||
//{
|
||||
// m_isEmbedded = false;
|
||||
//}
|
||||
case ODRAW::metroBlob:
|
||||
{//встроенная неведомая хуйня
|
||||
ODRAW::MetroBlob* blob = dynamic_cast<ODRAW::MetroBlob*>(iter.get());
|
||||
if (blob)
|
||||
{
|
||||
m_isBlob = true;
|
||||
m_isEmbedded = true;
|
||||
//if (ParseEmbeddedBlob( blob->data.first, blob->data.second)) // todoooo
|
||||
//{
|
||||
// m_isEmbedded = false;
|
||||
//}
|
||||
}
|
||||
}break;
|
||||
//BORDERS
|
||||
case borderBottomColor:
|
||||
case ODRAW::borderBottomColor:
|
||||
if (!pict->brcBottom)
|
||||
{
|
||||
RGBColor bottomColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderbottomcolor", L"#" + bottomColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderLeftColor:
|
||||
case ODRAW::borderLeftColor:
|
||||
if (!pict->brcLeft)
|
||||
{
|
||||
RGBColor leftColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderleftcolor", L"#" + leftColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderRightColor:
|
||||
case ODRAW::borderRightColor:
|
||||
if (!pict->brcRight)
|
||||
{
|
||||
RGBColor rightColor( (int)iter->op, RedFirst );
|
||||
m_pXmlWriter->WriteAttribute( L"o:borderrightcolor", L"#" + rightColor.SixDigitHexCode);
|
||||
}
|
||||
break;
|
||||
case borderTopColor:
|
||||
case ODRAW::borderTopColor:
|
||||
if (!pict->brcTop)
|
||||
{
|
||||
RGBColor topColor( (int)iter->op, RedFirst );
|
||||
@ -352,28 +380,28 @@ namespace DocFileFormat
|
||||
}
|
||||
break;
|
||||
//CROPPING
|
||||
case cropFromBottom:
|
||||
case ODRAW::cropFromBottom:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropBottom = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, L"cropbottom", FormatUtils::IntToWideString( cropBottom ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromLeft:
|
||||
case ODRAW::cropFromLeft:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropLeft = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, L"cropleft", FormatUtils::IntToWideString( cropLeft ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromRight:
|
||||
case ODRAW::cropFromRight:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropRight = (int)iter->op;
|
||||
appendValueAttribute(m_imageData, L"cropright", FormatUtils::IntToWideString( cropRight ) + L"f" );
|
||||
}
|
||||
break;
|
||||
case cropFromTop:
|
||||
case ODRAW::cropFromTop:
|
||||
{
|
||||
//cast to signed integer
|
||||
int cropTop = (int)iter->op;
|
||||
@ -381,7 +409,7 @@ namespace DocFileFormat
|
||||
}
|
||||
break;
|
||||
//------------------------------------------------------------
|
||||
case PropertyId_rotation:
|
||||
case ODRAW::ePropertyId_rotation:
|
||||
{
|
||||
double dAngle = (double)((int)iter->op) / 65535.0;
|
||||
|
||||
@ -391,41 +419,41 @@ namespace DocFileFormat
|
||||
std::wstring v = strHeight;
|
||||
strHeight = strWidth; strWidth = v;
|
||||
|
||||
appendStyleProperty(&strStyle, L"rotation", FormatUtils::DoubleToWideString(dAngle));
|
||||
appendStyleProperty(strStyle, L"rotation", FormatUtils::DoubleToWideString(dAngle));
|
||||
}break;
|
||||
case posh:
|
||||
case ODRAW::posh:
|
||||
{
|
||||
appendStyleProperty(&strStyle, L"mso-position-horizontal", VMLShapeMapping::mapHorizontalPosition((PositionHorizontal)iter->op));
|
||||
appendStyleProperty(strStyle, L"mso-position-horizontal", VMLShapeMapping::mapHorizontalPosition((PositionHorizontal)iter->op));
|
||||
}break;
|
||||
case posrelh:
|
||||
case ODRAW::posrelh:
|
||||
{
|
||||
appendStyleProperty(&strStyle, L"mso-position-horizontal-relative", VMLShapeMapping::mapHorizontalPositionRelative((PositionHorizontalRelative)iter->op));
|
||||
appendStyleProperty(strStyle, L"mso-position-horizontal-relative", VMLShapeMapping::mapHorizontalPositionRelative((PositionHorizontalRelative)iter->op));
|
||||
}break;
|
||||
case posv:
|
||||
case ODRAW::posv:
|
||||
{
|
||||
appendStyleProperty(&strStyle, L"mso-position-vertical", VMLShapeMapping::mapVerticalPosition((PositionVertical)iter->op));
|
||||
appendStyleProperty(strStyle, L"mso-position-vertical", VMLShapeMapping::mapVerticalPosition((PositionVertical)iter->op));
|
||||
}break;
|
||||
case posrelv:
|
||||
case ODRAW::posrelv:
|
||||
{
|
||||
appendStyleProperty(&strStyle, L"mso-position-vertical-relative", VMLShapeMapping::mapVerticalPositionRelative((PositionVerticalRelative)iter->op));
|
||||
appendStyleProperty(strStyle, L"mso-position-vertical-relative", VMLShapeMapping::mapVerticalPositionRelative((PositionVerticalRelative)iter->op));
|
||||
}break;
|
||||
case groupShapeBooleans:
|
||||
case ODRAW::groupShapeBooleanProperties:
|
||||
{
|
||||
GroupShapeBooleanProperties groupShapeBooleans(iter->op);
|
||||
ODRAW::GroupShapeBooleanProperties* booleans = dynamic_cast<ODRAW::GroupShapeBooleanProperties*>(iter.get());
|
||||
|
||||
if (groupShapeBooleans.fUsefBehindDocument && groupShapeBooleans.fBehindDocument)
|
||||
if (booleans->fUsefBehindDocument && booleans->fBehindDocument)
|
||||
{
|
||||
//The shape is behind the text, so the z-index must be negative.
|
||||
appendStyleProperty(&strStyle, L"z-index", L"-1" );
|
||||
appendStyleProperty(strStyle, L"z-index", L"-1" );
|
||||
}
|
||||
//else if (!m_isInlinePicture)
|
||||
//{
|
||||
// appendStyleProperty( &strStyle, L"z-index", FormatUtils::IntToWideString(zIndex + 0x7ffff));
|
||||
//}
|
||||
|
||||
if (groupShapeBooleans.fHidden && groupShapeBooleans.fUsefHidden)
|
||||
if (booleans->fHidden && booleans->fUsefHidden)
|
||||
{
|
||||
appendStyleProperty(&strStyle, L"visibility", L"hidden");
|
||||
appendStyleProperty(strStyle, L"visibility", L"hidden");
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
@ -470,7 +498,8 @@ namespace DocFileFormat
|
||||
appendValueAttribute(m_imageData, L"o:title", L"" );
|
||||
m_pXmlWriter->WriteString(m_imageData->GetXMLString());
|
||||
}
|
||||
|
||||
else
|
||||
m_isPictureBroken = true;
|
||||
|
||||
{//borders
|
||||
writePictureBorder( L"bordertop", pict->brcTop );
|
||||
@ -529,10 +558,10 @@ namespace DocFileFormat
|
||||
pict->embeddedDataSize += lLenHeader;
|
||||
delete []pict->embeddedData;
|
||||
pict->embeddedData = newData;
|
||||
|
||||
}
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(Global::msoblipDIB),
|
||||
std::vector<unsigned char>(pict->embeddedData, (pict->embeddedData + pict->embeddedDataSize)), Global::msoblipDIB));
|
||||
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(btWin32),
|
||||
pict->embeddedData, pict->embeddedDataSize, btWin32));
|
||||
|
||||
m_nImageId = m_context->_docx->RegisterImage(m_caller, btWin32);
|
||||
result = true;
|
||||
@ -549,26 +578,42 @@ namespace DocFileFormat
|
||||
if (metaBlip)
|
||||
{//decompress inside MetafilePictBlip
|
||||
unsigned char *newData = NULL;
|
||||
int newDataSize = metaBlip->oMetaFile.ToBuffer(newData);
|
||||
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlipEntry->btWin32), std::vector<unsigned char>(newData, (newData + newDataSize))));
|
||||
|
||||
RELEASEARRAYOBJECTS(newData);
|
||||
}
|
||||
}
|
||||
break;
|
||||
unsigned int newDataSize = metaBlip->oMetaFile.ToBuffer(newData);
|
||||
|
||||
boost::shared_array<unsigned char> arData(newData);
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlipEntry->btWin32), arData, newDataSize));
|
||||
}
|
||||
}break;
|
||||
case Global::msoblipDIB:
|
||||
{//user_manual_v52.doc
|
||||
|
||||
BitmapBlip* bitBlip = static_cast<BitmapBlip*>(oBlipEntry->Blip);
|
||||
if (bitBlip)
|
||||
{
|
||||
std::wstring file_name = m_context->_doc->m_sTempFolder + FILE_SEPARATOR_STR + L"tmp_image";
|
||||
oBlipEntry->btWin32 = ImageHelper::SaveImageToFileFromDIB(bitBlip->m_pvBits, bitBlip->pvBitsSize, file_name);
|
||||
|
||||
unsigned char* pData = NULL;
|
||||
DWORD nData = 0;
|
||||
if (NSFile::CFileBinary::ReadAllBytes(file_name, &pData, nData))
|
||||
{
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlipEntry->btWin32),
|
||||
boost::shared_array<unsigned char>(pData), nData, oBlipEntry->btWin32));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
case Global::msoblipJPEG:
|
||||
case Global::msoblipCMYKJPEG:
|
||||
case Global::msoblipPNG:
|
||||
case Global::msoblipTIFF:
|
||||
case Global::msoblipDIB:
|
||||
{
|
||||
BitmapBlip* bitBlip = static_cast<BitmapBlip*>(oBlipEntry->Blip);
|
||||
if (bitBlip)
|
||||
{
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlipEntry->btWin32),
|
||||
std::vector<unsigned char>(bitBlip->m_pvBits, (bitBlip->m_pvBits + bitBlip->pvBitsSize)), oBlipEntry->btWin32));
|
||||
bitBlip->m_pvBits, bitBlip->pvBitsSize, oBlipEntry->btWin32));
|
||||
}
|
||||
}break;
|
||||
|
||||
|
||||
@ -50,14 +50,15 @@ namespace DocFileFormat
|
||||
class VMLPictureMapping: public PropertiesMapping, public IMapping
|
||||
{
|
||||
public:
|
||||
VMLPictureMapping( ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, bool olePreview, IMapping* caller, bool isInlinePicture = false );
|
||||
VMLPictureMapping( ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, bool olePreview, IMapping* caller, bool isInlinePicture = false, bool inGroup = false);
|
||||
virtual ~VMLPictureMapping();
|
||||
virtual void Apply( IVisitable* visited );
|
||||
private:
|
||||
/// Writes a border element
|
||||
void writePictureBorder (const std::wstring & name, const BorderCode* brc);
|
||||
void appendStyleProperty( std::wstring* b, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
void appendStyleProperty( std::wstring& style, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
bool ParseEmbeddedEquation( const std::string & xmlString, std::wstring & newXmlString );
|
||||
bool ParseEmbeddedBlob(const std::string & xmlString, std::wstring & newXmlString);
|
||||
std::wstring GetShapeID(const Shape* pShape) const;
|
||||
protected:
|
||||
/// Copies the picture from the binary stream to the zip archive
|
||||
@ -69,11 +70,14 @@ namespace DocFileFormat
|
||||
static std::wstring GetTargetExt (Global::BlipType nType);
|
||||
static std::wstring GetContentType (Global::BlipType nType);
|
||||
|
||||
bool m_isBlob;
|
||||
bool m_isBullete;
|
||||
bool m_isEquation;
|
||||
bool m_isEmbedded;
|
||||
bool m_isPictureBroken;
|
||||
std::string m_embeddedData;
|
||||
std::wstring m_equationXml;
|
||||
std::wstring m_blobXml;
|
||||
|
||||
std::wstring m_shapeId;
|
||||
private:
|
||||
@ -84,6 +88,7 @@ namespace DocFileFormat
|
||||
|
||||
bool m_isOlePreview;
|
||||
bool m_isInlinePicture;
|
||||
bool m_inGroup;
|
||||
|
||||
XMLTools::XMLElement* m_imageData;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -48,7 +48,6 @@
|
||||
#include "OfficeDrawing/ChildAnchor.h"
|
||||
#include "OfficeDrawing/ClientAnchor.h"
|
||||
#include "OfficeDrawing/Shapetypes/LineType.h"
|
||||
#include "OfficeDrawing/PathParser.h"
|
||||
#include "OfficeDrawing/MetafilePictBlip.h"
|
||||
#include "OfficeDrawing/BitmapBlip.h"
|
||||
|
||||
@ -58,16 +57,19 @@ namespace DocFileFormat
|
||||
{
|
||||
public:
|
||||
|
||||
VMLShapeMapping (ConversionContext* ctx ,XMLTools::CStringXmlWriter* writer, Spa* pSpa, PictureDescriptor* pict, IMapping* caller, bool bullet = false);
|
||||
VMLShapeMapping (ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, Spa* pSpa, PictureDescriptor* pict, IMapping* caller, bool bullet = false, bool in_group = false);
|
||||
virtual ~VMLShapeMapping();
|
||||
virtual void Apply(IVisitable* visited);
|
||||
|
||||
static std::wstring mapVerticalPosition (PositionVertical vPos );
|
||||
static std::wstring mapVerticalPosition (PositionVertical vPos );
|
||||
static std::wstring mapVerticalPositionRelative (int vRel );
|
||||
static std::wstring mapHorizontalPosition (PositionHorizontal hPos );
|
||||
static std::wstring mapHorizontalPositionRelative(int hRel );
|
||||
static std::wstring mapHorizontalPosition (PositionHorizontal hPos );
|
||||
static std::wstring mapHorizontalPositionRelative (int hRel );
|
||||
static std::wstring mapWrapText (int val_);
|
||||
|
||||
bool m_inGroup;
|
||||
bool m_isBullete;
|
||||
bool m_isPictureBroken;
|
||||
std::wstring m_shapeId;
|
||||
private:
|
||||
|
||||
@ -80,18 +82,19 @@ namespace DocFileFormat
|
||||
void WriteShape (const ShapeContainer* pContainer);
|
||||
|
||||
std::wstring GenShapeId(const Shape* pShape) const;
|
||||
bool copyPicture( const BlipStoreEntry* bse );
|
||||
bool copyPicture( BlipStoreEntry* bse );
|
||||
std::wstring GetTargetExt( Global::BlipType _type ) const;
|
||||
|
||||
void AppendDimensionToStyle ( std::wstring* style, const PictureDescriptor* pict, bool twistDimensions ) const;
|
||||
void AppendDimensionToStyle ( std::wstring* style, const Spa* pSpa, bool twistDimensions ) const;
|
||||
void AppendDimensionToStyle ( std::wstring* style, const ChildAnchor* anchor, bool twistDimensions ) const;
|
||||
void appendStyleProperty ( std::wstring* b, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
void AppendDimensionToStyle ( std::wstring& style, const PictureDescriptor* pict, bool twistDimensions ) const;
|
||||
void AppendDimensionToStyle ( std::wstring& style, const Spa* pSpa, bool twistDimensions ) const;
|
||||
void AppendDimensionToStyle ( std::wstring& style, const ChildAnchor* anchor, bool twistDimensions ) const;
|
||||
void appendStyleProperty ( std::wstring& style, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
void appendStylePropertyFirst( std::wstring& style, const std::wstring& propName, const std::wstring& propValue ) const;
|
||||
|
||||
std::wstring getTextboxAnchor( unsigned int anchor ) const;
|
||||
|
||||
std::wstring buildStyle ( const Shape* shape, const ChildAnchor* anchor, const std::vector<OptionEntryPtr>& options, int zIndex ) const;
|
||||
void AppendOptionsToStyle ( std::wstring* style, const std::vector<OptionEntryPtr>& options, int zIndex ) const;
|
||||
std::wstring buildStyle ( const Shape* shape, const ChildAnchor* anchor, const std::vector<ODRAW::OfficeArtFOPTEPtr>& options, int zIndex, bool &twistDimensions) const;
|
||||
void AppendOptionsToStyle ( std::wstring& style, const std::vector<ODRAW::OfficeArtFOPTEPtr>& options, int zIndex ) const;
|
||||
|
||||
int UpdateFromGuides(const int val) const;
|
||||
|
||||
@ -100,7 +103,7 @@ namespace DocFileFormat
|
||||
std::wstring getArrowLength ( unsigned int op ) const;
|
||||
std::wstring getArrowWidth ( unsigned int op ) const;
|
||||
std::wstring getFillMethod ( unsigned int p ) const;
|
||||
std::wstring getFillColorString( const unsigned char* p, unsigned int size ) const;
|
||||
std::wstring getFillColorString( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
|
||||
std::wstring getFillType ( unsigned int p ) const;
|
||||
std::wstring getShadowType ( unsigned int p ) const;
|
||||
@ -111,19 +114,19 @@ namespace DocFileFormat
|
||||
void WriteEndShapeNode (const Shape* pShape);
|
||||
std::wstring GetShapeID (const Shape* pShape) const;
|
||||
|
||||
std::wstring GetLineFrom (const ChildAnchor* pAnchor) const;
|
||||
std::wstring GetLineTo (const ChildAnchor* pAnchor) const;
|
||||
std::wstring GetLineFrom (const ChildAnchor* pAnchor, bool twistDimensions) const;
|
||||
std::wstring GetLineTo (const ChildAnchor* pAnchor, bool twistDimensions) const;
|
||||
|
||||
std::wstring GetWrapCoords ( const OptionEntryPtr& pOpt ) const;
|
||||
std::vector<std::wstring> GetTextRectangles ( const OptionEntryPtr& pOpt ) const;
|
||||
std::wstring GetConnectAngles ( const OptionEntryPtr& pOpt ) const;
|
||||
std::wstring GetConnectLocs ( const OptionEntryPtr& pOpt ) const;
|
||||
void GetGuides ( const OptionEntryPtr& pOpt );
|
||||
std::wstring GetWrapCoords ( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
std::vector<std::wstring> GetTextRectangles ( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
std::wstring GetConnectAngles ( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
std::wstring GetConnectLocs ( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
void GetGuides ( const ODRAW::OfficeArtFOPTEPtr& pOpt );
|
||||
|
||||
int m_nAdjValues[8];
|
||||
std::vector<_guides> m_arrGuides;
|
||||
std::vector<ODRAW::MSOSG> m_arrGuides;
|
||||
|
||||
bool m_isInlineShape;
|
||||
mutable bool m_isInlineShape;
|
||||
Spa* m_pSpa;
|
||||
IMapping* m_pCaller;
|
||||
BlipStoreContainer* m_pBlipStore;
|
||||
|
||||
@ -33,6 +33,7 @@
|
||||
#include "VMLShapeTypeMapping.h"
|
||||
#include "OfficeDrawing/Shapetypes/OvalType.h"
|
||||
#include "OfficeDrawing/Shapetypes/WordArtText.h"
|
||||
#include "../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtFOPTE.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
@ -170,13 +171,18 @@ namespace DocFileFormat
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
|
||||
//Lock
|
||||
if ( ( pShape->Lock.fUsefLockAspectRatio ) && ( pShape->Lock.fLockAspectRatio ) )
|
||||
//Lock ???
|
||||
ODRAW::ProtectionBooleanProperties *prot = dynamic_cast<ODRAW::ProtectionBooleanProperties*>(pShape->Lock.get());
|
||||
if ((prot) && (prot->fUsefLockAspectRatio))
|
||||
{
|
||||
appendValueAttribute( _lock, L"aspectratio", L"t" );
|
||||
appendValueAttribute( _lock, L"aspectratio", prot->fLockAspectRatio ? L"t" : L"f" );
|
||||
}
|
||||
else
|
||||
{
|
||||
appendValueAttribute( _lock, L"aspectratio", L"t");
|
||||
}
|
||||
|
||||
if ( _lock->GetAttributeCount() > 1 )
|
||||
if ( _lock->GetAttributeCount() > 0 )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _lock->GetXMLString() );
|
||||
}
|
||||
|
||||
@ -142,10 +142,10 @@ public:
|
||||
if ( stream != NULL && rdBytes != NULL )
|
||||
{
|
||||
stream->seek( position );
|
||||
stream->read( rdBytes, sizeof( unsigned char )*count );
|
||||
count = (unsigned int)stream->read( rdBytes, count );
|
||||
}
|
||||
|
||||
position += sizeof( unsigned char )*count;
|
||||
position += count;
|
||||
|
||||
return rdBytes;
|
||||
}
|
||||
|
||||
@ -33,6 +33,7 @@
|
||||
#include "WordDocument.h"
|
||||
|
||||
#include "../../Common/OfficeFileErrorDescription.h"
|
||||
#include "../../Common/MS-LCID.h"
|
||||
|
||||
#include "../../ASCOfficeXlsFile2/source/XlsFormat/Logic/SummaryInformationStream/SummaryInformation.h"
|
||||
#include "../../ASCOfficeXlsFile2/source/XlsFormat/Binary/CFStream.h"
|
||||
@ -79,13 +80,13 @@ namespace DocFileFormat
|
||||
254, 437,//PC 437
|
||||
255, 850//OEM
|
||||
};
|
||||
WordDocument::WordDocument (const ProgressCallback* pCallFunc, const std::wstring & sTempFolder ) :
|
||||
WordDocument::WordDocument (const ProgressCallback* pCallFunc, const std::wstring & sTempFolder, const int userLCID) :
|
||||
m_PieceTable(NULL), WordDocumentStream(NULL), TableStream(NULL), DataStream(NULL), FIB(NULL),
|
||||
Text(NULL), RevisionAuthorTable(NULL), FontTable(NULL), BookmarkNames(NULL), AutoTextNames(NULL),
|
||||
IndividualFootnotesPlex(NULL), FootnoteReferenceCharactersPlex(NULL), IndividualEndnotesPlex(NULL),
|
||||
EndnoteReferenceCharactersPlex(NULL), FieldsPlex(NULL), FootnoteDocumentFieldsPlex(NULL),
|
||||
EndnoteDocumentFieldsPlex(NULL), HeadersAndFootersDocumentFieldsPlex(NULL), HeaderStoriesPlex(NULL),
|
||||
AnnotationsReferencePlex(NULL), AnnotationsReferenceExPlex(NULL), IndividualCommentsPlex(NULL), TextboxBreakPlex(NULL), TextboxBreakPlexHeader(NULL),
|
||||
EndnoteDocumentFieldsPlex(NULL), HeadersAndFootersDocumentFieldsPlex(NULL), HeaderStoriesPlex(NULL), AnnotationsFieldsPlex(NULL),
|
||||
AnnotationsReferencePlex(NULL), AnnotationsReferencesEx(NULL), IndividualCommentsPlex(NULL), TextboxBreakPlex(NULL), TextboxBreakPlexHeader(NULL),
|
||||
TextboxIndividualPlex(NULL),AssocNames(NULL), BookmarkAnnotNames(NULL), Captions(NULL), AutoCaptions(NULL), ListPlex(NULL),
|
||||
OfficeDrawingPlex(NULL), OfficeDrawingPlexHeader(NULL), SectionPlex(NULL), BookmarkStartPlex(NULL), BookmarkEndPlex(NULL),
|
||||
AutoTextPlex(NULL), AllPapxFkps(NULL), AllChpxFkps(NULL), AllPapx(NULL), AllPapxVector(NULL), AllSepx(NULL), Styles(NULL), listTable(NULL),
|
||||
@ -94,6 +95,7 @@ namespace DocFileFormat
|
||||
{
|
||||
m_pCallFunc = pCallFunc;
|
||||
m_sTempFolder = sTempFolder;
|
||||
m_nUserLCID = userLCID;
|
||||
|
||||
m_pStorage = NULL;
|
||||
officeArtContent = NULL;
|
||||
@ -276,6 +278,17 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
FIB->m_CodePage = nDocumentCodePage;
|
||||
|
||||
if (!bDocumentCodePage && m_nUserLCID > 0)
|
||||
{
|
||||
int user_codepage = msLCID2DefCodePage(m_nUserLCID);
|
||||
|
||||
if (user_codepage > 0)
|
||||
{
|
||||
bDocumentCodePage = true;
|
||||
nDocumentCodePage = user_codepage;
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
try
|
||||
{
|
||||
@ -297,10 +310,11 @@ namespace DocFileFormat
|
||||
BookmarkNames = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfBkmk, FIB->m_FibWord97.lcbSttbfBkmk, nWordVersion);
|
||||
AutoTextNames = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfGlsy, FIB->m_FibWord97.lcbSttbfGlsy, nWordVersion);
|
||||
AssocNames = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfAssoc, FIB->m_FibWord97.lcbSttbfAssoc, nWordVersion);
|
||||
BookmarkAnnotNames = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfAtnBkmk, FIB->m_FibWord97.lcbSttbfAtnBkmk, nWordVersion);
|
||||
Captions = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfCaption, FIB->m_FibWord97.lcbSttbfCaption, nWordVersion);
|
||||
AutoCaptions = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfAutoCaption, FIB->m_FibWord97.lcbSttbfAutoCaption, nWordVersion);
|
||||
|
||||
BookmarkAnnotNames = new StringTable<WideString> (TableStream, FIB->m_FibWord97.fcSttbfAtnBkmk, FIB->m_FibWord97.lcbSttbfAtnBkmk, nWordVersion, true);
|
||||
|
||||
if (m_pCallFunc)
|
||||
{
|
||||
m_pCallFunc->OnProgress (m_pCallFunc->caller, DOC_ONPROGRESSEVENT_ID, 100000);
|
||||
@ -344,16 +358,17 @@ namespace DocFileFormat
|
||||
IndividualCommentsPlex = new Plex<EmptyStructure> (EmptyStructure::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfandTxt, FIB->m_FibWord97.lcbPlcfandTxt, nWordVersion);
|
||||
}
|
||||
|
||||
if (FIB->m_FibWord2002.lcbAtrdExtra > 0)
|
||||
if (FIB->m_FibWord2002.lcbAtrdExtra > 0 && AnnotationsReferencePlex)
|
||||
{
|
||||
AnnotationsReferenceExPlex = new Plex<AnnotationReferenceExDescriptor>(AnnotationReferenceExDescriptor::GetSize(nWordVersion), TableStream, FIB->m_FibWord2002.fcAtrdExtra, FIB->m_FibWord2002.lcbAtrdExtra, nWordVersion);
|
||||
size_t count = AnnotationsReferencePlex->Elements.size();
|
||||
AnnotationsReferencesEx = new AnnotationReferenceExDescriptors(count, TableStream, FIB->m_FibWord2002.fcAtrdExtra, FIB->m_FibWord2002.lcbAtrdExtra);
|
||||
}
|
||||
OfficeDrawingPlex = new Plex<Spa> (Spa::GetSize(nWordVersion), TableStream, FIB->m_FibWord97.fcPlcSpaMom, FIB->m_FibWord97.lcbPlcSpaMom, nWordVersion);
|
||||
OfficeDrawingPlexHeader = new Plex<Spa> (Spa::GetSize(nWordVersion), TableStream, FIB->m_FibWord97.fcPlcSpaHdr, FIB->m_FibWord97.lcbPlcSpaHdr, nWordVersion);
|
||||
|
||||
TextboxIndividualPlex = new Plex<FTXBXS> (FTXBXS::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcftxbxTxt, FIB->m_FibWord97.lcbPlcftxbxTxt, nWordVersion);
|
||||
|
||||
SectionPlex = new Plex<SectionDescriptor> (SectionDescriptor::GetSize(nWordVersion), TableStream, FIB->m_FibWord97.fcPlcfSed, FIB->m_FibWord97.lcbPlcfSed, nWordVersion);
|
||||
SectionPlex = new Plex<SectionDescriptor> (SectionDescriptor::GetSize(nWordVersion), TableStream, FIB->m_FibWord97.fcPlcfSed,FIB->m_FibWord97.lcbPlcfSed, nWordVersion);
|
||||
|
||||
BookmarkStartPlex = new Plex<BookmarkFirst> (BookmarkFirst::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfBkf, FIB->m_FibWord97.lcbPlcfBkf, nWordVersion);
|
||||
BookmarkEndPlex = new Plex<EmptyStructure> (EmptyStructure::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfBkl, FIB->m_FibWord97.lcbPlcfBkl, nWordVersion);
|
||||
@ -361,36 +376,50 @@ namespace DocFileFormat
|
||||
TextboxBreakPlex = new Plex<Tbkd> (Tbkd::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfTxbxBkd, FIB->m_FibWord97.lcbPlcfTxbxBkd, nWordVersion);
|
||||
TextboxBreakPlexHeader = new Plex<Tbkd> (Tbkd::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfTxbxHdrBkd, FIB->m_FibWord97.lcbPlcfTxbxHdrBkd, nWordVersion);
|
||||
|
||||
AnnotStartPlex = new Plex<BookmarkFirst> (BookmarkFirst::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfAtnBkf, FIB->m_FibWord97.lcbPlcfAtnBkf, nWordVersion);
|
||||
AnnotStartPlex = new Plex<BookmarkFirst> (BookmarkFirst::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfAtnBkf, FIB->m_FibWord97.lcbPlcfAtnBkf, nWordVersion);
|
||||
AnnotEndPlex = new Plex<EmptyStructure> (EmptyStructure::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfAtnBkl, FIB->m_FibWord97.lcbPlcfAtnBkl, nWordVersion);
|
||||
|
||||
|
||||
for (size_t i = 0; i < BookmarkStartPlex->Elements.size(); ++i)
|
||||
{
|
||||
BookmarkFirst* pBookmark = static_cast<BookmarkFirst*>(BookmarkStartPlex->Elements[i]);
|
||||
BookmarkFirst* pBookmark = static_cast<BookmarkFirst*>(BookmarkStartPlex->Elements[i]);
|
||||
if (pBookmark)
|
||||
{
|
||||
BookmarkStartEndCPs.push_back(std::make_pair(BookmarkStartPlex->CharacterPositions[i], BookmarkEndPlex->CharacterPositions[pBookmark->GetIndex()]));
|
||||
}
|
||||
}
|
||||
std::vector<unsigned char*> & bookmarks = BookmarkAnnotNames->getDataExtra();
|
||||
|
||||
for (size_t i = 0; AnnotStartPlex && i < AnnotStartPlex->Elements.size(); ++i)
|
||||
{
|
||||
BookmarkFirst* pBookmark = static_cast<BookmarkFirst*>(AnnotStartPlex->Elements[i]);
|
||||
if (pBookmark)
|
||||
{
|
||||
short ind = pBookmark->GetIndex();
|
||||
if (i < AnnotStartPlex->CharacterPositions.size() -1 )
|
||||
|
||||
short bmc = *((short*)bookmarks[i]); //0x0100 always тут
|
||||
_UINT32 lTag = *((_UINT32*)(bookmarks[i] + 2));
|
||||
|
||||
if (i < AnnotStartPlex->CharacterPositions.size() - 1 )
|
||||
{
|
||||
AnnotStartEndCPs.push_back(std::make_pair(AnnotStartPlex->CharacterPositions[i], AnnotEndPlex->CharacterPositions[i + 1]));
|
||||
_annotStartEnd ann;
|
||||
ann.start = AnnotStartPlex->CharacterPositions[i];
|
||||
ann.end = AnnotEndPlex->CharacterPositions[i/* + 1*/];
|
||||
ann.bookmarkId = lTag;
|
||||
|
||||
AnnotStartEndCPs.push_back(ann);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AutoTextPlex = new Plex<EmptyStructure>(EmptyStructure::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfGlsy, FIB->m_FibWord97.lcbPlcfGlsy, nWordVersion);
|
||||
|
||||
FieldsPlex = new Plex<FieldCharacter>(FieldCharacter::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfFldMom, FIB->m_FibWord97.lcbPlcfFldMom, nWordVersion);
|
||||
FootnoteDocumentFieldsPlex = new Plex<FieldCharacter>(FieldCharacter::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfFldFtn, FIB->m_FibWord97.lcbPlcfFldFtn, nWordVersion);
|
||||
EndnoteDocumentFieldsPlex = new Plex<FieldCharacter>(FieldCharacter::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfFldEdn, FIB->m_FibWord97.lcbPlcfFldEdn, nWordVersion);
|
||||
HeadersAndFootersDocumentFieldsPlex = new Plex<FieldCharacter>(FieldCharacter::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfFldHdr, FIB->m_FibWord97.lcbPlcfFldHdr, nWordVersion);
|
||||
AnnotationsFieldsPlex = new Plex<FieldCharacter>(FieldCharacter::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfFldAtn, FIB->m_FibWord97.lcbPlcfFldAtn, nWordVersion);
|
||||
|
||||
ListPlex = new Plex<ListNumCache> (ListNumCache::STRUCTURE_SIZE, TableStream, FIB->m_FibWord97.fcPlcfBteLvc, FIB->m_FibWord97.lcbPlcfBteLvc, nWordVersion);
|
||||
|
||||
if (m_pCallFunc)
|
||||
@ -850,7 +879,6 @@ namespace DocFileFormat
|
||||
|
||||
RELEASEOBJECT(AllSepx);
|
||||
}
|
||||
|
||||
RELEASEOBJECT(Text);
|
||||
RELEASEOBJECT(m_PieceTable);
|
||||
|
||||
@ -872,10 +900,11 @@ namespace DocFileFormat
|
||||
RELEASEOBJECT(FootnoteDocumentFieldsPlex);
|
||||
RELEASEOBJECT(EndnoteDocumentFieldsPlex);
|
||||
RELEASEOBJECT(HeadersAndFootersDocumentFieldsPlex);
|
||||
RELEASEOBJECT(AnnotationsFieldsPlex);
|
||||
RELEASEOBJECT(HeaderStoriesPlex);
|
||||
RELEASEOBJECT(IndividualCommentsPlex);
|
||||
RELEASEOBJECT(AnnotationsReferencePlex);
|
||||
RELEASEOBJECT(AnnotationsReferenceExPlex);
|
||||
RELEASEOBJECT(AnnotationsReferencesEx);
|
||||
RELEASEOBJECT(TextboxBreakPlex);
|
||||
RELEASEOBJECT(TextboxBreakPlexHeader);
|
||||
RELEASEOBJECT(OfficeDrawingPlex);
|
||||
|
||||
@ -88,10 +88,11 @@ namespace DocFileFormat
|
||||
friend class VMLPictureMapping;
|
||||
friend class OpenXmlPackage;
|
||||
friend class TextboxMapping;
|
||||
friend class SettingsMapping;
|
||||
|
||||
public:
|
||||
|
||||
WordDocument (const ProgressCallback* pCallFunc, const std::wstring & tempFolder );
|
||||
WordDocument (const ProgressCallback* pCallFunc, const std::wstring & tempFolder, const int userLCID);
|
||||
virtual ~WordDocument();
|
||||
|
||||
_UINT32 LoadDocument(const std::wstring & fileName, const std::wstring & password);
|
||||
@ -152,6 +153,7 @@ namespace DocFileFormat
|
||||
std::wstring m_sPassword;
|
||||
std::wstring m_sTempFolder;
|
||||
std::wstring m_sTempDecryptFileName;
|
||||
int m_nUserLCID;
|
||||
|
||||
const ProgressCallback* m_pCallFunc;
|
||||
|
||||
@ -170,8 +172,15 @@ namespace DocFileFormat
|
||||
|
||||
std::map<int, int> PictureBulletsCPsMap;
|
||||
|
||||
struct _annotStartEnd
|
||||
{
|
||||
int start;
|
||||
int end;
|
||||
_UINT32 bookmarkId;
|
||||
};
|
||||
std::vector<std::pair<int, int>> BookmarkStartEndCPs;
|
||||
std::vector<std::pair<int, int>> AnnotStartEndCPs;
|
||||
std::vector<_annotStartEnd> AnnotStartEndCPs;
|
||||
std::map<int, int> mapCommentsBookmarks;
|
||||
|
||||
FileInformationBlock * FIB;
|
||||
StyleSheet * Styles; // The style sheet of the document
|
||||
@ -210,7 +219,7 @@ namespace DocFileFormat
|
||||
Plex<Spa> *OfficeDrawingPlex;
|
||||
Plex<Spa> *OfficeDrawingPlexHeader;
|
||||
|
||||
Plex<SectionDescriptor> *SectionPlex; // A Plex containing all section descriptors
|
||||
Plex<SectionDescriptor> *SectionPlex;
|
||||
|
||||
Plex<BookmarkFirst> *BookmarkStartPlex;
|
||||
Plex<EmptyStructure> *BookmarkEndPlex;
|
||||
@ -223,10 +232,11 @@ namespace DocFileFormat
|
||||
Plex<FieldCharacter> *FootnoteDocumentFieldsPlex;
|
||||
Plex<FieldCharacter> *EndnoteDocumentFieldsPlex;
|
||||
Plex<FieldCharacter> *HeadersAndFootersDocumentFieldsPlex;
|
||||
Plex<FieldCharacter> *AnnotationsFieldsPlex;
|
||||
Plex<AnnotationReferenceDescriptor> *AnnotationsReferencePlex;
|
||||
Plex<AnnotationReferenceExDescriptor> *AnnotationsReferenceExPlex;
|
||||
Plex<EmptyStructure> *AutoTextPlex;
|
||||
// Each character position specifies the beginning of a range of text that constitutes the contents of an AutoText item
|
||||
|
||||
AnnotationReferenceExDescriptors *AnnotationsReferencesEx;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@ -32,7 +32,6 @@
|
||||
|
||||
#include "WordprocessingDocument.h"
|
||||
|
||||
#include "../../DesktopEditor/raster/BgraFrame.h"
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../../DesktopEditor/common/SystemUtils.h"
|
||||
|
||||
@ -40,143 +39,10 @@
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Core.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/ContentTypes.h"
|
||||
|
||||
namespace ImageHelper
|
||||
{
|
||||
struct __BITMAPINFOHEADER
|
||||
{
|
||||
_UINT32 biSize;
|
||||
_INT32 biWidth;
|
||||
_INT32 biHeight;
|
||||
_UINT16 biPlanes;
|
||||
_UINT16 biBitCount;
|
||||
_UINT32 biCompression;
|
||||
_UINT32 biSizeImage;
|
||||
_INT32 biXPelsPerMeter;
|
||||
_INT32 biYPelsPerMeter;
|
||||
_UINT32 biClrUsed;
|
||||
_UINT32 biClrImportant;
|
||||
};
|
||||
|
||||
struct __BITMAPCOREHEADER
|
||||
{
|
||||
_UINT32 bcSize; /* used to get to color table */
|
||||
_UINT16 bcWidth;
|
||||
_UINT16 bcHeight;
|
||||
_UINT16 bcPlanes;
|
||||
_UINT16 bcBitCount;
|
||||
};
|
||||
|
||||
inline Global::_BlipType SaveImageToFileFromDIB(unsigned char* data, int size, const std::wstring& file_name)//without ext
|
||||
{
|
||||
Global::_BlipType result = Global::msoblipERROR;
|
||||
|
||||
CBgraFrame oFrame;
|
||||
int offset = 0, biSizeImage = 0;
|
||||
|
||||
__BITMAPINFOHEADER * header = (__BITMAPINFOHEADER*)data;
|
||||
if (!header) return result;
|
||||
|
||||
result = Global::msoblipDIB;
|
||||
|
||||
if (header->biWidth > 100000 || header->biHeight > 100000 || header->biSize != 40)
|
||||
{
|
||||
__BITMAPCOREHEADER * header_core = (__BITMAPCOREHEADER *)data;
|
||||
if (header_core->bcSize != 12)
|
||||
{
|
||||
result = Global::msoblipWMF;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset = 12; //sizeof(BITMAPCOREHEADER)
|
||||
|
||||
oFrame.put_Height (header_core->bcHeight );
|
||||
oFrame.put_Width (header_core->bcWidth );
|
||||
|
||||
int sz_bitmap = header_core->bcHeight * header_core->bcWidth * header_core->bcBitCount/ 8;
|
||||
|
||||
//if (header_core->bcWidth % 2 != 0 && sz_bitmap < size - offset)
|
||||
// header_core->bcWidth++;
|
||||
///???? todooo непонятно .. в biff5 нужно флипать картинку, в biff8 не ясно ( -
|
||||
|
||||
int stride = -(size - offset) / header_core->bcHeight;
|
||||
oFrame.put_Stride (stride/*header_core->bcBitCount * header_core->bcWidth /8 */);
|
||||
|
||||
biSizeImage = size - offset;
|
||||
|
||||
if (-stride >= header_core->bcWidth && header_core->bcBitCount >=24 )
|
||||
{
|
||||
result = Global::msoblipPNG;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
offset = 40; //sizeof(BITMAPINFOHEADER)
|
||||
|
||||
oFrame.put_Height (header->biHeight );
|
||||
oFrame.put_Width (header->biWidth );
|
||||
|
||||
int sz_bitmap = header->biHeight * header->biWidth * header->biBitCount/ 8;
|
||||
|
||||
//if (header->biWidth % 2 != 0 && sz_bitmap < size -offset)
|
||||
// header->biWidth++;
|
||||
|
||||
int stride = -(size - offset) / header->biHeight;
|
||||
|
||||
if (-stride >= header->biWidth && header->biBitCount >= 24)
|
||||
{
|
||||
result = Global::msoblipPNG;
|
||||
}
|
||||
oFrame.put_Stride (stride/*header->biBitCount * header->biWidth /8*/);
|
||||
|
||||
biSizeImage = header->biSizeImage > 0 ? header->biSizeImage : (size - offset);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------
|
||||
|
||||
if (result == Global::msoblipPNG)
|
||||
{
|
||||
oFrame.put_Data((unsigned char*)data + offset);
|
||||
|
||||
if (!oFrame.SaveFile(file_name + L".png", 4/*CXIMAGE_FORMAT_PNG*/))
|
||||
result = Global::msoblipERROR;
|
||||
|
||||
oFrame.put_Data(NULL);
|
||||
}
|
||||
else if (result == Global::msoblipWMF)
|
||||
{
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name + L".wmf"))
|
||||
{
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
}
|
||||
}
|
||||
else if (biSizeImage > 0)
|
||||
{
|
||||
NSFile::CFileBinary file;
|
||||
if (file.CreateFileW(file_name + L".bmp"))
|
||||
{
|
||||
_UINT16 vtType = 0x4D42; file.WriteFile((BYTE*)&vtType, 2);
|
||||
_UINT32 dwLen = biSizeImage; file.WriteFile((BYTE*)&dwLen, 4);
|
||||
_UINT32 dwRes = 0; file.WriteFile((BYTE*)&dwRes, 4);
|
||||
_UINT32 dwOffset = 2; file.WriteFile((BYTE*)&dwOffset, 4);
|
||||
|
||||
file.WriteFile((BYTE*)data, size);
|
||||
file.CloseFile();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
WordprocessingDocument::WordprocessingDocument(const std::wstring & _pathOutput, const WordDocument* _docFile) :
|
||||
OpenXmlPackage( _docFile ),
|
||||
FontTableXML( L"" ), DocumentXML( L"" ),
|
||||
StyleSheetXML( L"" ), FootnotesXML ( L"" ), NumberingXML( L"" ),
|
||||
CommentsXML( L"" ), SettingsXML( L"" ), CommandTableXML ( L"" )
|
||||
OpenXmlPackage( _docFile )
|
||||
{
|
||||
m_strOutputPath = _pathOutput;
|
||||
}
|
||||
@ -262,6 +128,7 @@ namespace DocFileFormat
|
||||
SaveToFile(pathWord, std::wstring( L"endnotes.xml" ), EndnotesXML );
|
||||
SaveToFile(pathWord, std::wstring( L"numbering.xml" ), NumberingXML );
|
||||
SaveToFile(pathWord, std::wstring( L"comments.xml" ), CommentsXML );
|
||||
SaveToFile(pathWord, std::wstring( L"commentsExtended.xml"),CommentsExtendedXML );
|
||||
SaveToFile(pathWord, std::wstring( L"settings.xml" ), SettingsXML );
|
||||
SaveToFile(pathWord, std::wstring( L"customizations.xml" ), CommandTableXML );
|
||||
|
||||
@ -275,24 +142,7 @@ namespace DocFileFormat
|
||||
|
||||
for (std::list<ImageFileStructure>::iterator iter = ImagesList.begin(); iter != ImagesList.end(); ++iter)
|
||||
{
|
||||
unsigned char* bytes = NULL;
|
||||
bytes = new unsigned char[iter->data.size()];
|
||||
if (bytes)
|
||||
{
|
||||
copy(iter->data.begin(), iter->data.end(), bytes);
|
||||
|
||||
if (Global::msoblipDIB == iter->blipType)
|
||||
{//user_manual_v52.doc
|
||||
std::wstring file_name = pathMedia + FILE_SEPARATOR_STR + L"image" + FormatUtils::IntToWideString(i++);
|
||||
iter->blipType = ImageHelper::SaveImageToFileFromDIB(bytes, iter->data.size(), file_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
SaveToFile(pathMedia, std::wstring(L"image" ) + FormatUtils::IntToWideString(i++) + iter->ext, (void*)bytes, (unsigned int)iter->data.size());
|
||||
}
|
||||
|
||||
RELEASEARRAYOBJECTS(bytes);
|
||||
}
|
||||
SaveToFile(pathMedia, std::wstring(L"image" ) + FormatUtils::IntToWideString(i++) + iter->ext, (void*)iter->data.get(), iter->size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -65,6 +65,7 @@ namespace DocFileFormat
|
||||
std::wstring EndnotesXML;
|
||||
std::wstring NumberingXML;
|
||||
std::wstring CommentsXML;
|
||||
std::wstring CommentsExtendedXML;
|
||||
std::wstring SettingsXML;
|
||||
std::wstring CommandTableXML;
|
||||
|
||||
|
||||
@ -39,7 +39,9 @@ _UINT32 COfficeDocFile::LoadFromFile(const std::wstring & docFile, const std::w
|
||||
_UINT32 hr = 0;
|
||||
|
||||
DocFileFormat::Converter docToDocx;
|
||||
|
||||
docToDocx.m_sTempFolder = m_sTempFolder;
|
||||
docToDocx.m_nUserLCID = m_nUserLCID;
|
||||
|
||||
hr= docToDocx.LoadAndConvert(docFile, docxDirectory, password, ffCallBack, bMacros);
|
||||
|
||||
|
||||
@ -43,15 +43,11 @@ struct ProgressCallback;
|
||||
class COfficeDocFile
|
||||
{
|
||||
public:
|
||||
COfficeDocFile()
|
||||
{
|
||||
}
|
||||
COfficeDocFile() : m_nUserLCID(-1) {}
|
||||
virtual ~COfficeDocFile() {}
|
||||
|
||||
virtual ~COfficeDocFile()
|
||||
{
|
||||
}
|
||||
|
||||
std::wstring m_sTempFolder;
|
||||
std::wstring m_sTempFolder;
|
||||
int m_nUserLCID;
|
||||
|
||||
_UINT32 LoadFromFile(const std::wstring & sSrcFileName, const std::wstring & sDstFileName, const std::wstring & password, bool &bMacros, ProgressCallback *ffCallBack = NULL);
|
||||
_UINT32 SaveToFile(const std::wstring & sDstFileName, const std::wstring & sSrcFileName, ProgressCallback *ffCallBack = NULL);
|
||||
|
||||
@ -208,28 +208,19 @@ HEADERS += \
|
||||
../../DocDocxConverter/OfficeDrawing/ChildAnchor.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ClientAnchor.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ClientData.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DiagramBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingGroup.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingGroupRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/FillStyleBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GeometryBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GeometryTextBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GroupContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GroupShapeBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GroupShapeRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/LineStyleBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/MetafilePictBlip.h \
|
||||
../../DocDocxConverter/OfficeDrawing/OfficeArtClientTextbox.h \
|
||||
../../DocDocxConverter/OfficeDrawing/PathParser.h \
|
||||
../../DocDocxConverter/OfficeDrawing/PathSegment.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ProtectionBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Record.h \
|
||||
../../DocDocxConverter/OfficeDrawing/RecordFactory.h \
|
||||
../../DocDocxConverter/OfficeDrawing/RegularContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShadowStyleBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/threeDBooleanProperties.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shape.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeOptions.h \
|
||||
|
||||
@ -29,9 +29,6 @@
|
||||
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 */; };
|
||||
6967B4D71E27C52700A129E2 /* Record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4471E27C52700A129E2 /* Record.cpp */; };
|
||||
6967B4D81E27C52700A129E2 /* RecordFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4491E27C52700A129E2 /* RecordFactory.cpp */; };
|
||||
6967B4D91E27C52700A129E2 /* ShapeTypeFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4511E27C52700A129E2 /* ShapeTypeFactory.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 */; };
|
||||
@ -60,6 +57,9 @@
|
||||
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 */
|
||||
@ -166,79 +166,6 @@
|
||||
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>"; };
|
||||
6967B4301E27C52700A129E2 /* BitmapBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitmapBlip.h; sourceTree = "<group>"; };
|
||||
6967B4311E27C52700A129E2 /* BlipStoreContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreContainer.h; sourceTree = "<group>"; };
|
||||
6967B4321E27C52700A129E2 /* BlipStoreEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreEntry.h; sourceTree = "<group>"; };
|
||||
6967B4331E27C52700A129E2 /* ChildAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildAnchor.h; sourceTree = "<group>"; };
|
||||
6967B4341E27C52700A129E2 /* ClientAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientAnchor.h; sourceTree = "<group>"; };
|
||||
6967B4351E27C52700A129E2 /* ClientData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientData.h; sourceTree = "<group>"; };
|
||||
6967B4361E27C52700A129E2 /* DiagramBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B4371E27C52700A129E2 /* DrawingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingContainer.h; sourceTree = "<group>"; };
|
||||
6967B4381E27C52700A129E2 /* DrawingGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroup.h; sourceTree = "<group>"; };
|
||||
6967B4391E27C52700A129E2 /* DrawingGroupRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroupRecord.h; sourceTree = "<group>"; };
|
||||
6967B43A1E27C52700A129E2 /* DrawingRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingRecord.h; sourceTree = "<group>"; };
|
||||
6967B43B1E27C52700A129E2 /* FillStyleBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FillStyleBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B43C1E27C52700A129E2 /* GeometryBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeometryBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B43D1E27C52700A129E2 /* GeometryTextBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeometryTextBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B43E1E27C52700A129E2 /* GroupContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupContainer.h; sourceTree = "<group>"; };
|
||||
6967B43F1E27C52700A129E2 /* GroupShapeBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupShapeBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B4401E27C52700A129E2 /* GroupShapeRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupShapeRecord.h; sourceTree = "<group>"; };
|
||||
6967B4411E27C52700A129E2 /* LineStyleBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineStyleBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B4421E27C52700A129E2 /* MetafilePictBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetafilePictBlip.h; sourceTree = "<group>"; };
|
||||
6967B4431E27C52700A129E2 /* OfficeArtClientTextbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtClientTextbox.h; sourceTree = "<group>"; };
|
||||
6967B4441E27C52700A129E2 /* PathParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PathParser.h; sourceTree = "<group>"; };
|
||||
6967B4451E27C52700A129E2 /* PathSegment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PathSegment.h; sourceTree = "<group>"; };
|
||||
6967B4461E27C52700A129E2 /* ProtectionBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProtectionBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B4471E27C52700A129E2 /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
|
||||
6967B4481E27C52700A129E2 /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
|
||||
6967B4491E27C52700A129E2 /* RecordFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RecordFactory.cpp; sourceTree = "<group>"; };
|
||||
6967B44A1E27C52700A129E2 /* RecordFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordFactory.h; sourceTree = "<group>"; };
|
||||
6967B44B1E27C52700A129E2 /* RegularContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegularContainer.h; sourceTree = "<group>"; };
|
||||
6967B44C1E27C52700A129E2 /* ShadowStyleBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadowStyleBooleanProperties.h; sourceTree = "<group>"; };
|
||||
6967B44D1E27C52700A129E2 /* Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shape.h; sourceTree = "<group>"; };
|
||||
6967B44E1E27C52700A129E2 /* ShapeContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeContainer.h; sourceTree = "<group>"; };
|
||||
6967B44F1E27C52700A129E2 /* ShapeOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeOptions.h; sourceTree = "<group>"; };
|
||||
6967B4501E27C52700A129E2 /* ShapeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeType.h; sourceTree = "<group>"; };
|
||||
6967B4511E27C52700A129E2 /* ShapeTypeFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeTypeFactory.cpp; sourceTree = "<group>"; };
|
||||
6967B4521E27C52700A129E2 /* ShapeTypeFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeTypeFactory.h; sourceTree = "<group>"; };
|
||||
6967B4541E27C52700A129E2 /* ArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArcType.h; sourceTree = "<group>"; };
|
||||
6967B4551E27C52700A129E2 /* ArrowType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArrowType.h; sourceTree = "<group>"; };
|
||||
6967B4561E27C52700A129E2 /* BevelType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BevelType.h; sourceTree = "<group>"; };
|
||||
6967B4571E27C52700A129E2 /* BlockArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockArcType.h; sourceTree = "<group>"; };
|
||||
6967B4581E27C52700A129E2 /* BracketsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BracketsType.h; sourceTree = "<group>"; };
|
||||
6967B4591E27C52700A129E2 /* CalloutsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalloutsType.h; sourceTree = "<group>"; };
|
||||
6967B45A1E27C52700A129E2 /* CanType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanType.h; sourceTree = "<group>"; };
|
||||
6967B45B1E27C52700A129E2 /* Connector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Connector.h; sourceTree = "<group>"; };
|
||||
6967B45C1E27C52700A129E2 /* CubeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CubeType.h; sourceTree = "<group>"; };
|
||||
6967B45D1E27C52700A129E2 /* DiamondType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiamondType.h; sourceTree = "<group>"; };
|
||||
6967B45E1E27C52700A129E2 /* DonutType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DonutType.h; sourceTree = "<group>"; };
|
||||
6967B45F1E27C52700A129E2 /* FlowChartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlowChartType.h; sourceTree = "<group>"; };
|
||||
6967B4601E27C52700A129E2 /* FoldedCornerlType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoldedCornerlType.h; sourceTree = "<group>"; };
|
||||
6967B4611E27C52700A129E2 /* HeartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeartType.h; sourceTree = "<group>"; };
|
||||
6967B4621E27C52700A129E2 /* HexagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexagonType.h; sourceTree = "<group>"; };
|
||||
6967B4631E27C52700A129E2 /* IsoscelesTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IsoscelesTriangleType.h; sourceTree = "<group>"; };
|
||||
6967B4641E27C52700A129E2 /* LightningBoltType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightningBoltType.h; sourceTree = "<group>"; };
|
||||
6967B4651E27C52700A129E2 /* LineType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineType.h; sourceTree = "<group>"; };
|
||||
6967B4661E27C52700A129E2 /* MoonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoonType.h; sourceTree = "<group>"; };
|
||||
6967B4671E27C52700A129E2 /* NoSmokingType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoSmokingType.h; sourceTree = "<group>"; };
|
||||
6967B4681E27C52700A129E2 /* OctagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OctagonType.h; sourceTree = "<group>"; };
|
||||
6967B4691E27C52700A129E2 /* OvalType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OvalType.h; sourceTree = "<group>"; };
|
||||
6967B46A1E27C52700A129E2 /* ParallelogramType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParallelogramType.h; sourceTree = "<group>"; };
|
||||
6967B46B1E27C52700A129E2 /* PentagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PentagonType.h; sourceTree = "<group>"; };
|
||||
6967B46C1E27C52700A129E2 /* PictureFrameType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureFrameType.h; sourceTree = "<group>"; };
|
||||
6967B46D1E27C52700A129E2 /* PlaqueType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaqueType.h; sourceTree = "<group>"; };
|
||||
6967B46E1E27C52700A129E2 /* PlusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlusType.h; sourceTree = "<group>"; };
|
||||
6967B46F1E27C52700A129E2 /* RectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RectangleType.h; sourceTree = "<group>"; };
|
||||
6967B4701E27C52700A129E2 /* RightTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RightTriangleType.h; sourceTree = "<group>"; };
|
||||
6967B4711E27C52700A129E2 /* RoundedRectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoundedRectangleType.h; sourceTree = "<group>"; };
|
||||
6967B4721E27C52700A129E2 /* SmileyFaceType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmileyFaceType.h; sourceTree = "<group>"; };
|
||||
6967B4731E27C52700A129E2 /* StarType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StarType.h; sourceTree = "<group>"; };
|
||||
6967B4741E27C52700A129E2 /* SunType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SunType.h; sourceTree = "<group>"; };
|
||||
6967B4751E27C52700A129E2 /* TextboxType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextboxType.h; sourceTree = "<group>"; };
|
||||
6967B4761E27C52700A129E2 /* TrapezoidType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrapezoidType.h; sourceTree = "<group>"; };
|
||||
6967B4771E27C52700A129E2 /* WordArtText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordArtText.h; sourceTree = "<group>"; };
|
||||
6967B4781E27C52700A129E2 /* SplitMenuColorContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplitMenuColorContainer.h; sourceTree = "<group>"; };
|
||||
6967B4791E27C52700A129E2 /* UnknownRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownRecord.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>"; };
|
||||
@ -312,6 +239,71 @@
|
||||
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 */
|
||||
@ -541,87 +533,79 @@
|
||||
6967B42F1E27C52700A129E2 /* OfficeDrawing */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B4301E27C52700A129E2 /* BitmapBlip.h */,
|
||||
6967B4311E27C52700A129E2 /* BlipStoreContainer.h */,
|
||||
6967B4321E27C52700A129E2 /* BlipStoreEntry.h */,
|
||||
6967B4331E27C52700A129E2 /* ChildAnchor.h */,
|
||||
6967B4341E27C52700A129E2 /* ClientAnchor.h */,
|
||||
6967B4351E27C52700A129E2 /* ClientData.h */,
|
||||
6967B4361E27C52700A129E2 /* DiagramBooleanProperties.h */,
|
||||
6967B4371E27C52700A129E2 /* DrawingContainer.h */,
|
||||
6967B4381E27C52700A129E2 /* DrawingGroup.h */,
|
||||
6967B4391E27C52700A129E2 /* DrawingGroupRecord.h */,
|
||||
6967B43A1E27C52700A129E2 /* DrawingRecord.h */,
|
||||
6967B43B1E27C52700A129E2 /* FillStyleBooleanProperties.h */,
|
||||
6967B43C1E27C52700A129E2 /* GeometryBooleanProperties.h */,
|
||||
6967B43D1E27C52700A129E2 /* GeometryTextBooleanProperties.h */,
|
||||
6967B43E1E27C52700A129E2 /* GroupContainer.h */,
|
||||
6967B43F1E27C52700A129E2 /* GroupShapeBooleanProperties.h */,
|
||||
6967B4401E27C52700A129E2 /* GroupShapeRecord.h */,
|
||||
6967B4411E27C52700A129E2 /* LineStyleBooleanProperties.h */,
|
||||
6967B4421E27C52700A129E2 /* MetafilePictBlip.h */,
|
||||
6967B4431E27C52700A129E2 /* OfficeArtClientTextbox.h */,
|
||||
6967B4441E27C52700A129E2 /* PathParser.h */,
|
||||
6967B4451E27C52700A129E2 /* PathSegment.h */,
|
||||
6967B4461E27C52700A129E2 /* ProtectionBooleanProperties.h */,
|
||||
6967B4471E27C52700A129E2 /* Record.cpp */,
|
||||
6967B4481E27C52700A129E2 /* Record.h */,
|
||||
6967B4491E27C52700A129E2 /* RecordFactory.cpp */,
|
||||
6967B44A1E27C52700A129E2 /* RecordFactory.h */,
|
||||
6967B44B1E27C52700A129E2 /* RegularContainer.h */,
|
||||
6967B44C1E27C52700A129E2 /* ShadowStyleBooleanProperties.h */,
|
||||
6967B44D1E27C52700A129E2 /* Shape.h */,
|
||||
6967B44E1E27C52700A129E2 /* ShapeContainer.h */,
|
||||
6967B44F1E27C52700A129E2 /* ShapeOptions.h */,
|
||||
6967B4501E27C52700A129E2 /* ShapeType.h */,
|
||||
6967B4511E27C52700A129E2 /* ShapeTypeFactory.cpp */,
|
||||
6967B4521E27C52700A129E2 /* ShapeTypeFactory.h */,
|
||||
6967B4531E27C52700A129E2 /* Shapetypes */,
|
||||
6967B4781E27C52700A129E2 /* SplitMenuColorContainer.h */,
|
||||
6967B4791E27C52700A129E2 /* UnknownRecord.h */,
|
||||
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>";
|
||||
};
|
||||
6967B4531E27C52700A129E2 /* Shapetypes */ = {
|
||||
8A1BC11F22DF34910084799E /* Shapetypes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B4541E27C52700A129E2 /* ArcType.h */,
|
||||
6967B4551E27C52700A129E2 /* ArrowType.h */,
|
||||
6967B4561E27C52700A129E2 /* BevelType.h */,
|
||||
6967B4571E27C52700A129E2 /* BlockArcType.h */,
|
||||
6967B4581E27C52700A129E2 /* BracketsType.h */,
|
||||
6967B4591E27C52700A129E2 /* CalloutsType.h */,
|
||||
6967B45A1E27C52700A129E2 /* CanType.h */,
|
||||
6967B45B1E27C52700A129E2 /* Connector.h */,
|
||||
6967B45C1E27C52700A129E2 /* CubeType.h */,
|
||||
6967B45D1E27C52700A129E2 /* DiamondType.h */,
|
||||
6967B45E1E27C52700A129E2 /* DonutType.h */,
|
||||
6967B45F1E27C52700A129E2 /* FlowChartType.h */,
|
||||
6967B4601E27C52700A129E2 /* FoldedCornerlType.h */,
|
||||
6967B4611E27C52700A129E2 /* HeartType.h */,
|
||||
6967B4621E27C52700A129E2 /* HexagonType.h */,
|
||||
6967B4631E27C52700A129E2 /* IsoscelesTriangleType.h */,
|
||||
6967B4641E27C52700A129E2 /* LightningBoltType.h */,
|
||||
6967B4651E27C52700A129E2 /* LineType.h */,
|
||||
6967B4661E27C52700A129E2 /* MoonType.h */,
|
||||
6967B4671E27C52700A129E2 /* NoSmokingType.h */,
|
||||
6967B4681E27C52700A129E2 /* OctagonType.h */,
|
||||
6967B4691E27C52700A129E2 /* OvalType.h */,
|
||||
6967B46A1E27C52700A129E2 /* ParallelogramType.h */,
|
||||
6967B46B1E27C52700A129E2 /* PentagonType.h */,
|
||||
6967B46C1E27C52700A129E2 /* PictureFrameType.h */,
|
||||
6967B46D1E27C52700A129E2 /* PlaqueType.h */,
|
||||
6967B46E1E27C52700A129E2 /* PlusType.h */,
|
||||
6967B46F1E27C52700A129E2 /* RectangleType.h */,
|
||||
6967B4701E27C52700A129E2 /* RightTriangleType.h */,
|
||||
6967B4711E27C52700A129E2 /* RoundedRectangleType.h */,
|
||||
6967B4721E27C52700A129E2 /* SmileyFaceType.h */,
|
||||
6967B4731E27C52700A129E2 /* StarType.h */,
|
||||
6967B4741E27C52700A129E2 /* SunType.h */,
|
||||
6967B4751E27C52700A129E2 /* TextboxType.h */,
|
||||
6967B4761E27C52700A129E2 /* TrapezoidType.h */,
|
||||
6967B4771E27C52700A129E2 /* WordArtText.h */,
|
||||
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>";
|
||||
@ -667,6 +651,7 @@
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
);
|
||||
mainGroup = 6967B2E21E27C23A00A129E2;
|
||||
@ -687,7 +672,6 @@
|
||||
6967B4D11E27C52700A129E2 /* LanguageIdMapping.cpp in Sources */,
|
||||
6967B4E61E27C52700A129E2 /* SinglePropertyModifier.cpp in Sources */,
|
||||
6967B4C91E27C52700A129E2 /* EncryptionHeader.cpp in Sources */,
|
||||
6967B4D71E27C52700A129E2 /* Record.cpp in Sources */,
|
||||
6967B4ED1E27C52700A129E2 /* TableMapping.cpp in Sources */,
|
||||
6967B4F31E27C52700A129E2 /* VMLShapeTypeMapping.cpp in Sources */,
|
||||
6967B4E31E27C52700A129E2 /* RevisionData.cpp in Sources */,
|
||||
@ -699,18 +683,18 @@
|
||||
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 */,
|
||||
6967B4D81E27C52700A129E2 /* RecordFactory.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 */,
|
||||
6967B4D91E27C52700A129E2 /* ShapeTypeFactory.cpp in Sources */,
|
||||
6967B4D01E27C52700A129E2 /* HeaderMapping.cpp in Sources */,
|
||||
6967B4DA1E27C52700A129E2 /* OleObject.cpp in Sources */,
|
||||
6967B4D61E27C52700A129E2 /* NumberingMapping.cpp in Sources */,
|
||||
@ -724,6 +708,7 @@
|
||||
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 */,
|
||||
@ -835,16 +820,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
UNICODE,
|
||||
_UNICODE,
|
||||
_USE_XMLLITE_READER_,
|
||||
USE_LITE_READER,
|
||||
USE_ATL_CSTRING,
|
||||
_USE_LIBXML2_READER_,
|
||||
LIBXML_READER_ENABLED,
|
||||
_IOS,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
@ -866,16 +841,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
UNICODE,
|
||||
_UNICODE,
|
||||
_USE_XMLLITE_READER_,
|
||||
USE_LITE_READER,
|
||||
USE_ATL_CSTRING,
|
||||
_USE_LIBXML2_READER_,
|
||||
LIBXML_READER_ENABLED,
|
||||
_IOS,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
@ -26,24 +26,24 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
@ -63,12 +63,13 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
|
||||
<_ProjectFileVersion>14.0.23107.0</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<IncludePath>%(AdditionalIncludeDirectories);..\..\..\Common\DocxFormat\Source\XML\libxml2\XML\include\libxml;..\..\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath>D:\_Work\core\Common\3dParty\boost\build\win_32\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>D:\_Work\core\Common\3dParty\boost\build\win_32\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
@ -77,7 +78,6 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<IncludePath>%(AdditionalIncludeDirectories);..\..\..\Common\DocxFormat\Source\XML\libxml2\XML\include\libxml;..\..\..\Common\DocxFormat\Source\XML\libxml2\XML\include;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
@ -86,13 +86,15 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>..\..\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4005;4311;4312;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -101,7 +103,7 @@
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
@ -112,7 +114,7 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
@ -140,9 +142,6 @@
|
||||
<ClInclude Include="..\..\Common\IOperand.h" />
|
||||
<ClInclude Include="..\..\Common\IVirtualConstructor.h" />
|
||||
<ClInclude Include="..\..\Common\LanguageCodes.h" />
|
||||
<ClInclude Include="..\..\Common\MD4\global.h" />
|
||||
<ClInclude Include="..\..\Common\MD4\md4.h" />
|
||||
<ClInclude Include="..\..\Common\MD4\md4c.h" />
|
||||
<ClInclude Include="..\..\Common\Singleton.h" />
|
||||
<ClInclude Include="..\..\Common\SPRMCodes.h" />
|
||||
<ClInclude Include="..\..\Common\TargetOptions.h" />
|
||||
@ -168,7 +167,9 @@
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentTypographyInfo.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingObjectGrid.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingPrimitives.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EmuValue.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EncryptionHeader.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnoteDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnotesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FieldCharacter.h" />
|
||||
@ -182,6 +183,8 @@
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPage.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldDataMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Global.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderAndFooterTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderMapping.h" />
|
||||
@ -207,27 +210,17 @@
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ChildAnchor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientAnchor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DiagramBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroup.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroupRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\FillStyleBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GeometryBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GeometryTextBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupShapeBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupShapeRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\LineStyleBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\MetafilePictBlip.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\OfficeArtClientTextbox.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\PathParser.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\PathSegment.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ProtectionBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Record.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RegularContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShadowStyleBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shape.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeOptions.h" />
|
||||
@ -270,6 +263,7 @@
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TrapezoidType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\WordArtText.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\SplitMenuColorContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\threeDBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\UnknownRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObject.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObjectMapping.h" />
|
||||
@ -320,17 +314,19 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\Common\3dParty\pole\pole.cpp" />
|
||||
<ClCompile Include="..\..\Common\MD4\md4c.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\CharacterPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\Converter.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentProperties.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DrawingPrimitives.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\EncryptionHeader.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontFamilyName.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontTableMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FooterMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormFieldData.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderAndFooterTable.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\LanguageIdMapping.cpp" />
|
||||
@ -342,6 +338,7 @@
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\Record.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OleObject.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OpenXmlPackage.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphHeight.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.cpp" />
|
||||
@ -354,6 +351,7 @@
|
||||
<ClCompile Include="..\..\DocDocxConverter\SectionPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\SettingsMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\SinglePropertyModifier.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\Spa.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheet.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetDescription.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetInformation.cpp" />
|
||||
@ -363,31 +361,15 @@
|
||||
<ClCompile Include="..\..\DocDocxConverter\TablePropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableRowPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TextboxMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLPictureMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLPictureMapping.cpp">
|
||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeTypeMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordDocument.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordprocessingDocument.cpp" />
|
||||
<ClCompile Include="..\DocFormatLib.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\ASCOfficeUtils\ASCOfficeUtilsLib\Win\ASCOfficeUtilsLib.vcxproj">
|
||||
<Project>{3f3cb5a1-bb01-49c1-9342-4a69e30f9ef6}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\Common\DocxFormat\Projects\DocxFormat2005.vcxproj">
|
||||
<Project>{a100103a-353e-45e8-a9b8-90b87cc5c0b0}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\Common\DocxFormat\Source\XML\libxml2\win_build\libxml2.vcxproj">
|
||||
<Project>{21663823-de45-479b-91d0-b4fef4916ef0}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\DesktopEditor\graphics\graphics_vs2005.vcxproj">
|
||||
<Project>{37ca072a-5bde-498b-b3a7-5e404f5f9bf2}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
||||
713
ASCOfficeDocFile/DocFormatLib/Win32/DocFormatLib.vcxproj.filters
Normal file
713
ASCOfficeDocFile/DocFormatLib/Win32/DocFormatLib.vcxproj.filters
Normal file
@ -0,0 +1,713 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Common">
|
||||
<UniqueIdentifier>{b71e7e8a-fe3b-470f-aecc-cd46ae338e31}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Common\pole">
|
||||
<UniqueIdentifier>{08f46501-29da-4691-b19d-2f230e536ee2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx">
|
||||
<UniqueIdentifier>{0c04a0b9-7265-4e3e-af45-0a86e4d7c49c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\OfficeDrawing">
|
||||
<UniqueIdentifier>{bbeff7b2-a7b0-4cab-85a4-893aebfce8a8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\OfficeDrawing\Shapetypes">
|
||||
<UniqueIdentifier>{80f3b70c-514b-444d-8a10-21c4ccbea4a1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\Mapping">
|
||||
<UniqueIdentifier>{6640ac5f-d20f-4e15-9a1c-230e6d19266e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\Common\Aggregat.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\Callback.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\FormatUtils.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\IOperand.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\IVirtualConstructor.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\LanguageCodes.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\Singleton.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\SPRMCodes.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\TargetOptions.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\TextMark.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\utf8.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\XmlTools.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\Common\3dParty\pole\pole.h">
|
||||
<Filter>Common\pole</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationOwnerList.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AutoSummaryInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\BookmarkFirst.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\BorderCode.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ByteStructure.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterRange.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ContentTypes.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ConversionContext.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Converter.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DateAndTime.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentProperties.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentTypographyInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingObjectGrid.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingPrimitives.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EmuValue.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EncryptionHeader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnoteDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FieldCharacter.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FileInformationBlock.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FixedPointNumber.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontFamilyName.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnoteDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPage.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Global.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderAndFooterTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IBinaryReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IMapping.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IVisitable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageId.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LineSpacingDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverride.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideLevel.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListLevel.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\MemoryStream.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeArtContent.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObject.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OpenXmlPackage.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphHeight.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PictureDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Plex.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\RevisionData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\RGBColor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ShadingDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SinglePropertyModifier.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Spa.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SprmTDefTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StringTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StructuredStorageReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheet.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetDescription.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetInformation.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TabDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Tbkd.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TwipsValue.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VirtualStreamReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WideString.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordDocument.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordprocessingDocument.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BitmapBlip.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreEntry.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ChildAnchor.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientAnchor.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientData.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroup.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroupRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupShapeRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\MetafilePictBlip.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\OfficeArtClientTextbox.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Record.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RegularContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shape.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeOptions.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\SplitMenuColorContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\threeDBooleanProperties.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\UnknownRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArcType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArrowType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BevelType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BlockArcType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BracketsType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CalloutsType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CanType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\Connector.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CubeType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DiamondType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DonutType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FlowChartType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FoldedCornerlType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HeartType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HexagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\IsoscelesTriangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LightningBoltType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LineType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\MoonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\NoSmokingType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OctagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OvalType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ParallelogramType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PentagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PictureFrameType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlaqueType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlusType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RectangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RightTriangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RoundedRectangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SmileyFaceType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\StarType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SunType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TextboxType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TrapezoidType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\WordArtText.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AbstractOpenXmlMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CommentsMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnotesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontTableMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FooterMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnotesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldDataMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageIdMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\MainDocumentMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\NumberingMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObjectMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SettingsMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableCellPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableRowPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TextboxMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLPictureMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeTypeMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\DocFormatLib.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\Common\3dParty\pole\pole.cpp">
|
||||
<Filter>Common\pole</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\Converter.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentProperties.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DrawingPrimitives.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\EncryptionHeader.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontFamilyName.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormFieldData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderAndFooterTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListLevel.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OleObject.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OpenXmlPackage.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphHeight.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PictureDescriptor.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PieceTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertyExceptions.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\RevisionData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SinglePropertyModifier.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\Spa.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheet.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetDescription.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetInformation.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordDocument.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordprocessingDocument.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\Record.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\CharacterPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontTableMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FooterMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\LanguageIdMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\MainDocumentMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\NumberingMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SectionPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SettingsMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableCellPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TablePropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableRowPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TextboxMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLPictureMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeTypeMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\DocFormatLib.cpp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
119
ASCOfficeDocFile/DocFormatTest/DocFileTest.sln
Normal file
119
ASCOfficeDocFile/DocFormatTest/DocFileTest.sln
Normal file
@ -0,0 +1,119 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatLib", "..\DocFormatLib\Win32\DocFormatLib.vcxproj", "{C5371405-338F-4B70-83BD-2A5CDF64F383}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormatLib", "..\..\ASCOfficeXlsFile2\source\win32\XlsFormat.vcxproj", "{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatTest", "DocFormatTest.vcxproj", "{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\..\OfficeCryptReader\win32\ECMACryptReader.vcxproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormatLib", "..\..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormatLib", "..\..\Common\DocxFormat\Projects\DocxFormatLib.vcxproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
ReleaseOpenSource|Win32 = ReleaseOpenSource|Win32
|
||||
ReleaseOpenSource|x64 = ReleaseOpenSource|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.Build.0 = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.Build.0 = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.Build.0 = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.Build.0 = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.Build.0 = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|x64.Build.0 = Debug|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|Win32.Build.0 = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|x64.ActiveCfg = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|x64.Build.0 = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|x64.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.Build.0 = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.Build.0 = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.ReleaseOpenSource|x64.Build.0 = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.Build.0 = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.ActiveCfg = ReleaseOpenSource|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|Win32.Build.0 = ReleaseOpenSource|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|x64.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.ReleaseOpenSource|x64.Build.0 = ReleaseOpenSource|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@ -1,98 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatLib", "..\DocFormatLib\Win32\DocFormatLib.vcproj", "{C5371405-338F-4B70-83BD-2A5CDF64F383}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormat", "..\..\ASCOfficeXlsFile2\source\win32\XlsFormat.vcproj", "{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatTest", "DocFormatTest.vcproj", "{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383} = {C5371405-338F-4B70-83BD-2A5CDF64F383}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\..\OfficeCryptReader\win32\ECMACryptReader.vcproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Debug|x64.Build.0 = Debug|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|Win32.Build.0 = Release|Win32
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.ActiveCfg = Release|x64
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383}.Release|x64.Build.0 = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Debug|x64.Build.0 = Debug|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|Win32.Build.0 = Release|Win32
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.ActiveCfg = Release|x64
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}.Release|x64.Build.0 = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Debug|x64.Build.0 = Debug|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|Win32.Build.0 = Release|Win32
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|x64.ActiveCfg = Release|x64
|
||||
{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}.Release|x64.Build.0 = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.Build.0 = Release|x64
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|Win32.Build.0 = Release|Win32
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}.Release|x64.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|x64.Build.0 = Debug|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.ActiveCfg = Release|x64
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@ -77,6 +77,7 @@ HRESULT convert_single(std::wstring srcFileName)
|
||||
COfficeDocFile docFile;
|
||||
|
||||
docFile.m_sTempFolder = outputDir;
|
||||
docFile.m_nUserLCID = 1049;
|
||||
|
||||
bool bMacros = true;
|
||||
HRESULT hRes = docFile.LoadFromFile( srcFileName, dstTempPath, L"password", bMacros, NULL);
|
||||
|
||||
@ -1,464 +0,0 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="DocFormatTest"
|
||||
ProjectGUID="{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
RootNamespace="PptFormatTest"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfATL="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../DesktopEditor/xml/build/vs2005;../../DesktopEditor/xml/libxml2/include;../../DesktopEditor/freetype-2.5.2/include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Urlmon.lib"
|
||||
LinkIncremental="1"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
IgnoreEmbeddedIDL="true"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfATL="0"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\Common\OfficeDrawing;"..\..\..\..\..\DesktopEditor\freetype-2.5.2\include";..\..\..\..\..\Common\OfficeDrawing\Shapes"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Urlmon.lib"
|
||||
LinkIncremental="1"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
IgnoreEmbeddedIDL="true"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\Common\OfficeDrawing;"..\..\..\..\..\DesktopEditor\freetype-2.5.2\include";..\..\..\..\..\Common\OfficeDrawing\Shapes"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Urlmon.lib"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\Common\OfficeDrawing;"..\..\..\..\..\DesktopEditor\freetype-2.5.2\include";..\..\..\..\..\Common\OfficeDrawing\Shapes"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Urlmon.lib"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Common"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\DesktopEditor\common\Base64.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\BinWriter\BinWriters.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\ChartWriter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Common\Common.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Reader\CommonWriter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Reader\CSVReader.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Writer\CSVWriter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\BinReader\CustormXmlWriter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\DocxSerializer.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/bigobj
"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\FontProcessor.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\3dParty\pole\pole.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\BinReader\Readers.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\ASCOfficeDocxFile2\DocWrapper\XlsxSerializer.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/bigobj"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\DocFormatTest.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\OfficeFileFormatChecker2.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
238
ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcxproj
Normal file
238
ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcxproj
Normal file
@ -0,0 +1,238 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}</ProjectGuid>
|
||||
<RootNamespace>PptFormatTest</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseOfAtl>false</UseOfAtl>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<UseOfAtl>false</UseOfAtl>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.23107.0</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IncludePath>D:\_Work\core\Common\3dParty\boost\build\win_32\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>D:\_Work\core\Common\3dParty\boost\build\win_32\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../DesktopEditor/xml/build/vs2005;../../DesktopEditor/xml/libxml2/include;../../DesktopEditor/freetype-2.5.2/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS;DONT_USED_EXTRA_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>Urlmon.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreEmbeddedIDL>true</IgnoreEmbeddedIDL>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\..\Common\OfficeDrawing;..\..\..\..\..\DesktopEditor\freetype-2.5.2\include;..\..\..\..\..\Common\OfficeDrawing\Shapes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>Urlmon.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<IgnoreEmbeddedIDL>true</IgnoreEmbeddedIDL>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\..\Common\OfficeDrawing;..\..\..\..\..\DesktopEditor\freetype-2.5.2\include;..\..\..\..\..\Common\OfficeDrawing\Shapes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>Urlmon.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\..\..\Common\OfficeDrawing;..\..\..\..\..\DesktopEditor\freetype-2.5.2\include;..\..\..\..\..\Common\OfficeDrawing\Shapes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>Urlmon.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\CustormXmlWriter.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\FileWriter.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\Readers.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinWriter\BinWriters.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\ChartWriter.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\DocxSerializer.cpp">
|
||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/bigobj
|
||||
%(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\FontProcessor.cpp" />
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\XlsxSerializer.cpp">
|
||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp" />
|
||||
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
|
||||
<ClCompile Include="..\..\DesktopEditor\common\Base64.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Common\Common.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\BinaryWriter.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\CommonWriter.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\CSVReader.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Writer\BinaryReader.cpp" />
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Writer\CSVWriter.cpp" />
|
||||
<ClCompile Include="DocFormatTest.cpp">
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
|
||||
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
|
||||
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
|
||||
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
|
||||
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
|
||||
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj">
|
||||
<Project>{36636678-ae25-4be6-9a34-2561d1bcf302}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\ASCOfficeXlsFile2\source\win32\XlsFormat.vcxproj">
|
||||
<Project>{77ddc8d7-5b12-4ff2-9629-26aebca8436d}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Common\3dParty\cryptopp\cryptlib.vcxproj">
|
||||
<Project>{3423ec9a-52e4-4a4d-9753-edebc38785ef}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\Common\DocxFormat\Projects\DocxFormatLib.vcxproj">
|
||||
<Project>{a100103a-353e-45e8-a9b8-90b87cc5c0b0}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\OfficeCryptReader\win32\ECMACryptReader.vcxproj">
|
||||
<Project>{c27e9a9f-3a17-4482-9c5f-bf15c01e747c}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\DocFormatLib\Win32\DocFormatLib.vcxproj">
|
||||
<Project>{c5371405-338f-4b70-83bd-2a5cdf64f383}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
63
ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcxproj.filters
Normal file
63
ASCOfficeDocFile/DocFormatTest/DocFormatTest.vcxproj.filters
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Common">
|
||||
<UniqueIdentifier>{684a6de4-5e01-434f-aa50-2efd22c26e73}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\DesktopEditor\common\Base64.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Writer\BinaryReader.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\BinaryWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinWriter\BinWriters.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\ChartFromToBinary.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\ChartWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Common\Common.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\CommonWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Reader\CSVReader.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\XlsxSerializerCom\Writer\CSVWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\CustormXmlWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\DocxSerializer.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\FileWriter.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\FontProcessor.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\BinReader\Readers.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\ASCOfficeDocxFile2\DocWrapper\XlsxSerializer.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DocFormatTest.cpp" />
|
||||
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef CHART_WRITER
|
||||
#define CHART_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
@ -96,4 +95,3 @@ namespace Writers
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef CHART_WRITER
|
||||
|
||||
@ -29,10 +29,10 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef COMMENTS_WRITER
|
||||
#define COMMENTS_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "HeaderFooterWriter.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/FileTypes.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
@ -40,31 +40,57 @@ namespace Writers
|
||||
static std::wstring g_string_comment_End = _T("</w:comments>");
|
||||
static std::wstring g_string_commentExt_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w15:commentsEx xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_commentExt_End = _T("</w15:commentsEx>");
|
||||
static std::wstring g_string_commentExtensible_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w16cex:commentsExtensible xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:cx=\"http://schemas.microsoft.com/office/drawing/2014/chartex\" xmlns:cx1=\"http://schemas.microsoft.com/office/drawing/2015/9/8/chartex\" xmlns:cx2=\"http://schemas.microsoft.com/office/drawing/2015/10/21/chartex\" xmlns:cx3=\"http://schemas.microsoft.com/office/drawing/2016/5/9/chartex\" xmlns:cx4=\"http://schemas.microsoft.com/office/drawing/2016/5/10/chartex\" xmlns:cx5=\"http://schemas.microsoft.com/office/drawing/2016/5/11/chartex\" xmlns:cx6=\"http://schemas.microsoft.com/office/drawing/2016/5/12/chartex\" xmlns:cx7=\"http://schemas.microsoft.com/office/drawing/2016/5/13/chartex\" xmlns:cx8=\"http://schemas.microsoft.com/office/drawing/2016/5/14/chartex\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:aink=\"http://schemas.microsoft.com/office/drawing/2016/ink\" xmlns:am3d=\"http://schemas.microsoft.com/office/drawing/2017/model3d\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:w16cex=\"http://schemas.microsoft.com/office/word/2018/wordml/cex\" xmlns:w16cid=\"http://schemas.microsoft.com/office/word/2016/wordml/cid\" xmlns:w16=\"http://schemas.microsoft.com/office/word/2018/wordml\" xmlns:w16se=\"http://schemas.microsoft.com/office/word/2015/wordml/symex\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 w16se w16cid w16 w16cex wp14\">");
|
||||
static std::wstring g_string_commentExtensible_End = _T("</w16cex:commentsExtensible>");
|
||||
static std::wstring g_string_commentsIds_Start = _T("<w16cid:commentsIds mc:Ignorable=\"w16cid\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:w16cid=\"http://schemas.microsoft.com/office/word/2016/wordml/cid\">");
|
||||
static std::wstring g_string_commentsIds_End = _T("</w16cid:commentsIds>");
|
||||
static std::wstring g_string_people_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w15:people xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_people_End = _T("</w15:people>");
|
||||
|
||||
class CommentsWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
std::wstring m_sFileName;
|
||||
public:
|
||||
std::wstring m_sComment;
|
||||
std::wstring m_sComment;
|
||||
std::wstring m_sCommentExt;
|
||||
std::wstring m_sContentExtensible;
|
||||
std::wstring m_sCommentsIds;
|
||||
std::wstring m_sPeople;
|
||||
std::wstring m_sDocumentComment;
|
||||
std::wstring m_sDocumentCommentExt;
|
||||
std::wstring m_sDocumentContentExtensible;
|
||||
std::wstring m_sDocumentCommentsIds;
|
||||
std::wstring m_sDocumentPeople;
|
||||
std::wstring m_sContentUserData;
|
||||
|
||||
CommentsWriter(std::wstring sDir) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void setElements(std::wstring& sComment, std::wstring& sCommentExt, std::wstring& sPeople)
|
||||
void setElements(std::wstring& sComment, std::wstring& sCommentExt, std::wstring& sContentExtensible, std::wstring& sCommentsIds, std::wstring& sPeople, std::wstring& sDocumentComment, std::wstring& sDocumentCommentExt, std::wstring& sDocumentContentExtensible, std::wstring& sDocumentCommentsIds, std::wstring& sDocumentPeople,std::wstring& sContentUserData)
|
||||
{
|
||||
m_sComment = sComment;
|
||||
m_sCommentExt = sCommentExt;
|
||||
m_sContentExtensible = sContentExtensible;
|
||||
m_sCommentsIds = sCommentsIds;
|
||||
m_sPeople = sPeople;
|
||||
m_sDocumentComment = sDocumentComment;
|
||||
m_sDocumentCommentExt = sDocumentCommentExt;
|
||||
m_sDocumentContentExtensible = sDocumentContentExtensible;
|
||||
m_sDocumentCommentsIds = sDocumentCommentsIds;
|
||||
m_sDocumentPeople = sDocumentPeople;
|
||||
m_sContentUserData = sContentUserData;
|
||||
}
|
||||
void Write()
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return OOX::FileTypes::Comments.DefaultFileName().GetPath();
|
||||
}
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
std::wstring sDir = m_sDir + FILE_SEPARATOR_STR + L"word" + (bGlossary ? (FILE_SEPARATOR_STR + std::wstring(L"glossary")) : L"" ) + FILE_SEPARATOR_STR;
|
||||
if(false == m_sComment.empty())
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("comments.xml");
|
||||
OOX::CPath filePath = sDir + OOX::FileTypes::Comments.DefaultFileName().GetPath();
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
@ -73,25 +99,99 @@ namespace Writers
|
||||
oFile.WriteStringUTF8(g_string_comment_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sCommentExt.empty())
|
||||
if(false == m_sCommentExt.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("commentsExtended.xml"));
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::CommentsExt.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentExt_Start);
|
||||
oFile.WriteStringUTF8(m_sCommentExt);
|
||||
oFile.WriteStringUTF8(g_string_commentExt_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sContentExtensible.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::CommentsExtensible.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_Start);
|
||||
oFile.WriteStringUTF8(m_sContentExtensible);
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sCommentsIds.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::CommentsIds.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentsIds_Start);
|
||||
oFile.WriteStringUTF8(m_sCommentsIds);
|
||||
oFile.WriteStringUTF8(g_string_commentsIds_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sPeople.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("people.xml"));
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::People.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_people_Start);
|
||||
oFile.WriteStringUTF8(m_sPeople);
|
||||
oFile.WriteStringUTF8(g_string_people_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
|
||||
if(false == m_sDocumentComment.empty())
|
||||
{
|
||||
OOX::CPath filePath = sDir + OOX::FileTypes::DocumentComments.DefaultFileName().GetPath();
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(g_string_comment_Start);
|
||||
oFile.WriteStringUTF8(m_sDocumentComment);
|
||||
oFile.WriteStringUTF8(g_string_comment_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sDocumentCommentExt.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::DocumentCommentsExt.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentExt_Start);
|
||||
oFile.WriteStringUTF8(m_sDocumentCommentExt);
|
||||
oFile.WriteStringUTF8(g_string_commentExt_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sDocumentContentExtensible.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::DocumentCommentsExtensible.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_Start);
|
||||
oFile.WriteStringUTF8(m_sDocumentContentExtensible);
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sDocumentCommentsIds.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::DocumentCommentsIds.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentsIds_Start);
|
||||
oFile.WriteStringUTF8(m_sDocumentCommentsIds);
|
||||
oFile.WriteStringUTF8(g_string_commentsIds_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sDocumentPeople.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::DocumentPeople.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_people_Start);
|
||||
oFile.WriteStringUTF8(m_sDocumentPeople);
|
||||
oFile.WriteStringUTF8(g_string_people_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
if(false == m_sContentUserData.empty())
|
||||
{
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(sDir + OOX::FileTypes::CommentsUserData.DefaultFileName().GetPath());
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_Start);
|
||||
oFile.WriteStringUTF8(m_sContentUserData);
|
||||
oFile.WriteStringUTF8(g_string_commentExtensible_End);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef COMMENTS_WRITER
|
||||
|
||||
106
ASCOfficeDocxFile2/BinReader/CustomXmlWriter.cpp
Normal file
106
ASCOfficeDocxFile2/BinReader/CustomXmlWriter.cpp
Normal file
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* (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 "CustomXmlWriter.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/CustomXml.h"
|
||||
#include "../../ASCOfficePPTXFile/ASCOfficeDrawingConverter.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
CustomXmlWriter::CustomXmlWriter(std::wstring sDir, NSBinPptxRW::CDrawingConverter* pDrawingConverter) : m_sDir(sDir), m_pDrawingConverter(pDrawingConverter)
|
||||
{
|
||||
m_nCount = 0;
|
||||
}
|
||||
void CustomXmlWriter::WriteCustom(const std::wstring& sCustomXmlPropertiesContent, const std::wstring& sCustomXmlContent, bool bGlossaryMode)
|
||||
{
|
||||
m_nCount++;
|
||||
|
||||
std::wstring sCustomXmlDir = m_sDir + FILE_SEPARATOR_STR;
|
||||
sCustomXmlDir += OOX::FileTypes::CustomXmlProps.DefaultDirectory().GetPath();
|
||||
|
||||
std::wstring sCustomXmlRelsDir = sCustomXmlDir + FILE_SEPARATOR_STR + L"_rels";
|
||||
|
||||
std::wstring sCustomXMLPropsFilename = OOX::FileTypes::CustomXmlProps.DefaultFileName().GetBasename();
|
||||
sCustomXMLPropsFilename += std::to_wstring(m_nCount) + OOX::FileTypes::CustomXmlProps.DefaultFileName().GetExtention();
|
||||
|
||||
NSFile::CFileBinary::SaveToFile(sCustomXmlDir + FILE_SEPARATOR_STR + sCustomXMLPropsFilename, sCustomXmlPropertiesContent);
|
||||
OOX::CContentTypes& oContentTypes = *m_pDrawingConverter->GetContentTypes();
|
||||
oContentTypes.Registration( OOX::FileTypes::CustomXmlProps.OverrideType(), OOX::FileTypes::CustomXmlProps.DefaultDirectory(), sCustomXMLPropsFilename );
|
||||
|
||||
std::wstring sCustomXmlFilename;
|
||||
sCustomXmlFilename = OOX::FileTypes::CustomXml.DefaultFileName().GetBasename() + std::to_wstring(m_nCount);
|
||||
sCustomXmlFilename += OOX::FileTypes::CustomXml.DefaultFileName().GetExtention();
|
||||
|
||||
NSFile::CFileBinary::SaveToFile(sCustomXmlDir + FILE_SEPARATOR_STR + sCustomXmlFilename, sCustomXmlContent);
|
||||
|
||||
m_pDrawingConverter->SetDstContentRels();
|
||||
unsigned int lId;
|
||||
m_pDrawingConverter->WriteRels(OOX::FileTypes::CustomXmlProps.RelationType(), sCustomXMLPropsFilename, L"", &lId);
|
||||
m_pDrawingConverter->SaveDstContentRels(sCustomXmlRelsDir + FILE_SEPARATOR_STR + sCustomXmlFilename + L".rels");
|
||||
|
||||
arItems.push_back(std::make_pair(sCustomXmlFilename, bGlossaryMode));
|
||||
}
|
||||
void CustomXmlWriter::WriteCustomSettings(const std::wstring& sUrl, const std::wstring& sXml, bool bGlossaryMode)
|
||||
{
|
||||
m_nCount++;
|
||||
OOX::CCustomXMLProps oCustomXMLProps(NULL);
|
||||
OOX::CCustomXMLProps::CShemaRef* pShemaRef = new OOX::CCustomXMLProps::CShemaRef();
|
||||
pShemaRef->m_sUri = sUrl;
|
||||
//todo guid
|
||||
oCustomXMLProps.m_oItemID.FromString(L"{5D0AEA6B-E499-4EEF-98A3-AFBB261C493E}");
|
||||
oCustomXMLProps.m_oShemaRefs.Init();
|
||||
oCustomXMLProps.m_oShemaRefs->m_arrItems.push_back(pShemaRef);
|
||||
|
||||
std::wstring sCustomXmlPropsDir = m_sDir + FILE_SEPARATOR_STR;
|
||||
sCustomXmlPropsDir += OOX::FileTypes::CustomXmlProps.DefaultDirectory().GetPath();
|
||||
NSDirectory::CreateDirectories(sCustomXmlPropsDir);
|
||||
std::wstring sCustomXMLPropsFilename = OOX::FileTypes::CustomXmlProps.DefaultFileName().GetBasename();
|
||||
sCustomXMLPropsFilename += std::to_wstring(m_nCount) + OOX::FileTypes::CustomXmlProps.DefaultFileName().GetExtention();
|
||||
oCustomXMLProps.write(OOX::CPath(sCustomXmlPropsDir + FILE_SEPARATOR_STR + sCustomXMLPropsFilename), OOX::CPath(sCustomXmlPropsDir), *m_pDrawingConverter->GetContentTypes());
|
||||
|
||||
std::wstring sCustomXmlFilename;
|
||||
sCustomXmlFilename = OOX::FileTypes::CustomXml.DefaultFileName().GetBasename() + std::to_wstring(m_nCount);
|
||||
sCustomXmlFilename += OOX::FileTypes::CustomXml.DefaultFileName().GetExtention();
|
||||
std::wstring sCustomXmlDir = m_sDir + FILE_SEPARATOR_STR + OOX::FileTypes::CustomXml.DefaultDirectory().GetPath();
|
||||
std::wstring sCustomXmlRelsDir = sCustomXmlDir + FILE_SEPARATOR_STR + L"_rels";
|
||||
NSDirectory::CreateDirectories(sCustomXmlRelsDir);
|
||||
|
||||
m_pDrawingConverter->SetDstContentRels();
|
||||
unsigned int lId;
|
||||
m_pDrawingConverter->WriteRels(OOX::FileTypes::CustomXmlProps.RelationType(), sCustomXMLPropsFilename, L"", &lId);
|
||||
m_pDrawingConverter->SaveDstContentRels(sCustomXmlRelsDir + FILE_SEPARATOR_STR + sCustomXmlFilename + L".rels");
|
||||
|
||||
NSFile::CFileBinary::SaveToFile(sCustomXmlDir + FILE_SEPARATOR_STR + sCustomXmlFilename, sXml);
|
||||
|
||||
arItems.push_back(std::make_pair(sCustomXmlFilename, bGlossaryMode));
|
||||
}
|
||||
}
|
||||
57
ASCOfficeDocxFile2/BinReader/CustomXmlWriter.h
Normal file
57
ASCOfficeDocxFile2/BinReader/CustomXmlWriter.h
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* (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 "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
namespace NSBinPptxRW
|
||||
{
|
||||
class CDrawingConverter;
|
||||
}
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
class CustomXmlWriter
|
||||
{
|
||||
int m_nCount;
|
||||
std::wstring m_sDir;
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
public:
|
||||
std::vector<std::pair<std::wstring, bool>> arItems;
|
||||
|
||||
CustomXmlWriter(std::wstring sDir, NSBinPptxRW::CDrawingConverter* pDrawingConverter);
|
||||
|
||||
void WriteCustomSettings(const std::wstring& sUrl, const std::wstring& sXml, bool bGlossaryMode);
|
||||
void WriteCustom(const std::wstring& sCustomXmlPropertiesContent, const std::wstring& sCustomXmlContents, bool bGlossaryMode);
|
||||
};
|
||||
}
|
||||
|
||||
@ -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
|
||||
*
|
||||
*/
|
||||
|
||||
#include "CustormXmlWriter.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/CustomXml.h"
|
||||
#include "../../ASCOfficePPTXFile/ASCOfficeDrawingConverter.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
CustomXmlWriter::CustomXmlWriter(std::wstring sDir, NSBinPptxRW::CDrawingConverter* pDrawingConverter):m_sDir(sDir),m_pDrawingConverter(pDrawingConverter)
|
||||
{
|
||||
m_nCount = 0;
|
||||
}
|
||||
std::wstring CustomXmlWriter::WriteCustomXml(const std::wstring& sUrl, const std::wstring& sXml)
|
||||
{
|
||||
m_nCount++;
|
||||
OOX::CCustomXMLProps oCustomXMLProps(NULL);
|
||||
OOX::CCustomXMLProps::CShemaRef* pShemaRef = new OOX::CCustomXMLProps::CShemaRef();
|
||||
pShemaRef->m_sUri = sUrl;
|
||||
//todo guid
|
||||
oCustomXMLProps.m_oItemID.FromString(L"{5D0AEA6B-E499-4EEF-98A3-AFBB261C493E}");
|
||||
oCustomXMLProps.m_oShemaRefs.Init();
|
||||
oCustomXMLProps.m_oShemaRefs->m_arrItems.push_back(pShemaRef);
|
||||
|
||||
std::wstring sCustomXmlPropsDir = m_sDir + FILE_SEPARATOR_STR;
|
||||
sCustomXmlPropsDir += OOX::FileTypes::CustomXmlProps.DefaultDirectory().GetPath();
|
||||
NSDirectory::CreateDirectories(sCustomXmlPropsDir);
|
||||
std::wstring sCustomXMLPropsFilename = OOX::FileTypes::CustomXmlProps.DefaultFileName().GetBasename();
|
||||
sCustomXMLPropsFilename += std::to_wstring(m_nCount) + OOX::FileTypes::CustomXmlProps.DefaultFileName().GetExtention();
|
||||
oCustomXMLProps.write(OOX::CPath(sCustomXmlPropsDir + FILE_SEPARATOR_STR + sCustomXMLPropsFilename), OOX::CPath(sCustomXmlPropsDir), *m_pDrawingConverter->GetContentTypes());
|
||||
|
||||
std::wstring sCustomXmlFilename;
|
||||
sCustomXmlFilename = OOX::FileTypes::CustomXml.DefaultFileName().GetBasename() + std::to_wstring(m_nCount);
|
||||
sCustomXmlFilename += OOX::FileTypes::CustomXml.DefaultFileName().GetExtention();
|
||||
std::wstring sCustomXmlDir = m_sDir + FILE_SEPARATOR_STR + OOX::FileTypes::CustomXml.DefaultDirectory().GetPath();
|
||||
std::wstring sCustomXmlRelsDir = sCustomXmlDir + FILE_SEPARATOR_STR + L"_rels";
|
||||
NSDirectory::CreateDirectories(sCustomXmlRelsDir);
|
||||
|
||||
m_pDrawingConverter->SetDstContentRels();
|
||||
unsigned int lId;
|
||||
m_pDrawingConverter->WriteRels(OOX::FileTypes::CustomXmlProps.RelationType(), sCustomXMLPropsFilename, L"", &lId);
|
||||
m_pDrawingConverter->SaveDstContentRels(sCustomXmlRelsDir + FILE_SEPARATOR_STR + sCustomXmlFilename + L".rels");
|
||||
|
||||
NSFile::CFileBinary::SaveToFile(sCustomXmlDir + FILE_SEPARATOR_STR + sCustomXmlFilename, sXml);
|
||||
return sCustomXmlFilename;
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
*
|
||||
*/
|
||||
#ifndef CUSTOM_XML_WRITER
|
||||
#define CUSTOM_XML_WRITER
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
namespace NSBinPptxRW
|
||||
{
|
||||
class CDrawingConverter;
|
||||
}
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
class CustomXmlWriter
|
||||
{
|
||||
int m_nCount;
|
||||
std::wstring m_sDir;
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
public:
|
||||
CustomXmlWriter(std::wstring sDir, NSBinPptxRW::CDrawingConverter* pDrawingConverter);
|
||||
std::wstring WriteCustomXml(const std::wstring& sUrl, const std::wstring& sXml);
|
||||
};
|
||||
}
|
||||
#endif // #ifndef CUSTOM_XML_WRITER
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef DEFAULT_THEME_WRITER
|
||||
#define DEFAULT_THEME_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
@ -48,7 +47,8 @@ namespace Writers
|
||||
{
|
||||
if (m_sContent.empty())
|
||||
{
|
||||
m_sContent = _T("<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\
|
||||
m_sContent = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
|
||||
m_sContent += L"<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\
|
||||
<a:themeElements> \
|
||||
<a:clrScheme name=\"Office\"> \
|
||||
<a:dk1> \
|
||||
@ -87,9 +87,9 @@ namespace Writers
|
||||
<a:folHlink> \
|
||||
<a:srgbClr val=\"800080\"/> \
|
||||
</a:folHlink> \
|
||||
</a:clrScheme> ");
|
||||
</a:clrScheme> ";
|
||||
m_sContent +=
|
||||
_T("<a:fontScheme name=\"Office\"> \
|
||||
L"<a:fontScheme name=\"Office\"> \
|
||||
<a:majorFont> \
|
||||
<a:latin typeface=\"Cambria\"/> \
|
||||
<a:ea typeface=\"\"/> \
|
||||
@ -158,9 +158,9 @@ m_sContent +=
|
||||
<a:font script=\"Viet\" typeface=\"Arial\"/> \
|
||||
<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/> \
|
||||
</a:minorFont> \
|
||||
</a:fontScheme>");
|
||||
</a:fontScheme>";
|
||||
m_sContent +=
|
||||
_T("<a:fmtScheme name=\"Office\"> \
|
||||
L"<a:fmtScheme name=\"Office\"> \
|
||||
<a:fillStyleLst> \
|
||||
<a:solidFill> \
|
||||
<a:schemeClr val=\"phClr\"/> \
|
||||
@ -329,17 +329,16 @@ m_sContent +=
|
||||
</a:themeElements> \
|
||||
<a:objectDefaults/> \
|
||||
<a:extraClrSchemeLst/> \
|
||||
</a:theme>");
|
||||
</a:theme>";
|
||||
}
|
||||
|
||||
OOX::CPath fileName = sThemeFilePath;
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(fileName.GetPath());
|
||||
oFile.WriteStringUTF8(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
|
||||
oFile.WriteStringUTF8(m_sContent);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef DEFAULT_THEME_WRITER
|
||||
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef DOCUMENT_RELS_WRITER
|
||||
#define DOCUMENT_RELS_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
@ -40,10 +39,10 @@ namespace Writers
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
DocumentRelsWriter(std::wstring sDir):m_sDir(sDir)
|
||||
DocumentRelsWriter(std::wstring sDir) : m_sDir(sDir), m_bHasCustomProperties(false)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
std::wstring s_Common;
|
||||
|
||||
@ -51,8 +50,12 @@ namespace Writers
|
||||
<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\"> \
|
||||
<Relationship Id=\"rId1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"word/document.xml\"/> \
|
||||
<Relationship Id=\"rId2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\" Target=\"docProps/core.xml\"/> \
|
||||
<Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/> \
|
||||
</Relationships>");
|
||||
<Relationship Id=\"rId3\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\" Target=\"docProps/app.xml\"/>");
|
||||
if (m_bHasCustomProperties)
|
||||
{
|
||||
s_Common += L"<Relationship Id=\"rId4\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\" Target=\"docProps/custom.xml\"/>";
|
||||
}
|
||||
s_Common += L"</Relationships>";
|
||||
|
||||
OOX::CPath fileName = m_sDir + FILE_SEPARATOR_STR + _T("_rels") + FILE_SEPARATOR_STR + _T(".rels");
|
||||
|
||||
@ -61,6 +64,6 @@ namespace Writers
|
||||
oFile.WriteStringUTF8(s_Common);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
bool m_bHasCustomProperties = false;
|
||||
};
|
||||
}
|
||||
#endif // #ifndef DOCUMENT_RELS_WRITER
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef DOCUMENT_WRITER
|
||||
#define DOCUMENT_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "../BinWriter/BinReaderWriterDefines.h"
|
||||
@ -39,55 +38,92 @@ namespace Writers
|
||||
{
|
||||
class DocumentWriter : public ContentWriter
|
||||
{
|
||||
NSStringUtils::CStringBuilder m_oWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
NSStringUtils::CStringBuilder m_oWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
public:
|
||||
std::wstring m_sDir;
|
||||
std::wstring m_sDir;
|
||||
|
||||
DocumentWriter( std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
DocumentWriter( std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter) : m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + _T("word") +FILE_SEPARATOR_STR + _T("document.xml");
|
||||
if (bGlossary)
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"glossary" + FILE_SEPARATOR_STR + L"document.xml";
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:document \
|
||||
xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" \
|
||||
xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" \
|
||||
xmlns:v=\"urn:schemas-microsoft-com:vml\" \
|
||||
xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" \
|
||||
xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
xmlns:w10=\"urn:schemas-microsoft-com:office:word\" \
|
||||
xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" \
|
||||
xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" \
|
||||
xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" \
|
||||
xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" \
|
||||
xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 w15 wp14\">")));
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(std::wstring(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"));
|
||||
oFile.WriteStringUTF8(std::wstring(L"<w:glossaryDocument \
|
||||
xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" \
|
||||
xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" \
|
||||
xmlns:v=\"urn:schemas-microsoft-com:vml\" \
|
||||
xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" \
|
||||
xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
xmlns:w10=\"urn:schemas-microsoft-com:office:word\" \
|
||||
xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" \
|
||||
xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" \
|
||||
xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" \
|
||||
xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" \
|
||||
xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 w15 wp14\">"));
|
||||
|
||||
oFile.WriteStringUTF8(m_oBackground.GetData());
|
||||
oFile.WriteStringUTF8(m_oBackground.GetData());
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:body>")));
|
||||
oFile.WriteStringUTF8(m_oContent.GetData());
|
||||
oFile.WriteStringUTF8(m_oContent.GetData());
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:sectPr>")));
|
||||
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
|
||||
oFile.WriteStringUTF8(m_oSecPr.GetData());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("</w:sectPr>")));
|
||||
oFile.WriteStringUTF8(std::wstring(L"</w:glossaryDocument>"));
|
||||
oFile.CloseFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"document.xml";
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("</w:body>")));
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8(std::wstring(L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"));
|
||||
oFile.WriteStringUTF8(std::wstring(L"<w:document \
|
||||
xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" \
|
||||
xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" \
|
||||
xmlns:v=\"urn:schemas-microsoft-com:vml\" \
|
||||
xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" \
|
||||
xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
xmlns:w10=\"urn:schemas-microsoft-com:office:word\" \
|
||||
xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" \
|
||||
xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" \
|
||||
xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" \
|
||||
xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" \
|
||||
xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 w15 wp14\">"));
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("</w:document>")));
|
||||
oFile.CloseFile();
|
||||
oFile.WriteStringUTF8(m_oBackground.GetData());
|
||||
|
||||
oFile.WriteStringUTF8(std::wstring(L"<w:body>"));
|
||||
oFile.WriteStringUTF8(m_oContent.GetData());
|
||||
|
||||
oFile.WriteStringUTF8(std::wstring(L"<w:sectPr>"));
|
||||
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
|
||||
oFile.WriteStringUTF8(m_oSecPr.GetData());
|
||||
oFile.WriteStringUTF8(std::wstring(L"</w:sectPr>"));
|
||||
|
||||
oFile.WriteStringUTF8(std::wstring(L"</w:body>"));
|
||||
|
||||
oFile.WriteStringUTF8(std::wstring(L"</w:document>"));
|
||||
oFile.CloseFile();
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring WriteSectPrHdrFtr()
|
||||
@ -103,16 +139,16 @@ mc:Ignorable=\"w14 w15 wp14\">")));
|
||||
{
|
||||
if(SimpleTypes::hdrftrFirst == pHeader->eType)
|
||||
{
|
||||
sResult += _T("<w:headerReference w:type=\"first\" r:id=\"") + pHeader->rId + _T("\"/>");
|
||||
sResult += L"<w:headerReference w:type=\"first\" r:id=\"" + pHeader->rId + L"\"/>";
|
||||
bTitlePage = true;
|
||||
}
|
||||
else if(SimpleTypes::hdrftrEven == pHeader->eType)
|
||||
{
|
||||
sResult += _T("<w:headerReference w:type=\"even\" r:id=\"") + pHeader->rId + _T("\"/>");
|
||||
sResult += L"<w:headerReference w:type=\"even\" r:id=\"" + pHeader->rId + L"\"/>";
|
||||
}
|
||||
else
|
||||
{
|
||||
sResult += _T("<w:headerReference w:type=\"default\" r:id=\"") + pHeader->rId + _T("\"/>");
|
||||
sResult += L"<w:headerReference w:type=\"default\" r:id=\"" + pHeader->rId + L"\"/>";
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,24 +159,23 @@ mc:Ignorable=\"w14 w15 wp14\">")));
|
||||
{
|
||||
if(SimpleTypes::hdrftrFirst == pFooter->eType)
|
||||
{
|
||||
sResult += _T("<w:footerReference w:type=\"first\" r:id=\"") + pFooter->rId + _T("\"/>");
|
||||
sResult += L"<w:footerReference w:type=\"first\" r:id=\"" + pFooter->rId + L"\"/>";
|
||||
bTitlePage = true;
|
||||
}
|
||||
else if(SimpleTypes::hdrftrEven == pFooter->eType)
|
||||
{
|
||||
sResult += _T("<w:footerReference w:type=\"even\" r:id=\"") + pFooter->rId + _T("\"/>");
|
||||
sResult += L"<w:footerReference w:type=\"even\" r:id=\"" + pFooter->rId + L"\"/>";
|
||||
}
|
||||
else
|
||||
{
|
||||
sResult += _T("<w:footerReference w:type=\"default\" r:id=\"") + pFooter->rId + _T("\"/>");
|
||||
sResult += L"<w:footerReference w:type=\"default\" r:id=\"" + pFooter->rId + L"\"/>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if(true == bTitlePage)
|
||||
sResult += _T("<w:titlePg/>");
|
||||
sResult += L"<w:titlePg/>";
|
||||
}
|
||||
return sResult;
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef DOCUMENT_WRITER
|
||||
}
|
||||
77
ASCOfficeDocxFile2/BinReader/FileWriter.cpp
Normal file
77
ASCOfficeDocxFile2/BinReader/FileWriter.cpp
Normal file
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* (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 "FileWriter.h"
|
||||
|
||||
#include "ReaderClasses.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Core.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/App.h"
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
|
||||
FileWriter::FileWriter(std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
:
|
||||
m_oMain(sDirOutput, sFontDir, bNoFontDir, nVersion),
|
||||
m_oGlossary(sDirOutput, sFontDir, bNoFontDir, nVersion),
|
||||
m_oMediaWriter (sDirOutput),
|
||||
m_oChartWriter (sDirOutput),
|
||||
m_oCustomXmlWriter (sDirOutput, pDrawingConverter),
|
||||
m_pDrawingConverter (pDrawingConverter),
|
||||
m_sThemePath (sThemePath),
|
||||
m_oDocumentRelsWriter (sDirOutput),
|
||||
m_nDocPrIndex (0),
|
||||
m_pComments (NULL),
|
||||
m_pApp (NULL),
|
||||
m_pCore (NULL),
|
||||
m_pCustomProperties (NULL)
|
||||
{
|
||||
}
|
||||
FileWriter::~FileWriter()
|
||||
{
|
||||
RELEASEOBJECT(m_pApp);
|
||||
RELEASEOBJECT(m_pCore);
|
||||
RELEASEOBJECT(m_pCustomProperties);
|
||||
}
|
||||
void FileWriter::Write()
|
||||
{
|
||||
m_oMain.Write();
|
||||
m_oChartWriter.Write();
|
||||
//Rels и ContentTypes пишем в конце
|
||||
m_oDocumentRelsWriter.Write();
|
||||
}
|
||||
void FileWriter::WriteGlossary()
|
||||
{
|
||||
m_oGlossary.Write(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef FILE_WRITER
|
||||
#define FILE_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../DesktopEditor/common/Path.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Media/VbaProject.h"
|
||||
@ -47,7 +46,7 @@
|
||||
#include "DocumentRelsWriter.h"
|
||||
#include "webSettingsWriter.h"
|
||||
#include "DefaultThemeWriter.h"
|
||||
#include "CustormXmlWriter.h"
|
||||
#include "CustomXmlWriter.h"
|
||||
|
||||
namespace BinDocxRW
|
||||
{
|
||||
@ -58,80 +57,118 @@ namespace NSBinPptxRW
|
||||
{
|
||||
class CDrawingConverter;
|
||||
}
|
||||
namespace OOX
|
||||
{
|
||||
class CApp;
|
||||
class CCore;
|
||||
}
|
||||
namespace PPTX
|
||||
{
|
||||
class CustomProperties;
|
||||
}
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
struct _part_summary_writers
|
||||
{
|
||||
_part_summary_writers(std::wstring sDirOutput, std::wstring sFontDir, bool bNoFontDir, int nVersion)
|
||||
:
|
||||
font_table(sDirOutput, sFontDir, bNoFontDir),
|
||||
headers_footers(sDirOutput),
|
||||
document(sDirOutput, headers_footers),
|
||||
styles(sDirOutput, nVersion),
|
||||
numbering(sDirOutput),
|
||||
footnotes(sDirOutput),
|
||||
endnotes(sDirOutput),
|
||||
settings(sDirOutput, headers_footers),
|
||||
comments(sDirOutput),
|
||||
web_settings(sDirOutput)
|
||||
{}
|
||||
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
comments.Write(bGlossary);
|
||||
styles.Write(bGlossary);
|
||||
numbering.Write(bGlossary);
|
||||
font_table.Write(bGlossary);
|
||||
headers_footers.Write(bGlossary);
|
||||
footnotes.Write(bGlossary);
|
||||
endnotes.Write(bGlossary);
|
||||
//Setting пишем после HeaderFooter, чтобы заполнить evenAndOddHeaders
|
||||
settings.Write(bGlossary);
|
||||
web_settings.Write(bGlossary);
|
||||
//Document пишем после HeaderFooter, чтобы заполнить sectPr
|
||||
document.Write(bGlossary);
|
||||
|
||||
}
|
||||
|
||||
DocumentWriter document;
|
||||
NumberingWriter numbering;
|
||||
StylesWriter styles;
|
||||
FootnotesWriter footnotes;
|
||||
EndnotesWriter endnotes;
|
||||
HeaderFooterWriter headers_footers;
|
||||
SettingWriter settings;
|
||||
WebSettingsWriter web_settings;
|
||||
FontTableWriter font_table;
|
||||
CommentsWriter comments;
|
||||
};
|
||||
class FileWriter
|
||||
{
|
||||
public:
|
||||
FontTableWriter m_oFontTableWriter;
|
||||
DocumentWriter m_oDocumentWriter;
|
||||
MediaWriter m_oMediaWriter;
|
||||
StylesWriter m_oStylesWriter;
|
||||
NumberingWriter m_oNumberingWriter;
|
||||
HeaderFooterWriter m_oHeaderFooterWriter;
|
||||
FootnotesWriter m_oFootnotesWriter;
|
||||
EndnotesWriter m_oEndnotesWriter;
|
||||
SettingWriter m_oSettingWriter;
|
||||
CommentsWriter m_oCommentsWriter;
|
||||
ChartWriter m_oChartWriter;
|
||||
DocumentRelsWriter m_oDocumentRelsWriter;
|
||||
WebSettingsWriter m_oWebSettingsWriter;
|
||||
DefaultThemeWriter m_oTheme;
|
||||
CustomXmlWriter m_oCustomXmlWriter;
|
||||
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
bool m_bSaveChartAsImg;
|
||||
std::wstring m_sThemePath;
|
||||
int m_nDocPrIndex;
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
private:
|
||||
_part_summary_writers m_oMain;
|
||||
_part_summary_writers m_oGlossary;
|
||||
public:
|
||||
|
||||
FileWriter(std::wstring sDirOutput, std::wstring sFontDir, bool bNoFontDir, int nVersion, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath);
|
||||
~FileWriter();
|
||||
|
||||
FontTableWriter& get_font_table_writer() { return m_bGlossaryMode ? m_oGlossary.font_table : m_oMain.font_table; }
|
||||
DocumentWriter& get_document_writer() { return m_bGlossaryMode ? m_oGlossary.document : m_oMain.document; }
|
||||
FootnotesWriter& get_footnotes_writer() { return m_bGlossaryMode ? m_oGlossary.footnotes : m_oMain.footnotes; }
|
||||
EndnotesWriter& get_endnotes_writer() { return m_bGlossaryMode ? m_oGlossary.endnotes : m_oMain.endnotes; }
|
||||
HeaderFooterWriter& get_headers_footers_writer(){ return m_bGlossaryMode ? m_oGlossary.headers_footers : m_oMain.headers_footers; }
|
||||
SettingWriter& get_settings_writer() { return m_bGlossaryMode ? m_oGlossary.settings : m_oMain.settings; }
|
||||
CommentsWriter& get_comments_writer() { return m_bGlossaryMode ? m_oGlossary.comments : m_oMain.comments; }
|
||||
NumberingWriter& get_numbering_writer() { return m_bGlossaryMode ? m_oGlossary.numbering : m_oMain.numbering; }
|
||||
StylesWriter& get_style_writers() { return m_bGlossaryMode ? m_oGlossary.styles : m_oMain.styles; }
|
||||
WebSettingsWriter& get_web_settings_writer() { return m_bGlossaryMode ? m_oGlossary.web_settings : m_oMain.web_settings; }
|
||||
|
||||
FileWriter (std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
: m_pDrawingConverter(pDrawingConverter), m_sThemePath(sThemePath), m_bSaveChartAsImg(bSaveChartAsImg),
|
||||
m_oFontTableWriter (sDirOutput, sFontDir, bNoFontDir),
|
||||
m_oHeaderFooterWriter (sDirOutput),
|
||||
m_oFootnotesWriter (sDirOutput),
|
||||
m_oEndnotesWriter (sDirOutput),
|
||||
m_oMediaWriter (sDirOutput),
|
||||
m_oStylesWriter (sDirOutput, nVersion),
|
||||
m_oNumberingWriter (sDirOutput),
|
||||
m_oDocumentWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oSettingWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oCommentsWriter (sDirOutput),
|
||||
m_oChartWriter (sDirOutput),
|
||||
m_oDocumentRelsWriter (sDirOutput),
|
||||
m_oWebSettingsWriter (sDirOutput),
|
||||
m_nDocPrIndex(0),
|
||||
m_pComments(NULL),
|
||||
m_oCustomXmlWriter (sDirOutput, pDrawingConverter)
|
||||
{
|
||||
}
|
||||
int getNextDocPr()
|
||||
{
|
||||
m_nDocPrIndex++;
|
||||
return m_nDocPrIndex;
|
||||
}
|
||||
|
||||
void Write()
|
||||
void AddSetting(std::wstring sSetting)
|
||||
{
|
||||
m_oCommentsWriter.Write();
|
||||
m_oChartWriter.Write();
|
||||
m_oStylesWriter.Write();
|
||||
m_oNumberingWriter.Write();
|
||||
m_oFontTableWriter.Write();
|
||||
m_oHeaderFooterWriter.Write();
|
||||
m_oFootnotesWriter.Write();
|
||||
m_oEndnotesWriter.Write();
|
||||
//Setting пишем после HeaderFooter, чтобы заполнить evenAndOddHeaders
|
||||
m_oSettingWriter.Write();
|
||||
m_oWebSettingsWriter.Write();
|
||||
//Document пишем после HeaderFooter, чтобы заполнить sectPr
|
||||
m_oDocumentWriter.Write();
|
||||
//Rels и ContentTypes пишем в конце
|
||||
m_oDocumentRelsWriter.Write();
|
||||
if (m_bGlossaryMode) m_oGlossary.settings.AddSetting(sSetting);
|
||||
else m_oMain.settings.AddSetting(sSetting);
|
||||
}
|
||||
void Write();
|
||||
void WriteGlossary();
|
||||
|
||||
bool IsEmptyGlossary()
|
||||
{
|
||||
return m_oGlossary.document.m_oContent.GetSize() < 1;
|
||||
}
|
||||
|
||||
MediaWriter m_oMediaWriter;
|
||||
ChartWriter m_oChartWriter;
|
||||
DefaultThemeWriter m_oTheme;
|
||||
CustomXmlWriter m_oCustomXmlWriter;
|
||||
DocumentRelsWriter m_oDocumentRelsWriter;
|
||||
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
|
||||
std::wstring m_sThemePath;
|
||||
int m_nDocPrIndex;
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
OOX::CApp* m_pApp;
|
||||
OOX::CCore* m_pCore;
|
||||
PPTX::CustomProperties* m_pCustomProperties;
|
||||
|
||||
bool m_bGlossaryMode = false;
|
||||
};
|
||||
}
|
||||
#endif // #ifndef FILE_WRITER
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef HEADER_FOOTER_WRITER
|
||||
#define HEADER_FOOTER_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
#include "../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
|
||||
@ -60,8 +59,8 @@ namespace Writers
|
||||
std::wstring rId;
|
||||
SimpleTypes::EHdrFtr eType;
|
||||
};
|
||||
static std::wstring g_string_hdr_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\
|
||||
<w:hdr xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
static std::wstring g_string_xml_start = L"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
|
||||
static std::wstring g_string_xmlns = L"xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" \
|
||||
xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
@ -78,35 +77,19 @@ xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_hdr_End = _T("</w:hdr>");
|
||||
mc:Ignorable=\"w14 w15 wp14\">";
|
||||
|
||||
static std::wstring g_string_hdr_Start = g_string_xml_start + L"<w:hdr " + g_string_xmlns;
|
||||
static std::wstring g_string_hdr_End = L"</w:hdr>";
|
||||
|
||||
static std::wstring g_string_ftr_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\
|
||||
<w:ftr xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" \
|
||||
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" \
|
||||
xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" \
|
||||
xmlns:v=\"urn:schemas-microsoft-com:vml\" \
|
||||
xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" \
|
||||
xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
xmlns:w10=\"urn:schemas-microsoft-com:office:word\" \
|
||||
xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" \
|
||||
xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" \
|
||||
xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" \
|
||||
xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" \
|
||||
xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_ftr_End = _T("</w:ftr>");
|
||||
static std::wstring g_string_ftr_Start = g_string_xml_start + L"<w:ftr " + g_string_xmlns;
|
||||
static std::wstring g_string_ftr_End = L"</w:ftr>";
|
||||
|
||||
static std::wstring g_string_footnotes_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:footnotes xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_footnotes_End = _T("</w:footnotes>");
|
||||
static std::wstring g_string_footnotes_Start = g_string_xml_start + L"<w:footnotes " + g_string_xmlns;
|
||||
static std::wstring g_string_footnotes_End = L"</w:footnotes>";
|
||||
|
||||
static std::wstring g_string_endnotes_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:endnotes xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:w15=\"http://schemas.microsoft.com/office/word/2012/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" mc:Ignorable=\"w14 w15 wp14\">");
|
||||
static std::wstring g_string_endnotes_End = _T("</w:endnotes>");
|
||||
static std::wstring g_string_endnotes_Start = g_string_xml_start + L"<w:endnotes " + g_string_xmlns;
|
||||
static std::wstring g_string_endnotes_End = L"</w:endnotes>";
|
||||
|
||||
class HeaderFooterWriter
|
||||
{
|
||||
@ -120,40 +103,40 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
}
|
||||
~HeaderFooterWriter()
|
||||
{
|
||||
for(size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
|
||||
for (size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
|
||||
delete m_aHeaders[i];
|
||||
m_aHeaders.clear();
|
||||
|
||||
for(size_t i = 0, length = m_aFooters.size(); i < length; ++i)
|
||||
for (size_t i = 0, length = m_aFooters.size(); i < length; ++i)
|
||||
delete m_aFooters[i];
|
||||
m_aFooters.clear();
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
for(size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
|
||||
for (size_t i = 0, length = m_aHeaders.size(); i < length; ++i)
|
||||
{
|
||||
HdrFtrItem* pHeader = m_aHeaders[i];
|
||||
WriteItem(_T("header"), pHeader->m_sFilename, pHeader->Header, true);
|
||||
WriteItem(L"header", pHeader->m_sFilename, pHeader->Header, true);
|
||||
}
|
||||
for(size_t i = 0, length = m_aFooters.size(); i < length; ++i)
|
||||
for (size_t i = 0, length = m_aFooters.size(); i < length; ++i)
|
||||
{
|
||||
HdrFtrItem* pFooter = m_aFooters[i];
|
||||
WriteItem(_T("footer"), pFooter->m_sFilename, pFooter->Header, false);
|
||||
WriteItem(L"footer", pFooter->m_sFilename, pFooter->Header, false);
|
||||
}
|
||||
}
|
||||
void WriteItem( std::wstring sHeader, std::wstring& sFilename, ContentWriter& m_oWriter, bool bHeader)
|
||||
{
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
|
||||
if(bHeader)
|
||||
if (bHeader)
|
||||
oFile.WriteStringUTF8(g_string_hdr_Start);
|
||||
else
|
||||
oFile.WriteStringUTF8(g_string_ftr_Start);
|
||||
oFile.WriteStringUTF8(m_oWriter.m_oContent.GetData());
|
||||
if(bHeader)
|
||||
if (bHeader)
|
||||
oFile.WriteStringUTF8(g_string_hdr_End);
|
||||
else
|
||||
oFile.WriteStringUTF8(g_string_ftr_End);
|
||||
@ -169,13 +152,13 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
FootnotesWriter( std::wstring sDir ):m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
if(IsEmpty()) return;
|
||||
|
||||
std::wstring sFilename = getFilename();
|
||||
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + sFilename;
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + (bGlossary ? (FILE_SEPARATOR_STR + std::wstring(L"glossary")) : L"") + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW (filePath);
|
||||
@ -186,7 +169,7 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
}
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return _T("footnotes.xml");
|
||||
return L"footnotes.xml";
|
||||
}
|
||||
bool IsEmpty()
|
||||
{
|
||||
@ -202,13 +185,13 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
EndnotesWriter( std::wstring sDir ) : m_sDir(sDir)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
if(IsEmpty()) return;
|
||||
|
||||
std::wstring sFilename = getFilename();
|
||||
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + sFilename;
|
||||
std::wstring filePath = m_sDir + FILE_SEPARATOR_STR + L"word" + (bGlossary ? (FILE_SEPARATOR_STR + std::wstring(L"glossary")) : L"") + FILE_SEPARATOR_STR + sFilename;
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath);
|
||||
@ -219,7 +202,7 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
}
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return _T("endnotes.xml");
|
||||
return L"endnotes.xml";
|
||||
}
|
||||
bool IsEmpty()
|
||||
{
|
||||
@ -227,4 +210,3 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef HEADER_FOOTER_WRITER
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef MEDIA_WRITER
|
||||
#define MEDIA_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "../../XlsxSerializerCom/Common/Common.h"
|
||||
|
||||
@ -55,7 +54,7 @@ namespace Writers
|
||||
}
|
||||
std::wstring AddImageGetNewPath()
|
||||
{
|
||||
OOX::CSystemUtility::CreateDirectories(m_sMediaDir);
|
||||
NSDirectory::CreateDirectories(m_sMediaDir);
|
||||
|
||||
std::wstring sNewImgName = L"image" + std::to_wstring(nImageCount + 1) + L".jpg";
|
||||
std::wstring sNewImg = m_sMediaDir + FILE_SEPARATOR_STR + sNewImgName;
|
||||
@ -93,4 +92,3 @@ namespace Writers
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef MEDIA_WRITER
|
||||
|
||||
@ -29,8 +29,7 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef NUMBERING_WRITER
|
||||
#define NUMBERING_WRITER
|
||||
#pragma once
|
||||
|
||||
#include "DocumentRelsWriter.h"
|
||||
|
||||
@ -54,7 +53,7 @@ namespace Writers
|
||||
{
|
||||
return 0 == m_oANum.GetCurSize();
|
||||
}
|
||||
void Write()
|
||||
void Write(bool bGlossary = false)
|
||||
{
|
||||
if(IsEmpty()) return;
|
||||
|
||||
@ -63,7 +62,7 @@ namespace Writers
|
||||
m_oWriter.Write(m_oNumList);
|
||||
m_oWriter.WriteString(g_string_n_End);
|
||||
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + FILE_SEPARATOR_STR + _T("numbering.xml");
|
||||
OOX::CPath filePath = m_sDir + FILE_SEPARATOR_STR +_T("word") + (bGlossary ? (FILE_SEPARATOR_STR + std::wstring(L"glossary")) : L"") + FILE_SEPARATOR_STR + _T("numbering.xml");
|
||||
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
@ -72,5 +71,4 @@ namespace Writers
|
||||
oFile.CloseFile();
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef NUMBERING_WRITER
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user