mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
1426 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 80ab6f3ce1 | |||
| a4b163889b | |||
| 651e2a0090 | |||
| 308c127b89 | |||
| bc71e62a0b | |||
| 9a9d60031e | |||
| a7d8e656c6 | |||
| 8bc803850d | |||
| d47775f113 | |||
| d3224e59c3 | |||
| 5c36946442 | |||
| a3d52549d3 | |||
| 6cfbd4906a | |||
| 6ecdc4acfd | |||
| 2b3375db10 | |||
| 884aa8e156 | |||
| 3aefe16c66 | |||
| 923a461866 | |||
| a2a36d8497 | |||
| 496bfd50c6 | |||
| 2747bc9a2c | |||
| 5f3fc17d6c | |||
| 9e053c2ae2 | |||
| 4570a9c3ed | |||
| 047ccd1348 | |||
| 0277d4fbfb | |||
| 294bf17dd0 | |||
| 30673f8623 | |||
| f333a31b17 | |||
| 971d35be22 | |||
| 1d69a6faa0 | |||
| f02ebf421d | |||
| 11bf7af3d0 | |||
| 7e47faf8d2 | |||
| a22aa2007f | |||
| 0ab2da3cd2 | |||
| e522244a29 | |||
| 979c0a4d19 | |||
| b7527dddf0 | |||
| 3f5134149f | |||
| d5e7c58c57 | |||
| bc05155a91 | |||
| 9cb98d73c2 | |||
| 5e954a7869 | |||
| 4cd2bd34ce | |||
| 0b3502afdd | |||
| 829fa21ecb | |||
| 6ce1ebfb65 | |||
| 8dad97d334 | |||
| d10940a144 | |||
| 7d413f1b1d | |||
| 5d60aa15bc | |||
| be8f863886 | |||
| 835743e25e | |||
| d8d6dab9ea | |||
| b814b52775 | |||
| ed5f14e2b9 | |||
| df4d6a108a | |||
| a9eef2cb2e | |||
| bc693d2902 | |||
| 2b6556916f | |||
| 96321eed74 | |||
| 91c50e6620 | |||
| b6da6093b8 | |||
| 96c8cf69ff | |||
| 8f4d8feffa | |||
| dac851531c | |||
| 4c708ce8f1 | |||
| c3657a6b95 | |||
| 399fa5f51f | |||
| 379a452cca | |||
| af166c1db3 | |||
| f921f91d44 | |||
| 62746194c0 | |||
| 36da9596c3 | |||
| 7c459a1235 | |||
| 28dfa20cf4 | |||
| 60055e68ee | |||
| 8ff79ae8a5 | |||
| a07bd3632c | |||
| e2c974e3b8 | |||
| 0176766ede | |||
| 3c87ae665f | |||
| 3e2822048a | |||
| 737b58c3fa | |||
| eb332c0435 | |||
| d8736b043f | |||
| 4f91dc8d9c | |||
| adb597dfad | |||
| 70264d5019 | |||
| d6711bf478 | |||
| aa8b852cc0 | |||
| 81fa2e8f9a | |||
| 2a8fd22d52 | |||
| e1e189d723 | |||
| a863ffd487 | |||
| 039e5d129b | |||
| c304d0f688 | |||
| d041646709 | |||
| ad28973882 | |||
| db5a85ceec | |||
| 0a7fb90201 | |||
| 11d271014b | |||
| f7ed6458c5 | |||
| cb38fae383 | |||
| 0d14c7a5fc | |||
| 915478c1a0 | |||
| 38caa8f2af | |||
| 0041e99ecf | |||
| 42a646c84e | |||
| 5b5adfb47f | |||
| 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 | |||
| 4a7f9c7527 | |||
| a2cdc35a56 | |||
| 14f6ccca71 | |||
| 6db5205bfc | |||
| 2de6b9f3ff | |||
| f3ef4f9ee6 | |||
| 8f659219e0 | |||
| 30cdf52611 | |||
| 83f1a9e068 | |||
| df3382c616 | |||
| 70c886cd9a | |||
| 2397b1246c | |||
| d0f14e8d26 | |||
| 7a9f133f95 | |||
| 80e871d1b9 | |||
| c92548016a | |||
| 0d8c21af22 | |||
| 8cb6415915 | |||
| 279eaed9c8 | |||
| 7d5f8c2f99 | |||
| f2c69ba9a4 | |||
| c19d95dfb5 | |||
| 078aa9c5e7 | |||
| b76463f8d1 | |||
| b9f9148247 | |||
| 38da9bf300 | |||
| 63ecd19ceb | |||
| 5b159a7e34 | |||
| 8a6e40e34b | |||
| 57ca4280e7 | |||
| a2110b9947 | |||
| de2c16ed7c | |||
| 794a97d587 | |||
| 5aa32a21f6 | |||
| bec0a59ac1 | |||
| 9024feaf5d | |||
| 078d3bc991 | |||
| f95079d9aa | |||
| e75ca8c119 | |||
| 81aef5871d | |||
| 67df72c5b6 | |||
| 7e4b4527c3 | |||
| f86a5fcec7 | |||
| d9dfe41fe1 | |||
| 2692461e86 | |||
| ae907a2a90 | |||
| 49adbd002f | |||
| 55be5be654 | |||
| fbe5ce3dd6 | |||
| 410be67daa | |||
| add45aa331 | |||
| 45e7dbd220 | |||
| 97972ed3fa | |||
| b6f174e17e | |||
| c260db3d3d | |||
| e94e8ee2c8 | |||
| 2cb0628f17 | |||
| 15706ac5a8 | |||
| 53a86a19d4 | |||
| 4b8f72d60a | |||
| 2dcc0c1307 | |||
| 71b7b29689 | |||
| 4d7479d4c9 | |||
| bd8136db38 | |||
| 56b4ccacb0 | |||
| 7d7dcb370e | |||
| 11c73c24d1 | |||
| 8ca9a86b54 | |||
| 92d908f9f3 | |||
| f5869553a9 | |||
| adb4b3e7ff | |||
| e6018e634c | |||
| c0570d8ae1 | |||
| 7812ad4c88 | |||
| 221114e8e0 | |||
| 9116b2c13b | |||
| 2b0014bf2d | |||
| 66fed133d6 | |||
| 5c08c5b365 | |||
| 9c9726e6e3 | |||
| f4c869c423 | |||
| 0bdd1efb6d | |||
| ce566cb1b5 | |||
| c9f367e269 | |||
| 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 | |||
| 5745d9af2f | |||
| a68ea4de88 | |||
| f61d6c3f3b | |||
| 08850a0410 | |||
| adad556ac0 | |||
| 47ccf6e724 | |||
| 434dca8930 | |||
| 7d2a88054b | |||
| 997ab10074 | |||
| 93469c330a | |||
| c6e465d595 | |||
| 465a45aa43 | |||
| 55a2f2a4a7 | |||
| 27dc68ba4f | |||
| 2f940496f1 | |||
| 5309a2d640 | |||
| d837366270 | |||
| 4d67173eb0 | |||
| 5ea1d751a1 | |||
| 9fab383dd3 | |||
| 83ea7c3ea0 | |||
| b1f6bfa36d | |||
| 8560152cd4 | |||
| 430f85d141 | |||
| 50c40309cb | |||
| 553ce58be2 | |||
| c95367ddf9 | |||
| 73ead6c6ec | |||
| 27bd443a6f | |||
| 517e2949cb | |||
| 42cd69d091 | |||
| edac6d4a46 | |||
| 40113bc342 | |||
| 228f8cacf6 | |||
| 1dbbef47eb | |||
| 244b9acc9a | |||
| 147f0fa27d | |||
| 55c17b1690 | |||
| 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 | |||
| f73da7bec8 | |||
| 009de649f0 | |||
| 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 | |||
| 2c6b04c230 | |||
| 1eb51d9a39 | |||
| 086fef838e | |||
| d493a1041f | |||
| 7380665334 | |||
| 680350886f | |||
| f3f5739cb7 | |||
| 5bc84b6702 | |||
| 6570319bfe | |||
| 14ad7ac534 | |||
| ee6c0d8a50 | |||
| 5f28b285aa | |||
| 75d3f78ca2 | |||
| ba2c191fa5 | |||
| abaf777273 | |||
| e346bf2348 | |||
| 537b268a11 | |||
| 6a8e7be3fb | |||
| 6f49c93f5b | |||
| 4782fadbf8 | |||
| 2d0f97b850 | |||
| 1905155d01 | |||
| 4597e0ad4f | |||
| a7da029138 | |||
| 837f69ca3d | |||
| 82cdd75365 | |||
| 132f993d9a | |||
| d36fe84d44 | |||
| 85530bc3b5 | |||
| d0bbe683e0 | |||
| 14e49aeb9a | |||
| f7753759d3 | |||
| c8961a8d3b | |||
| 98f26e034b | |||
| 9b7e7fd42e | |||
| d309db527f | |||
| 19d5a8d04f | |||
| bb9fc2c5e4 | |||
| 967c2e2227 | |||
| 3d37e10264 | |||
| fcddfea07c | |||
| 53f849afe2 | |||
| 41395bd365 | |||
| ca16c2572f | |||
| 0de46cb7fc | |||
| 8f46992f34 | |||
| 67754efca8 | |||
| 4d71d17734 | |||
| ce9b10ef48 | |||
| 21aa0626f1 | |||
| 0b161a0013 | |||
| 95061bf343 | |||
| 1175eed5c0 | |||
| ca13768358 | |||
| 4490ff1d61 | |||
| 25c3011fb3 | |||
| 803e8b0584 | |||
| 95c4cf28e0 | |||
| 3410e157e0 | |||
| 92d0edeb48 | |||
| 10a970efb0 | |||
| e1c97deae5 | |||
| 605decbe8b | |||
| 11f47fd82c | |||
| ca58e21339 | |||
| b4d04ad5ce | |||
| 170e5c1a51 | |||
| 0148670403 | |||
| 943cb2e612 | |||
| 2548438f95 | |||
| e8686cf5bc | |||
| cddc0e0596 | |||
| 12af514875 | |||
| c11b7acdfa | |||
| 60b032bb06 | |||
| 7e0a650934 | |||
| 099899a7b0 | |||
| 3ae5b6b0f9 | |||
| 0a484ceab6 | |||
| 6aa516874e | |||
| 162f94c07c | |||
| 388923afe2 | |||
| 44951621fb | |||
| e6928330d4 | |||
| d5dedb219e | |||
| 8f6691751a | |||
| 6b315996ab | |||
| 5a9550ca47 | |||
| e4bb008fa5 | |||
| 38a9bc9175 | |||
| 197525991a | |||
| 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 | |||
| 25022ceecc | |||
| 1a7476e465 | |||
| 0edc2729e8 | |||
| d51f004b11 | |||
| 79aa50d712 | |||
| fdef699b9b | |||
| 8573513168 | |||
| b9608771a9 | |||
| cfea717d20 | |||
| 0ec79f2c2d | |||
| 6f0d22c3a4 | |||
| 8d074cadf8 | |||
| 195e9079db | |||
| b60811fd0d | |||
| 6d6cbd51c3 | |||
| 9c1b107998 | |||
| f2e003b12c | |||
| ee43592691 | |||
| 00328e88b2 | |||
| 564b7f9c29 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -3,13 +3,17 @@ 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/mac-build
|
||||
Common/3dParty/cef/win_64
|
||||
Common/3dParty/cef/win_32
|
||||
Common/3dParty/cef/linux_64
|
||||
@ -44,6 +48,7 @@ Common/3dParty/openssl/openssl
|
||||
Thumbs.db
|
||||
*.xcuserstate
|
||||
*.xcuserdatad
|
||||
**/Makefile.*
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.idl
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.tlb
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.h
|
||||
@ -51,7 +56,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
|
||||
@ -63,5 +67,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
|
||||
@ -641,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())
|
||||
@ -653,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++)
|
||||
{
|
||||
@ -769,17 +769,15 @@ namespace DocFileFormat
|
||||
|
||||
return bytes;
|
||||
}
|
||||
#if !defined(_WIN32) && !defined(_WIN64)
|
||||
static inline std::wstring IntToWideString(unsigned int value)
|
||||
{
|
||||
return (std::to_wstring(value));
|
||||
}
|
||||
#endif
|
||||
static inline std::wstring IntToWideString(int value)
|
||||
{
|
||||
return (std::to_wstring(value));
|
||||
}
|
||||
static inline std::wstring IntToWideString(size_t value)
|
||||
}
|
||||
static inline std::wstring SizeTToWideString(size_t value)
|
||||
{
|
||||
return (std::to_wstring((unsigned int)value));
|
||||
}
|
||||
|
||||
@ -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,24 +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 = DateAndTime(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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,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)
|
||||
{
|
||||
}
|
||||
|
||||
@ -60,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_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 );
|
||||
|
||||
DateAndTime m_nDTTM;
|
||||
unsigned int m_nDepth;
|
||||
unsigned int m_nDiatrdParent;
|
||||
bool m_fInkAtn;
|
||||
std::vector<_desc> m_ReferencesEx;
|
||||
};
|
||||
}
|
||||
|
||||
@ -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,37 +84,29 @@ 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 = NULL;
|
||||
if ((m_document->AnnotationsReferenceExPlex) && (index < m_document->AnnotationsReferenceExPlex->Elements.size()))
|
||||
{
|
||||
atrdPost10 = static_cast<AnnotationReferenceExDescriptor*>(m_document->AnnotationsReferenceExPlex->Elements[index]);
|
||||
}
|
||||
|
||||
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)//-1 - easy ref (not start/end comment ref)
|
||||
{
|
||||
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)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:date", atrdPost10->m_nDTTM.getString());
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::SizeTToWideString(atrdPre10->m_CommentId));
|
||||
|
||||
if (atrdPre10->m_AuthorIndex < m_document->AnnotationOwners->size()) //conv_253l2H1CehgKwsxCtNk__docx.doc
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:author",
|
||||
FormatUtils::XmlEncode(m_document->AnnotationOwners->at( atrdPre10->m_AuthorIndex ) ));
|
||||
}
|
||||
|
||||
if ((m_document->AnnotationsReferencesEx) && (index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size()))
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:date", m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDTTM.getString());
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"w:initials", FormatUtils::XmlEncode(atrdPre10->m_UserInitials));
|
||||
|
||||
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr ) < (*m_document->IndividualCommentsPlex)[index + 1] )
|
||||
@ -132,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,103 +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");
|
||||
}
|
||||
}
|
||||
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(yr) + L"-" + (mon < 9 ? L"0" : L"" ) + std::to_wstring(mon) + L"-" +
|
||||
(dom < 9 ? L"0" : L"" ) + std::to_wstring(dom) + L"T" +
|
||||
(hr < 9 ? L"0" : L"" ) + std::to_wstring(hr) + L":" +
|
||||
(mint < 9 ? L"0" : L"" )+ std::to_wstring(mint) + L"Z";
|
||||
|
||||
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";
|
||||
}
|
||||
#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
|
||||
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);
|
||||
|
||||
@ -416,21 +421,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);
|
||||
}
|
||||
@ -800,8 +805,9 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
XMLTools::XMLElement elem(L"w:br");
|
||||
elem.AppendAttribute(L"w:type", L"textWrapping");
|
||||
elem.AppendAttribute(L"w:clear", L"all");
|
||||
//СЗ в МРФ Техноград о предоставлении ТП 1 квартал 2019_MO_Q31.doc
|
||||
//elem.AppendAttribute(L"w:type", L"textWrapping");
|
||||
//elem.AppendAttribute(L"w:clear", L"all");
|
||||
|
||||
m_pXmlWriter->WriteString(elem.GetXMLString());
|
||||
}
|
||||
@ -892,12 +898,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)
|
||||
{
|
||||
@ -1035,39 +1045,7 @@ namespace DocFileFormat
|
||||
}
|
||||
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)
|
||||
{
|
||||
@ -1076,23 +1054,44 @@ 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 );
|
||||
|
||||
int index = _commentNr++;
|
||||
AnnotationReferenceDescriptor* atrdPre10 = dynamic_cast<AnnotationReferenceDescriptor*>( m_document->AnnotationsReferencePlex->GetStruct(cp));
|
||||
|
||||
AnnotationReferenceDescriptor* atrdPre10 = static_cast<AnnotationReferenceDescriptor*>(m_document->AnnotationsReferencePlex->Elements[index - 1]);
|
||||
|
||||
if (atrdPre10->m_BookmarkId < 0)
|
||||
index += m_document->AnnotationsReferencePlex->Elements.size() + 1024;
|
||||
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->WriteAttribute( L"w:id", FormatUtils::IntToWideString(index));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true );
|
||||
}
|
||||
}
|
||||
else if (!FormatUtils::IsControlSymbol(c) && ((int)c != 0xFFFF))
|
||||
{
|
||||
|
||||
writeNotesReferences(cp);//for word95 & non-automatic notes
|
||||
text += FormatUtils::GetXMLSymbol(c);
|
||||
}
|
||||
|
||||
@ -1345,7 +1344,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 );
|
||||
@ -1378,6 +1377,7 @@ namespace DocFileFormat
|
||||
fEndNestingLevel = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
}break;
|
||||
|
||||
case sprmOldPFInTable:
|
||||
case sprmPItap:
|
||||
{
|
||||
iTap_current = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
@ -1388,7 +1388,8 @@ 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;
|
||||
@ -1406,19 +1407,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 );
|
||||
@ -1431,11 +1440,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;
|
||||
@ -1764,7 +1778,51 @@ 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 );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool DocumentMapping::writeBookmarks(int cp)
|
||||
{
|
||||
bool result = true;
|
||||
@ -1791,16 +1849,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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1907,7 +1981,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;
|
||||
}
|
||||
|
||||
@ -121,6 +121,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 );
|
||||
@ -156,6 +158,8 @@ namespace DocFileFormat
|
||||
std::wstring _writeAfterRun;
|
||||
std::wstring _lastOLEObject;
|
||||
int _cacheListNum;
|
||||
|
||||
std::wstring _paraId;
|
||||
|
||||
struct fieldLevels
|
||||
{
|
||||
|
||||
@ -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" );
|
||||
|
||||
|
||||
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx,
|
||||
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:
|
||||
|
||||
@ -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 );
|
||||
};
|
||||
}
|
||||
@ -87,7 +87,7 @@ namespace DocFileFormat
|
||||
m_document->DocProperties->bDisplayBackgroundShape = true;
|
||||
ShapeContainer* pShape = m_document->GetOfficeArt()->GetShapeBackgound();
|
||||
|
||||
ODRAW::OfficeArtFOPTEPtr boolFill = pShape->ExtractOption(fillStyleBooleanProperties);
|
||||
ODRAW::OfficeArtFOPTEPtr boolFill = pShape->ExtractOption(ODRAW::fillStyleBooleanProperties);
|
||||
|
||||
ODRAW::FillStyleBooleanProperties* booleans = dynamic_cast<ODRAW::FillStyleBooleanProperties*>(boolFill.get());
|
||||
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -80,7 +80,7 @@ namespace DocFileFormat
|
||||
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,7 +101,7 @@ namespace DocFileFormat
|
||||
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
ODRAW::OfficeArtFOPTEPtr ExtractOption(const PropertyId & prop) const
|
||||
ODRAW::OfficeArtFOPTEPtr ExtractOption(const ODRAW::ePropertyId & prop) const
|
||||
{
|
||||
ODRAW::OfficeArtFOPTEPtr ret;
|
||||
|
||||
@ -111,7 +111,7 @@ namespace DocFileFormat
|
||||
|
||||
if ( opt == NULL ) continue;
|
||||
|
||||
std::map<PropertyId, ODRAW::OfficeArtFOPTEPtr>::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;
|
||||
|
||||
@ -36,432 +36,6 @@
|
||||
|
||||
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
|
||||
{
|
||||
@ -534,8 +108,8 @@ namespace DocFileFormat
|
||||
static const unsigned short TYPE_CODE_0xF121 = 0xF121;
|
||||
static const unsigned short TYPE_CODE_0xF122 = 0xF122;
|
||||
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> Options;
|
||||
std::map<PropertyId, ODRAW::OfficeArtFOPTEPtr> OptionsByID;
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> Options;
|
||||
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr> OptionsByID;
|
||||
|
||||
ShapeOptions() : Record()
|
||||
{
|
||||
@ -566,7 +140,7 @@ namespace DocFileFormat
|
||||
{
|
||||
Options[i]->ReadComplexData(Reader);
|
||||
}
|
||||
OptionsByID.insert(std::make_pair((PropertyId)Options[i]->opid, Options[i]));
|
||||
OptionsByID.insert(std::make_pair((ODRAW::ePropertyId)Options[i]->opid, Options[i]));
|
||||
}
|
||||
|
||||
Reader->Seek(( pos + size ), 0/*STREAM_SEEK_SET*/);
|
||||
|
||||
@ -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" );
|
||||
@ -672,34 +667,27 @@ namespace DocFileFormat
|
||||
_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);
|
||||
}
|
||||
|
||||
|
||||
@ -259,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,100 @@ 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++;
|
||||
//}
|
||||
|
||||
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;
|
||||
@ -348,19 +358,22 @@ namespace DocFileFormat
|
||||
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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -67,7 +67,7 @@ namespace DocFileFormat
|
||||
XMLTools::XMLAttribute layoutType ( L"w:type", L"fixed");
|
||||
bool bLayoutFixed = true;
|
||||
|
||||
short tblIndent = 0;
|
||||
_CP_OPT(short) tblIndent;
|
||||
short gabHalf = 0;
|
||||
short marginLeft = 0;
|
||||
short marginRight = 0;
|
||||
@ -98,8 +98,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
|
||||
@ -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");
|
||||
|
||||
@ -336,7 +336,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case metroBlob:
|
||||
case ODRAW::metroBlob:
|
||||
{//встроенная неведомая хуйня
|
||||
ODRAW::MetroBlob* blob = dynamic_cast<ODRAW::MetroBlob*>(iter.get());
|
||||
if (blob)
|
||||
@ -350,28 +350,28 @@ namespace DocFileFormat
|
||||
}
|
||||
}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 );
|
||||
@ -379,28 +379,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;
|
||||
@ -408,7 +408,7 @@ namespace DocFileFormat
|
||||
}
|
||||
break;
|
||||
//------------------------------------------------------------
|
||||
case PropertyId_rotation:
|
||||
case ODRAW::ePropertyId_rotation:
|
||||
{
|
||||
double dAngle = (double)((int)iter->op) / 65535.0;
|
||||
|
||||
@ -420,23 +420,23 @@ namespace DocFileFormat
|
||||
|
||||
appendStyleProperty(strStyle, L"rotation", FormatUtils::DoubleToWideString(dAngle));
|
||||
}break;
|
||||
case posh:
|
||||
case ODRAW::posh:
|
||||
{
|
||||
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));
|
||||
}break;
|
||||
case posv:
|
||||
case ODRAW::posv:
|
||||
{
|
||||
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));
|
||||
}break;
|
||||
case groupShapeBooleans:
|
||||
case ODRAW::groupShapeBooleanProperties:
|
||||
{
|
||||
ODRAW::GroupShapeBooleanProperties* booleans = dynamic_cast<ODRAW::GroupShapeBooleanProperties*>(iter.get());
|
||||
|
||||
@ -557,10 +557,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;
|
||||
@ -577,26 +577,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;
|
||||
|
||||
|
||||
@ -141,7 +141,9 @@ namespace DocFileFormat
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"v:group", true );
|
||||
m_pXmlWriter->WriteAttribute( L"id", m_shapeId);
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(shape, anchor, options, container->Index)));
|
||||
|
||||
bool twistDimensions = false;
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(shape, anchor, options, container->Index, twistDimensions)));
|
||||
m_pXmlWriter->WriteAttribute( L"coordorigin", ( FormatUtils::IntToWideString(gsr->rcgBounds.topLeftAngle.x) + L"," + FormatUtils::IntToWideString( gsr->rcgBounds.topLeftAngle.y)));
|
||||
m_pXmlWriter->WriteAttribute( L"coordsize", ( FormatUtils::IntToWideString(gsr->rcgBounds.size.cx) + L"," + FormatUtils::IntToWideString(gsr->rcgBounds.size.cy)));
|
||||
|
||||
@ -150,7 +152,7 @@ namespace DocFileFormat
|
||||
{
|
||||
switch (options[i]->opid)
|
||||
{
|
||||
case pWrapPolygonVertices:
|
||||
case ODRAW::pWrapPolygonVertices:
|
||||
{
|
||||
std::wstring wrapCoords = GetWrapCoords(options[i]);
|
||||
if (!wrapCoords.empty())
|
||||
@ -237,18 +239,19 @@ namespace DocFileFormat
|
||||
|
||||
if ( !pShape->fBackground )
|
||||
{
|
||||
bool twistDimensions = false;
|
||||
if (pShape->GetShapeType())
|
||||
{
|
||||
freeform = false;
|
||||
m_pXmlWriter->WriteAttribute( L"type", (std::wstring(L"#") + VMLShapeTypeMapping::GenerateTypeId(pShape->GetShapeType())));
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(pShape, pAnchor, options, pContainer->m_nIndex)));
|
||||
m_pXmlWriter->WriteAttribute( L"style", FormatUtils::XmlEncode(buildStyle(pShape, pAnchor, options, pContainer->m_nIndex, twistDimensions)));
|
||||
|
||||
if (pShape->is<LineType>())
|
||||
{
|
||||
//append "from" and "to" attributes
|
||||
m_pXmlWriter->WriteAttribute(L"from", GetLineFrom(pAnchor));
|
||||
m_pXmlWriter->WriteAttribute(L"to", GetLineTo(pAnchor));
|
||||
m_pXmlWriter->WriteAttribute(L"from", GetLineFrom(pAnchor, twistDimensions));
|
||||
m_pXmlWriter->WriteAttribute(L"to", GetLineTo(pAnchor, twistDimensions));
|
||||
}
|
||||
|
||||
if (m_isBullete)
|
||||
@ -304,7 +307,7 @@ namespace DocFileFormat
|
||||
switch (iter->opid)
|
||||
{
|
||||
//BOOLEANS
|
||||
case geometryBooleans:
|
||||
case ODRAW::geometryBooleanProperties:
|
||||
{
|
||||
ODRAW::GeometryBooleanProperties *booleans = dynamic_cast<ODRAW::GeometryBooleanProperties*>(iter.get());
|
||||
if (booleans->fUsefLineOK && !booleans->fLineOK)
|
||||
@ -325,7 +328,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
break;
|
||||
case fillStyleBooleanProperties:
|
||||
case ODRAW::fillStyleBooleanProperties:
|
||||
{
|
||||
ODRAW::FillStyleBooleanProperties *booleans = dynamic_cast<ODRAW::FillStyleBooleanProperties *>(iter.get());
|
||||
if (booleans->fUsefFilled && !booleans->fFilled)
|
||||
@ -338,7 +341,7 @@ namespace DocFileFormat
|
||||
appendValueAttribute(&m_fill, L"rotate", L"t");
|
||||
}
|
||||
}break;
|
||||
case lineStyleBooleans:
|
||||
case ODRAW::lineStyleBooleanProperties:
|
||||
{
|
||||
ODRAW::LineStyleBooleanProperties *booleans = dynamic_cast<ODRAW::LineStyleBooleanProperties *>(iter.get());
|
||||
if (booleans->fUsefLine && !booleans->fLine)
|
||||
@ -347,16 +350,16 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
break;
|
||||
case protectionBooleans:
|
||||
case ODRAW::protectionBooleanProperties:
|
||||
{
|
||||
//ProtectionBooleanProperties booleans(iter->op);
|
||||
}
|
||||
break;
|
||||
case diagramBooleans:
|
||||
case ODRAW::diagramBooleanProperties:
|
||||
{
|
||||
}
|
||||
break;
|
||||
case groupShapeBooleans:
|
||||
case ODRAW::groupShapeBooleanProperties:
|
||||
{
|
||||
ODRAW::GroupShapeBooleanProperties *booleans = dynamic_cast<ODRAW::GroupShapeBooleanProperties *>(iter.get());
|
||||
if (booleans->fUsefLayoutInCell)
|
||||
@ -366,78 +369,78 @@ namespace DocFileFormat
|
||||
}
|
||||
break;
|
||||
// GEOMETRY
|
||||
case shapePath :
|
||||
case ODRAW::shapePath :
|
||||
{
|
||||
bHavePath = true;
|
||||
nShapePath = iter->op;
|
||||
}break;
|
||||
case pVertices:
|
||||
case ODRAW::pVertices:
|
||||
{
|
||||
opVerticles = iter;
|
||||
}break;
|
||||
case pSegmentInfo:
|
||||
case ODRAW::pSegmentInfo:
|
||||
{
|
||||
opSegmentInfo = iter;
|
||||
}break;
|
||||
case pGuides:
|
||||
case ODRAW::pGuides:
|
||||
{
|
||||
GetGuides(iter);
|
||||
}break;
|
||||
case pConnectionSites:
|
||||
case ODRAW::pConnectionSites:
|
||||
{
|
||||
opConnectLocs = iter;
|
||||
}break;
|
||||
case pConnectionSitesDir:
|
||||
case ODRAW::pConnectionSitesDir:
|
||||
{
|
||||
opConnectAngles = iter;
|
||||
}break;
|
||||
case pInscribe:
|
||||
case ODRAW::pInscribe:
|
||||
{
|
||||
opInscribe = iter;
|
||||
}break;
|
||||
case adjustValue:
|
||||
case ODRAW::adjustValue:
|
||||
{
|
||||
m_nAdjValues[0] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues,1);
|
||||
}
|
||||
break;
|
||||
case adjust2Value:
|
||||
case ODRAW::adjust2Value:
|
||||
{
|
||||
m_nAdjValues[1] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 2);
|
||||
}
|
||||
break;
|
||||
case adjust3Value:
|
||||
case ODRAW::adjust3Value:
|
||||
{
|
||||
m_nAdjValues[2] = (int)iter->op;
|
||||
nAdjValues =(std::max)(nAdjValues, 3);
|
||||
}break;
|
||||
case adjust4Value:
|
||||
case ODRAW::adjust4Value:
|
||||
{
|
||||
m_nAdjValues[3] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 4);
|
||||
}break;
|
||||
case adjust5Value:
|
||||
case ODRAW::adjust5Value:
|
||||
{
|
||||
m_nAdjValues[4] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 5);
|
||||
}break;
|
||||
case adjust6Value:
|
||||
case ODRAW::adjust6Value:
|
||||
{
|
||||
m_nAdjValues[5] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 6);
|
||||
}break;
|
||||
case adjust7Value:
|
||||
case ODRAW::adjust7Value:
|
||||
{
|
||||
m_nAdjValues[6] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 7);
|
||||
}break;
|
||||
case adjust8Value:
|
||||
case ODRAW::adjust8Value:
|
||||
{
|
||||
m_nAdjValues[7] = (int)iter->op;
|
||||
nAdjValues = (std::max)(nAdjValues, 8);
|
||||
}break;
|
||||
case pWrapPolygonVertices:
|
||||
case ODRAW::pWrapPolygonVertices:
|
||||
{
|
||||
std::wstring wrapCoords = GetWrapCoords(iter);
|
||||
|
||||
@ -446,22 +449,22 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute( L"wrapcoords", wrapCoords);
|
||||
}
|
||||
}break;
|
||||
case geoRight:
|
||||
case ODRAW::geoRight:
|
||||
{
|
||||
xCoord = iter->op;
|
||||
}break;
|
||||
case geoBottom:
|
||||
case ODRAW::geoBottom:
|
||||
{
|
||||
yCoord = iter->op;
|
||||
}break;
|
||||
// LINE
|
||||
case lineColor:
|
||||
case ODRAW::lineColor:
|
||||
{
|
||||
RGBColor lineColor((int)iter->op, RedFirst);
|
||||
if ( !pShape->fBackground )
|
||||
m_pXmlWriter->WriteAttribute( L"strokecolor", (std::wstring(L"#") + lineColor.SixDigitHexCode));
|
||||
}break;
|
||||
case lineWidth:
|
||||
case ODRAW::lineWidth:
|
||||
{
|
||||
if (iter->op > 0)
|
||||
{
|
||||
@ -469,39 +472,39 @@ namespace DocFileFormat
|
||||
m_pXmlWriter->WriteAttribute(L"strokeweight", FormatUtils::DoubleToWideString(eLineWidth.ToPoints()) + L"pt");
|
||||
}
|
||||
}break;
|
||||
case lineDashing:
|
||||
case ODRAW::lineDashing:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"dashstyle", FormatUtils::MapValueToWideString( iter->op, &Global::DashStyleMap[0][0], 11, 16 ) );
|
||||
}break;
|
||||
case lineStyle:
|
||||
case ODRAW::lineStyle:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"linestyle", getLineStyle( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowhead:
|
||||
case ODRAW::lineEndArrowhead:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrow", getArrowStyle( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowLength:
|
||||
case ODRAW::lineEndArrowLength:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrowlength", getArrowLength( iter->op ));
|
||||
}break;
|
||||
case lineEndArrowWidth:
|
||||
case ODRAW::lineEndArrowWidth:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"endarrowwidth", getArrowWidth( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowhead:
|
||||
case ODRAW::lineStartArrowhead:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrow", getArrowStyle( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowLength:
|
||||
case ODRAW::lineStartArrowLength:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrowlength", getArrowLength( iter->op ));
|
||||
}break;
|
||||
case lineStartArrowWidth:
|
||||
case ODRAW::lineStartArrowWidth:
|
||||
{
|
||||
appendValueAttribute(&m_stroke, L"startarrowwidth", getArrowWidth( iter->op ));
|
||||
}break;
|
||||
case cxstyle:
|
||||
case ODRAW::cxstyle:
|
||||
{
|
||||
if (pShape->GetShapeType() == NULL)
|
||||
{
|
||||
@ -517,39 +520,39 @@ namespace DocFileFormat
|
||||
}
|
||||
}break;
|
||||
// FILL
|
||||
case fillColor:
|
||||
case ODRAW::fillColor:
|
||||
{
|
||||
RGBColor fillColor((int)iter->op, RedFirst);
|
||||
m_pXmlWriter->WriteAttribute(L"fillcolor", ( std::wstring( L"#" ) + fillColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case fillBackColor:
|
||||
case ODRAW::fillBackColor:
|
||||
{
|
||||
RGBColor fillBackColor( (int)iter->op, RedFirst );
|
||||
appendValueAttribute(&m_fill, L"color2", ( std::wstring( L"#" ) + fillBackColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case fillAngle:
|
||||
case ODRAW::fillAngle:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) appendValueAttribute(&m_fill, L"angle", FormatUtils::DoubleToWideString( point->dVal ));
|
||||
}break;
|
||||
case fillShadeType:
|
||||
case ODRAW::fillShadeType:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"method", getFillMethod( iter->op ));
|
||||
}break;
|
||||
case fillShadeColors:
|
||||
case ODRAW::fillShadeColors:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"colors", getFillColorString( iter ));
|
||||
}break;
|
||||
case fillFocus:
|
||||
case ODRAW::fillFocus:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"focus", ( FormatUtils::IntToWideString( iter->op ) + L"%" ));
|
||||
appendValueAttribute(&m_fill, L"focussize", L"");
|
||||
}break;
|
||||
case fillType:
|
||||
case ODRAW::fillType:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"type", getFillType( iter->op ));
|
||||
}break;
|
||||
case fillBlip:
|
||||
case ODRAW::fillBlip:
|
||||
{
|
||||
BlipStoreEntry* pFillBlip = NULL;
|
||||
|
||||
@ -570,76 +573,76 @@ namespace DocFileFormat
|
||||
|
||||
bPicturePresent = true;
|
||||
}break;
|
||||
case fillBlipName:
|
||||
case ODRAW::fillBlipName:
|
||||
{
|
||||
ODRAW::AnyString* str = dynamic_cast<ODRAW::AnyString*>(iter.get());
|
||||
if ((str) && (!str->string_.empty()))
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"o:title", FormatUtils::XmlEncode(str->string_));
|
||||
appendValueAttribute(&m_fill, L"o:title", str->string_);
|
||||
}
|
||||
}break;
|
||||
case fillOpacity:
|
||||
case ODRAW::fillOpacity:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"opacity", ( FormatUtils::IntToWideString( iter->op ) + L"f" ));
|
||||
}
|
||||
break;
|
||||
case fillBackOpacity:
|
||||
case ODRAW::fillBackOpacity:
|
||||
{
|
||||
appendValueAttribute(&m_fill, L"o:opacity2", (FormatUtils::IntToWideString(iter->op) + L"f"));
|
||||
}break;
|
||||
// SHADOW
|
||||
case shadowType:
|
||||
case ODRAW::shadowType:
|
||||
{
|
||||
appendValueAttribute(&m_shadow, L"type", getShadowType(iter->op));
|
||||
}break;
|
||||
|
||||
case shadowColor:
|
||||
case ODRAW::shadowColor:
|
||||
{
|
||||
RGBColor shadowColor((int)iter->op, RedFirst);
|
||||
appendValueAttribute(&m_shadow, L"color", ( std::wstring( L"#" ) + shadowColor.SixDigitHexCode ));
|
||||
}break;
|
||||
case shadowOffsetX:
|
||||
case ODRAW::shadowOffsetX:
|
||||
{
|
||||
ShadowOffsetX = EmuValue( (int)iter->op );
|
||||
}break;
|
||||
case shadowSecondOffsetX:
|
||||
case ODRAW::shadowSecondOffsetX:
|
||||
{
|
||||
SecondShadowOffsetX = EmuValue( (int)iter->op );
|
||||
}break;
|
||||
case shadowOffsetY:
|
||||
case ODRAW::shadowOffsetY:
|
||||
{
|
||||
ShadowOffsetY = EmuValue( (int)iter->op );
|
||||
}break;
|
||||
case shadowSecondOffsetY:
|
||||
case ODRAW::shadowSecondOffsetY:
|
||||
{
|
||||
SecondShadowOffsetY = EmuValue( (int)iter->op );
|
||||
}break;
|
||||
case shadowOriginX:
|
||||
case ODRAW::shadowOriginX:
|
||||
{
|
||||
ShadowOriginX = ( iter->op / pow( (double)2, (double)16 ) );
|
||||
}break;
|
||||
case shadowOriginY:
|
||||
case ODRAW::shadowOriginY:
|
||||
{
|
||||
ShadowOriginY = (iter->op / pow( (double)2, (double)16));
|
||||
}break;
|
||||
case shadowOpacity:
|
||||
case ODRAW::shadowOpacity:
|
||||
{
|
||||
double shadowOpa = (iter->op / pow( (double)2, (double)16));
|
||||
|
||||
appendValueAttribute(&m_shadow, L"opacity", FormatUtils::DoubleToFormattedWideString( shadowOpa, L"%.2f" ));
|
||||
}break;
|
||||
case shadowStyleBooleanProperties:
|
||||
case ODRAW::shadowStyleBooleanProperties:
|
||||
{
|
||||
//ODRAW::ShadowStyleBooleanProperties
|
||||
|
||||
}break;
|
||||
// OLE
|
||||
case pictureId:
|
||||
case ODRAW::pictureId:
|
||||
{
|
||||
indexOLE = iter->op;
|
||||
}break;
|
||||
// PICTURE
|
||||
case Pib:
|
||||
case ODRAW::pib:
|
||||
{
|
||||
int index = (int)( iter->op - 1 );
|
||||
|
||||
@ -653,101 +656,101 @@ namespace DocFileFormat
|
||||
}
|
||||
bPicturePresent = true;
|
||||
}break;
|
||||
case pibName:
|
||||
case ODRAW::pibName:
|
||||
{
|
||||
ODRAW::AnyString* str = dynamic_cast<ODRAW::AnyString*>(iter.get());
|
||||
if ((str) && (!str->string_.empty()))
|
||||
{
|
||||
appendValueAttribute(&m_imagedata, L"o:title", FormatUtils::XmlEncode(str->string_));
|
||||
appendValueAttribute(&m_imagedata, L"o:title", str->string_);
|
||||
}
|
||||
}break;
|
||||
// 3D STYLE
|
||||
case threeDStyleBooleanProperties:
|
||||
case ODRAW::threeDStyleBooleanProperties:
|
||||
{
|
||||
ODRAW::ThreeDStyleBooleanProperties* booleans = dynamic_cast<ODRAW::ThreeDStyleBooleanProperties*>(iter.get());
|
||||
}break;
|
||||
case threeDObjectBooleanProperties:
|
||||
case ODRAW::threeDObjectBooleanProperties:
|
||||
{
|
||||
ODRAW::ThreeDObjectBooleanProperties* booleans = dynamic_cast<ODRAW::ThreeDObjectBooleanProperties*>(iter.get());
|
||||
|
||||
if ((booleans) && (booleans->fUsef3D && !booleans->f3D))
|
||||
b3D = false;
|
||||
}break;
|
||||
case c3DRenderMode:
|
||||
case ODRAW::c3DRenderMode:
|
||||
{
|
||||
}break;
|
||||
case c3DExtrudeBackward:
|
||||
case ODRAW::c3DExtrudeBackward:
|
||||
{
|
||||
EmuValue backwardValue( (int)iter->op );
|
||||
std::wstring depth = FormatUtils::DoubleToWideString( backwardValue.ToPoints() ) + L"pt";
|
||||
appendValueAttribute(&m_3dstyle, L"backdepth", depth);
|
||||
}break;
|
||||
case c3DAmbientIntensity:
|
||||
case ODRAW::c3DAmbientIntensity:
|
||||
{
|
||||
std::wstring intens = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"brightness", intens);
|
||||
}break;
|
||||
case c3DSpecularAmt:
|
||||
case ODRAW::c3DSpecularAmt:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"specularity", amt);
|
||||
}break;
|
||||
case c3DDiffuseAmt:
|
||||
case ODRAW::c3DDiffuseAmt:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op) + L"f";
|
||||
appendValueAttribute(&m_3dstyle, L"diffusity", amt);
|
||||
}break;
|
||||
case c3DKeyIntensity:
|
||||
case ODRAW::c3DKeyIntensity:
|
||||
{
|
||||
std::wstring amt = FormatUtils::IntToWideString((int)iter->op);
|
||||
appendValueAttribute(&m_3dstyle, L"lightlevel", amt);
|
||||
}break;
|
||||
case c3DExtrusionColor:
|
||||
case ODRAW::c3DExtrusionColor:
|
||||
{
|
||||
std::wstring color = FormatUtils::IntToFormattedWideString(iter->op, L"#%06x");
|
||||
appendValueAttribute(&m_3dstyle, L"color", color);
|
||||
}break;
|
||||
case c3DSkewAngle:
|
||||
case ODRAW::c3DSkewAngle:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) appendValueAttribute(&m_3dstyle, L"skewangle", FormatUtils::DoubleToWideString( point->dVal ));
|
||||
}break;
|
||||
case c3DXViewpoint:
|
||||
case ODRAW::c3DXViewpoint:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) ViewPointX = EmuValue( (int)point->dVal );
|
||||
}break;
|
||||
case c3DYViewpoint:
|
||||
case ODRAW::c3DYViewpoint:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) ViewPointY = EmuValue( (int)point->dVal );
|
||||
}break;
|
||||
case c3DZViewpoint:
|
||||
case ODRAW::c3DZViewpoint:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) ViewPointZ = EmuValue( (int)point->dVal );
|
||||
}break;
|
||||
case c3DOriginX:
|
||||
case ODRAW::c3DOriginX:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) viewPointOriginX = point->dVal;
|
||||
}break;
|
||||
case c3DOriginY:
|
||||
case ODRAW::c3DOriginY:
|
||||
{
|
||||
ODRAW::FixedPoint* point = dynamic_cast<ODRAW::FixedPoint*>(iter.get());
|
||||
if (point) viewPointOriginY = point->dVal;
|
||||
}break;
|
||||
// TEXTBOX
|
||||
case lTxid:
|
||||
case ODRAW::lTxid:
|
||||
{
|
||||
hasTextbox = true;
|
||||
nLTxID = (((iter->op) >> 16) & 0xFFFF);
|
||||
}break;
|
||||
case dxTextLeft: {ndxTextLeft = (int)iter->op; break;}
|
||||
case dyTextTop: {ndyTextTop = (int)iter->op; break;}
|
||||
case dxTextRight: {ndxTextRight = (int)iter->op; break;}
|
||||
case dyTextBottom: {ndyTextBottom = (int)iter->op; break;}
|
||||
case txflTextFlow:
|
||||
case ODRAW::dxTextLeft: {ndxTextLeft = (int)iter->op; break;}
|
||||
case ODRAW::dyTextTop: {ndyTextTop = (int)iter->op; break;}
|
||||
case ODRAW::dxTextRight: {ndxTextRight = (int)iter->op; break;}
|
||||
case ODRAW::dyTextBottom: {ndyTextBottom = (int)iter->op; break;}
|
||||
case ODRAW::txflTextFlow:
|
||||
{
|
||||
switch(iter->op)
|
||||
{
|
||||
@ -755,6 +758,7 @@ namespace DocFileFormat
|
||||
case 4://обычный
|
||||
break;
|
||||
case 1:
|
||||
case 3:
|
||||
case 5://верт (склони голову направо)
|
||||
appendStyleProperty(sTextboxStyle, L"layout-flow", L"vertical");
|
||||
break;
|
||||
@ -765,49 +769,33 @@ namespace DocFileFormat
|
||||
}
|
||||
}break;
|
||||
// Word Art
|
||||
case gtextUNICODE:
|
||||
case ODRAW::gtextUNICODE:
|
||||
{
|
||||
ODRAW::AnyString* str = dynamic_cast<ODRAW::AnyString*>(iter.get());
|
||||
if ((str) && (!str->string_.empty()))
|
||||
{
|
||||
std::wstring text = FormatUtils::XmlEncode(str->string_);
|
||||
if (std::wstring::npos != text.find(L"\n"))
|
||||
{
|
||||
m_textpath.AppendText(text);
|
||||
}
|
||||
text = ReplaceString(text, L"\n", L"
");
|
||||
appendValueAttribute(&m_textpath, L"string", text);
|
||||
appendValueAttribute(&m_textpath, L"string", str->string_);
|
||||
}
|
||||
}break;
|
||||
case gtextFont:
|
||||
case ODRAW::gtextFont:
|
||||
{
|
||||
ODRAW::AnyString* str = dynamic_cast<ODRAW::AnyString*>(iter.get());
|
||||
if ((str) && (!str->string_.empty()))
|
||||
if (str)
|
||||
{
|
||||
std::wstring font = str->string_;
|
||||
size_t i = font.size();
|
||||
while (i > 0)
|
||||
{
|
||||
if (font[i-1] != 0) break;
|
||||
i--;
|
||||
}
|
||||
if (i < font.size()) font.erase(font.begin() + i, font.end());
|
||||
|
||||
font = std::wstring(L"\"") + font + std::wstring(L"\"");
|
||||
appendStyleProperty(m_textPathStyle, L"font-family", font);
|
||||
appendStyleProperty(m_textPathStyle, L"font-family", str->string_);
|
||||
}
|
||||
}break;
|
||||
case gtextSize:
|
||||
case ODRAW::gtextSize:
|
||||
{
|
||||
std::wstring fontSize = FormatUtils::IntToWideString(iter->op/65535);
|
||||
appendStyleProperty(m_textPathStyle, L"font-size", fontSize + L"pt");
|
||||
}break;
|
||||
case gtextSpacing:
|
||||
case ODRAW::gtextSpacing:
|
||||
{
|
||||
std::wstring spacing = FormatUtils::IntToWideString(iter->op);
|
||||
appendStyleProperty(m_textPathStyle, L"v-text-spacing", spacing + L"f");
|
||||
}break;
|
||||
case geometryTextBooleanProperties:
|
||||
case ODRAW::geometryTextBooleanProperties:
|
||||
{
|
||||
ODRAW::GeometryTextBooleanProperties *props = dynamic_cast<ODRAW::GeometryTextBooleanProperties*>(iter.get());
|
||||
if (props->fUsegFBestFit && props->fBestFit)
|
||||
@ -1128,7 +1116,14 @@ namespace DocFileFormat
|
||||
|
||||
m_context->_doc->Convert(&textboxMapping);
|
||||
|
||||
m_pXmlWriter->WriteString(textboxMapping.getOLEObject());
|
||||
std::wstring sOleXml = textboxMapping.getOLEObject();
|
||||
|
||||
if (false == sOleXml.empty())
|
||||
m_pXmlWriter->WriteString(sOleXml);
|
||||
else
|
||||
{
|
||||
m_pXmlWriter->WriteString(txtBoxWrapper.GetXmlString());
|
||||
}
|
||||
}
|
||||
|
||||
//ShapeType
|
||||
@ -1215,7 +1210,7 @@ namespace DocFileFormat
|
||||
return strXmlAttr;
|
||||
}
|
||||
|
||||
std::wstring VMLShapeMapping::GetLineFrom(const ChildAnchor* pAnchor) const
|
||||
std::wstring VMLShapeMapping::GetLineFrom(const ChildAnchor* pAnchor, bool twistDimensions) const
|
||||
{
|
||||
//Если линия находится в группе, то координаты должны быть в Twips
|
||||
//Если линия находится в группе, то координаты должны быть в других единицах измерения (например в twips)
|
||||
@ -1224,15 +1219,33 @@ namespace DocFileFormat
|
||||
|
||||
if (NULL != pAnchor)
|
||||
{
|
||||
strXmlFrom += FormatUtils::IntToWideString(pAnchor->rcgBounds.topLeftAngle.x);
|
||||
int left = pAnchor->rcgBounds.topLeftAngle.x;
|
||||
int top = pAnchor->rcgBounds.topLeftAngle.y;
|
||||
|
||||
if (twistDimensions)
|
||||
{
|
||||
int right = pAnchor->rcgBounds.topLeftAngle.x + pAnchor->rcgBounds.size.cx;
|
||||
int bottom = pAnchor->rcgBounds.topLeftAngle.y + pAnchor->rcgBounds.size.cy;
|
||||
|
||||
left = (right + pAnchor->rcgBounds.topLeftAngle.x) * 0.5 - (bottom - pAnchor->rcgBounds.topLeftAngle.y) * 0.5;
|
||||
top = (bottom + pAnchor->rcgBounds.topLeftAngle.y) * 0.5 - (right - pAnchor->rcgBounds.topLeftAngle.x) * 0.5;
|
||||
}
|
||||
|
||||
strXmlFrom += FormatUtils::IntToWideString(left);
|
||||
strXmlFrom += L",";
|
||||
strXmlFrom += FormatUtils::IntToWideString(pAnchor->rcgBounds.topLeftAngle.y);
|
||||
strXmlFrom += FormatUtils::IntToWideString(top);
|
||||
}
|
||||
else if (m_pSpa)
|
||||
{
|
||||
TwipsValue oLeft(m_pSpa->xaLeft);
|
||||
TwipsValue oTop(m_pSpa->yaTop);
|
||||
|
||||
if (twistDimensions)
|
||||
{
|
||||
oLeft = TwipsValue((m_pSpa->xaRight + m_pSpa->xaLeft) * 0.5 - (m_pSpa->yaBottom - m_pSpa->yaTop) * 0.5);
|
||||
oTop = TwipsValue((m_pSpa->yaBottom + m_pSpa->yaTop) * 0.5 - (m_pSpa->xaRight - m_pSpa->xaLeft) * 0.5);
|
||||
}
|
||||
|
||||
strXmlFrom += FormatUtils::DoubleToWideString(oLeft.ToPoints());
|
||||
strXmlFrom += L"pt,";
|
||||
strXmlFrom += FormatUtils::DoubleToWideString(oTop.ToPoints());
|
||||
@ -1242,7 +1255,7 @@ namespace DocFileFormat
|
||||
return strXmlFrom;
|
||||
}
|
||||
|
||||
std::wstring VMLShapeMapping::GetLineTo(const ChildAnchor* pAnchor) const
|
||||
std::wstring VMLShapeMapping::GetLineTo(const ChildAnchor* pAnchor, bool twistDimensions) const
|
||||
{
|
||||
//Если линия находится в группе, то координаты должны быть в других единицах измерения (например в twips)
|
||||
|
||||
@ -1250,15 +1263,32 @@ namespace DocFileFormat
|
||||
|
||||
if (NULL != pAnchor)
|
||||
{
|
||||
strXmlTo += FormatUtils::IntToWideString(pAnchor->rcgBounds.topLeftAngle.x + pAnchor->rcgBounds.size.cx);
|
||||
int right = pAnchor->rcgBounds.topLeftAngle.x + pAnchor->rcgBounds.size.cx;
|
||||
int bottom = pAnchor->rcgBounds.topLeftAngle.y + pAnchor->rcgBounds.size.cy;
|
||||
|
||||
if (twistDimensions)
|
||||
{
|
||||
int left = (right + pAnchor->rcgBounds.topLeftAngle.x) * 0.5 - (bottom - pAnchor->rcgBounds.topLeftAngle.y) * 0.5;
|
||||
int top = (bottom + pAnchor->rcgBounds.topLeftAngle.y) * 0.5 - (right - pAnchor->rcgBounds.topLeftAngle.x) * 0.5;
|
||||
|
||||
right = left + pAnchor->rcgBounds.size.cy;
|
||||
bottom = top + pAnchor->rcgBounds.size.cx;
|
||||
}
|
||||
strXmlTo += FormatUtils::IntToWideString(right);
|
||||
strXmlTo += L",";
|
||||
strXmlTo += FormatUtils::IntToWideString(pAnchor->rcgBounds.topLeftAngle.y + pAnchor->rcgBounds.size.cy);
|
||||
strXmlTo += FormatUtils::IntToWideString(bottom);
|
||||
}
|
||||
else if (m_pSpa)
|
||||
{
|
||||
TwipsValue oRight (m_pSpa->xaRight);
|
||||
TwipsValue oBottom (m_pSpa->yaBottom);
|
||||
|
||||
if (twistDimensions)
|
||||
{
|
||||
oRight = TwipsValue((m_pSpa->yaBottom - m_pSpa->yaTop) + (m_pSpa->xaRight + m_pSpa->xaLeft) * 0.5 - (m_pSpa->yaBottom - m_pSpa->yaTop) * 0.5);
|
||||
oBottom = TwipsValue((m_pSpa->xaRight - m_pSpa->xaLeft) + (m_pSpa->yaBottom + m_pSpa->yaTop) * 0.5 - (m_pSpa->xaRight - m_pSpa->xaLeft) * 0.5);
|
||||
}
|
||||
|
||||
strXmlTo += FormatUtils::DoubleToWideString(oRight.ToPoints());
|
||||
strXmlTo += L"pt,";
|
||||
strXmlTo += FormatUtils::DoubleToWideString(oBottom.ToPoints());
|
||||
@ -1280,7 +1310,7 @@ namespace DocFileFormat
|
||||
|
||||
for (size_t i = 0; i < pWrapPolygonVertices->complex.data.size(); ++i)
|
||||
{
|
||||
coords += FormatUtils::IntToWideString(pWrapPolygonVertices->complex.data[i++].x);
|
||||
coords += FormatUtils::IntToWideString(pWrapPolygonVertices->complex.data[i].x);
|
||||
coords += L",";
|
||||
coords += FormatUtils::IntToWideString(pWrapPolygonVertices->complex.data[i].y);
|
||||
coords += L",";
|
||||
@ -1293,7 +1323,7 @@ namespace DocFileFormat
|
||||
|
||||
/// Copies the picture from the binary stream to the zip archive
|
||||
/// and creates the relationships for the image.
|
||||
bool VMLShapeMapping::copyPicture(const BlipStoreEntry* oBlip)
|
||||
bool VMLShapeMapping::copyPicture(BlipStoreEntry* oBlip)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
@ -1304,9 +1334,9 @@ namespace DocFileFormat
|
||||
|
||||
switch (oBlip->btWin32)
|
||||
{
|
||||
case Global::msoblipEMF:
|
||||
case Global::msoblipWMF:
|
||||
case Global::msoblipPICT:
|
||||
case Global::msoblipEMF:
|
||||
case Global::msoblipWMF:
|
||||
case Global::msoblipPICT:
|
||||
{
|
||||
//it's a meta image
|
||||
MetafilePictBlip* metaBlip = static_cast<MetafilePictBlip*>(RecordFactory::ReadRecord(&reader, 0));
|
||||
@ -1314,50 +1344,61 @@ namespace DocFileFormat
|
||||
{
|
||||
//meta images can be compressed
|
||||
unsigned char* decompressed = NULL;
|
||||
int decompressedSize = 0;
|
||||
unsigned int decompressedSize = 0;
|
||||
|
||||
decompressedSize = metaBlip->Decompress(&decompressed);
|
||||
|
||||
if (0 != decompressedSize && NULL != decompressed)
|
||||
{
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlip->btWin32), std::vector<unsigned char>(decompressed, (decompressed + decompressedSize))));
|
||||
RELEASEARRAYOBJECTS(decompressed);
|
||||
boost::shared_array<unsigned char> arDecompressed(decompressed);
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlip->btWin32), arDecompressed, decompressedSize));
|
||||
result = true;
|
||||
}
|
||||
|
||||
RELEASEOBJECT(metaBlip);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Global::msoblipJPEG:
|
||||
case Global::msoblipCMYKJPEG:
|
||||
case Global::msoblipPNG:
|
||||
case Global::msoblipTIFF:
|
||||
case Global::msoblipDIB:
|
||||
{
|
||||
//it's a bitmap image
|
||||
}break;
|
||||
case Global::msoblipJPEG:
|
||||
case Global::msoblipCMYKJPEG:
|
||||
case Global::msoblipPNG:
|
||||
case Global::msoblipTIFF:
|
||||
case Global::msoblipDIB:
|
||||
{//it's a bitmap image
|
||||
BitmapBlip* bitBlip = static_cast<BitmapBlip*>(RecordFactory::ReadRecord(&reader, 0));
|
||||
if ((bitBlip) && (bitBlip->m_pvBits))
|
||||
{
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlip->btWin32),
|
||||
std::vector<unsigned char>(bitBlip->m_pvBits, (bitBlip->m_pvBits + bitBlip->pvBitsSize)), oBlip->btWin32));
|
||||
RELEASEOBJECT (bitBlip);
|
||||
}
|
||||
}
|
||||
break;
|
||||
if (oBlip->btWin32 == Global::msoblipDIB)
|
||||
{
|
||||
std::wstring file_name = m_context->_doc->m_sTempFolder + L"tmp_image";
|
||||
|
||||
default:
|
||||
oBlip->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(oBlip->btWin32),
|
||||
boost::shared_array<unsigned char>(pData), nData, oBlip->btWin32));
|
||||
result = true;
|
||||
break;
|
||||
}//в случае ошибки конвертации -храним оригинальный dib
|
||||
}
|
||||
m_context->_docx->ImagesList.push_back(ImageFileStructure(GetTargetExt(oBlip->btWin32),
|
||||
bitBlip->m_pvBits, bitBlip->pvBitsSize, oBlip->btWin32));
|
||||
RELEASEOBJECT (bitBlip);
|
||||
result = true;
|
||||
}break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
result = false;
|
||||
return result;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
m_nImageId = m_context->_docx->RegisterImage (m_pCaller, oBlip->btWin32);
|
||||
|
||||
result = true;
|
||||
}
|
||||
|
||||
if (result)
|
||||
{
|
||||
m_nImageId = m_context->_docx->RegisterImage (m_pCaller, oBlip->btWin32);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -1598,26 +1639,26 @@ namespace DocFileFormat
|
||||
switch (iter->opid)
|
||||
{
|
||||
// POSITIONING
|
||||
case posh:
|
||||
case ODRAW::posh:
|
||||
{
|
||||
nPosH = iter->op;
|
||||
}break;
|
||||
case posrelh:
|
||||
case ODRAW::posrelh:
|
||||
{
|
||||
nRelH = iter->op;
|
||||
appendStyleProperty(oStyle, L"mso-position-horizontal-relative", mapHorizontalPositionRelative((PositionHorizontalRelative)iter->op));
|
||||
}break;
|
||||
case posv:
|
||||
case ODRAW::posv:
|
||||
{
|
||||
nPosV = iter->op;
|
||||
}break;
|
||||
case posrelv:
|
||||
case ODRAW::posrelv:
|
||||
{
|
||||
nRelV = iter->op;
|
||||
appendStyleProperty(oStyle, L"mso-position-vertical-relative", mapVerticalPositionRelative((PositionVerticalRelative)iter->op));
|
||||
}break;
|
||||
// BOOLEANS
|
||||
case groupShapeBooleans:
|
||||
case ODRAW::groupShapeBooleanProperties:
|
||||
{
|
||||
ODRAW::GroupShapeBooleanProperties* booleans = dynamic_cast<ODRAW::GroupShapeBooleanProperties*>(iter.get());
|
||||
|
||||
@ -1645,7 +1686,7 @@ namespace DocFileFormat
|
||||
}
|
||||
}break;
|
||||
// GEOMETRY
|
||||
case PropertyId_rotation:
|
||||
case ODRAW::ePropertyId_rotation:
|
||||
{
|
||||
double dAngle = (double)((int)iter->op) / 65535.0;
|
||||
|
||||
@ -1655,24 +1696,24 @@ namespace DocFileFormat
|
||||
appendStyleProperty(oStyle, L"rotation", FormatUtils::DoubleToWideString(dAngle));
|
||||
}break;
|
||||
// TEXTBOX
|
||||
case anchorText:
|
||||
case ODRAW::anchorText:
|
||||
{
|
||||
appendStyleProperty(oStyle, L"v-text-anchor", getTextboxAnchor(iter->op));
|
||||
}break;
|
||||
// WRAP DISTANCE
|
||||
case dxWrapDistLeft:
|
||||
case ODRAW::dxWrapDistLeft:
|
||||
{
|
||||
appendStyleProperty(oStyle, L"mso-wrap-distance-left", (FormatUtils::DoubleToWideString(EmuValue((int)iter->op).ToPoints()) + std::wstring(L"pt")));
|
||||
}break;
|
||||
case dxWrapDistRight:
|
||||
case ODRAW::dxWrapDistRight:
|
||||
{
|
||||
appendStyleProperty(oStyle, L"mso-wrap-distance-right", (FormatUtils::DoubleToWideString(EmuValue((int)iter->op).ToPoints()) + std::wstring(L"pt")));
|
||||
}break;
|
||||
case dyWrapDistBottom:
|
||||
case ODRAW::dyWrapDistBottom:
|
||||
{
|
||||
appendStyleProperty(oStyle, L"mso-wrap-distance-bottom", (FormatUtils::DoubleToWideString(EmuValue((int)iter->op).ToPoints()) + std::wstring(L"pt")));
|
||||
}break;
|
||||
case dyWrapDistTop:
|
||||
case ODRAW::dyWrapDistTop:
|
||||
{
|
||||
appendStyleProperty(oStyle, L"mso-wrap-distance-top", (FormatUtils::DoubleToWideString(EmuValue((int)iter->op).ToPoints()) + std::wstring(L"pt")));
|
||||
}break;
|
||||
@ -1731,17 +1772,17 @@ namespace DocFileFormat
|
||||
}
|
||||
|
||||
//
|
||||
std::wstring VMLShapeMapping::buildStyle (const Shape* shape, const ChildAnchor* anchor, const std::vector<ODRAW::OfficeArtFOPTEPtr>& options, int zIndex) const
|
||||
std::wstring VMLShapeMapping::buildStyle (const Shape* shape, const ChildAnchor* anchor, const std::vector<ODRAW::OfficeArtFOPTEPtr>& options, int zIndex, bool &twistDimensions) const
|
||||
{
|
||||
std::wstring style;
|
||||
|
||||
bool twistDimensions = false;
|
||||
twistDimensions = false;
|
||||
|
||||
for (size_t i = 0; i < options.size(); i++)
|
||||
{
|
||||
const ODRAW::OfficeArtFOPTEPtr & iter = options[i];
|
||||
|
||||
if (geometryTextBooleanProperties == iter->opid)
|
||||
if (ODRAW::geometryTextBooleanProperties == iter->opid)
|
||||
{
|
||||
ODRAW::GeometryTextBooleanProperties* booleans = dynamic_cast<ODRAW::GeometryTextBooleanProperties*>(iter.get());
|
||||
|
||||
@ -1751,13 +1792,16 @@ namespace DocFileFormat
|
||||
}
|
||||
}
|
||||
|
||||
else if (PropertyId_rotation == iter->opid)
|
||||
else if (ODRAW::ePropertyId_rotation == iter->opid)
|
||||
{
|
||||
double dAngle = (double)((int)iter->op) / 65535.0;
|
||||
|
||||
if (dAngle < -360.0)
|
||||
dAngle += 360.0;
|
||||
|
||||
if (dAngle > 360.0)
|
||||
dAngle -= 360.0;
|
||||
|
||||
if ((dAngle >= 45.0 && dAngle <= 135.0) || (dAngle >= 225.0 && dAngle <= 315.0) || (dAngle <= -45.0 && dAngle >= -135.0) || (dAngle <= -225.0 && dAngle >= -315.0))
|
||||
twistDimensions = true;
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ 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;
|
||||
@ -91,7 +91,7 @@ namespace DocFileFormat
|
||||
|
||||
std::wstring getTextboxAnchor( unsigned int anchor ) const;
|
||||
|
||||
std::wstring buildStyle ( const Shape* shape, const ChildAnchor* anchor, const std::vector<ODRAW::OfficeArtFOPTEPtr>& 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;
|
||||
@ -112,8 +112,8 @@ 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 ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
std::vector<std::wstring> GetTextRectangles ( const ODRAW::OfficeArtFOPTEPtr& pOpt ) const;
|
||||
|
||||
@ -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), AnnotationsFieldsPlex(NULL),
|
||||
AnnotationsReferencePlex(NULL), AnnotationsReferenceExPlex(NULL), IndividualCommentsPlex(NULL), TextboxBreakPlex(NULL), TextboxBreakPlexHeader(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,9 +358,10 @@ 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);
|
||||
@ -361,27 +376,38 @@ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -853,7 +879,6 @@ namespace DocFileFormat
|
||||
|
||||
RELEASEOBJECT(AllSepx);
|
||||
}
|
||||
|
||||
RELEASEOBJECT(Text);
|
||||
RELEASEOBJECT(m_PieceTable);
|
||||
|
||||
@ -879,7 +904,7 @@ namespace DocFileFormat
|
||||
RELEASEOBJECT(HeaderStoriesPlex);
|
||||
RELEASEOBJECT(IndividualCommentsPlex);
|
||||
RELEASEOBJECT(AnnotationsReferencePlex);
|
||||
RELEASEOBJECT(AnnotationsReferenceExPlex);
|
||||
RELEASEOBJECT(AnnotationsReferencesEx);
|
||||
RELEASEOBJECT(TextboxBreakPlex);
|
||||
RELEASEOBJECT(TextboxBreakPlexHeader);
|
||||
RELEASEOBJECT(OfficeDrawingPlex);
|
||||
|
||||
@ -92,7 +92,7 @@ namespace DocFileFormat
|
||||
|
||||
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);
|
||||
@ -153,6 +153,7 @@ namespace DocFileFormat
|
||||
std::wstring m_sPassword;
|
||||
std::wstring m_sTempFolder;
|
||||
std::wstring m_sTempDecryptFileName;
|
||||
int m_nUserLCID;
|
||||
|
||||
const ProgressCallback* m_pCallFunc;
|
||||
|
||||
@ -171,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
|
||||
@ -211,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;
|
||||
@ -226,9 +234,9 @@ namespace DocFileFormat
|
||||
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);
|
||||
|
||||
@ -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>
|
||||
@ -1,27 +1,21 @@
|
||||
|
||||
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}"
|
||||
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}") = "XlsFormat", "..\..\ASCOfficeXlsFile2\source\win32\XlsFormat.vcproj", "{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}"
|
||||
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.vcproj", "{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383} = {C5371405-338F-4B70-83BD-2A5CDF64F383}
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
|
||||
{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}
|
||||
EndProjectSection
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatTest", "DocFormatTest.vcxproj", "{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\..\OfficeCryptReader\win32\ECMACryptReader.vcxproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\..\OfficeCryptReader\win32\ECMACryptReader.vcproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormatLib", "..\..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcxproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPTXFormat", "..\..\ASCOfficePPTXFile\PPTXLib\PPTXFormat.vcproj", "{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormatLib", "..\..\Common\DocxFormat\Projects\DocxFormatLib.vcxproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -29,6 +23,8 @@ Global
|
||||
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
|
||||
@ -39,6 +35,10 @@ Global
|
||||
{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
|
||||
@ -47,6 +47,10 @@ Global
|
||||
{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
|
||||
@ -55,20 +59,20 @@ Global
|
||||
{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
|
||||
{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
|
||||
@ -77,6 +81,10 @@ Global
|
||||
{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
|
||||
@ -85,6 +93,22 @@ Global
|
||||
{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
|
||||
@ -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,472 +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="..\..\XlsxSerializerCom\Writer\BinaryReader.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\XlsxSerializerCom\Reader\BinaryWriter.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,10 +29,9 @@
|
||||
* 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
|
||||
@ -41,31 +40,50 @@ 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, std::wstring& sDocumentComment, std::wstring& sDocumentCommentExt, std::wstring& sDocumentPeople)
|
||||
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;
|
||||
}
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return OOX::FileTypes::Comments.DefaultFileName().GetPath();
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
@ -81,7 +99,7 @@ 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(sDir + OOX::FileTypes::CommentsExt.DefaultFileName().GetPath());
|
||||
@ -90,6 +108,24 @@ namespace Writers
|
||||
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;
|
||||
@ -120,6 +156,24 @@ namespace Writers
|
||||
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;
|
||||
@ -129,8 +183,15 @@ namespace Writers
|
||||
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
|
||||
|
||||
@ -40,7 +40,7 @@ namespace Writers
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
DocumentRelsWriter(std::wstring sDir):m_sDir(sDir)
|
||||
DocumentRelsWriter(std::wstring sDir):m_sDir(sDir), m_bHasCustom(false)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
@ -51,8 +51,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_bHasCustom)
|
||||
{
|
||||
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 +65,8 @@ namespace Writers
|
||||
oFile.WriteStringUTF8(s_Common);
|
||||
oFile.CloseFile();
|
||||
}
|
||||
public:
|
||||
bool m_bHasCustom;
|
||||
};
|
||||
}
|
||||
#endif // #ifndef DOCUMENT_RELS_WRITER
|
||||
|
||||
93
ASCOfficeDocxFile2/BinReader/FileWriter.cpp
Normal file
93
ASCOfficeDocxFile2/BinReader/FileWriter.cpp
Normal file
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* (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, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
:
|
||||
m_oFontTableWriter (sDirOutput, sFontDir, bNoFontDir),
|
||||
m_oDocumentWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oMediaWriter (sDirOutput),
|
||||
m_oStylesWriter (sDirOutput, nVersion),
|
||||
m_oNumberingWriter (sDirOutput),
|
||||
m_oHeaderFooterWriter (sDirOutput),
|
||||
m_oFootnotesWriter (sDirOutput),
|
||||
m_oEndnotesWriter (sDirOutput),
|
||||
m_oSettingWriter (sDirOutput, m_oHeaderFooterWriter),
|
||||
m_oCommentsWriter (sDirOutput),
|
||||
m_oChartWriter (sDirOutput),
|
||||
m_oDocumentRelsWriter (sDirOutput),
|
||||
m_oWebSettingsWriter (sDirOutput),
|
||||
m_oCustomXmlWriter (sDirOutput, pDrawingConverter),
|
||||
m_pDrawingConverter (pDrawingConverter),
|
||||
m_bSaveChartAsImg (bSaveChartAsImg),
|
||||
m_sThemePath (sThemePath),
|
||||
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_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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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"
|
||||
@ -63,6 +62,10 @@ namespace OOX
|
||||
class CApp;
|
||||
class CCore;
|
||||
}
|
||||
namespace PPTX
|
||||
{
|
||||
class CustomProperties;
|
||||
}
|
||||
|
||||
namespace Writers
|
||||
{
|
||||
@ -94,58 +97,17 @@ namespace Writers
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
OOX::CApp* m_pApp;
|
||||
OOX::CCore* m_pCore;
|
||||
PPTX::CustomProperties* m_pCustomProperties;
|
||||
|
||||
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),
|
||||
m_pApp (NULL),
|
||||
m_pCore (NULL)
|
||||
{
|
||||
}
|
||||
~FileWriter()
|
||||
{
|
||||
RELEASEOBJECT(m_pApp);
|
||||
RELEASEOBJECT(m_pCore);
|
||||
}
|
||||
FileWriter (std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath);
|
||||
|
||||
~FileWriter();
|
||||
int getNextDocPr()
|
||||
{
|
||||
m_nDocPrIndex++;
|
||||
return m_nDocPrIndex;
|
||||
}
|
||||
|
||||
void Write()
|
||||
{
|
||||
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();
|
||||
}
|
||||
void Write();
|
||||
};
|
||||
}
|
||||
#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
|
||||
{
|
||||
@ -133,17 +116,17 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
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)
|
||||
{
|
||||
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());
|
||||
@ -186,7 +169,7 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
}
|
||||
std::wstring getFilename()
|
||||
{
|
||||
return _T("footnotes.xml");
|
||||
return L"footnotes.xml";
|
||||
}
|
||||
bool IsEmpty()
|
||||
{
|
||||
@ -208,7 +191,7 @@ mc:Ignorable=\"w14 w15 wp14\">");
|
||||
|
||||
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" + 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
|
||||
|
||||
@ -31,10 +31,10 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifndef READER_CLASSES
|
||||
#define READER_CLASSES
|
||||
#include "HeaderFooterWriter.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/XML/Utils.h"
|
||||
#include "../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
@ -62,6 +62,9 @@ public:
|
||||
std::wstring pgBorders;
|
||||
std::wstring footnotePr;
|
||||
std::wstring endnotePr;
|
||||
std::wstring lineNum;
|
||||
bool RtlGutter;
|
||||
long Gutter;
|
||||
|
||||
bool bW;
|
||||
bool bH;
|
||||
@ -76,6 +79,8 @@ public:
|
||||
bool bEvenAndOddHeaders;
|
||||
bool bSectionType;
|
||||
bool bPageNumStart;
|
||||
bool bRtlGutter;
|
||||
bool bGutter;
|
||||
SectPr()
|
||||
{
|
||||
sHeaderFooterReference = _T("");
|
||||
@ -94,6 +99,8 @@ public:
|
||||
bEvenAndOddHeaders = false;
|
||||
bSectionType = false;
|
||||
bPageNumStart = false;
|
||||
bRtlGutter = false;
|
||||
bGutter = false;
|
||||
}
|
||||
std::wstring Write()
|
||||
{
|
||||
@ -152,14 +159,27 @@ public:
|
||||
sRes += L" w:header=\"" + std::to_wstring(Header) + L"\"";
|
||||
if(bFooter)
|
||||
sRes += L" w:footer=\"" + std::to_wstring(Footer) + L"\"";
|
||||
sRes += L" w:gutter=\"0\"/>";
|
||||
if(bGutter)
|
||||
sRes += L" w:gutter=\"" + std::to_wstring(Gutter) + L"\"";
|
||||
sRes += L"/>";
|
||||
}
|
||||
if(!pgBorders.empty())
|
||||
sRes += pgBorders;
|
||||
|
||||
if(!lineNum.empty())
|
||||
sRes += lineNum;
|
||||
|
||||
if(bPageNumStart)
|
||||
sRes += L"<w:pgNumType w:start=\"" + std::to_wstring(PageNumStart) + L"\"/>";
|
||||
|
||||
if(bRtlGutter)
|
||||
{
|
||||
if(RtlGutter)
|
||||
sRes += L"<w:rtlGutter/>";
|
||||
else
|
||||
sRes += L"<w:rtlGutter w:val=\"0\"/>";
|
||||
}
|
||||
|
||||
if(!cols.empty())
|
||||
sRes += cols;
|
||||
sRes += L"<w:docGrid w:linePitch=\"360\"/>";
|
||||
@ -424,13 +444,12 @@ public:
|
||||
class Tab
|
||||
{
|
||||
public:
|
||||
BYTE Val;
|
||||
SimpleTypes::CTabJc<> Val;
|
||||
long Pos;
|
||||
BYTE Leader;
|
||||
bool bLeader;
|
||||
Tab()
|
||||
{
|
||||
Val = shd_Nil;
|
||||
Pos = 0;
|
||||
bLeader = false;
|
||||
}
|
||||
@ -457,7 +476,8 @@ public:
|
||||
docRGB Color;
|
||||
BYTE VertAlign;
|
||||
docRGB HighLight;
|
||||
std::wstring Shd;
|
||||
BYTE nHighLight;
|
||||
std::wstring Shd;
|
||||
std::wstring RStyle;
|
||||
long Spacing;
|
||||
bool DStrikeout;
|
||||
@ -494,7 +514,6 @@ public:
|
||||
bool bFontSize;
|
||||
bool bColor;
|
||||
bool bVertAlign;
|
||||
bool bHighLight;
|
||||
bool bShd;
|
||||
bool bRStyle;
|
||||
bool bSpacing;
|
||||
@ -543,7 +562,6 @@ public:
|
||||
bFontSize = false;
|
||||
bColor = false;
|
||||
bVertAlign = false;
|
||||
bHighLight = false;
|
||||
bShd = false;
|
||||
bRStyle = false;
|
||||
bSpacing = false;
|
||||
@ -564,7 +582,8 @@ public:
|
||||
ThemeColor.Reset();
|
||||
bVanish = false;
|
||||
|
||||
Outline.clear();
|
||||
nHighLight = 0; //not set
|
||||
Outline.clear();
|
||||
Fill.clear();
|
||||
Del.clear();
|
||||
Ins.clear();
|
||||
@ -574,7 +593,7 @@ public:
|
||||
}
|
||||
bool IsNoEmpty()
|
||||
{
|
||||
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || bHighLight || bShd ||
|
||||
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || nHighLight > 0 || bShd ||
|
||||
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish ||
|
||||
!Outline.empty() || !Fill.empty() || !Del.empty() || !Ins.empty() || !MoveFrom.empty() || !MoveTo.empty() || !rPrChange.empty();
|
||||
}
|
||||
@ -673,8 +692,8 @@ public:
|
||||
{
|
||||
if(DStrikeout)
|
||||
pCStringWriter->WriteString(L"<w:dstrike/>");
|
||||
else if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(L"<w:dstrike w:val=\"false\"/>");
|
||||
//else if(false == bDoNotWriteNullProp)
|
||||
// pCStringWriter->WriteString(L"<w:dstrike w:val=\"false\"/>");
|
||||
}
|
||||
if(bVanish)
|
||||
{
|
||||
@ -717,13 +736,17 @@ public:
|
||||
}
|
||||
if(bFontSizeCs)
|
||||
{
|
||||
pCStringWriter->WriteString(L"<w:szCs w:val=\"" + std::to_wstring(FontSizeCs) + L"\"/>");
|
||||
if(false == bFontSize)
|
||||
pCStringWriter->WriteString(L"<w:sz w:val=\"" + std::to_wstring(FontSizeCs) + L"\"/>");
|
||||
pCStringWriter->WriteString(L"<w:szCs w:val=\"" + std::to_wstring(FontSizeCs) + L"\"/>");
|
||||
}
|
||||
if(bHighLight)
|
||||
if(nHighLight > 0)
|
||||
{
|
||||
docRGB& H = HighLight;
|
||||
std::wstring sColor;
|
||||
if(0x00 == H.R && 0x00 == H.G && 0x00 == H.B )
|
||||
if (nHighLight == 1)
|
||||
sColor = L"none";
|
||||
else if(0x00 == H.R && 0x00 == H.G && 0x00 == H.B )
|
||||
sColor = _T("black");
|
||||
else if(0x00 == H.R && 0x00 == H.G && 0xFF == H.B )
|
||||
sColor = _T("blue");
|
||||
@ -1391,7 +1414,9 @@ class docLvl
|
||||
public:
|
||||
long ILvl;
|
||||
long Format;
|
||||
std::wstring sFormat;
|
||||
BYTE Jc;
|
||||
std::wstring sJc;
|
||||
std::vector<docLvlText*> Text;
|
||||
long Restart;
|
||||
long Start;
|
||||
@ -1476,19 +1501,34 @@ public:
|
||||
{
|
||||
oWriter.WriteString(L"<w:start w:val=\"" + std::to_wstring(Start) + L"\"/>");
|
||||
}
|
||||
if(bFormat)
|
||||
if(!sFormat.empty())
|
||||
{
|
||||
oWriter.WriteString(sFormat);
|
||||
}
|
||||
else if(bFormat)
|
||||
{
|
||||
std::wstring sFormat;
|
||||
switch(Format)
|
||||
{
|
||||
case numbering_numfmt_None:sFormat = _T("none");break;
|
||||
case numbering_numfmt_Bullet:sFormat = _T("bullet");break;
|
||||
case numbering_numfmt_Decimal:sFormat = _T("decimal");break;
|
||||
case numbering_numfmt_LowerRoman:sFormat = _T("lowerRoman");break;
|
||||
case numbering_numfmt_UpperRoman:sFormat = _T("upperRoman");break;
|
||||
case numbering_numfmt_LowerLetter:sFormat = _T("lowerLetter");break;
|
||||
case numbering_numfmt_UpperLetter:sFormat = _T("upperLetter");break;
|
||||
case numbering_numfmt_DecimalZero:sFormat = _T("decimalZero");break;
|
||||
case numbering_numfmt_None: sFormat = L"none"; break;
|
||||
case numbering_numfmt_Bullet: sFormat = L"bullet"; break;
|
||||
case numbering_numfmt_Decimal: sFormat = L"decimal"; break;
|
||||
case numbering_numfmt_LowerRoman: sFormat = L"lowerRoman"; break;
|
||||
case numbering_numfmt_UpperRoman: sFormat = L"upperRoman"; break;
|
||||
case numbering_numfmt_LowerLetter: sFormat = L"lowerLetter"; break;
|
||||
case numbering_numfmt_UpperLetter: sFormat = L"upperLetter"; break;
|
||||
case numbering_numfmt_DecimalZero: sFormat = L"decimalZero"; break;
|
||||
default:
|
||||
{
|
||||
Format -= 0x2008;
|
||||
if (Format >= 0)
|
||||
{
|
||||
SimpleTypes::CNumberFormat<> numFormat;
|
||||
numFormat.SetValue((SimpleTypes::ENumberFormat)Format);
|
||||
|
||||
sFormat = numFormat.ToString();
|
||||
}
|
||||
}break;
|
||||
}
|
||||
if(!sFormat.empty())
|
||||
{
|
||||
@ -1573,19 +1613,23 @@ public:
|
||||
}
|
||||
oWriter.WriteString(L"/>");
|
||||
}
|
||||
if(bJc)
|
||||
if(!sJc.empty())
|
||||
{
|
||||
std::wstring sJc;
|
||||
oWriter.WriteString(sJc);
|
||||
}
|
||||
else if(bJc)
|
||||
{
|
||||
std::wstring sJcType;
|
||||
switch(Jc)
|
||||
{
|
||||
case align_Right:sJc = _T("right");break;
|
||||
case align_Left:sJc = _T("left");break;
|
||||
case align_Center:sJc = _T("center");break;
|
||||
case align_Justify:sJc = _T("distribute");break;
|
||||
case align_Right:sJcType = _T("right");break;
|
||||
case align_Left:sJcType = _T("left");break;
|
||||
case align_Center:sJcType = _T("center");break;
|
||||
case align_Justify:sJcType = _T("distribute");break;
|
||||
}
|
||||
if(!sJc.empty())
|
||||
if(!sJcType.empty())
|
||||
{
|
||||
oWriter.WriteString(L"<w:lvlJc w:val=\"" + sJc + L"\"/>");
|
||||
oWriter.WriteString(L"<w:lvlJc w:val=\"" + sJcType + L"\"/>");
|
||||
}
|
||||
}
|
||||
if(bParaPr)
|
||||
@ -1733,9 +1777,9 @@ public:
|
||||
if(bGridAfter && nGridAfter > 0)
|
||||
{
|
||||
writer.WriteString(L"<w:grid" + sName + L" w:val=\"" + std::to_wstring(nGridAfter) + L"\"/>");
|
||||
if(oAfterWidth.bW)
|
||||
oAfterWidth.Write(writer, _T("w:w") + sName);
|
||||
}
|
||||
if(oAfterWidth.bW)
|
||||
oAfterWidth.Write(writer, _T("w:w") + sName);
|
||||
}
|
||||
};
|
||||
class WriteHyperlink
|
||||
@ -1867,33 +1911,49 @@ public:
|
||||
m_nId += nCount;
|
||||
return nRes;
|
||||
}
|
||||
int getCurrentId()
|
||||
{
|
||||
return m_nId;
|
||||
}
|
||||
};
|
||||
class CComment{
|
||||
class CComment
|
||||
{
|
||||
private:
|
||||
IdCounter& m_oParaIdCounter;
|
||||
IdCounter& m_oFormatIdCounter;
|
||||
public:
|
||||
void *pBinary_DocumentTableReader;
|
||||
|
||||
int IdOpen;
|
||||
int IdFormat;
|
||||
std::wstring UserName;
|
||||
std::wstring Initials;
|
||||
std::wstring UserId;
|
||||
std::wstring ProviderId;
|
||||
std::wstring Date;
|
||||
std::wstring OOData;
|
||||
std::wstring DateUtc;
|
||||
std::wstring UserData;
|
||||
bool Solved;
|
||||
unsigned int DurableId;
|
||||
std::wstring Text;
|
||||
std::wstring m_sParaId;
|
||||
std::wstring m_sParaIdParent;
|
||||
std::wstring sContent;
|
||||
|
||||
std::wstring sParaId;
|
||||
std::wstring sParaIdParent;
|
||||
std::vector<CComment*> replies;
|
||||
|
||||
bool bIdOpen;
|
||||
bool bIdFormat;
|
||||
bool bSolved;
|
||||
bool bDurableId;
|
||||
public:
|
||||
CComment(IdCounter& oParaIdCounter, IdCounter& oFormatIdCounter):m_oParaIdCounter(oParaIdCounter),m_oFormatIdCounter(oFormatIdCounter)
|
||||
{
|
||||
bIdOpen = false;
|
||||
bIdFormat = false;
|
||||
bSolved = false;
|
||||
bDurableId = false;
|
||||
}
|
||||
~CComment()
|
||||
{
|
||||
@ -1930,15 +1990,6 @@ public:
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeTemplates(bool isExt)
|
||||
{
|
||||
std::wstring sRes;
|
||||
sRes += isExt ? writeContentExt(this) : writeContent(this);
|
||||
|
||||
for(size_t i = 0; i < replies.size(); ++i)
|
||||
sRes += isExt ? writeContentExt(replies[i]) : writeContent(replies[i]);
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writeRef(CComment* pComment, const std::wstring& sBefore, const std::wstring& sRef, const std::wstring& sAfter)
|
||||
{
|
||||
std::wstring sRes;
|
||||
@ -1952,7 +2003,7 @@ public:
|
||||
sRes += (sAfter);
|
||||
return sRes;
|
||||
}
|
||||
static bool writeContentWritePart(CComment* pComment, std::wstring& sText, int nPrevIndex, int nCurIndex, bool bFirst, std::wstring& sRes)
|
||||
static void writeContentWritePart(CComment* pComment, std::wstring& sText, int nPrevIndex, int nCurIndex, std::wstring& sRes)
|
||||
{
|
||||
std::wstring sPart;
|
||||
if(nPrevIndex < nCurIndex)
|
||||
@ -1960,17 +2011,11 @@ public:
|
||||
|
||||
int nId = pComment->m_oParaIdCounter.getNextId();
|
||||
|
||||
std::wstring sId = XmlUtils::IntToString(nId, L"%08X");
|
||||
if(bFirst)
|
||||
{
|
||||
bFirst = false;
|
||||
pComment->m_sParaId = sId;
|
||||
}
|
||||
sRes += L"<w:p w14:paraId=\"" + sId + L"\" w14:textId=\"" + sId + L"\">";
|
||||
pComment->sParaId = XmlUtils::IntToString(nId, L"%08X");
|
||||
sRes += L"<w:p w14:paraId=\"" + pComment->sParaId + L"\" w14:textId=\"" + pComment->sParaId + L"\">";
|
||||
sRes += L"<w:pPr><w:spacing w:line=\"240\" w:after=\"0\" w:lineRule=\"auto\" w:before=\"0\"/><w:ind w:firstLine=\"0\" w:left=\"0\" w:right=\"0\"/><w:jc w:val=\"left\"/></w:pPr><w:r><w:rPr><w:rFonts w:eastAsia=\"Arial\" w:ascii=\"Arial\" w:hAnsi=\"Arial\" w:cs=\"Arial\"/><w:sz w:val=\"22\"/></w:rPr><w:t xml:space=\"preserve\">";
|
||||
sRes += sPart;
|
||||
sRes += L"</w:t></w:r></w:p>";
|
||||
return bFirst;
|
||||
}
|
||||
static std::wstring writeContent(CComment* pComment)
|
||||
{
|
||||
@ -1981,22 +2026,12 @@ public:
|
||||
pComment->IdFormat = pComment->m_oFormatIdCounter.getNextId();
|
||||
}
|
||||
sRes += L"<w:comment w:id=\"" + std::to_wstring(pComment->IdFormat) + L"\"";
|
||||
std::wstring sInitials;
|
||||
if(false == pComment->UserName.empty())
|
||||
{
|
||||
std::wstring sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
|
||||
sRes += L" w:author=\"";
|
||||
sRes += (sUserName);
|
||||
sRes += L"\"";
|
||||
//делаем initials
|
||||
std::vector<std::wstring> arSplit;
|
||||
boost::algorithm::split(arSplit, pComment->UserName, boost::algorithm::is_any_of(L" "), boost::algorithm::token_compress_on);
|
||||
|
||||
for (size_t i = 0; i < arSplit.size(); i++)
|
||||
{
|
||||
sInitials += arSplit[i][0];
|
||||
}
|
||||
|
||||
sRes += L"\"";
|
||||
}
|
||||
if(false == pComment->Date.empty())
|
||||
{
|
||||
@ -2005,71 +2040,106 @@ public:
|
||||
sRes += sDate;
|
||||
sRes += L"\"";
|
||||
}
|
||||
if(false == pComment->OOData.empty())
|
||||
if(false == pComment->Initials.empty())
|
||||
{
|
||||
std::wstring sData = XmlUtils::EncodeXmlString(pComment->OOData);
|
||||
sRes += L" oodata=\"";
|
||||
sRes += sData;
|
||||
sRes += L"\"";
|
||||
}
|
||||
if(false == sInitials.empty())
|
||||
{
|
||||
sInitials = XmlUtils::EncodeXmlString(sInitials);
|
||||
sRes += L" w:initials=\"";
|
||||
sRes += sInitials;
|
||||
sRes += XmlUtils::EncodeXmlString(pComment->Initials);
|
||||
sRes += L"\"";
|
||||
}
|
||||
sRes += L">";
|
||||
std::wstring sText = pComment->Text;
|
||||
|
||||
XmlUtils::replace_all(sText, L"\r", L"");
|
||||
|
||||
bool bFirst = true;
|
||||
int nPrevIndex = 0;
|
||||
for (int i = 0; i < (int)sText.length(); i++)
|
||||
if (false == pComment->sContent.empty())
|
||||
{
|
||||
wchar_t cToken = sText[i];
|
||||
if('\n' == cToken)
|
||||
{
|
||||
bFirst = writeContentWritePart(pComment, sText, nPrevIndex, i, bFirst, sRes);
|
||||
nPrevIndex = i + 1;
|
||||
}
|
||||
sRes += pComment->sContent;
|
||||
}
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, (int)sText.length(), bFirst, sRes);
|
||||
sRes += L"</w:comment>";
|
||||
else
|
||||
{
|
||||
//old comments
|
||||
std::wstring sText = pComment->Text;
|
||||
|
||||
XmlUtils::replace_all(sText, L"\r", L"");
|
||||
|
||||
int nPrevIndex = 0;
|
||||
for (int i = 0; i < (int)sText.length(); i++)
|
||||
{
|
||||
wchar_t cToken = sText[i];
|
||||
if('\n' == cToken)
|
||||
{
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, i, sRes);
|
||||
nPrevIndex = i + 1;
|
||||
}
|
||||
}
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, (int)sText.length(), sRes);
|
||||
}
|
||||
sRes += L"</w:comment>";
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writeContentExt(CComment* pComment)
|
||||
{
|
||||
std::wstring sRes;
|
||||
if(!pComment->m_sParaId.empty())
|
||||
if(false == pComment->sParaId.empty())
|
||||
{
|
||||
std::wstring sDone(L"0");
|
||||
if(pComment->bSolved && pComment->Solved)
|
||||
sDone = _T("1");
|
||||
if(!pComment->m_sParaIdParent.empty())
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->m_sParaId + L"\" \
|
||||
w15:paraIdParent=\"" + pComment->m_sParaIdParent + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
if(!pComment->sParaIdParent.empty())
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->sParaId + L"\" \
|
||||
w15:paraIdParent=\"" + pComment->sParaIdParent + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
else
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->m_sParaId + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->sParaId + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
//расставляем paraIdParent
|
||||
for(size_t i = 0; i < pComment->replies.size(); i++)
|
||||
pComment->replies[i]->m_sParaIdParent = pComment->m_sParaId;
|
||||
pComment->replies[i]->sParaIdParent = pComment->sParaId;
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writeContentExtensible(CComment* pComment)
|
||||
{
|
||||
std::wstring sRes;
|
||||
if(pComment->bDurableId && !pComment->DateUtc.empty())
|
||||
{
|
||||
sRes += L"<w16cex:commentExtensible w16cex:durableId=\"" + XmlUtils::IntToString(pComment->DurableId, L"%08X") + L"\" w16cex:dateUtc=\"" + pComment->DateUtc + L"\"/>";
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writeContentUserData(CComment* pComment)
|
||||
{
|
||||
std::wstring sRes;
|
||||
if(pComment->bDurableId && !pComment->UserData.empty())
|
||||
{
|
||||
sRes += L"<w16cex:commentExtensible w16cex:durableId=\"" + XmlUtils::IntToString(pComment->DurableId, L"%08X") + L"\">";
|
||||
sRes += L"<w16cex:extLst><w16cex:ext uri=\"{19B8F6BF-5375-455C-9EA6-DF929625EA0E}\"><p15:presenceInfo xmlns:p15=\"http://schemas.microsoft.com/office/powerpoint/2012/main\" userId=\"";
|
||||
sRes += XmlUtils::EncodeXmlStringExtend(pComment->UserData);
|
||||
sRes += L"\" providerId=\"AD\"/></w16cex:ext></w16cex:extLst></w16cex:commentExtensible>";
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writeContentsIds(CComment* pComment)
|
||||
{
|
||||
std::wstring sRes;
|
||||
if(!pComment->sParaId.empty() && pComment->bDurableId)
|
||||
{
|
||||
sRes += L"<w16cid:commentId w16cid:paraId=\"" + pComment->sParaId + L"\" w16cid:durableId=\"" + XmlUtils::IntToString(pComment->DurableId, L"%08X") + L"\"/>";
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
static std::wstring writePeople(CComment* pComment)
|
||||
{
|
||||
std::wstring sRes;
|
||||
if(false == pComment->UserName.empty() && false == pComment->UserId.empty())
|
||||
if(false == pComment->UserName.empty())
|
||||
{
|
||||
std::wstring sUserName = XmlUtils::EncodeXmlString(pComment->UserName);
|
||||
std::wstring sUserId = XmlUtils::EncodeXmlString(pComment->UserId);
|
||||
sRes += L"<w15:person w15:author=\"";
|
||||
sRes += sUserName;
|
||||
sRes += L"\"><w15:presenceInfo w15:providerId=\"Teamlab\" w15:userId=\"";
|
||||
sRes += sUserId;
|
||||
sRes += L"\"/></w15:person>";
|
||||
sRes += XmlUtils::EncodeXmlString(pComment->UserName);
|
||||
sRes += L"\">";
|
||||
if(!pComment->ProviderId.empty() && !pComment->UserId.empty())
|
||||
{
|
||||
sRes += L"<w15:presenceInfo w15:providerId=\"";
|
||||
sRes += XmlUtils::EncodeXmlString(pComment->ProviderId);
|
||||
sRes += L"\" w15:userId=\"";
|
||||
sRes += XmlUtils::EncodeXmlString(pComment->UserId);
|
||||
sRes += L"\"/>";
|
||||
}
|
||||
sRes += L"</w15:person>";
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -2081,8 +2151,8 @@ class CComments
|
||||
public:
|
||||
IdCounter m_oFormatIdCounter;
|
||||
IdCounter m_oParaIdCounter;
|
||||
public:
|
||||
CComments():m_oParaIdCounter(1)
|
||||
|
||||
CComments() : m_oParaIdCounter(1)
|
||||
{
|
||||
}
|
||||
~CComments()
|
||||
@ -2125,7 +2195,9 @@ public:
|
||||
std::wstring sRes;
|
||||
for (boost::unordered_map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes += it->second->writeTemplates(false);
|
||||
sRes += CComment::writeContent(it->second);
|
||||
for(size_t i = 0; i < it->second->replies.size(); ++i)
|
||||
sRes += CComment::writeContent(it->second->replies[i]);
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -2134,7 +2206,42 @@ public:
|
||||
std::wstring sRes;
|
||||
for (boost::unordered_map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes += it->second->writeTemplates(true);
|
||||
sRes += CComment::writeContentExt(it->second);
|
||||
for(size_t i = 0; i < it->second->replies.size(); ++i)
|
||||
sRes += CComment::writeContentExt(it->second->replies[i]);
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeContentExtensible()
|
||||
{
|
||||
std::wstring sRes;
|
||||
for (boost::unordered_map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes += CComment::writeContentExtensible(it->second);
|
||||
for(size_t i = 0; i < it->second->replies.size(); ++i)
|
||||
sRes += CComment::writeContentExtensible(it->second->replies[i]);
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeContentUserData()
|
||||
{
|
||||
std::wstring sRes;
|
||||
for (boost::unordered_map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes += CComment::writeContentUserData(it->second);
|
||||
for(size_t i = 0; i < it->second->replies.size(); ++i)
|
||||
sRes += CComment::writeContentUserData(it->second->replies[i]);
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeContentsIds()
|
||||
{
|
||||
std::wstring sRes;
|
||||
for (boost::unordered_map<int, CComment*>::const_iterator it = m_mapComments.begin(); it != m_mapComments.end(); ++it)
|
||||
{
|
||||
sRes += CComment::writeContentsIds(it->second);
|
||||
for(size_t i = 0; i < it->second->replies.size(); ++i)
|
||||
sRes += CComment::writeContentsIds(it->second->replies[i]);
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
@ -3084,4 +3191,3 @@ public:
|
||||
}
|
||||
};
|
||||
}
|
||||
#endif // #ifndef READER_CLASSES
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -141,6 +141,7 @@ public:
|
||||
int Read_pgHeader(BYTE type, long length, void* poResult);
|
||||
int Read_pgFooter(BYTE type, long length, void* poResult);
|
||||
int Read_pageNumType(BYTE type, long length, void* poResult);
|
||||
int Read_lineNumType(BYTE type, long length, void* poResult);
|
||||
int ReadCols(BYTE type, long length, void* poResult);
|
||||
int ReadCol(BYTE type, long length, void* poResult);
|
||||
int ReadPageBorders(BYTE type, long length, void* poResult);
|
||||
@ -152,9 +153,7 @@ protected:
|
||||
Binary_pPrReader oBinary_pPrReader;
|
||||
Binary_CommonReader2 oBinary_CommonReader2;
|
||||
public:
|
||||
std::wstring m_sCurTableShd;
|
||||
std::vector<double> m_aCurTblGrid;
|
||||
bool bCellShd;
|
||||
public:
|
||||
Binary_tblPrReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter);
|
||||
int Read_tblPr(BYTE type, long length, void* poResult);
|
||||
@ -228,12 +227,14 @@ public:
|
||||
class Binary_CommentsTableReader : public Binary_CommonReader
|
||||
{
|
||||
public:
|
||||
CComments m_oComments;
|
||||
public:
|
||||
CComments m_oComments;
|
||||
Writers::FileWriter& m_oFileWriter;
|
||||
|
||||
Binary_CommentsTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter);
|
||||
int Read();
|
||||
int ReadComments(BYTE type, long length, void* poResult);
|
||||
int ReadCommentContent(BYTE type, long length, void* poResult);
|
||||
int ReadCommentContentExt(BYTE type, long length, void* poResult);
|
||||
int ReadReplies(BYTE type, long length, void* poResult);
|
||||
};
|
||||
class Binary_SettingsTableReader : public Binary_CommonReader
|
||||
@ -247,6 +248,8 @@ public:
|
||||
Binary_SettingsTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter, OOX::CSettingsCustom& oSettingsCustom);
|
||||
int Read();
|
||||
int ReadSettings(BYTE type, long length, void* poResult);
|
||||
int ReadCompat(BYTE type, long length, void* poResult);
|
||||
int ReadCompatSetting(BYTE type, long length, void* poResult);
|
||||
int ReadFootnotePr(BYTE type, long length, void* poResult);
|
||||
int ReadEndnotePr(BYTE type, long length, void* poResult);
|
||||
int ReadMathPr(BYTE type, long length, void* poResult);
|
||||
@ -279,18 +282,21 @@ private:
|
||||
Binary_pPrReader oBinary_pPrReader;
|
||||
Binary_rPrReader oBinary_rPrReader;
|
||||
Binary_tblPrReader oBinary_tblPrReader;
|
||||
NSStringUtils::CStringBuilder* m_pCurWriter;
|
||||
NSStringUtils::CStringBuilder* m_pCurWriter;
|
||||
rPr m_oCur_rPr;
|
||||
rPr m_oMath_rPr;
|
||||
NSStringUtils::CStringBuilder m_oCur_pPr;
|
||||
NSStringUtils::CStringBuilder m_oCur_pPr;
|
||||
BYTE m_byteLastElemType;
|
||||
CComments* m_pComments;
|
||||
public:
|
||||
CComments* m_pComments;
|
||||
Writers::ContentWriter& m_oDocumentWriter;
|
||||
Writers::MediaWriter& m_oMediaWriter;
|
||||
|
||||
bool m_bUsedParaIdCounter;
|
||||
|
||||
Binary_DocumentTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter, Writers::ContentWriter& oDocumentWriter, CComments* pComments);
|
||||
~Binary_DocumentTableReader();
|
||||
|
||||
int Read();
|
||||
NSStringUtils::CStringBuilder& GetRunStringWriter();
|
||||
int ReadDocumentContentOut(long length);
|
||||
@ -454,12 +460,16 @@ public:
|
||||
int Read_SecPr(BYTE type, long length, void* poResult);
|
||||
int ReadSdt(BYTE type, long length, void* poResult);
|
||||
int ReadSdtPr(BYTE type, long length, void* poResult);
|
||||
int ReadSdtCheckBox(BYTE type, long length, void* poResult);
|
||||
int ReadSdtComboBox(BYTE type, long length, void* poResult);
|
||||
int ReadSdtListItem(BYTE type, long length, void* poResult);
|
||||
int ReadSdtPrDataBinding(BYTE type, long length, void* poResult);
|
||||
int ReadSdtPrDate(BYTE type, long length, void* poResult);
|
||||
int ReadDocPartList(BYTE type, long length, void* poResult);
|
||||
int ReadDropDownList(BYTE type, long length, void* poResult);
|
||||
int ReadSdtFormPr(BYTE type, long length, void* poResult);
|
||||
int ReadSdtTextFormPr(BYTE type, long length, void* poResult);
|
||||
int ReadSdtTextFormPrComb(BYTE type, long length, void* poResult);
|
||||
};
|
||||
class Binary_NotesTableReader : public Binary_CommonReader
|
||||
{
|
||||
|
||||
@ -37,14 +37,14 @@
|
||||
namespace Writers
|
||||
{
|
||||
static std::wstring g_string_set_Start = _T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><w:settings xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\">");
|
||||
static std::wstring g_string_set_Default = _T("<w:zoom w:percent=\"100\"/><w:characterSpacingControl w:val=\"doNotCompress\"/><w:compat><w:compatSetting w:name=\"compatibilityMode\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"15\"/><w:compatSetting w:name=\"overrideTableStyleFontSizeAndJustification\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/><w:compatSetting w:name=\"enableOpenTypeFeatures\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/><w:compatSetting w:name=\"doNotFlipMirrorIndents\" w:uri=\"http://schemas.microsoft.com/office/word\" w:val=\"1\"/></w:compat><w:themeFontLang w:val=\"en-US\" w:eastAsia=\"zh-CN\"/><w:shapeDefaults><o:shapedefaults v:ext=\"edit\" spidmax=\"1026\"/><o:shapelayout v:ext=\"edit\"><o:idmap v:ext=\"edit\" data=\"1\"/></o:shapelayout></w:shapeDefaults>");
|
||||
static std::wstring g_string_set_Default = _T("<w:zoom w:percent=\"100\"/><w:characterSpacingControl w:val=\"doNotCompress\"/><w:themeFontLang w:val=\"en-US\" w:eastAsia=\"zh-CN\"/><w:shapeDefaults><o:shapedefaults v:ext=\"edit\" spidmax=\"1026\"/><o:shapelayout v:ext=\"edit\"><o:idmap v:ext=\"edit\" data=\"1\"/></o:shapelayout></w:shapeDefaults>");
|
||||
static std::wstring g_string_set_End = _T("</w:settings>");
|
||||
|
||||
class SettingWriter
|
||||
{
|
||||
std::wstring m_sDir;
|
||||
NSStringUtils::CStringBuilder m_oSettingWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
std::wstring m_sDir;
|
||||
NSStringUtils::CStringBuilder m_oSettingWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
public:
|
||||
SettingWriter(std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir),m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
{
|
||||
|
||||
@ -36,9 +36,6 @@ namespace BinDocxRW
|
||||
{
|
||||
const double eps = 0.001;
|
||||
|
||||
const int shd_Clear = 0;
|
||||
const int shd_Nil = 1;
|
||||
|
||||
const int g_tabtype_left = 0;
|
||||
const int g_tabtype_right = 1;
|
||||
const int g_tabtype_center = 2;
|
||||
@ -147,7 +144,8 @@ extern int g_nCurFormatVersion;
|
||||
VbaProject = 13,
|
||||
App = 15,
|
||||
Core = 16,
|
||||
DocumentComments = 17
|
||||
DocumentComments = 17,
|
||||
CustomProperties = 18
|
||||
};}
|
||||
namespace c_oSerSigTypes{enum c_oSerSigTypes
|
||||
{
|
||||
@ -173,7 +171,7 @@ extern int g_nCurFormatVersion;
|
||||
AbstractNum_Lvls = 4,
|
||||
Lvl = 5,
|
||||
lvl_Format = 6,//deprecated (instead use lvl_NumFmt)
|
||||
lvl_Jc = 7,
|
||||
lvl_Jc_deprecated = 7,//deprecated
|
||||
lvl_LvlText = 8,
|
||||
lvl_LvlTextItem = 9,
|
||||
lvl_LvlTextItemText = 10,
|
||||
@ -202,7 +200,8 @@ extern int g_nCurFormatVersion;
|
||||
LvlLegacy = 33,
|
||||
Legacy = 34,
|
||||
LegacyIndent = 35,
|
||||
LegacySpace = 36
|
||||
LegacySpace = 36,
|
||||
lvl_Jc = 37
|
||||
};}
|
||||
namespace c_oSerOtherTableTypes{enum c_oSerOtherTableTypes
|
||||
{
|
||||
@ -345,7 +344,7 @@ extern int g_nCurFormatVersion;
|
||||
Tab = 17,
|
||||
Tab_Item = 18,
|
||||
Tab_Item_Pos = 19,
|
||||
Tab_Item_Val = 20,
|
||||
Tab_Item_Val_deprecated = 20,
|
||||
ParaStyle = 21,
|
||||
numPr = 22,
|
||||
numPr_lvl = 23,
|
||||
@ -367,7 +366,8 @@ extern int g_nCurFormatVersion;
|
||||
Spacing_LineTwips = 39,
|
||||
Spacing_BeforeTwips = 40,
|
||||
Spacing_AfterTwips = 41,
|
||||
Tab_Item_PosTwips = 42
|
||||
Tab_Item_PosTwips = 42,
|
||||
Tab_Item_Val = 43
|
||||
};}
|
||||
namespace c_oSerProp_rPrType{enum c_oSerProp_rPrType
|
||||
{
|
||||
@ -467,7 +467,9 @@ extern int g_nCurFormatVersion;
|
||||
cols = 8,
|
||||
pgBorders = 9,
|
||||
footnotePr = 10,
|
||||
endnotePr = 11
|
||||
endnotePr = 11,
|
||||
rtlGutter = 12,
|
||||
lnNumType = 13
|
||||
};}
|
||||
namespace c_oSerProp_secPrSettingsType{enum c_oSerProp_secPrSettingsType
|
||||
{
|
||||
@ -479,6 +481,13 @@ extern int g_nCurFormatVersion;
|
||||
{
|
||||
start = 0
|
||||
};}
|
||||
namespace c_oSerProp_secPrLineNumType{enum c_oSerProp_secPrLineNumType
|
||||
{
|
||||
CountBy = 0,
|
||||
Distance = 1,
|
||||
Restart = 2,
|
||||
Start = 3
|
||||
};}
|
||||
namespace c_oSerParType{enum c_oSerParType
|
||||
{
|
||||
Par = 0,
|
||||
@ -506,7 +515,8 @@ extern int g_nCurFormatVersion;
|
||||
JsaProject = 22,
|
||||
BookmarkStart = 23,
|
||||
BookmarkEnd = 24,
|
||||
MRun = 25
|
||||
MRun = 25,
|
||||
AltChunk = 26
|
||||
};}
|
||||
namespace c_oSerDocTableType{enum c_oSerDocTableType
|
||||
{
|
||||
@ -524,7 +534,11 @@ extern int g_nCurFormatVersion;
|
||||
Sdt = 10,
|
||||
BookmarkStart = 11,
|
||||
BookmarkEnd = 12,
|
||||
tblGrid_ItemTwips = 13
|
||||
tblGrid_ItemTwips = 13,
|
||||
MoveFromRangeStart = 14,
|
||||
MoveFromRangeEnd = 15,
|
||||
MoveToRangeStart = 16,
|
||||
MoveToRangeEnd = 17
|
||||
};}
|
||||
namespace c_oSerRunType{enum c_oSerRunType
|
||||
{
|
||||
@ -778,7 +792,8 @@ extern int g_nCurFormatVersion;
|
||||
RightTwips = 8,
|
||||
BottomTwips = 9,
|
||||
HeaderTwips = 10,
|
||||
FooterTwips = 11
|
||||
FooterTwips = 11,
|
||||
GutterTwips = 12
|
||||
};}
|
||||
namespace c_oSer_ColorType{enum c_oSer_ColorType
|
||||
{
|
||||
@ -797,7 +812,12 @@ extern int g_nCurFormatVersion;
|
||||
QuoteText = 7,
|
||||
Solved = 8,
|
||||
Replies = 9,
|
||||
OOData = 10
|
||||
OOData = 10,
|
||||
DurableId = 11,
|
||||
ProviderId = 12,
|
||||
CommentContent = 13,
|
||||
DateUtc = 14,
|
||||
UserData = 15
|
||||
};}
|
||||
namespace c_oSer_SettingsType{enum c_oSer_SettingsType
|
||||
{
|
||||
@ -812,7 +832,13 @@ extern int g_nCurFormatVersion;
|
||||
Compat = 8,
|
||||
DefaultTabStopTwips = 9,
|
||||
DecimalSymbol = 10,
|
||||
ListSeparator = 11
|
||||
ListSeparator = 11,
|
||||
GutterAtTop = 12,
|
||||
MirrorMargins = 13,
|
||||
PrintTwoOnOne = 14,
|
||||
BookFoldPrinting = 15,
|
||||
BookFoldPrintingSheets = 16,
|
||||
BookFoldRevPrinting = 17
|
||||
};}
|
||||
namespace c_oSer_MathPrType{enum c_oSer_SettingsType
|
||||
{
|
||||
@ -979,7 +1005,11 @@ extern int g_nCurFormatVersion;
|
||||
columnbreak = 64,
|
||||
ARPr = 65,
|
||||
BookmarkStart = 66,
|
||||
BookmarkEnd = 67
|
||||
BookmarkEnd = 67,
|
||||
MoveFromRangeStart = 68,
|
||||
MoveFromRangeEnd = 69,
|
||||
MoveToRangeStart = 70,
|
||||
MoveToRangeEnd = 71
|
||||
};}
|
||||
namespace c_oSer_FramePrType{ enum c_oSer_FramePrType
|
||||
{
|
||||
@ -1150,7 +1180,25 @@ extern int g_nCurFormatVersion;
|
||||
Temporary = 34,
|
||||
MultiLine = 35,
|
||||
Appearance = 36,
|
||||
Color = 37
|
||||
Color = 37,
|
||||
Checkbox = 38,
|
||||
CheckboxChecked = 39,
|
||||
CheckboxCheckedFont = 40,
|
||||
CheckboxCheckedVal = 41,
|
||||
CheckboxUncheckedFont = 42,
|
||||
CheckboxUncheckedVal = 43,
|
||||
FormPr = 44,
|
||||
FormPrKey = 45,
|
||||
FormPrLabel = 46,
|
||||
FormPrHelpText = 47,
|
||||
FormPrRequired = 48,
|
||||
CheckboxGroupKey = 59,
|
||||
TextFormPr = 50,
|
||||
TextFormPrComb = 51,
|
||||
TextFormPrCombWidth = 52,
|
||||
TextFormPrCombSym = 53,
|
||||
TextFormPrCombFont = 54,
|
||||
TextFormPrMaxCharacters = 55
|
||||
};}
|
||||
namespace c_oSerFFData{enum c_oSerFFData
|
||||
{
|
||||
@ -1204,7 +1252,10 @@ extern int g_nCurFormatVersion;
|
||||
CompatSetting = 0,
|
||||
CompatName = 1,
|
||||
CompatUri = 2,
|
||||
CompatValue = 3
|
||||
CompatValue = 3,
|
||||
Flags1 = 4,
|
||||
Flags2 = 5,
|
||||
Flags3 = 6
|
||||
};}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -35,16 +35,14 @@
|
||||
|
||||
#include "BinReaderWriterDefines.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/DocxFlat.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Docx.h"
|
||||
#include "../../Common/DocxFormat/Source/MathEquation/MathEquation.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Document.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/FontTable.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Numbering.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Comments.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Styles.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Footnote.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Endnote.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Settings/Settings.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/External/HyperLink.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Media/VbaProject.h"
|
||||
@ -76,24 +74,42 @@ namespace BinDocxRW
|
||||
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
|
||||
NSFontCutter::CEmbeddedFontsManager* m_pEmbeddedFontsManager;
|
||||
|
||||
OOX::CSettings* m_oSettings;
|
||||
PPTX::Theme* m_poTheme;
|
||||
OOX::Document* m_pMain;
|
||||
OOX::CSettings* m_pSettings;
|
||||
PPTX::Theme* m_pTheme;
|
||||
|
||||
OOX::CStyles* m_pStyles;
|
||||
OOX::CNumbering* m_pNumbering;
|
||||
|
||||
bool m_bLocalStyles;
|
||||
bool m_bLocalNumbering;
|
||||
|
||||
OOX::CStyles* m_pEmbeddedStyles;
|
||||
OOX::CNumbering* m_pEmbeddedNumbering;
|
||||
|
||||
OOX::IFileContainer* m_pCurRels;
|
||||
std::map<int, bool> m_mapIgnoreComments;
|
||||
|
||||
ParamsWriter(NSBinPptxRW::CBinaryFileWriter* pCBufferedStream, DocWrapper::FontProcessor* pFontProcessor, NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter, NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager):
|
||||
m_pCBufferedStream(pCBufferedStream),m_pFontProcessor(pFontProcessor),m_pOfficeDrawingConverter(pOfficeDrawingConverter),m_pEmbeddedFontsManager(pEmbeddedFontsManager)
|
||||
m_pCBufferedStream(pCBufferedStream), m_pFontProcessor(pFontProcessor), m_pOfficeDrawingConverter(pOfficeDrawingConverter), m_pEmbeddedFontsManager(pEmbeddedFontsManager)
|
||||
{
|
||||
m_oSettings = NULL;
|
||||
m_poTheme = NULL;
|
||||
m_pMain = NULL;
|
||||
m_pSettings = NULL;
|
||||
m_pTheme = NULL;
|
||||
m_pCurRels = NULL;
|
||||
m_pStyles = NULL;
|
||||
m_pNumbering = NULL;
|
||||
|
||||
m_pEmbeddedStyles = NULL;
|
||||
m_pEmbeddedNumbering = NULL;
|
||||
|
||||
m_bLocalStyles = m_bLocalNumbering = false;
|
||||
}
|
||||
};
|
||||
class ParamsDocumentWriter
|
||||
{
|
||||
public:
|
||||
OOX::IFileContainer* m_pRels;
|
||||
OOX::IFileContainer* m_pRels;
|
||||
|
||||
ParamsDocumentWriter(OOX::IFileContainer* pRels) : m_pRels(pRels)
|
||||
{
|
||||
@ -129,22 +145,20 @@ namespace BinDocxRW
|
||||
class BinaryHeaderFooterTableWriter
|
||||
{
|
||||
BinaryCommonWriter m_oBcw;
|
||||
ParamsWriter& m_oParamsWriter;
|
||||
OOX::CSettings* m_oSettings;
|
||||
|
||||
PPTX::Theme* m_poTheme;
|
||||
DocWrapper::FontProcessor& m_oFontProcessor;
|
||||
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
|
||||
std::map<int, bool>* m_mapIgnoreComments;
|
||||
public:
|
||||
OOX::IFileContainer* m_oDocumentRels;
|
||||
std::vector<OOX::CHdrFtr*> m_aHeaders;
|
||||
std::vector<SimpleTypes::EHdrFtr> m_aHeaderTypes;
|
||||
std::vector<OOX::Logic::CSectionProperty*> m_aHeaderSectPrs;
|
||||
std::vector<OOX::CHdrFtr*> m_aFooters;
|
||||
std::vector<SimpleTypes::EHdrFtr> m_aFooterTypes;
|
||||
std::vector<OOX::Logic::CSectionProperty*> m_aFooterSectPrs;
|
||||
public:
|
||||
ParamsWriter& m_oParamsWriter;
|
||||
OOX::IFileContainer* m_oDocumentRels;
|
||||
|
||||
std::vector<OOX::CHdrFtr*> m_aHeaders;
|
||||
std::vector<SimpleTypes::EHdrFtr> m_aHeaderTypes;
|
||||
std::vector<OOX::Logic::CSectionProperty*> m_aHeaderSectPrs;
|
||||
std::vector<OOX::CHdrFtr*> m_aFooters;
|
||||
std::vector<SimpleTypes::EHdrFtr> m_aFooterTypes;
|
||||
std::vector<OOX::Logic::CSectionProperty*> m_aFooterSectPrs;
|
||||
|
||||
BinaryHeaderFooterTableWriter(ParamsWriter& oParamsWriter, OOX::IFileContainer* oDocumentRel, std::map<int, bool>* mapIgnoreComments);
|
||||
void Write();
|
||||
void WriteHdrFtrContent(std::vector<OOX::CHdrFtr*>& aHdrFtrs, std::vector<SimpleTypes::EHdrFtr>& aHdrFtrTypes, std::vector<OOX::Logic::CSectionProperty*>& aHdrSectPrs, bool bHdr);
|
||||
@ -161,7 +175,7 @@ namespace BinDocxRW
|
||||
{
|
||||
BinaryCommonWriter m_oBcw;
|
||||
public:
|
||||
PPTX::Theme* m_poTheme;
|
||||
PPTX::Theme* m_pTheme;
|
||||
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
|
||||
DocWrapper::FontProcessor& m_oFontProcessor;
|
||||
|
||||
@ -173,7 +187,8 @@ namespace BinDocxRW
|
||||
{
|
||||
BinaryCommonWriter m_oBcw;
|
||||
Binary_rPrWriter brPrs;
|
||||
OOX::CSettings* m_oSettings;
|
||||
|
||||
ParamsWriter& m_oParamsWriter;
|
||||
public:
|
||||
BinaryHeaderFooterTableWriter* m_oBinaryHeaderFooterTableWriter;
|
||||
|
||||
@ -192,6 +207,7 @@ namespace BinDocxRW
|
||||
void WritePageMargin(OOX::Logic::CSectionProperty* pSectPr);
|
||||
void WriteHeaderFooter(OOX::Logic::CSectionProperty* pSectPr, std::vector<ComplexTypes::Word::CHdrFtrRef*>& aRefs, bool bHdr);
|
||||
void WritePageNumType(const ComplexTypes::Word::CPageNumber& pPageNumber);
|
||||
void WriteLineNumType(const ComplexTypes::Word::CLineNumber& pLineNumber);
|
||||
void WriteSectPrChange(const OOX::Logic::CSectPrChange& sectPrChange);
|
||||
void WriteColumns(const OOX::Logic::CColumns& columns);
|
||||
void WriteColumn(const ComplexTypes::Word::CColumn& column);
|
||||
@ -201,6 +217,9 @@ namespace BinDocxRW
|
||||
const nullable<ComplexTypes::Word::CDecimalNumber>& numStart, nullable<ComplexTypes::Word::CFtnPos>* ftnPos,
|
||||
nullable<ComplexTypes::Word::CEdnPos>* endPos, std::vector<OOX::CFtnEdnSepRef*>* refs);
|
||||
void WriteNumFmt(const ComplexTypes::Word::CNumFmt& oNumFmt);
|
||||
|
||||
private:
|
||||
std::wstring AddEmbeddedStyle(const std::wstring & styleId);
|
||||
};
|
||||
class Binary_tblPrWriter
|
||||
{
|
||||
@ -291,29 +310,31 @@ namespace BinDocxRW
|
||||
{
|
||||
private:
|
||||
ParamsWriter& m_oParamsWriter;
|
||||
|
||||
ParamsDocumentWriter& m_oParamsDocumentWriter;
|
||||
BinaryCommonWriter m_oBcw;
|
||||
Binary_pPrWriter bpPrs;
|
||||
Binary_rPrWriter brPrs;
|
||||
std::wstring m_sCurParStyle;
|
||||
OOX::CSettings* m_oSettings;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
|
||||
std::map<int, bool>* m_mapIgnoreComments;
|
||||
public:
|
||||
Binary_tblPrWriter btblPrs;
|
||||
OOX::Logic::CSectionProperty* pSectPr;
|
||||
OOX::Logic::CBackground * pBackground;
|
||||
OOX::WritingElement* pBackground;
|
||||
OOX::CDocument* poDocument;
|
||||
OOX::JsaProject* pJsaProject;
|
||||
|
||||
bool m_bWriteSectPr;//Записывать ли свойства верхнего уровня в данном экземпляре BinaryOtherTableWriter
|
||||
//---------------------------------
|
||||
BinaryDocumentTableWriter(ParamsWriter& oParamsWriter, ParamsDocumentWriter& oParamsDocumentWriter, std::map<int, bool>* mapIgnoreComments, BinaryHeaderFooterTableWriter* oBinaryHeaderFooterTableWriter);
|
||||
|
||||
void WriteAltChunk(OOX::Media& oAltChunk);
|
||||
void WriteVbaProject(OOX::VbaProject& oVbaProject);
|
||||
void Write(std::vector<OOX::WritingElement*> & aElems);
|
||||
void WriteDocumentContent(const std::vector<OOX::WritingElement*> & aElems);
|
||||
void WriteBackground (OOX::Logic::CBackground* pBackground);
|
||||
void WriteBackground (OOX::WritingElement* pBackground);
|
||||
void WriteParapraph(OOX::Logic::CParagraph& par, OOX::Logic::CParagraphProperty* pPr);
|
||||
void WriteParagraphContent(const std::vector<OOX::WritingElement*> & content, bool bHyperlink = false);
|
||||
void WriteDel(const OOX::Logic::CDel& oDel);
|
||||
@ -437,7 +458,7 @@ namespace BinDocxRW
|
||||
void WriteRunContent(std::vector<OOX::WritingElement*>::iterator &start, std::vector<OOX::WritingElement*>::iterator &end, bool bHyperlink = false);
|
||||
void WriteNoteRef(const nullable<SimpleTypes::COnOff<>>& oCustomMarkFollows, const nullable<SimpleTypes::CDecimalNumber<>>& oId);
|
||||
void WriteText(const std::wstring& text, BYTE type);
|
||||
void WriteDrawingPptx(OOX::WritingElement* item);
|
||||
bool WriteDrawingPptx(OOX::WritingElement* item);
|
||||
void WriteDrawing(std::wstring* pXml, OOX::Logic::CDrawing* pDrawing, PPTX::Logic::GraphicFrame *pGraphic);
|
||||
void WriteNvGraphicFramePr(const PPTX::Logic::NvGraphicFramePr& oGraphicFramePr);
|
||||
void WriteDocPr(const PPTX::Logic::CNvPr& oDocPr);
|
||||
@ -467,12 +488,16 @@ namespace BinDocxRW
|
||||
void WriteCell(OOX::Logic::CTc& tc, OOX::Logic::CTableProperty* pTblPr, int nCurRowIndex, int nCurColIndex, int nRows, int nCols);
|
||||
void WriteSdt(OOX::Logic::CSdt* pStd, int type, OOX::Logic::CTableProperty* pTblPr, int nCurRowIndex, int nRows, int nCols);
|
||||
void WriteSdtPr(const OOX::Logic::CSdtPr& oStdPr);
|
||||
void WriteSdtCheckBox(const OOX::Logic::CSdtCheckBox& oSdtCheckBox);
|
||||
void WriteSdtComboBox(const OOX::Logic::CSdtComboBox& oSdtComboBox);
|
||||
void WriteSdtListItem(const ComplexTypes::Word::CSdtListItem& oSdtListItem);
|
||||
void WriteSdtPrDataBinding(const ComplexTypes::Word::CDataBinding& oDataBinding);
|
||||
void WriteSdtPrDate(const OOX::Logic::CDate& oDate);
|
||||
void WriteDocPartList(const OOX::Logic::CSdtDocPart& oSdtDocPart);
|
||||
void WriteDropDownList(const OOX::Logic::CSdtDropDownList& oDropDownList);
|
||||
void WriteSdtFormPr(const ComplexTypes::Word::CFormPr& oFormPr);
|
||||
void WriteSdtTextFormPr(const OOX::Logic::CTextFormPr& oTextFormPr);
|
||||
void WriteSdtTextFormPrComb(const ComplexTypes::Word::CComb& oComb);
|
||||
};
|
||||
class BinaryCommentsTableWriter
|
||||
{
|
||||
@ -481,15 +506,21 @@ namespace BinDocxRW
|
||||
OOX::CComment* pComment;
|
||||
nullable<bool> bDone;
|
||||
nullable<std::wstring> sUserId;
|
||||
nullable<std::wstring> sProviderId;
|
||||
nullable<SimpleTypes::CLongHexNumber<> > nDurableId;
|
||||
nullable<std::wstring> sDateUtc;
|
||||
nullable<std::wstring> sUserData;
|
||||
std::vector<CCommentWriteTemp*> aReplies;
|
||||
};
|
||||
BinaryCommonWriter m_oBcw;
|
||||
ParamsWriter& m_oParamsWriter;
|
||||
NSBinPptxRW::CDrawingConverter* m_pOfficeDrawingConverter;
|
||||
public:
|
||||
BinaryCommentsTableWriter(ParamsWriter& oParamsWriter);
|
||||
void Write(OOX::CComments& oComments, OOX::CCommentsExt* pCommentsExt, OOX::CPeople* pPeople, std::map<int, bool>& mapIgnoreComments);
|
||||
void WriteCommentsContent(OOX::CComments& oComments, OOX::CCommentsExt* pCommentsExt, OOX::CPeople* pPeople, std::map<int, bool>& mapIgnoreComments);
|
||||
void WriteComment(CCommentWriteTemp& oComment);
|
||||
void WriteReplies(std::vector<CCommentWriteTemp*>& aCommentWriteTemp);
|
||||
void Write(OOX::CComments& oComments, OOX::CCommentsExt* pCommentsExt, OOX::CCommentsExtensible* pCommentsExtensible, OOX::CCommentsUserData* pCommentsUserData, OOX::CPeople* pPeople, OOX::CCommentsIds* pCommentsIds, std::map<int, bool>& mapIgnoreComments);
|
||||
void WriteCommentsContent(OOX::CComments& oComments, OOX::CCommentsExt* pCommentsExt, OOX::CCommentsExtensible* pCommentsExtensible, OOX::CCommentsUserData* pCommentsUserData, OOX::CPeople* pPeople, OOX::CCommentsIds* pCommentsIds, std::map<int, bool>& mapIgnoreComments, ParamsDocumentWriter& oParamsDocumentWriter);
|
||||
void WriteComment(CCommentWriteTemp& oComment, BinaryDocumentTableWriter & oBinaryDocumentTableWriter);
|
||||
void WriteReplies(std::vector<CCommentWriteTemp*>& aCommentWriteTemp, BinaryDocumentTableWriter & oBinaryDocumentTableWriter);
|
||||
};
|
||||
class BinarySettingsTableWriter
|
||||
{
|
||||
|
||||
@ -163,8 +163,7 @@ namespace BinXlsxRW{
|
||||
toXlsxSheetdata(pWorksheet, *it->second, aSharedStrings);
|
||||
|
||||
OOX::Spreadsheet::CSheet* pSheet = new OOX::Spreadsheet::CSheet();
|
||||
pSheet->m_oName.Init();
|
||||
pSheet->m_oName->append(sSheetName);
|
||||
pSheet->m_oName = sSheetName;
|
||||
pSheet->m_oSheetId.Init();
|
||||
pSheet->m_oSheetId->SetValue(nSheetId++);
|
||||
|
||||
@ -187,7 +186,7 @@ namespace BinXlsxRW{
|
||||
{
|
||||
OOX::Spreadsheet::CText* pText = new OOX::Spreadsheet::CText();
|
||||
pText->m_sText = aSharedStrings[i];
|
||||
if(std::wstring::npos == pText->m_sText.find(_T(" ")))
|
||||
if(std::wstring::npos != pText->m_sText.find(_T(" ")))
|
||||
{
|
||||
pText->m_oSpace.Init();
|
||||
pText->m_oSpace->SetValue(SimpleTypes::xmlspacePreserve);
|
||||
@ -212,8 +211,7 @@ namespace BinXlsxRW{
|
||||
for (boost::unordered_map<std::wstring, int>::iterator it = m_mapFormats.begin(); it != m_mapFormats.end(); ++it)
|
||||
{
|
||||
OOX::Spreadsheet::CNumFmt* pNumFmt = new OOX::Spreadsheet::CNumFmt();
|
||||
pNumFmt->m_oFormatCode.Init();
|
||||
pNumFmt->m_oFormatCode->append(it->first);
|
||||
pNumFmt->m_oFormatCode = (it->first);
|
||||
pNumFmt->m_oNumFmtId.Init();
|
||||
pNumFmt->m_oNumFmtId->SetValue(NUMID_START + it->second);
|
||||
oXlsx.m_pStyles->m_oNumFmts->m_arrItems.push_back(pNumFmt);
|
||||
@ -277,13 +275,20 @@ namespace BinXlsxRW{
|
||||
pTable->m_oTable->m_oTableStyleInfo->m_oShowColumnStripes.Init();
|
||||
pTable->m_oTable->m_oTableStyleInfo->m_oShowColumnStripes->FromBool(false);
|
||||
pTable->m_oTable->m_oTableColumns.Init();
|
||||
|
||||
for(size_t i = 0; i < m_aTableNames.size(); ++i)
|
||||
{
|
||||
OOX::Spreadsheet::CTableColumn* pTableColumn = new OOX::Spreadsheet::CTableColumn();
|
||||
pTableColumn->m_oId.Init();
|
||||
pTableColumn->m_oId->SetValue((unsigned int)i + 1);
|
||||
pTableColumn->m_oName.Init();
|
||||
pTableColumn->m_oName->append(m_aTableNames[i]);
|
||||
|
||||
if (!pTableColumn->m_oId.IsInit())
|
||||
{
|
||||
pTableColumn->m_oId.Init();
|
||||
pTableColumn->m_oId->SetValue((unsigned int)i + 1);
|
||||
}
|
||||
if (!pTableColumn->m_oName.IsInit())
|
||||
{
|
||||
pTableColumn->m_oName = m_aTableNames[i];
|
||||
}
|
||||
pTable->m_oTable->m_oTableColumns->m_arrItems.push_back(pTableColumn);
|
||||
}
|
||||
pTable->m_oTable->m_oTableColumns->m_oCount.Init();
|
||||
|
||||
@ -36,6 +36,7 @@
|
||||
|
||||
#include "../../ASCOfficePPTXFile/ASCOfficeDrawingConverter.h"
|
||||
#include "../../ASCOfficePPTXFile/Editor/FontPicker.h"
|
||||
#include "../../ASCOfficePPTXFile/PPTXFormat/Logic/HeadingVariant.h"
|
||||
|
||||
#include "FontProcessor.h"
|
||||
#include "../../OfficeUtils/src/OfficeUtils.h"
|
||||
@ -64,7 +65,7 @@ BinDocxRW::CDocxSerializer::~CDocxSerializer()
|
||||
RELEASEOBJECT(m_pParamsWriter);
|
||||
RELEASEOBJECT(m_pCurFileWriter);
|
||||
}
|
||||
bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions)
|
||||
bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sTempPath)
|
||||
{
|
||||
OOX::CPath pathMain(sSrcFileName);
|
||||
|
||||
@ -105,6 +106,7 @@ bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, co
|
||||
|
||||
oDrawingConverter.SetDstPath(pathMain.GetDirectory() + FILE_SEPARATOR_STR + L"word");
|
||||
oDrawingConverter.SetMediaDstPath(pathMedia.GetPath());
|
||||
oDrawingConverter.SetTempPath(sTempPath);
|
||||
|
||||
m_pParamsWriter = new ParamsWriter(&oBufferedStream, &fp, &oDrawingConverter, pEmbeddedFontsManager);
|
||||
|
||||
@ -201,7 +203,8 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
bool bValidFormat = false;
|
||||
std::wstring sSignature(g_sFormatSignature);
|
||||
int nSigLength = (int)sSignature.length();
|
||||
if((int)nBase64DataSize > nSigLength)
|
||||
|
||||
if ((int)nBase64DataSize > nSigLength)
|
||||
{
|
||||
std::string sCurSig((char*)pBase64Data, nSigLength);
|
||||
if(sSignature == std::wstring(sCurSig.begin(), sCurSig.end()))
|
||||
@ -216,7 +219,8 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
int nType = 0;
|
||||
std::string version = "";
|
||||
std::string dst_len = "";
|
||||
while (true)
|
||||
|
||||
while (nIndex < nBase64DataSize)
|
||||
{
|
||||
nIndex++;
|
||||
BYTE _c = pBase64Data[nIndex];
|
||||
@ -323,6 +327,11 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
pCore.write(pathDocProps + FILE_SEPARATOR_STR + _T("core.xml"), DocProps, *pContentTypes);
|
||||
}
|
||||
|
||||
if (NULL != m_pCurFileWriter->m_pCustomProperties)
|
||||
{
|
||||
m_pCurFileWriter->m_pCustomProperties->write(pathDocProps + FILE_SEPARATOR_STR + _T("custom.xml"), DocProps, *pContentTypes);
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
m_pCurFileWriter->Write();
|
||||
pContentTypes->Write(sDstPath);
|
||||
|
||||
@ -63,7 +63,7 @@ namespace BinDocxRW
|
||||
virtual ~CDocxSerializer();
|
||||
|
||||
bool loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sThemePath, const std::wstring& sMediaPath, const std::wstring& sEmbedPath);
|
||||
bool saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions);
|
||||
bool saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sTempPath);
|
||||
|
||||
bool CreateDocxFolders(std::wstring strDirectory, std::wstring& sThemePath, std::wstring& sMediaPath, std::wstring& sEmbedPath);
|
||||
|
||||
|
||||
@ -174,8 +174,15 @@ namespace BinXlsxRW{
|
||||
BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sThemePath, m_pExternalDrawingConverter->GetContentTypes());
|
||||
OOX::Spreadsheet::CChartSpace oChartSpace(NULL);
|
||||
BinXlsxRW::BinaryChartReader oBinaryChartReader(*pReader, oSaveParams, m_pExternalDrawingConverter);
|
||||
|
||||
oBinaryChartReader.ReadCT_ChartSpace(lLength, &oChartSpace);
|
||||
|
||||
try
|
||||
{
|
||||
oBinaryChartReader.ReadCT_ChartSpace(lLength, &oChartSpace);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
//todooo
|
||||
}
|
||||
|
||||
if(oChartSpace.isValid())
|
||||
{
|
||||
|
||||
@ -38,7 +38,8 @@ SOURCES += \
|
||||
../../OfficeCryptReader/source/ECMACryptFile.cpp \
|
||||
../../OfficeCryptReader/source/CryptTransform.cpp \
|
||||
../BinReader/Readers.cpp \
|
||||
../BinReader/CustormXmlWriter.cpp
|
||||
../BinReader/CustormXmlWriter.cpp \
|
||||
../BinReader/FileWriter.cpp
|
||||
|
||||
HEADERS += ../DocWrapper/DocxSerializer.h \
|
||||
../DocWrapper/FontProcessor.h \
|
||||
|
||||
@ -342,6 +342,7 @@
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
);
|
||||
mainGroup = 17E17ED31AC453F800BEA2EA;
|
||||
@ -384,7 +385,7 @@
|
||||
17C1FEC01ACC42C4006B99B3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_BITCODE = YES;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = YES;
|
||||
GCC_ENABLE_CPP_RTTI = YES;
|
||||
@ -416,7 +417,7 @@
|
||||
17C1FEC11ACC42C4006B99B3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_BITCODE = YES;
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = YES;
|
||||
GCC_ENABLE_CPP_RTTI = YES;
|
||||
|
||||
@ -1,36 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml_wrapper", "..\win32\cpxml.vcproj", "{41BED424-4EAF-4053-8A5F-1E2A387D53D1}"
|
||||
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}") = "xml_wrapper", "..\win32\cpxml.vcxproj", "{41BED424-4EAF-4053-8A5F-1E2A387D53D1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatReaderLib", "..\win32\cpodf.vcproj", "{50E20601-4A8D-4AFB-8870-63828D328429}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatReaderLib", "..\win32\cpodf.vcxproj", "{50E20601-4A8D-4AFB-8870-63828D328429}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\win32\cpcommon.vcxproj", "{609ED938-3CA8-4BED-B363-25096D4C4812}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\win32\formulasconvert.vcxproj", "{94954A67-A853-43B1-A727-6EF2774C5A6A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileReaderTest", "OdfFileTest.vcxproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1}
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\win32\cpcommon.vcproj", "{609ED938-3CA8-4BED-B363-25096D4C4812}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{41BED424-4EAF-4053-8A5F-1E2A387D53D1} = {41BED424-4EAF-4053-8A5F-1E2A387D53D1}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormulasConvert", "..\win32\formulasconvert.vcproj", "{94954A67-A853-43B1-A727-6EF2774C5A6A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileReaderTest", "OdfFileTest.vcproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{50E20601-4A8D-4AFB-8870-63828D328429} = {50E20601-4A8D-4AFB-8870-63828D328429}
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\..\OfficeCryptReader\win32\ECMACryptReader.vcproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
|
||||
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
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
||||
@ -1,380 +0,0 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="OdfFileReaderTest"
|
||||
ProjectGUID="{C2882DDD-07E6-4314-AD4B-48F43F38D722}"
|
||||
RootNamespace="ASCOfficeOdfFileTest"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
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"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE;UNICODE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdi32.lib Rpcrt4.lib"
|
||||
ShowProgress="0"
|
||||
Version=""
|
||||
LinkIncremental="2"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
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="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED"
|
||||
MinimalRebuild="true"
|
||||
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="kernel32.lib $(NoInherit)"
|
||||
LinkIncremental="2"
|
||||
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="$(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"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
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="$(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"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
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"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\Common\OfficeFileFormatChecker.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\OfficeFileFormatChecker2.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\3dParty\pole\pole.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="OdfFileTest.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
212
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcxproj
Normal file
212
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcxproj
Normal file
@ -0,0 +1,212 @@
|
||||
<?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">
|
||||
<ProjectName>OdfFileReaderTest</ProjectName>
|
||||
<ProjectGuid>{C2882DDD-07E6-4314-AD4B-48F43F38D722}</ProjectGuid>
|
||||
<RootNamespace>ASCOfficeOdfFileTest</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>
|
||||
<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>
|
||||
<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>$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<LinkIncremental>true</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>$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>gdi32.lib;Rpcrt4.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<ShowProgress>NotSet</ShowProgress>
|
||||
<Version />
|
||||
<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>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>kernel32.lib</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>kernel32.lib</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>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>kernel32.lib</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\Common\OfficeFileFormatChecker.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp" />
|
||||
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp" />
|
||||
<ClCompile Include="OdfFileTest.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Common\3dParty\cryptopp\cryptlib.vcxproj">
|
||||
<Project>{3423ec9a-52e4-4a4d-9753-edebc38785ef}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\OfficeCryptReader\win32\ECMACryptReader.vcxproj">
|
||||
<Project>{c27e9a9f-3a17-4482-9c5f-bf15c01e747c}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\win32\cpcommon.vcxproj">
|
||||
<Project>{609ed938-3ca8-4bed-b363-25096d4c4812}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\win32\cpodf.vcxproj">
|
||||
<Project>{50e20601-4a8d-4afb-8870-63828d328429}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\win32\cpxml.vcxproj">
|
||||
<Project>{41bed424-4eaf-4053-8a5f-1e2a387d53d1}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\win32\formulasconvert.vcxproj">
|
||||
<Project>{94954a67-a853-43b1-a727-6ef2774c5a6a}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
28
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcxproj.filters
Normal file
28
ASCOfficeOdfFile/OdfFileTest/OdfFileTest.vcxproj.filters
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Common">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\Common\OfficeFileFormatChecker.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\Common\OfficeFileFormatChecker2.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\3dParty\pole\pole.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="OdfFileTest.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -92,8 +92,9 @@ public:
|
||||
std::wstring convert_conditional_formula(std::wstring const & expr);
|
||||
|
||||
// Лист1!$A$1 -> $Лист1.$A$1
|
||||
std::wstring convert_named_ref (std::wstring const & expr);
|
||||
std::wstring convert_named_ref(std::wstring const & expr);
|
||||
std::wstring convert_named_formula(std::wstring const & expr);
|
||||
bool is_simple_ref(std::wstring const & expr);
|
||||
|
||||
std::wstring get_table_name();
|
||||
|
||||
|
||||
@ -122,27 +122,64 @@ namespace formulasconvert {
|
||||
XmlUtils::replace_all( expr, L"SCOBCAIN", L"(");
|
||||
XmlUtils::replace_all( expr, L"SCOBCAOUT", L")");
|
||||
|
||||
XmlUtils::replace_all( expr, L"KVADRATIN", L"[");
|
||||
XmlUtils::replace_all( expr, L"KVADRATOUT", L"]");
|
||||
//XmlUtils::replace_all( expr, L"KVADRATIN", L"[");
|
||||
//XmlUtils::replace_all( expr, L"KVADRATOUT", L"]");
|
||||
|
||||
XmlUtils::replace_all( expr, L"PROBEL", L" ");
|
||||
XmlUtils::replace_all( expr, L"APOSTROF", L"'");
|
||||
XmlUtils::replace_all( expr, L"KAVYCHKA", L"\"");
|
||||
//XmlUtils::replace_all( expr, L"APOSTROF", L"'");
|
||||
//XmlUtils::replace_all( expr, L"KAVYCHKA", L"\"");
|
||||
}
|
||||
static void replace_tmp(std::wstring &expr)
|
||||
{
|
||||
XmlUtils::replace_all( expr, L".", L"ТОСHKA");
|
||||
XmlUtils::replace_all( expr, L"!", L"VOSKL");
|
||||
// XmlUtils::replace_all( expr, L".", L"ТОСHKA");
|
||||
// XmlUtils::replace_all( expr, L"!", L"VOSKL");
|
||||
|
||||
XmlUtils::replace_all( expr, L"(", L"SCOBCAIN");
|
||||
XmlUtils::replace_all( expr, L")", L"SCOBCAOUT");
|
||||
// XmlUtils::replace_all( expr, L"(", L"SCOBCAIN");
|
||||
// XmlUtils::replace_all( expr, L")", L"SCOBCAOUT");
|
||||
|
||||
//XmlUtils::replace_all( expr, L"[", L"KVADRATIN");
|
||||
//XmlUtils::replace_all( expr, L"]", L"KVADRATOUT");
|
||||
|
||||
XmlUtils::replace_all( expr, L" ", L"PROBEL");
|
||||
// XmlUtils::replace_all( expr, L"'", L"APOSTROF");
|
||||
// XmlUtils::replace_all( expr, L"\"", L"KAVYCHKA");
|
||||
// //XmlUtils::replace_all( expr, L"[", L"KVADRATIN");
|
||||
// //XmlUtils::replace_all( expr, L"]", L"KVADRATOUT");
|
||||
//
|
||||
// XmlUtils::replace_all( expr, L" ", L"PROBEL");
|
||||
//// XmlUtils::replace_all( expr, L"'", L"APOSTROF");
|
||||
//// XmlUtils::replace_all( expr, L"\"", L"KAVYCHKA");
|
||||
|
||||
std::wstring result;
|
||||
|
||||
size_t pos = 0, size = expr.length();
|
||||
|
||||
while(pos < size)
|
||||
{
|
||||
switch(expr[pos])
|
||||
{
|
||||
case '.':
|
||||
{
|
||||
result += L"ТОСHKA";
|
||||
}break;
|
||||
case '!':
|
||||
{
|
||||
result += L"VOSKL";
|
||||
}break;
|
||||
case '(':
|
||||
{
|
||||
result += L"SCOBCAIN";
|
||||
}break;
|
||||
case ')':
|
||||
{
|
||||
result += L"SCOBCAOUT";
|
||||
}break;
|
||||
case ' ':
|
||||
{
|
||||
result += L"PROBEL";
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
result += expr[pos];
|
||||
}break;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
expr = result;
|
||||
}
|
||||
static std::wstring convert_scobci(boost::wsmatch const & what)
|
||||
{
|
||||
@ -578,10 +615,8 @@ namespace formulasconvert {
|
||||
cells_out.append(cells[j]);
|
||||
cells_out.append(L":");
|
||||
}
|
||||
size_t res1 = sheet.find(L"-");
|
||||
size_t res2 = sheet.find(L"'");
|
||||
|
||||
if (res1 != std::wstring::npos && res2 != std::wstring::npos && !(res2 == 0))
|
||||
if (sheet.find(L"-") != std::wstring::npos && sheet.find(L"'") == std::wstring::npos && sheet.find(L"\"") == std::wstring::npos)
|
||||
{
|
||||
sheet = L"'" + sheet + L"'";
|
||||
}
|
||||
|
||||
@ -133,34 +133,202 @@ public:
|
||||
}
|
||||
static void oox_replace_tmp_back(std::wstring &expr)
|
||||
{
|
||||
XmlUtils::replace_all( expr, L"ТОСHKA", L".");
|
||||
XmlUtils::replace_all( expr, L"VOSKL", L"!");
|
||||
std::wstring result;
|
||||
|
||||
XmlUtils::replace_all( expr, L"SCOBCAIN", L"(");
|
||||
XmlUtils::replace_all( expr, L"SCOBCAOUT", L")");
|
||||
size_t pos = 0, size = expr.length();
|
||||
|
||||
XmlUtils::replace_all( expr, L"KVADRATIN", L"[");
|
||||
XmlUtils::replace_all( expr, L"KVADRATOUT", L"]");
|
||||
|
||||
XmlUtils::replace_all( expr, L"PROBEL", L" ");
|
||||
XmlUtils::replace_all( expr, L"APOSTROF", L"'");
|
||||
XmlUtils::replace_all( expr, L"KAVYCHKA", L"\"");
|
||||
while(pos < size)
|
||||
{
|
||||
if (pos + 5 >= size)
|
||||
{
|
||||
result += expr[pos++];
|
||||
continue;
|
||||
}
|
||||
switch(expr[pos])
|
||||
{
|
||||
case 'M':
|
||||
{
|
||||
if ((pos + 5 <= size) && (expr.substr(pos, 5) == L"MINYS"))
|
||||
{
|
||||
result += L"-"; pos += 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'T':
|
||||
{
|
||||
if ((pos + 6 <= size) && (expr.substr(pos, 6) == L"ТОСHKA"))
|
||||
{
|
||||
result += L"."; pos += 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'V':
|
||||
{
|
||||
if ((pos + 5 <= size) && (expr.substr(pos, 5) == L"VOSKL"))
|
||||
{
|
||||
result += L"!"; pos += 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'S':
|
||||
{
|
||||
if ((pos + 8 <= size) && (expr.substr(pos, 8) == L"SCOBCAIN"))
|
||||
{
|
||||
result += L"("; pos += 8;
|
||||
}
|
||||
else if ((pos + 9 <= size) && (expr.substr(pos, 9) == L"SCOBCAOUT"))
|
||||
{
|
||||
result += L")"; pos += 9;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'K':
|
||||
{
|
||||
if ((pos + 9 <= size) && (expr.substr(pos, 9) == L"KVADRATIN"))
|
||||
{
|
||||
result += L"["; pos += 9;
|
||||
}
|
||||
else if ((pos + 10 <= size) && (expr.substr(pos, 10) == L"KVADRATOUT"))
|
||||
{
|
||||
result += L"]"; pos += 10;
|
||||
}
|
||||
else if ((pos + 8 <= size) && (expr.substr(pos, 8) == L"KAVYCHKA"))
|
||||
{
|
||||
result += L"\""; pos += 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'P':
|
||||
{
|
||||
if ((pos + 6 <= size) && (expr.substr(pos, 6) == L"PROBEL"))
|
||||
{
|
||||
result += L" "; pos += 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
case 'A':
|
||||
{
|
||||
if ((pos + 8 <= size) && (expr.substr(pos, 8) == L"APOSTROF"))
|
||||
{
|
||||
result += L"'"; pos += 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += expr[pos++];
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
result += expr[pos++];
|
||||
}break;
|
||||
}
|
||||
}
|
||||
expr = result;
|
||||
//XmlUtils::replace_all( expr, L"MINYS", L"-");
|
||||
//XmlUtils::replace_all( expr, L"ТОСHKA", L".");
|
||||
//XmlUtils::replace_all( expr, L"VOSKL", L"!");
|
||||
|
||||
//XmlUtils::replace_all( expr, L"SCOBCAIN", L"(");
|
||||
//XmlUtils::replace_all( expr, L"SCOBCAOUT", L")");
|
||||
|
||||
//XmlUtils::replace_all( expr, L"KVADRATIN", L"[");
|
||||
//XmlUtils::replace_all( expr, L"KVADRATOUT", L"]");
|
||||
//
|
||||
//XmlUtils::replace_all( expr, L"PROBEL", L" ");
|
||||
//XmlUtils::replace_all( expr, L"APOSTROF", L"'");
|
||||
//XmlUtils::replace_all( expr, L"KAVYCHKA", L"\"");
|
||||
}
|
||||
|
||||
static void oox_replace_tmp(std::wstring &expr)
|
||||
{
|
||||
XmlUtils::replace_all( expr, L".", L"ТОСHKA");
|
||||
XmlUtils::replace_all( expr, L"!", L"VOSKL");
|
||||
std::wstring result;
|
||||
|
||||
XmlUtils::replace_all( expr, L"(", L"SCOBCAIN");
|
||||
XmlUtils::replace_all( expr, L")", L"SCOBCAOUT");
|
||||
size_t pos = 0, size = expr.length();
|
||||
|
||||
XmlUtils::replace_all( expr, L"[", L"KVADRATIN");
|
||||
XmlUtils::replace_all( expr, L"]", L"KVADRATOUT");
|
||||
|
||||
XmlUtils::replace_all( expr, L" ", L"PROBEL");
|
||||
XmlUtils::replace_all( expr, L"'", L"APOSTROF");
|
||||
XmlUtils::replace_all( expr, L"\"", L"KAVYCHKA");
|
||||
while(pos < size)
|
||||
{
|
||||
switch(expr[pos])
|
||||
{
|
||||
case '-':
|
||||
{
|
||||
result += L"MINYS";
|
||||
}break;
|
||||
case '.':
|
||||
{
|
||||
result += L"ТОСHKA";
|
||||
}break;
|
||||
case '!':
|
||||
{
|
||||
result += L"VOSKL";
|
||||
}break;
|
||||
case '(':
|
||||
{
|
||||
result += L"SCOBCAIN";
|
||||
}break;
|
||||
case ')':
|
||||
{
|
||||
result += L"SCOBCAOUT";
|
||||
}break;
|
||||
case '[':
|
||||
{
|
||||
result += L"KVADRATIN";
|
||||
}break;
|
||||
case ']':
|
||||
{
|
||||
result += L"KVADRATOUT";
|
||||
}break;
|
||||
case ' ':
|
||||
{
|
||||
result += L"PROBEL";
|
||||
}break;
|
||||
case '\'':
|
||||
{
|
||||
result += L"APOSTROF";
|
||||
}break;
|
||||
case '\"':
|
||||
{
|
||||
result += L"KAVYCHKA";
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
result += expr[pos];
|
||||
}break;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
expr = result;
|
||||
|
||||
//XmlUtils::replace_all( expr, L"-", L"MINYS");
|
||||
//XmlUtils::replace_all( expr, L".", L"ТОСHKA");
|
||||
//XmlUtils::replace_all( expr, L"!", L"VOSKL");
|
||||
|
||||
//XmlUtils::replace_all( expr, L"(", L"SCOBCAIN");
|
||||
//XmlUtils::replace_all( expr, L")", L"SCOBCAOUT");
|
||||
|
||||
//XmlUtils::replace_all( expr, L"[", L"KVADRATIN");
|
||||
//XmlUtils::replace_all( expr, L"]", L"KVADRATOUT");
|
||||
//
|
||||
//XmlUtils::replace_all( expr, L" ", L"PROBEL");
|
||||
//XmlUtils::replace_all( expr, L"'", L"APOSTROF");
|
||||
//XmlUtils::replace_all( expr, L"\"", L"KAVYCHKA");
|
||||
}
|
||||
|
||||
static bool is_forbidden1(const std::wstring & formula)
|
||||
@ -174,6 +342,7 @@ public:
|
||||
}
|
||||
void replace_named_ref(std::wstring & expr);
|
||||
void replace_named_formula(std::wstring & expr);
|
||||
bool is_simple_ref(std::wstring const & expr);
|
||||
|
||||
static bool isFindBaseCell_;
|
||||
|
||||
@ -195,7 +364,7 @@ void oox2odf_converter::Impl::replace_cells_range(std::wstring& expr, bool bSele
|
||||
|
||||
if (b)
|
||||
{
|
||||
boost::wregex re1(L"(\\$?[^\']+\\!)?([\\w^0-9$]*\\d*)\\:?([\\w^0-9$]*\\d*)?");
|
||||
boost::wregex re1(L"(\\$?[^\\']+\\!)?([a-zA-Z$]+\\d*)(\\:[a-zA-Z$]+\\d*)?");
|
||||
// $ Sheet2 ! $ A1 : $ B5
|
||||
// $ Sheet2 ! $ A : $ A
|
||||
// $ Sheet2 ! $ 1 : $ 1
|
||||
@ -216,6 +385,78 @@ void oox2odf_converter::Impl::replace_cells_range(std::wstring& expr, bool bSele
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
size_t getColAddressInv(const std::wstring & a_)
|
||||
{
|
||||
std::wstring a = a_;
|
||||
::boost::algorithm::to_upper(a);
|
||||
static const size_t r = (L'Z' - L'A' + 1);
|
||||
size_t mul = 1;
|
||||
bool f = true;
|
||||
size_t res = 0;
|
||||
|
||||
for (int i = a.length() - 1; i >= 0; i--)
|
||||
{
|
||||
size_t v = a[i] - L'A';
|
||||
if (f)
|
||||
f = false;
|
||||
else
|
||||
v += 1;
|
||||
res += v * mul;
|
||||
mul *= r;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
size_t getRowAdderssInv(const std::wstring & a_)
|
||||
{
|
||||
int sz = a_.length();
|
||||
if (a_.length()>0)
|
||||
{
|
||||
return boost::lexical_cast<size_t>(a_)-1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
void splitCellAddress(const std::wstring & a_, std::wstring & col, std::wstring & row)
|
||||
{
|
||||
std::wstring a = a_;
|
||||
|
||||
std::reverse(a.begin(), a.end());
|
||||
::XmlUtils::replace_all( a, L"$", L"");
|
||||
//::XmlUtils::replace_all( a, L"'", L"");
|
||||
::boost::algorithm::to_upper(a);
|
||||
|
||||
for (size_t i = 0; i < a.length(); i++)
|
||||
{
|
||||
if (a[i] >= L'0' && a[i] <= L'9')
|
||||
row += a[i];
|
||||
else
|
||||
col += a[i];
|
||||
}
|
||||
std::reverse(col.begin(), col.end());
|
||||
std::reverse(row.begin(), row.end());
|
||||
}
|
||||
|
||||
void getCellAddressInv(const std::wstring & a_, int & col, int & row)
|
||||
{
|
||||
std::wstring colStr=L"", rowStr=L"";
|
||||
splitCellAddress(a_, colStr, rowStr);
|
||||
|
||||
col = getColAddressInv(colStr);
|
||||
row = getRowAdderssInv(rowStr);
|
||||
|
||||
if (col > 16384) col= -1;
|
||||
}
|
||||
|
||||
bool IsRefPresent(const std::wstring& ref_test)
|
||||
{
|
||||
int col = -1, row = -1;
|
||||
getCellAddressInv(ref_test, col, row);
|
||||
|
||||
if (col >= 0 && row >=0) return true;
|
||||
return false;
|
||||
}
|
||||
std::wstring oox2odf_converter::Impl::replace_cells_range_formater1(boost::wsmatch const & what)
|
||||
{
|
||||
const size_t sz = what.size();
|
||||
@ -238,12 +479,27 @@ std::wstring oox2odf_converter::Impl::replace_cells_range_formater1(boost::wsmat
|
||||
|
||||
if (isFindBaseCell_ && table_name_.empty() && !sheet.empty())
|
||||
{
|
||||
table_name_ = sheet + L".$A$1";
|
||||
table_name_ = L"$" + sheet + L".$A$1";
|
||||
}
|
||||
if (!sheet.empty() && (std::wstring::npos != c1.find(L"$"))) sheet = L"$" + sheet;
|
||||
if (!c2.empty() && c2.substr(0, 1) == L":")
|
||||
c2 = c2.substr(1);
|
||||
|
||||
|
||||
s = L"[" + sheet + L"." + c1 + (c2.empty() ? L"" : (L":" + sheet + L"." + c2)) + std::wstring(L"]");
|
||||
bool bRefPresent = true;
|
||||
|
||||
if (sheet.empty() && c2.empty())
|
||||
{
|
||||
bRefPresent = IsRefPresent(c1);
|
||||
}
|
||||
|
||||
if (bRefPresent)
|
||||
{
|
||||
s = L"[" + sheet + L"." + c1 + (c2.empty() ? L"" : (L":" + sheet + L"." + c2)) + std::wstring(L"]");
|
||||
}
|
||||
else
|
||||
{
|
||||
s = c1;
|
||||
}
|
||||
}
|
||||
return s;
|
||||
}
|
||||
@ -281,10 +537,12 @@ std::wstring oox2odf_converter::Impl::replace_cells_range_formater2(boost::wsmat
|
||||
|
||||
if (isFindBaseCell_ && table_name_.empty() && !sheet.empty())
|
||||
{
|
||||
table_name_ = sheet + L".$A$1";
|
||||
table_name_ = L"$" + sheet + L".$A$1";
|
||||
}
|
||||
if (!sheet.empty() && (std::wstring::npos != c1.find(L"$"))) sheet = L"$" + sheet;
|
||||
|
||||
|
||||
if (!c2.empty() && c2.substr(0, 1) == L":")
|
||||
c2 = c2.substr(1);
|
||||
|
||||
s = sheet + L"." + c1 + (c2.empty() ? L"" : (L":" + sheet + L"." + c2)) + std::wstring(L"");
|
||||
}
|
||||
@ -310,6 +568,19 @@ void oox2odf_converter::Impl::replace_named_formula(std::wstring & expr)
|
||||
expr = convert_formula(expr);
|
||||
isFindBaseCell_ = false;
|
||||
}
|
||||
bool oox2odf_converter::Impl::is_simple_ref(std::wstring const & expr)
|
||||
{
|
||||
if (expr.find(L"(") != std::wstring::npos) return false;
|
||||
if (expr.find(L" ") != std::wstring::npos) return false;
|
||||
if (expr.find(L";") != std::wstring::npos) return false;
|
||||
|
||||
boost::wsmatch match;
|
||||
if (boost::regex_search(expr, match, boost::wregex(L"([\\w]+\\!)?\\$?[a-zA-Z]+\\$?\\d+(\\:\\$?[a-zA-Z]+\\$?\\d+)?")))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void oox2odf_converter::Impl::replace_named_ref(std::wstring & expr)
|
||||
{
|
||||
@ -644,6 +915,11 @@ std::wstring oox2odf_converter::convert_named_formula(const std::wstring& expr)
|
||||
impl_->replace_named_formula(workstr);
|
||||
return workstr;
|
||||
}
|
||||
bool oox2odf_converter::is_simple_ref(std::wstring const & expr)
|
||||
{
|
||||
return impl_->is_simple_ref(expr);
|
||||
}
|
||||
|
||||
std::wstring oox2odf_converter::get_table_name()
|
||||
{
|
||||
return impl_->table_name_;
|
||||
@ -665,67 +941,6 @@ std::wstring oox2odf_converter::convert_spacechar(std::wstring expr)
|
||||
}
|
||||
return expr;
|
||||
}
|
||||
size_t getColAddressInv(const std::wstring & a_)
|
||||
{
|
||||
std::wstring a = a_;
|
||||
::boost::algorithm::to_upper(a);
|
||||
static const size_t r = (L'Z' - L'A' + 1);
|
||||
size_t mul = 1;
|
||||
bool f = true;
|
||||
size_t res = 0;
|
||||
|
||||
for (int i = a.length() - 1; i >= 0; i--)
|
||||
{
|
||||
size_t v = a[i] - L'A';
|
||||
if (f)
|
||||
f = false;
|
||||
else
|
||||
v += 1;
|
||||
res += v * mul;
|
||||
mul *= r;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
size_t getRowAdderssInv(const std::wstring & a_)
|
||||
{
|
||||
int sz = a_.length();
|
||||
if (a_.length()>0)
|
||||
{
|
||||
return boost::lexical_cast<size_t>(a_)-1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
void splitCellAddress(const std::wstring & a_, std::wstring & col, std::wstring & row)
|
||||
{
|
||||
std::wstring a = a_;
|
||||
|
||||
std::reverse(a.begin(), a.end());
|
||||
::XmlUtils::replace_all( a, L"$", L"");
|
||||
//::XmlUtils::replace_all( a, L"'", L"");
|
||||
::boost::algorithm::to_upper(a);
|
||||
|
||||
for (size_t i = 0; i < a.length(); i++)
|
||||
{
|
||||
if (a[i] >= L'0' && a[i] <= L'9')
|
||||
row += a[i];
|
||||
else
|
||||
col += a[i];
|
||||
}
|
||||
std::reverse(col.begin(), col.end());
|
||||
std::reverse(row.begin(), row.end());
|
||||
}
|
||||
|
||||
void getCellAddressInv(const std::wstring & a_, int & col, int & row)
|
||||
{
|
||||
std::wstring colStr=L"", rowStr=L"";
|
||||
splitCellAddress(a_, colStr, rowStr);
|
||||
|
||||
col = getColAddressInv(colStr);
|
||||
row = getRowAdderssInv(rowStr);
|
||||
}
|
||||
|
||||
int oox2odf_converter::get_count_value_points(std::wstring expr)
|
||||
{
|
||||
int count =0;
|
||||
|
||||
@ -63,8 +63,9 @@ public:
|
||||
|
||||
virtual void add_child_element ( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name) = 0;
|
||||
private:
|
||||
virtual void add_attributes ( const xml::attributes_wc_ptr & Attributes ) = 0;
|
||||
virtual void add_attributes (const xml::attributes_wc_ptr & Attributes) = 0;
|
||||
virtual void add_text (const std::wstring & Text) = 0;
|
||||
virtual void add_space (const std::wstring & Text) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -39,7 +39,8 @@ enum ElementType
|
||||
typeNone = 0,
|
||||
type_AbstractXml,
|
||||
|
||||
typeTextText = 1000,
|
||||
typeTextTextElement = 1000,
|
||||
typeTextText,
|
||||
typeTextS,
|
||||
typeTextTab,
|
||||
typeTextLineBreak,
|
||||
@ -237,6 +238,9 @@ enum ElementType
|
||||
typeStyleListLevelProperties,
|
||||
typeStyleListLevelLabelAlignment,
|
||||
|
||||
typeTextOutlineStyle,
|
||||
typeTextOutlineLevelStyle,
|
||||
|
||||
typeStyleTabStop,
|
||||
typeStyleTabStops,
|
||||
typeStyleDropCap,
|
||||
@ -247,6 +251,7 @@ enum ElementType
|
||||
typeStyleTableColumnProperties,
|
||||
typeStyleTableRowProperties,
|
||||
typeStyleTableCellProperties,
|
||||
typeStyleHeaderFooter,
|
||||
typeStyleHeader,
|
||||
typeStyleFooter,
|
||||
typeStyleHeaderFirst,
|
||||
@ -255,6 +260,9 @@ enum ElementType
|
||||
typeStyleFooterLeft,
|
||||
typeStyleFootnoteSep,
|
||||
|
||||
typeLoextHeaderFirst,
|
||||
typeLoextFooterFirst,
|
||||
|
||||
typeStyleSectionProperties,
|
||||
typeStyleHeaderStyle,
|
||||
typeStyleFooterStyle,
|
||||
@ -468,6 +476,7 @@ enum ElementType
|
||||
typeDrawHandle,
|
||||
typeDrawEquation,
|
||||
typeDrawEnhancedGeometry,
|
||||
typeDrawGluePoint,
|
||||
|
||||
typeDr3dScene,
|
||||
typeDr3dLight,
|
||||
@ -506,6 +515,7 @@ enum ElementType
|
||||
typeFormTime,
|
||||
typeFormValueRange,
|
||||
typeFormItem,
|
||||
typeFormOption,
|
||||
|
||||
typeDrawPage,
|
||||
typePresentationFooterDecl,
|
||||
@ -533,7 +543,10 @@ enum ElementType
|
||||
typeOfficeAnnotation,
|
||||
typeOfficeAnnotationStart,
|
||||
typeOfficeAnnotationEnd,
|
||||
typeStyleRegion,
|
||||
typeStyleRegionLeft,
|
||||
typeStyleRegionCenter,
|
||||
typeStyleRegionRight,
|
||||
typeOfficeScripts,
|
||||
typeOfficeScript,
|
||||
typeOfficePresentation,
|
||||
@ -588,9 +601,8 @@ enum ElementType
|
||||
typeChartStockRangeLine,
|
||||
typeChartRegressionCurve,
|
||||
typeChartEquation,
|
||||
typeChartDateScale,
|
||||
|
||||
typeStyleRegionCenter,
|
||||
typeStyleRegionRight,
|
||||
typeStyleChartProperties,
|
||||
|
||||
typeCalcextColorScaleEntry,
|
||||
|
||||
@ -129,6 +129,7 @@ SOURCES += \
|
||||
../src/odf/datatypes/chartregressiontype.cpp \
|
||||
../src/odf/datatypes/chartseriessource.cpp \
|
||||
../src/odf/datatypes/chartsolidtype.cpp \
|
||||
../src/odf/datatypes/chartclass.cpp \
|
||||
../src/odf/datatypes/chartsymbol.cpp \
|
||||
../src/odf/datatypes/clockvalue.cpp \
|
||||
../src/odf/datatypes/color.cpp \
|
||||
@ -216,6 +217,8 @@ SOURCES += \
|
||||
../src/odf/datatypes/dategroup.cpp \
|
||||
../src/odf/datatypes/bibliography.cpp \
|
||||
../src/odf/datatypes/commandtype.cpp \
|
||||
../src/odf/datatypes/styleprint.cpp \
|
||||
../src/odf/datatypes/charttimeunit.cpp \
|
||||
../src/docx/xlsx_conditionalFormatting.cpp \
|
||||
../src/docx/xlsx_dxfs.cpp \
|
||||
../src/docx/docx_content_type.cpp \
|
||||
@ -476,6 +479,8 @@ HEADERS += \
|
||||
../src/odf/datatypes/xlink.h \
|
||||
../src/odf/datatypes/chartlabelposition.h \
|
||||
../src/odf/datatypes/grandtotal.h \
|
||||
../src/odf/datatypes/styleprint.h \
|
||||
../src/odf/datatypes/charttimeunit.h \
|
||||
../src/docx/docx_content_type.h \
|
||||
../src/docx/docx_conversion_context.h \
|
||||
../src/docx/docx_conversion_state.h \
|
||||
|
||||
@ -38,6 +38,7 @@
|
||||
#include "../src/odf/datatypes/calcext_type.cpp"
|
||||
#include "../src/odf/datatypes/chartdatalabelnumber.cpp"
|
||||
#include "../src/odf/datatypes/charterrorcategory.cpp"
|
||||
#include "../src/odf/datatypes/chartclass.cpp"
|
||||
#include "../src/odf/datatypes/chartinterpolation.cpp"
|
||||
#include "../src/odf/datatypes/chartlabelarrangement.cpp"
|
||||
#include "../src/odf/datatypes/chartregressiontype.cpp"
|
||||
@ -130,3 +131,5 @@
|
||||
#include "../src/odf/datatypes/commandtype.cpp"
|
||||
#include "../src/odf/datatypes/stylenumformat.cpp"
|
||||
#include "../src/odf/datatypes/bibliography.cpp"
|
||||
#include "../src/odf/datatypes/styleprint.cpp"
|
||||
#include "../src/odf/datatypes/charttimeunit.cpp"
|
||||
|
||||
@ -82,6 +82,11 @@ bool read_doc_element::read_sax( xml::sax * Reader )
|
||||
}
|
||||
break;
|
||||
case xml::typeWhitespace:
|
||||
{
|
||||
const std::wstring value = Reader->value();
|
||||
add_space(value);
|
||||
}
|
||||
break;
|
||||
case xml::typeText:
|
||||
{
|
||||
const std::wstring value = Reader->value();
|
||||
|
||||
@ -47,6 +47,7 @@
|
||||
#include "../odf/style_graphic_properties.h"
|
||||
|
||||
#include "docx_package.h"
|
||||
#include "xlsx_package.h"
|
||||
#include "oox_rels.h"
|
||||
#include "logging.h"
|
||||
|
||||
@ -130,7 +131,7 @@ text_tracked_context::_state & text_tracked_context::get_tracked_change(std::wst
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------
|
||||
docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfDocument) :
|
||||
docx_conversion_context::docx_conversion_context(odf_reader::odf_document * _odf_document) :
|
||||
last_dump_page_properties_ (true),
|
||||
next_dump_page_properties_ (false),
|
||||
page_break_ (false),
|
||||
@ -143,7 +144,7 @@ docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfD
|
||||
text_tracked_context_ (*this),
|
||||
table_context_ (*this),
|
||||
output_document_ (NULL),
|
||||
process_note_ (noNote),
|
||||
current_process_note_ (noNote),
|
||||
new_list_style_number_ (0),
|
||||
current_margin_left_ (0),
|
||||
current_outline_level_ (-1),
|
||||
@ -151,12 +152,14 @@ docx_conversion_context::docx_conversion_context(odf_reader::odf_document * OdfD
|
||||
is_delete_text_ (false),
|
||||
delayed_converting_ (false),
|
||||
process_headers_footers_ (false),
|
||||
process_comment_ (false),
|
||||
mediaitems_ (OdfDocument->get_folder() ),
|
||||
math_context_ (OdfDocument->odf_context().fontContainer(), false),
|
||||
odf_document_ (OdfDocument)
|
||||
current_process_comment_ (false),
|
||||
odf_document_ (_odf_document),
|
||||
math_context_ (_odf_document->odf_context().fontContainer(), false)
|
||||
{
|
||||
streams_man_ = streams_man::create(temp_stream_);
|
||||
mediaitems_ = boost::make_shared<mediaitems>(odf_document_->get_folder());
|
||||
chart_drawing_handle_ = boost::make_shared<xlsx_drawing_context_handle>(mediaitems_);
|
||||
|
||||
streams_man_ = streams_man::create(temp_stream_);
|
||||
}
|
||||
docx_conversion_context::~docx_conversion_context()
|
||||
{
|
||||
@ -167,7 +170,7 @@ void docx_conversion_context::set_output_document(package::docx_document * docum
|
||||
}
|
||||
void docx_conversion_context::set_font_directory(std::wstring pathFonts)
|
||||
{
|
||||
mediaitems_.set_font_directory(pathFonts);
|
||||
mediaitems_->set_font_directory(pathFonts);
|
||||
}
|
||||
std::wstring styles_map::get(const std::wstring & Name, odf_types::style_family::type Type)
|
||||
{
|
||||
@ -195,7 +198,30 @@ std::wstring styles_map::name(const std::wstring & Name, odf_types::style_family
|
||||
}
|
||||
void docx_conversion_context::add_element_to_run(std::wstring parenStyleId)
|
||||
{
|
||||
if (!state_.in_run_)
|
||||
if(false == current_process_comment_)
|
||||
{
|
||||
for (size_t i = 0; i < get_comments_context().ref_start_.size(); i++)
|
||||
{
|
||||
output_stream() << L"<w:commentRangeStart w:id=\"" << get_comments_context().ref_start_[i] << L"\"/>";
|
||||
}
|
||||
get_comments_context().ref_start_.clear();
|
||||
|
||||
if (false == get_comments_context().ref_end_.empty())
|
||||
{
|
||||
for (size_t i = 0; i < get_comments_context().ref_end_.size(); i++)
|
||||
{
|
||||
output_stream()<< L"<w:commentRangeEnd w:id=\"" << get_comments_context().ref_end_[i] << L"\"/>";
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < get_comments_context().ref_end_.size(); i++)
|
||||
{
|
||||
output_stream()<< L"<w:commentReference w:id=\"" << get_comments_context().ref_end_[i] << L"\"/>";
|
||||
}
|
||||
|
||||
get_comments_context().ref_end_.clear();
|
||||
}
|
||||
}
|
||||
if (!state_.in_run_)
|
||||
{
|
||||
state_.in_run_ = true;
|
||||
output_stream() << L"<w:r>";
|
||||
@ -238,6 +264,20 @@ void docx_conversion_context::finish_paragraph()
|
||||
{
|
||||
end_changes();
|
||||
|
||||
if (false == current_process_comment_ && false == get_comments_context().ref_end_.empty())
|
||||
{
|
||||
for (size_t i = 0; i < get_comments_context().ref_end_.size(); i++)
|
||||
{
|
||||
output_stream()<< L"<w:commentRangeEnd w:id=\"" << get_comments_context().ref_end_[i] << L"\"/>";
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < get_comments_context().ref_end_.size(); i++)
|
||||
{
|
||||
output_stream()<< L"<w:commentReference w:id=\"" << get_comments_context().ref_end_[i] << L"\"/>";
|
||||
}
|
||||
|
||||
get_comments_context().ref_end_.clear();
|
||||
}
|
||||
output_stream() << L"</w:p>";
|
||||
}
|
||||
|
||||
@ -251,23 +291,17 @@ void docx_conversion_context::finish_run()
|
||||
{
|
||||
if (false == state_.in_run_) return;
|
||||
|
||||
if (get_comments_context().state() == 4)
|
||||
if (false == current_process_comment_)
|
||||
{
|
||||
output_stream()<< L"<w:commentReference w:id=\"" << get_comments_context().current_id() << L"\"/>";
|
||||
get_comments_context().state(0);
|
||||
for (size_t i = 0; i < get_comments_context().ref_.size(); i++)
|
||||
{
|
||||
output_stream()<< L"<w:commentReference w:id=\"" << get_comments_context().ref_[i] << L"\"/>";
|
||||
}
|
||||
get_comments_context().ref_.clear();
|
||||
}
|
||||
|
||||
output_stream() << L"</w:r>";
|
||||
state_.in_run_ = false;
|
||||
|
||||
if (get_comments_context().state() == 2)
|
||||
{
|
||||
output_stream()<< L"<w:commentRangeEnd w:id=\"" << get_comments_context().current_id() << L"\"/>";
|
||||
|
||||
add_element_to_run();
|
||||
output_stream()<< L"<w:commentReference w:id=\"" << get_comments_context().current_id() << L"\"/>";
|
||||
get_comments_context().state(0);
|
||||
finish_run();
|
||||
}
|
||||
}
|
||||
void docx_conversion_context::start_math_formula()
|
||||
{
|
||||
@ -606,34 +640,36 @@ void docx_conversion_context::back_context_state()
|
||||
void docx_conversion_context::add_new_run(std::wstring parentStyleId)
|
||||
{
|
||||
finish_run();
|
||||
if (get_comments_context().state() == 1 ||
|
||||
get_comments_context().state() == 4)//??? comment in run
|
||||
{
|
||||
output_stream() << L"<w:commentRangeStart w:id=\"" << get_comments_context().current_id() << L"\" />";
|
||||
get_comments_context().state(2);//active
|
||||
}
|
||||
|
||||
add_element_to_run(parentStyleId);
|
||||
}
|
||||
|
||||
std::wstring docx_conversion_context::add_hyperlink(const std::wstring & href, bool draw)
|
||||
{
|
||||
hyperlinks::_type_place type = hyperlinks::document_place;
|
||||
|
||||
if (process_comment_ == true) type = hyperlinks::comment_place;
|
||||
else if (process_note_ == footNote || process_note_ == footNoteRefSet) type = hyperlinks::footnote_place;
|
||||
else if (process_note_ == endNote || process_note_ == endNoteRefSet ) type = hyperlinks::endnote_place;
|
||||
|
||||
oox::_rels_type_place type_place = get_type_place();
|
||||
|
||||
std::wstring href_correct = xml::utils::replace_text_to_xml(href);
|
||||
XmlUtils::replace_all( href_correct, L" .", L".");//1 (130).odt
|
||||
|
||||
return hyperlinks_.add(href_correct, type, draw);
|
||||
return hyperlinks_.add(href_correct, type_place, draw);
|
||||
}
|
||||
hyperlinks::_ref docx_conversion_context::last_hyperlink()
|
||||
{
|
||||
return hyperlinks_.last();
|
||||
}
|
||||
_rels_type_place docx_conversion_context::get_type_place()
|
||||
{
|
||||
if (current_process_comment_) return oox::comment_place;
|
||||
if (current_process_note_ == footNote ||
|
||||
current_process_note_ == footNoteRefSet) return oox::footnote_place;
|
||||
if (current_process_note_ == endNote ||
|
||||
current_process_note_ == endNoteRefSet ) return oox::endnote_place;
|
||||
|
||||
if (process_headers_footers_) return oox::header_footer_place;
|
||||
|
||||
void docx_conversion_context::dump_hyperlinks(rels & Rels, hyperlinks::_type_place type)
|
||||
return oox::document_place;
|
||||
}
|
||||
void docx_conversion_context::dump_hyperlinks(rels & Rels, _rels_type_place type)
|
||||
{
|
||||
hyperlinks_.dump_rels(Rels, type);
|
||||
}
|
||||
@ -685,20 +721,26 @@ void docx_conversion_context::end_document()
|
||||
{
|
||||
output_stream() << L"</w:document>";
|
||||
|
||||
output_document_->get_word_files().set_document ( package::simple_element::create(L"document.xml", document_xml_.str()) );
|
||||
output_document_->get_word_files().set_document ( package::simple_element::create(L"document.xml", document_xml_.str()) );
|
||||
output_document_->get_word_files().set_settings ( package::simple_element::create(L"settings.xml", dump_settings_document()));
|
||||
output_document_->get_word_files().set_media ( mediaitems_);
|
||||
output_document_->get_word_files().set_comments ( comments_context_);
|
||||
output_document_->get_word_files().set_headers_footers( headers_footers_);
|
||||
output_document_->get_word_files().set_headers_footers( headers_footers_);
|
||||
|
||||
package::xl_drawings_ptr drawings = package::xl_drawings::create(chart_drawing_handle_->content(), chart_drawing_handle_->content_vml());
|
||||
output_document_->get_word_files().set_drawings(drawings);
|
||||
|
||||
package::content_types_file & content_file_ = output_document_->get_content_types_file();
|
||||
content_file_.set_media( mediaitems_);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
dump_bibliography();
|
||||
dump_hyperlinks (notes_context_.footnotesRels(), hyperlinks::footnote_place);
|
||||
dump_hyperlinks (notes_context_.endnotesRels(), hyperlinks::endnote_place);
|
||||
|
||||
dump_hyperlinks (notes_context_.footnotesRels(), oox::footnote_place);
|
||||
dump_hyperlinks (notes_context_.endnotesRels(), oox::endnote_place);
|
||||
|
||||
get_mediaitems()->dump_rels(notes_context_.footnotesRels(), oox::footnote_place);
|
||||
get_mediaitems()->dump_rels(notes_context_.endnotesRels(), oox::endnote_place);
|
||||
|
||||
output_document_->get_word_files().set_notes(notes_context_);
|
||||
////////////////////////
|
||||
for (size_t i = 0; i < charts_.size(); i++)
|
||||
@ -814,6 +856,16 @@ std::wstring docx_conversion_context::dump_settings_document()
|
||||
{
|
||||
CP_XML_NODE(L"w:mirrorMargins");
|
||||
}
|
||||
|
||||
CP_XML_NODE(L"w:compat")
|
||||
{
|
||||
CP_XML_NODE(L"w:compatSetting")
|
||||
{
|
||||
CP_XML_ATTR(L"w:name", L"compatibilityMode" );
|
||||
CP_XML_ATTR(L"w:uri", L"http://schemas.microsoft.com/office/word" );
|
||||
CP_XML_ATTR(L"w:val", L"15" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return output.str();
|
||||
@ -856,21 +908,25 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring StyleDisplayName(const std::wstring & Name, const std::wstring & DisplayName, odf_types::style_family::type Type)
|
||||
std::wstring StyleDisplayName(const std::wstring & Name, const std::wstring & DisplayName, odf_types::style_family::type Type, bool &bDisplayed)
|
||||
{
|
||||
if (!DisplayName.empty())
|
||||
bDisplayed = true;
|
||||
if (false == DisplayName.empty())
|
||||
return DisplayName;
|
||||
|
||||
if (!Name.empty())
|
||||
if (false == Name.empty())
|
||||
{
|
||||
bDisplayed = false;
|
||||
return Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(Type)
|
||||
{
|
||||
case odf_types::style_family::Paragraph:
|
||||
return L"Normal";
|
||||
break;
|
||||
default:
|
||||
bDisplayed = false;
|
||||
return std::wstring(L"DStyle_") + boost::lexical_cast<std::wstring>(odf_types::style_family( Type) );
|
||||
}
|
||||
}
|
||||
@ -912,28 +968,44 @@ mc:Ignorable=\"w14 wp14\">";
|
||||
std::vector<int> numIds;
|
||||
|
||||
odf_reader::list_style_container::instances_array & arListStyles = list_styles.instances();
|
||||
|
||||
for (size_t i = 0; i < arListStyles.size(); i++)
|
||||
{
|
||||
odf_reader::office_element_ptr_array & content = arListStyles[i]->get_text_list_style()->get_content();
|
||||
{
|
||||
odf_reader::office_element_ptr_array & content = arListStyles[i]->get_text_list_style()->content_;
|
||||
|
||||
if (content.size() < 1)
|
||||
if (content.empty())
|
||||
continue;
|
||||
|
||||
const int abstractNumId = list_styles.id_by_name(arListStyles[i]->get_style_name());
|
||||
numIds.push_back(abstractNumId);
|
||||
|
||||
strm << L"<w:abstractNum w:abstractNumId=\"" << abstractNumId << "\">";
|
||||
numIds.push_back(abstractNumId);
|
||||
|
||||
for (size_t j = 0; j < (std::min)( content.size(), (size_t)9); j++)
|
||||
{
|
||||
start_text_list_style(arListStyles[i]->get_text_list_style()->get_style_name());
|
||||
content[j]->docx_convert(*this);
|
||||
// TODO
|
||||
start_text_list_style(arListStyles[i]->get_text_list_style()->attr_.style_name_);
|
||||
content[j]->docx_convert(*this);
|
||||
end_text_list_style();
|
||||
}
|
||||
|
||||
strm << L"</w:abstractNum>";
|
||||
}
|
||||
}
|
||||
if (list_styles.outline_style())
|
||||
{
|
||||
const int abstractNumId = list_styles.id_outline();
|
||||
numIds.push_back(abstractNumId);
|
||||
|
||||
strm << L"<w:abstractNum w:abstractNumId=\"" << abstractNumId << "\">";
|
||||
|
||||
for (size_t j = 0; j < (std::min)( list_styles.outline_style()->content_.size(), (size_t)9); j++)
|
||||
{
|
||||
start_text_list_style(L"Outline");
|
||||
list_styles.outline_style()->content_[j]->docx_convert(*this);
|
||||
end_text_list_style();
|
||||
}
|
||||
|
||||
strm << L"</w:abstractNum>";
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < numIds.size(); i++)
|
||||
{
|
||||
@ -1055,11 +1127,9 @@ void docx_conversion_context::process_styles()
|
||||
|
||||
for (size_t i = 0; i < arStyles.size(); i++)
|
||||
{
|
||||
if (!arStyles[i]->is_automatic() &&
|
||||
(
|
||||
arStyles[i]->type() == odf_types::style_family::Paragraph ||
|
||||
arStyles[i]->type() == odf_types::style_family::Text
|
||||
))
|
||||
if (false == arStyles[i]->is_automatic() &&
|
||||
(arStyles[i]->type() == odf_types::style_family::Paragraph ||
|
||||
arStyles[i]->type() == odf_types::style_family::Text))
|
||||
{
|
||||
const std::wstring id = styles_map_.get(arStyles[i]->name(), arStyles[i]->type());
|
||||
_Wostream << L"<w:style w:styleId=\"" << id << L"\" w:type=\"" << StyleTypeOdf2Docx(arStyles[i]->type()) << L"\"";
|
||||
@ -1069,7 +1139,8 @@ void docx_conversion_context::process_styles()
|
||||
}
|
||||
_Wostream << L">";
|
||||
|
||||
const std::wstring displayName = StyleDisplayName(arStyles[i]->name(), arStyles[i]->display_name(), arStyles[i]->type());
|
||||
bool bDisplayed = (arStyles[i]->type() == odf_types::style_family::Paragraph);
|
||||
const std::wstring displayName = StyleDisplayName(arStyles[i]->name(), arStyles[i]->display_name(), arStyles[i]->type(), bDisplayed);
|
||||
|
||||
_Wostream << L"<w:name w:val=\"" << XmlUtils::EncodeXmlString(displayName) << L"\"/>";
|
||||
|
||||
@ -1078,12 +1149,13 @@ void docx_conversion_context::process_styles()
|
||||
const std::wstring basedOnId = styles_map_.get(baseOn->name(), baseOn->type());
|
||||
_Wostream << L"<w:basedOn w:val=\"" << basedOnId << "\"/>";
|
||||
}
|
||||
else if (!arStyles[i]->is_default() && styles_map_.check(L"", arStyles[i]->type()))
|
||||
else if (false == arStyles[i]->is_default() && styles_map_.check(L"", arStyles[i]->type()))
|
||||
{
|
||||
bDisplayed = false;
|
||||
const std::wstring basedOnId = styles_map_.get(L"", arStyles[i]->type());
|
||||
_Wostream << L"<w:basedOn w:val=\"" << basedOnId << "\"/>";
|
||||
}
|
||||
else
|
||||
if (bDisplayed)
|
||||
{
|
||||
_Wostream << L"<w:qFormat/>";
|
||||
}
|
||||
@ -1129,7 +1201,7 @@ void docx_conversion_context::process_section(std::wostream & strm, odf_reader::
|
||||
int count_columns = 1;
|
||||
bool sep_columns = false;
|
||||
|
||||
oox::section_context::_section & section = get_section_context().get();
|
||||
oox::section_context::_section & section = get_section_context().get_last();
|
||||
|
||||
if (!columns)
|
||||
{
|
||||
@ -1227,7 +1299,7 @@ void docx_conversion_context::process_section(std::wostream & strm, odf_reader::
|
||||
}
|
||||
bool docx_conversion_context::process_page_properties(std::wostream & strm)
|
||||
{
|
||||
if (is_next_dump_page_properties() || get_section_context().get().is_dump_)
|
||||
if (is_next_dump_page_properties() || get_section_context().get_last().is_dump_)
|
||||
{
|
||||
std::wstring pageProperties = get_page_properties();
|
||||
odf_reader::page_layout_instance * page_layout_instance_ = root()->odf_context().pageLayoutContainer().page_layout_by_name(pageProperties);
|
||||
@ -1405,14 +1477,14 @@ bool docx_conversion_context::get_page_break_before()
|
||||
|
||||
void docx_conversion_context::add_page_properties(const std::wstring & StyleName)
|
||||
{
|
||||
section_context::_section & s = section_context_.get();
|
||||
section_context::_section & s = section_context_.get_last();
|
||||
|
||||
s.page_properties_.push_back( StyleName);
|
||||
}
|
||||
|
||||
std::wstring docx_conversion_context::get_page_properties()
|
||||
{
|
||||
section_context::_section & s = section_context_.get();
|
||||
section_context::_section & s = section_context_.get_last();
|
||||
|
||||
if (s.page_properties_.size() > 1) return s.page_properties_[1];
|
||||
else if (s.page_properties_.size() == 1) return s.page_properties_[0];
|
||||
@ -1420,7 +1492,7 @@ std::wstring docx_conversion_context::get_page_properties()
|
||||
}
|
||||
void docx_conversion_context::remove_page_properties()
|
||||
{
|
||||
section_context::_section & s = section_context_.get();
|
||||
section_context::_section & s = section_context_.get_last();
|
||||
|
||||
if (s.page_properties_.size() > 1)
|
||||
{
|
||||
@ -1464,7 +1536,7 @@ void docx_conversion_context::end_text_list_style()
|
||||
text_list_style_name_ = L"";
|
||||
}
|
||||
|
||||
const std::wstring & docx_conversion_context::get_text_list_style_name()
|
||||
std::wstring docx_conversion_context::get_text_list_style_name()
|
||||
{
|
||||
return text_list_style_name_;
|
||||
}
|
||||
@ -1490,9 +1562,9 @@ void docx_conversion_context::end_list()
|
||||
list_style_stack_.pop_back();
|
||||
}
|
||||
|
||||
const std::wstring docx_conversion_context::current_list_style() const
|
||||
std::wstring docx_conversion_context::current_list_style()
|
||||
{
|
||||
if (!list_style_stack_.empty())
|
||||
if (false == list_style_stack_.empty())
|
||||
return list_style_stack_.back();
|
||||
else
|
||||
return L"";
|
||||
@ -1508,7 +1580,8 @@ void docx_conversion_context::start_list_item(bool restart)
|
||||
list_style_renames_[curStyleName] = newStyleName;
|
||||
|
||||
odf_reader::list_style_container & lists = root()->odf_context().listStyleContainer();
|
||||
odf_reader::text_list_style * curStyle = lists.list_style_by_name(curStyleName);
|
||||
|
||||
odf_reader::text_list_style * curStyle = lists.list_style_by_name(curStyleName);
|
||||
lists.add_list_style(curStyle, newStyleName);
|
||||
end_list();
|
||||
start_list(newStyleName);
|
||||
@ -1545,6 +1618,92 @@ int docx_conversion_context::process_text_attr(odf_reader::text::paragraph_attrs
|
||||
push_text_properties(styleContent->get_style_text_properties());
|
||||
return 1;
|
||||
}
|
||||
int docx_conversion_context::process_paragraph_style(const std::wstring & style_name)
|
||||
{
|
||||
if (style_name.empty()) return 0;
|
||||
|
||||
if (odf_reader::style_instance * styleInst =
|
||||
root()->odf_context().styleContainer().style_by_name(style_name, odf_types::style_family::Paragraph, process_headers_footers_))
|
||||
{
|
||||
double font_size = odf_reader::text_format_properties_content::process_font_size_impl(odf_types::font_size(odf_types::percent(100.0)), styleInst);
|
||||
if (font_size > 0) current_fontSize.push_back(font_size);
|
||||
|
||||
process_page_break_after(styleInst);
|
||||
|
||||
if (styleInst->is_automatic())
|
||||
{
|
||||
if (odf_reader::style_content * styleContent = styleInst->content())
|
||||
{
|
||||
std::wstring id;
|
||||
//office_element_ptr parent_tab_stops_;
|
||||
if (const odf_reader::style_instance * parentStyleContent = styleInst->parent())
|
||||
{
|
||||
std::wstring parent_name = parentStyleContent->name();
|
||||
id = styles_map_.get( parent_name, parentStyleContent->type() );
|
||||
|
||||
if (in_table_content_ && table_content_context_.empty_current_table_content_level_index())
|
||||
{
|
||||
table_content_context_.set_current_level(parent_name);
|
||||
}
|
||||
}
|
||||
|
||||
start_automatic_style(id);
|
||||
|
||||
calc_tab_stops(styleInst, get_tabs_context());
|
||||
|
||||
//вытаскивает rtl c цепочки стилей !! - просто прописать в наследуемом НЕЛЬЗЯ !!
|
||||
odf_reader::paragraph_format_properties properties = odf_reader::calc_paragraph_properties_content(styleInst);
|
||||
if (properties.style_writing_mode_)
|
||||
{
|
||||
odf_types::writing_mode::type type = properties.style_writing_mode_->get_type();
|
||||
switch(type)
|
||||
{
|
||||
case odf_types::writing_mode::RlTb:
|
||||
case odf_types::writing_mode::TbRl:
|
||||
case odf_types::writing_mode::Rl:
|
||||
set_rtl(true);
|
||||
break;
|
||||
default:
|
||||
set_rtl(false);
|
||||
}
|
||||
}
|
||||
|
||||
styleContent->docx_convert(*this);
|
||||
|
||||
end_automatic_style();
|
||||
|
||||
//push_text_properties(styleContent->get_style_text_properties());
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const std::wstring id = styles_map_.get( styleInst->name(), styleInst->type() );
|
||||
output_stream() << L"<w:pPr>";
|
||||
|
||||
output_stream() << L"<w:pStyle w:val=\"" << id << L"\" />";
|
||||
|
||||
if (!get_text_tracked_context().dumpPPr_.empty())
|
||||
{
|
||||
output_stream() << get_text_tracked_context().dumpPPr_;
|
||||
get_text_tracked_context().dumpPPr_.clear();
|
||||
}
|
||||
|
||||
serialize_list_properties(output_stream());
|
||||
|
||||
if (!get_text_tracked_context().dumpRPrInsDel_.empty())
|
||||
{
|
||||
output_stream() << L"<w:rPr>";
|
||||
output_stream() << get_text_tracked_context().dumpRPrInsDel_;
|
||||
get_text_tracked_context().dumpRPrInsDel_.clear();
|
||||
output_stream() << L"</w:rPr>";
|
||||
}
|
||||
output_stream() << L"</w:pPr>";
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_attrs *Attr)
|
||||
{
|
||||
if (!Attr) return 0;
|
||||
@ -1565,19 +1724,24 @@ int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_
|
||||
if (odf_reader::style_instance * styleInst =
|
||||
root()->odf_context().styleContainer().style_by_name(Attr->text_style_name_, odf_types::style_family::Paragraph, process_headers_footers_)
|
||||
)
|
||||
{
|
||||
process_page_break_after(styleInst);
|
||||
{
|
||||
double font_size = odf_reader::text_format_properties_content::process_font_size_impl(odf_types::font_size(odf_types::percent(100.0)), styleInst);
|
||||
if (font_size > 0) current_fontSize.push_back(font_size);
|
||||
|
||||
_CP_OPT(int) outline_level = calc_outline_level(Attr->outline_level_, styleInst);
|
||||
|
||||
process_page_break_after(styleInst);
|
||||
|
||||
if (styleInst->is_automatic())
|
||||
{
|
||||
if (odf_reader::style_content * styleContent = styleInst->content())
|
||||
{
|
||||
std::wstring id;
|
||||
{
|
||||
if (odf_reader::style_content * styleContent = styleInst->content())
|
||||
{
|
||||
std::wstring id;
|
||||
//office_element_ptr parent_tab_stops_;
|
||||
if (const odf_reader::style_instance * parentStyleContent = styleInst->parent())
|
||||
if (const odf_reader::style_instance * parentStyleContent = styleInst->parent())
|
||||
{
|
||||
std::wstring parent_name = parentStyleContent->name();
|
||||
id = styles_map_.get( parent_name, parentStyleContent->type() );
|
||||
id = styles_map_.get( parent_name, parentStyleContent->type() );
|
||||
|
||||
if (in_table_content_ && table_content_context_.empty_current_table_content_level_index())
|
||||
{
|
||||
@ -1585,7 +1749,7 @@ int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_
|
||||
}
|
||||
}
|
||||
|
||||
start_automatic_style(id);
|
||||
start_automatic_style(id);
|
||||
|
||||
calc_tab_stops(styleInst, get_tabs_context());
|
||||
|
||||
@ -1605,16 +1769,18 @@ int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_
|
||||
set_rtl(false);
|
||||
}
|
||||
}
|
||||
set_margin_left(properties.fo_margin_left_? 20.0 * properties.fo_margin_left_->get_length().get_value_unit(odf_types::length::pt) : 0);
|
||||
if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
get_styles_context().start_process_style(styleInst);
|
||||
|
||||
if (outline_level)
|
||||
{
|
||||
set_outline_level(*Attr->outline_level_ - 1);
|
||||
set_outline_level(*outline_level);
|
||||
}
|
||||
styleContent->docx_convert(*this);
|
||||
|
||||
styleContent->docx_convert(*this);
|
||||
get_styles_context().end_process_style();
|
||||
|
||||
end_automatic_style();
|
||||
|
||||
push_text_properties(styleContent->get_style_text_properties());
|
||||
push_text_properties(styleContent->get_style_text_properties());
|
||||
|
||||
if (!get_section_context().dump_.empty()
|
||||
&& !get_table_context().in_table()
|
||||
@ -1630,10 +1796,13 @@ int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_
|
||||
output_stream() << L"</w:pPr>";
|
||||
finish_paragraph();
|
||||
start_paragraph();
|
||||
if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
//process_paragraph_style(Context.get_current_paragraph_style()); ??
|
||||
|
||||
//if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
if (outline_level)
|
||||
{
|
||||
output_stream() << L"<w:pPr>";
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *Attr->outline_level_ - 1 << L"\"/>";
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *outline_level << L"\"/>";
|
||||
output_stream() << L"</w:pPr>";
|
||||
}
|
||||
}
|
||||
@ -1641,66 +1810,77 @@ int docx_conversion_context::process_paragraph_attr(odf_reader::text::paragraph_
|
||||
{
|
||||
output_stream() << get_section_context().dump_;
|
||||
get_section_context().dump_.clear();
|
||||
if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
//if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
if (outline_level)
|
||||
{
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *Attr->outline_level_ - 1 << L"\"/>";
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *outline_level << L"\"/>";
|
||||
}
|
||||
output_stream() << L"</w:pPr>";
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const std::wstring id = styles_map_.get( styleInst->name(), styleInst->type() );
|
||||
output_stream() << L"<w:pPr>";
|
||||
//todooo причесать
|
||||
if (!get_section_context().dump_.empty()
|
||||
&& !get_table_context().in_table()
|
||||
&& (get_process_note() == oox::docx_conversion_context::noNote)
|
||||
&& !in_drawing)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const std::wstring id = styles_map_.get( styleInst->name(), styleInst->type() );
|
||||
output_stream() << L"<w:pPr>";
|
||||
//todooo причесать
|
||||
if (!get_section_context().dump_.empty()
|
||||
&& !get_table_context().in_table()
|
||||
&& (get_process_note() == oox::docx_conversion_context::noNote)
|
||||
&& !in_drawing)
|
||||
{
|
||||
if (is_paragraph_header() )
|
||||
{
|
||||
if (is_paragraph_header() )
|
||||
{
|
||||
output_stream() << get_section_context().dump_;
|
||||
get_section_context().dump_.clear();
|
||||
output_stream() << get_section_context().dump_;
|
||||
get_section_context().dump_.clear();
|
||||
|
||||
output_stream() << L"</w:pPr>";
|
||||
finish_paragraph();
|
||||
start_paragraph();
|
||||
output_stream() << L"<w:pPr>";
|
||||
}
|
||||
else
|
||||
{
|
||||
output_stream() << get_section_context().dump_;
|
||||
get_section_context().dump_.clear();
|
||||
}
|
||||
output_stream() << L"</w:pPr>";
|
||||
finish_paragraph();
|
||||
start_paragraph();
|
||||
output_stream() << L"<w:pPr>";
|
||||
}
|
||||
|
||||
output_stream() << L"<w:pStyle w:val=\"" << id << L"\" />";
|
||||
|
||||
if (!get_text_tracked_context().dumpPPr_.empty())
|
||||
else
|
||||
{
|
||||
output_stream() << get_text_tracked_context().dumpPPr_;
|
||||
get_text_tracked_context().dumpPPr_.clear();
|
||||
output_stream() << get_section_context().dump_;
|
||||
get_section_context().dump_.clear();
|
||||
}
|
||||
}
|
||||
|
||||
serialize_list_properties(output_stream());
|
||||
output_stream() << L"<w:pStyle w:val=\"" << id << L"\" />";
|
||||
|
||||
if (!get_text_tracked_context().dumpPPr_.empty())
|
||||
{
|
||||
output_stream() << get_text_tracked_context().dumpPPr_;
|
||||
get_text_tracked_context().dumpPPr_.clear();
|
||||
}
|
||||
|
||||
serialize_list_properties(output_stream());
|
||||
|
||||
//if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
if (outline_level)
|
||||
{
|
||||
odf_reader::list_style_container & list_styles = root()->odf_context().listStyleContainer();
|
||||
|
||||
if ((Attr->outline_level_) && (*Attr->outline_level_ > 0))
|
||||
if (list_style_stack_.empty() && list_styles.outline_style())
|
||||
{
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *Attr->outline_level_ - 1 << L"\" />";
|
||||
}
|
||||
output_stream() << L"<w:numPr>";
|
||||
output_stream() << L"<w:ilvl w:val=\"" << *outline_level - 1 << L"\"/>";
|
||||
output_stream() << L"<w:numId w:val=\"" << list_styles.id_outline() << L"\"/>";
|
||||
output_stream() << L"</w:numPr>";
|
||||
}
|
||||
output_stream() << L"<w:outlineLvl w:val=\"" << *outline_level << L"\"/>";
|
||||
}
|
||||
|
||||
if (!get_text_tracked_context().dumpRPrInsDel_.empty())
|
||||
{
|
||||
output_stream() << L"<w:rPr>";
|
||||
output_stream() << get_text_tracked_context().dumpRPrInsDel_;
|
||||
get_text_tracked_context().dumpRPrInsDel_.clear();
|
||||
output_stream() << L"</w:rPr>";
|
||||
}
|
||||
output_stream() << L"</w:pPr>";
|
||||
if (!get_text_tracked_context().dumpRPrInsDel_.empty())
|
||||
{
|
||||
output_stream() << L"<w:rPr>";
|
||||
output_stream() << get_text_tracked_context().dumpRPrInsDel_;
|
||||
get_text_tracked_context().dumpRPrInsDel_.clear();
|
||||
output_stream() << L"</w:rPr>";
|
||||
}
|
||||
output_stream() << L"</w:pPr>";
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
@ -1751,28 +1931,27 @@ void docx_conversion_context::process_page_break_after(const odf_reader::style_i
|
||||
}
|
||||
void docx_conversion_context::serialize_list_properties(std::wostream & strm)
|
||||
{
|
||||
if (!list_style_stack_.empty())
|
||||
if (list_style_stack_.empty()) return;
|
||||
|
||||
if (first_element_list_item_)
|
||||
{
|
||||
if (first_element_list_item_)
|
||||
{
|
||||
const int id = root()->odf_context().listStyleContainer().id_by_name( current_list_style() );
|
||||
const int id = root()->odf_context().listStyleContainer().id_by_name( current_list_style() );
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"w:numPr")
|
||||
{
|
||||
CP_XML_NODE(L"w:numPr")
|
||||
CP_XML_NODE(L"w:ilvl")
|
||||
{
|
||||
CP_XML_NODE(L"w:ilvl")
|
||||
{
|
||||
CP_XML_ATTR(L"w:val", (list_style_stack_.size() - 1));
|
||||
}
|
||||
CP_XML_NODE(L"w:numId")
|
||||
{
|
||||
CP_XML_ATTR(L"w:val", id );
|
||||
}
|
||||
CP_XML_ATTR(L"w:val", (list_style_stack_.size() - 1));
|
||||
}
|
||||
CP_XML_NODE(L"w:numId")
|
||||
{
|
||||
CP_XML_ATTR(L"w:val", id );
|
||||
}
|
||||
}
|
||||
first_element_list_item_ = false;
|
||||
}
|
||||
}
|
||||
first_element_list_item_ = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1809,7 +1988,34 @@ void section_context::add_section(const std::wstring & SectionName, const std::w
|
||||
_section newSec(SectionName, Style, PageProperties );
|
||||
sections_.push_back(newSec);
|
||||
}
|
||||
section_context::_section & section_context::get_first()
|
||||
{
|
||||
if (sections_.empty())
|
||||
return main_section_;
|
||||
else
|
||||
return sections_[0];
|
||||
}
|
||||
section_context::_section & section_context::get_last()
|
||||
{
|
||||
if (sections_.empty())
|
||||
return main_section_;
|
||||
else
|
||||
return sections_.back();
|
||||
}
|
||||
void section_context::remove_section()
|
||||
{
|
||||
if (sections_.empty()) return;
|
||||
|
||||
sections_.pop_back();
|
||||
//sections_.erase(sections_.begin(), sections_.begin() + 1);
|
||||
if (sections_.empty())
|
||||
{
|
||||
//после оканчания разметки секциями и начале (возобновлении) основного раздела нужен разрыв (хотя настройки страницы могут и не поменяться)
|
||||
//щас разрыв на текущей странице
|
||||
//todooo проверить - может типо если следующий будет заголовок - разорвать
|
||||
main_section_.is_dump_ = false;
|
||||
}
|
||||
}
|
||||
namespace
|
||||
{
|
||||
// обработка Header/Footer
|
||||
@ -1828,8 +2034,8 @@ namespace
|
||||
//слить если есть mediaitems, добавить релсы и обнулить их для основного документа.
|
||||
rels internal_rels;
|
||||
|
||||
Context.get_mediaitems().dump_rels(internal_rels);
|
||||
Context.dump_hyperlinks(internal_rels, hyperlinks::document_place);
|
||||
Context.get_mediaitems()->dump_rels(internal_rels, oox::header_footer_place);
|
||||
Context.dump_hyperlinks(internal_rels, oox::header_footer_place);
|
||||
|
||||
Context.get_headers_footers().add(styleName, dbgStr, type, internal_rels);
|
||||
}
|
||||
@ -1938,12 +2144,12 @@ void notes_context::dump_rels(rels & Rels) const
|
||||
|
||||
void docx_conversion_context::add_note_reference ()
|
||||
{
|
||||
if (process_note_ == footNote || process_note_ == endNote)
|
||||
if (current_process_note_ == footNote || current_process_note_ == endNote)
|
||||
{
|
||||
add_element_to_run(_T(""));
|
||||
output_stream() << ((process_note_ == footNote) ? L"<w:footnoteRef />" : L"<w:endnoteRef />");
|
||||
output_stream() << ((current_process_note_ == footNote) ? L"<w:footnoteRef />" : L"<w:endnoteRef />");
|
||||
finish_run();
|
||||
process_note_ = (NoteType) (process_note_ + 1); //add ref set
|
||||
current_process_note_ = (NoteType) (current_process_note_ + 1); //add ref set
|
||||
}
|
||||
}
|
||||
|
||||
@ -1992,7 +2198,7 @@ void docx_conversion_context::start_text_changes (const std::wstring &id)
|
||||
void docx_conversion_context::start_changes()
|
||||
{
|
||||
if (map_current_changes_.empty()) return;
|
||||
if (process_comment_) return;
|
||||
if (current_process_comment_) return;
|
||||
|
||||
text_tracked_context_.dumpPPr_.clear();
|
||||
text_tracked_context_.dumpRPr_.clear();
|
||||
@ -2091,7 +2297,7 @@ void docx_conversion_context::start_changes()
|
||||
|
||||
void docx_conversion_context::end_changes()
|
||||
{
|
||||
if (process_comment_) return;
|
||||
if (current_process_comment_) return;
|
||||
|
||||
for (map_changes_iterator it = map_current_changes_.begin(); it != map_current_changes_.end(); ++it)
|
||||
{
|
||||
|
||||
@ -42,6 +42,7 @@
|
||||
#include "docx_table_context.h"
|
||||
#include "oox_conversion_context.h"
|
||||
#include "oox_chart_context.h"
|
||||
#include "xlsx_drawing_context.h"
|
||||
|
||||
#include "headers_footers.h"
|
||||
#include "hyperlinks.h"
|
||||
@ -323,11 +324,10 @@ public:
|
||||
|
||||
struct _section
|
||||
{
|
||||
_section() {is_dump_ = false;}
|
||||
_section() : is_dump_(false){}
|
||||
|
||||
_section(const std::wstring & SectionName, const std::wstring & Style, const std::wstring & PageProperties)
|
||||
_section(const std::wstring & SectionName, const std::wstring & Style, const std::wstring & PageProperties) : is_dump_(false)
|
||||
{
|
||||
is_dump_ = false;
|
||||
name_ = SectionName;
|
||||
style_ = Style;
|
||||
page_properties_.push_back(PageProperties);
|
||||
@ -339,7 +339,7 @@ public:
|
||||
|
||||
std::vector<std::wstring> page_properties_;
|
||||
|
||||
bool is_dump_;
|
||||
bool is_dump_ = false;
|
||||
};
|
||||
|
||||
void add_section(const std::wstring & SectionName, const std::wstring & Style, const std::wstring & PageProperties);
|
||||
@ -348,27 +348,12 @@ public:
|
||||
{
|
||||
return sections_.empty();
|
||||
}
|
||||
_section & get()
|
||||
{
|
||||
if (sections_.empty())
|
||||
return main_section_;
|
||||
else
|
||||
return sections_[0];
|
||||
}
|
||||
void remove_section()
|
||||
{
|
||||
if (sections_.empty()) return;
|
||||
_section & get_first();
|
||||
_section & get_last();
|
||||
|
||||
sections_.erase(sections_.begin(), sections_.begin() + 1);
|
||||
if (sections_.empty())
|
||||
{
|
||||
//после оканчания разметки секциями и начале (возобновлении) основного раздела нужен разрыв (хотя настройки страницы могут и не поменяться)
|
||||
//щас разрыв на текущей странице
|
||||
//todooo проверить - может типо если следующий будет заголовок - разорвать
|
||||
main_section_.is_dump_ = false;
|
||||
}
|
||||
}
|
||||
std::wstring dump_;
|
||||
void remove_section();
|
||||
|
||||
std::wstring dump_;
|
||||
|
||||
private:
|
||||
_section main_section_;
|
||||
@ -474,42 +459,56 @@ private:
|
||||
class comments_context : boost::noncopyable
|
||||
{
|
||||
public:
|
||||
comments_context() : state_(0) {}
|
||||
comments_context(){}
|
||||
|
||||
struct _comment_desc
|
||||
{
|
||||
_comment_desc(const std::wstring & c, int _id, const std::wstring & a, const std::wstring & d) :
|
||||
content(c), id(_id), author(a), date(d)
|
||||
{}
|
||||
std::wstring content;
|
||||
int id;
|
||||
std::wstring date;
|
||||
std::wstring author;
|
||||
std::wstring initials;
|
||||
};
|
||||
void start_comment(const std::wstring & content, const std::wstring & author, const std::wstring & date, bool inRun = false)
|
||||
void end_comment(const std::wstring & name)
|
||||
{
|
||||
std::map<std::wstring, int>::iterator pFind = comments_map_.find(name);
|
||||
if (pFind != comments_map_.end())
|
||||
{
|
||||
ref_end_.push_back(pFind->second);
|
||||
}
|
||||
}
|
||||
void start_comment(const std::wstring & content, const std::wstring & author, const std::wstring & date, _CP_OPT(std::wstring) name)
|
||||
{
|
||||
int id = comments_.size() + 1;
|
||||
_comment_desc new_comment={content, id, date, author};
|
||||
_comment_desc new_comment(content, id, author, date);
|
||||
|
||||
if ((name) && (false == name->empty()))
|
||||
{
|
||||
comments_map_.insert(std::make_pair(*name, id));
|
||||
ref_start_.push_back(id);
|
||||
}
|
||||
else
|
||||
{
|
||||
ref_.push_back(id);
|
||||
}
|
||||
comments_.push_back(new_comment);
|
||||
|
||||
state_ = inRun ? 4 : 1;
|
||||
}
|
||||
int current_id()
|
||||
{
|
||||
if (comments_.size()>0 && state_ >0 )return comments_.back().id;
|
||||
else return -1; //not set
|
||||
}
|
||||
void state(int state) {state_ = state;}
|
||||
int state(){return state_;}
|
||||
|
||||
rels& get_rels(){return internal_rels_;}
|
||||
|
||||
std::vector<_comment_desc> comments_;
|
||||
std::vector<_comment_desc> comments_;
|
||||
std::vector<int> ref_start_;
|
||||
std::vector<int> ref_end_;
|
||||
std::vector<int> ref_;
|
||||
|
||||
private:
|
||||
int state_;
|
||||
rels internal_rels_;//это для гиперлинков или медиа в комментариях
|
||||
std::map<std::wstring, int> comments_map_;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class text_tracked_context
|
||||
{
|
||||
public:
|
||||
@ -734,7 +733,7 @@ class docx_conversion_context : boost::noncopyable
|
||||
public:
|
||||
enum NoteType { noNote, footNote, footNoteRefSet, endNote, endNoteRefSet };
|
||||
|
||||
docx_conversion_context(odf_reader::odf_document * OdfDocument);
|
||||
docx_conversion_context(odf_reader::odf_document * _odf_document);
|
||||
~docx_conversion_context();
|
||||
|
||||
void set_output_document (package::docx_document * document);
|
||||
@ -783,10 +782,12 @@ public:
|
||||
|
||||
std::wstring add_hyperlink (const std::wstring & href, bool drawing);
|
||||
hyperlinks::_ref last_hyperlink ();
|
||||
void dump_hyperlinks (rels & Rels, hyperlinks::_type_place type);
|
||||
void dump_hyperlinks (rels & Rels, _rels_type_place type);
|
||||
|
||||
void dump_headers_footers (rels & Rels) const;
|
||||
void dump_notes (rels & Rels) const;
|
||||
|
||||
_rels_type_place get_type_place();
|
||||
|
||||
void dump_bibliography();
|
||||
std::wstring dump_settings_document();
|
||||
@ -829,6 +830,7 @@ public:
|
||||
bool process_page_properties(std::wostream & strm);
|
||||
void process_section (std::wostream & strm, odf_reader::style_columns * columns = NULL);
|
||||
|
||||
int process_paragraph_style (const std::wstring & style_name);
|
||||
int process_paragraph_attr (odf_reader::text::paragraph_attrs *attr);
|
||||
int process_text_attr (odf_reader::text::paragraph_attrs *Attr);
|
||||
void process_page_break_after(const odf_reader::style_instance *styleInst);
|
||||
@ -872,8 +874,8 @@ public:
|
||||
void start_text_list_style (const std::wstring & StyleName);
|
||||
void end_text_list_style ();
|
||||
|
||||
const std::wstring & get_text_list_style_name();
|
||||
const std::wstring current_list_style () const;
|
||||
std::wstring get_text_list_style_name();
|
||||
std::wstring current_list_style();
|
||||
|
||||
void start_list (const std::wstring & StyleName, bool Continue = false);
|
||||
void end_list ();
|
||||
@ -887,7 +889,7 @@ public:
|
||||
|
||||
styles_map * get_style_map() { return &styles_map_; }
|
||||
|
||||
mediaitems & get_mediaitems() {return mediaitems_;}
|
||||
mediaitems_ptr & get_mediaitems() {return mediaitems_;}
|
||||
styles_context & get_styles_context() { return styles_context_; }
|
||||
drawing_context & get_drawing_context() { return drawing_context_; }
|
||||
comments_context & get_comments_context() { return comments_context_; }
|
||||
@ -897,8 +899,9 @@ public:
|
||||
text_tracked_context& get_text_tracked_context(){ return text_tracked_context_; }
|
||||
forms_context & get_forms_context() { return forms_context_; }
|
||||
tabs_context & get_tabs_context() { return tabs_context_;}
|
||||
table_content_context & get_table_content_context() { return table_content_context_;}
|
||||
|
||||
table_content_context & get_table_content_context() { return table_content_context_;}
|
||||
xlsx_drawing_context_handle_ptr & get_chart_drawing_handle() { return chart_drawing_handle_;}
|
||||
|
||||
void set_drawing_text_props (const std::wstring &props);
|
||||
|
||||
@ -910,27 +913,33 @@ public:
|
||||
StreamsManPtr get_stream_man() const { return streams_man_; }
|
||||
void set_stream_man(StreamsManPtr Sm) { streams_man_ = Sm; }
|
||||
|
||||
void set_rtl(bool val) { is_rtl_ = val; }
|
||||
bool get_rtl() const {return is_rtl_;}
|
||||
void set_rtl(bool val) { is_rtl_ = val; }
|
||||
bool get_rtl() const {return is_rtl_;}
|
||||
|
||||
void set_margin_left(int val) {current_margin_left_ = val;}
|
||||
int get_margin_left() {return current_margin_left_;}
|
||||
|
||||
double get_current_fontSize() {return current_fontSize.empty() ? 0 : current_fontSize.back();}
|
||||
void pop_current_fontSize() {if (!current_fontSize.empty()) current_fontSize.pop_back();}
|
||||
|
||||
void set_outline_level(int val) {current_outline_level_ = val;}
|
||||
int get_outline_level() {return current_outline_level_;}
|
||||
|
||||
void set_process_note (NoteType Val) { process_note_ = Val; }
|
||||
NoteType get_process_note () const { return process_note_; }
|
||||
void set_process_note (NoteType Val) { current_process_note_ = Val; }
|
||||
NoteType get_process_note () const { return current_process_note_; }
|
||||
void add_note_reference ();
|
||||
|
||||
void start_paragraph_style(const std::wstring& style_name) {paragraph_style_stack_.push_back(style_name);}
|
||||
void end_paragraph_style() { if (!paragraph_style_stack_.empty()) paragraph_style_stack_.pop_back();}
|
||||
std::wstring get_current_paragraph_style() {return paragraph_style_stack_.empty() ? L"" : paragraph_style_stack_.back();}
|
||||
|
||||
oox_chart_context & current_chart();
|
||||
void start_chart(std::wstring name);
|
||||
void end_chart ();
|
||||
|
||||
void start_comment () {process_comment_ = true;}
|
||||
void end_comment () {process_comment_ = false;}
|
||||
bool process_comment_;
|
||||
void start_comment_content () {current_process_comment_ = true;}
|
||||
void end_comment_content () {current_process_comment_ = false;}
|
||||
|
||||
void start_comment(const std::wstring & content, const std::wstring & author, const std::wstring & date, _CP_OPT(std::wstring) name);
|
||||
void end_comment(const std::wstring & name);
|
||||
|
||||
void start_math_formula ();
|
||||
void end_math_formula ();
|
||||
|
||||
@ -948,7 +957,7 @@ public:
|
||||
|
||||
headers_footers & get_headers_footers() { return headers_footers_; }
|
||||
header_footer_context & get_header_footer_context() { return header_footer_context_; }
|
||||
drop_cap_context & get_drop_cap_context() {return drop_cap_context_;}
|
||||
drop_cap_context & get_drop_cap_context() { return drop_cap_context_; }
|
||||
|
||||
styles_map styles_map_;
|
||||
bool process_headers_footers_;
|
||||
@ -959,6 +968,7 @@ public:
|
||||
void end_changes();
|
||||
|
||||
void add_jsaProject(const std::string &content);
|
||||
|
||||
private:
|
||||
|
||||
struct _context_state
|
||||
@ -985,6 +995,8 @@ private:
|
||||
std::wstringstream settings_xml_;
|
||||
std::wstringstream meta_xml_;
|
||||
|
||||
xlsx_drawing_context_handle_ptr chart_drawing_handle_;
|
||||
|
||||
styles_context styles_context_;
|
||||
math_context math_context_;
|
||||
drawing_context drawing_context_;
|
||||
@ -1007,18 +1019,18 @@ private:
|
||||
std::vector<odf_reader::_property> settings_properties_;
|
||||
|
||||
hyperlinks hyperlinks_;
|
||||
mediaitems mediaitems_;
|
||||
mediaitems_ptr mediaitems_;
|
||||
std::vector<oox_chart_context_ptr> charts_;
|
||||
headers_footers headers_footers_;
|
||||
|
||||
std::wstring automatic_parent_style_;
|
||||
std::wstring current_master_page_name_;
|
||||
std::wstring text_list_style_name_;
|
||||
|
||||
std::vector<std::wstring> list_style_stack_;
|
||||
std::vector<std::wstring> fields_names_stack_;
|
||||
std::wstring automatic_parent_style_;
|
||||
std::wstring current_master_page_name_;
|
||||
std::wstring text_list_style_name_;
|
||||
std::vector<std::wstring> paragraph_style_stack_;
|
||||
std::vector<std::wstring> list_style_stack_;
|
||||
std::vector<std::wstring> fields_names_stack_;
|
||||
|
||||
bool first_element_list_item_;
|
||||
bool first_element_list_item_;
|
||||
|
||||
bool page_break_after_;
|
||||
bool page_break_before_;
|
||||
@ -1032,11 +1044,13 @@ private:
|
||||
bool is_delete_text_;
|
||||
bool is_rtl_; // right-to-left
|
||||
|
||||
std::wstring current_alphabetic_index_;
|
||||
int current_margin_left_;
|
||||
int current_outline_level_;
|
||||
int new_list_style_number_; // счетчик для нумерации имен созданных в процессе конвертации стилей
|
||||
NoteType process_note_;
|
||||
NoteType current_process_note_;
|
||||
bool current_process_comment_;
|
||||
std::vector<double> current_fontSize;
|
||||
std::wstring current_alphabetic_index_;
|
||||
int current_margin_left_;
|
||||
int current_outline_level_;
|
||||
int new_list_style_number_; // счетчик для нумерации имен созданных в процессе конвертации стилей
|
||||
|
||||
std::vector<odf_reader::office_element*> delayed_elements_;
|
||||
|
||||
|
||||
@ -114,7 +114,7 @@ void serialize_wrap_extent(std::wostream & strm, _docx_drawing const & val)
|
||||
if (odf_reader::GetProperty(val.additional,L"border_width_top",iVal)) CP_XML_ATTR(L"t",iVal.get());
|
||||
if (odf_reader::GetProperty(val.additional,L"border_width_right",iVal)) CP_XML_ATTR(L"r",iVal.get());
|
||||
if (odf_reader::GetProperty(val.additional,L"border_width_bottom",iVal)) CP_XML_ATTR(L"b",iVal.get());
|
||||
}
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
serialize_null_extent( strm);
|
||||
@ -151,7 +151,7 @@ void serialize_wrap(std::wostream & strm, _docx_drawing const & val)
|
||||
break;
|
||||
case odf_types::style_wrap::Left:
|
||||
case odf_types::style_wrap::Right:
|
||||
case odf_types::style_wrap::Dynamic:
|
||||
case odf_types::style_wrap::Dynamic: //Présentation_de_tib.odt
|
||||
serialize_wrap_square(strm, val);
|
||||
break;
|
||||
case odf_types::style_wrap::RunThrough:
|
||||
@ -195,6 +195,86 @@ void _docx_drawing::serialize_text(std::wostream & strm)
|
||||
serialize_bodyPr(strm, L"wps");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
void docx_serialize_media_child(std::wostream & strm, _docx_drawing & val)
|
||||
{
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"pic:pic")
|
||||
{
|
||||
CP_XML_ATTR(L"xmlns:pic",L"http://schemas.openxmlformats.org/drawingml/2006/picture");
|
||||
{
|
||||
CP_XML_NODE(L"pic:nvPicPr")
|
||||
{
|
||||
CP_XML_NODE(L"pic:cNvPr")
|
||||
{
|
||||
CP_XML_ATTR(L"id", val.id + 1);
|
||||
CP_XML_ATTR(L"name", val.name);
|
||||
|
||||
//oox_serialize_action(CP_XML_STREAM(), val.action);
|
||||
}
|
||||
CP_XML_NODE(L"pic:cNvPicPr")
|
||||
{
|
||||
CP_XML_NODE(L"a:picLocks") CP_XML_ATTR(L"noChangeAspect",1);
|
||||
}
|
||||
CP_XML_NODE(L"pic:nvPr")
|
||||
{
|
||||
std::wstring strNode;
|
||||
|
||||
if (val.type == typeVideo) strNode = L"a:videoFile";
|
||||
else if (val.type == typeAudio) strNode = L"a:audioFile";
|
||||
|
||||
if (false == strNode.empty())
|
||||
{
|
||||
CP_XML_NODE(strNode)
|
||||
{
|
||||
CP_XML_ATTR(L"r:link", val.objectId);
|
||||
}
|
||||
}
|
||||
if (false == val.extId.empty())
|
||||
{
|
||||
CP_XML_NODE(L"a:extLst")
|
||||
{
|
||||
CP_XML_NODE(L"a:ext")
|
||||
{
|
||||
CP_XML_ATTR(L"uri", L"{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}");
|
||||
CP_XML_NODE(L"wp15:media")
|
||||
{
|
||||
CP_XML_ATTR(L"xmlns:wp15", L"http://schemas.microsoft.com/office/word/2012/wordprocessingDrawing");
|
||||
if (val.extExternal)
|
||||
{
|
||||
CP_XML_ATTR(L"r:link", val.extId);
|
||||
}
|
||||
else
|
||||
{
|
||||
CP_XML_ATTR(L"r:embed", val.extId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
val.fill.bitmap->name_space = L"pic";
|
||||
oox_serialize_fill(CP_XML_STREAM(), val.fill);
|
||||
|
||||
CP_XML_NODE(L"pic:spPr")
|
||||
{
|
||||
val.serialize_xfrm(CP_XML_STREAM());
|
||||
|
||||
CP_XML_NODE(L"a:prstGeom")
|
||||
{
|
||||
CP_XML_ATTR(L"prst", L"rect");
|
||||
CP_XML_NODE(L"a:avLst");
|
||||
}
|
||||
|
||||
oox_serialize_ln(CP_XML_STREAM(), val.additional);
|
||||
oox_serialize_effects(CP_XML_STREAM(), val.additional);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------------------------
|
||||
void docx_serialize_image_child(std::wostream & strm, _docx_drawing & val)
|
||||
{
|
||||
@ -211,6 +291,8 @@ void docx_serialize_image_child(std::wostream & strm, _docx_drawing & val)
|
||||
//CP_XML_ATTR(L"desc text",L"");
|
||||
CP_XML_ATTR(L"id", val.id + 1);
|
||||
CP_XML_ATTR(L"name", val.name);
|
||||
|
||||
//oox_serialize_action(CP_XML_STREAM(), val.action);
|
||||
}
|
||||
CP_XML_NODE(L"pic:cNvPicPr")
|
||||
{
|
||||
@ -232,6 +314,7 @@ void docx_serialize_image_child(std::wostream & strm, _docx_drawing & val)
|
||||
}
|
||||
|
||||
oox_serialize_ln(CP_XML_STREAM(), val.additional);
|
||||
oox_serialize_effects(CP_XML_STREAM(), val.additional);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -267,6 +350,7 @@ void docx_serialize_shape_child(std::wostream & strm, _docx_drawing & val)
|
||||
val.serialize_shape (CP_XML_STREAM());
|
||||
|
||||
oox_serialize_ln(CP_XML_STREAM(), val.additional);
|
||||
oox_serialize_effects(CP_XML_STREAM(), val.additional);
|
||||
}
|
||||
val.serialize_text(CP_XML_STREAM());
|
||||
}
|
||||
@ -344,6 +428,11 @@ void docx_serialize_common(std::wostream & strm, _docx_drawing & val)
|
||||
CP_XML_ATTR(L"uri", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup");
|
||||
docx_serialize_group_child(CP_XML_STREAM(), val);
|
||||
}
|
||||
else if (val.type == typeAudio || val.type == typeVideo || val.type == typeMedia)
|
||||
{
|
||||
CP_XML_ATTR(L"uri",L"http://schemas.openxmlformats.org/drawingml/2006/picture");
|
||||
docx_serialize_media_child(CP_XML_STREAM(), val);
|
||||
}
|
||||
else if (val.type == typeImage)
|
||||
{
|
||||
CP_XML_ATTR(L"uri",L"http://schemas.openxmlformats.org/drawingml/2006/picture");
|
||||
|
||||
@ -102,7 +102,11 @@ void word_files::write(const std::wstring & RootPath)
|
||||
{
|
||||
embeddings_->write( path );
|
||||
}
|
||||
|
||||
if (drawings_)
|
||||
{
|
||||
drawings_->set_main_document(get_main_document());
|
||||
drawings_->write( path );
|
||||
}
|
||||
if (headers_footers_)
|
||||
{
|
||||
headers_footers_->write( path );
|
||||
@ -140,22 +144,22 @@ void word_files::write(const std::wstring & RootPath)
|
||||
|
||||
void word_files::update_rels(docx_conversion_context & Context)
|
||||
{
|
||||
Context.get_mediaitems().dump_rels(rels_files_.get_rel_file()->get_rels());
|
||||
Context.get_mediaitems()->dump_rels(rels_files_.get_rel_file()->get_rels(), oox::document_place);
|
||||
|
||||
Context.dump_hyperlinks (rels_files_.get_rel_file()->get_rels(), hyperlinks::document_place);
|
||||
Context.dump_hyperlinks (rels_files_.get_rel_file()->get_rels(), oox::document_place);
|
||||
Context.dump_headers_footers(rels_files_.get_rel_file()->get_rels());
|
||||
Context.dump_notes (rels_files_.get_rel_file()->get_rels());
|
||||
}
|
||||
|
||||
void word_files::set_media(mediaitems & _Mediaitems)
|
||||
void word_files::set_media(mediaitems_ptr & _mediaitems)
|
||||
{
|
||||
if (_Mediaitems.count_image + _Mediaitems.count_media > 0)
|
||||
if (_mediaitems->count_image + _mediaitems->count_media > 0)
|
||||
{
|
||||
media_ = element_ptr( new media(_Mediaitems, _Mediaitems.applicationFonts()) );
|
||||
media_ = element_ptr( new media(_mediaitems, _mediaitems->applicationFonts()) );
|
||||
}
|
||||
if (_Mediaitems.count_object > 0)
|
||||
if (_mediaitems->count_object > 0)
|
||||
{
|
||||
embeddings_ = element_ptr( new embeddings(_Mediaitems) );
|
||||
embeddings_ = element_ptr( new embeddings(_mediaitems) );
|
||||
embeddings_->set_main_document( get_main_document() );
|
||||
}
|
||||
}
|
||||
@ -195,6 +199,10 @@ void word_files::add_jsaProject(const std::string &content)
|
||||
{
|
||||
jsaProject_ = package::simple_element::create(L"jsaProject.bin", content);
|
||||
}
|
||||
void word_files::set_drawings(element_ptr Element)
|
||||
{
|
||||
drawings_ = Element;
|
||||
}
|
||||
void word_files::set_headers_footers(headers_footers & HeadersFooters)
|
||||
{
|
||||
headers_footers_elements * elm = new headers_footers_elements(HeadersFooters);
|
||||
|
||||
@ -137,10 +137,11 @@ public:
|
||||
void set_numbering (element_ptr Element);
|
||||
void set_settings (element_ptr Element);
|
||||
bool has_numbering ();
|
||||
void set_media (mediaitems & mediaitems_);
|
||||
void set_media (mediaitems_ptr & mediaitems_);
|
||||
void set_headers_footers(headers_footers & HeadersFooters);
|
||||
void set_notes (notes_context & notesContext);
|
||||
void set_comments (comments_context & commentsContext);
|
||||
void set_drawings (element_ptr Element);
|
||||
|
||||
void add_charts(chart_content_ptr chart);
|
||||
void add_jsaProject(const std::string &content);
|
||||
@ -163,6 +164,7 @@ private:
|
||||
element_ptr settings_;
|
||||
element_ptr comments_;
|
||||
element_ptr jsaProject_;
|
||||
element_ptr drawings_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ struct drawing_object_description
|
||||
{
|
||||
bool bNotes_;
|
||||
|
||||
oox::RelsType type_;
|
||||
oox::_rels_type type_;
|
||||
|
||||
std::wstring name_;
|
||||
std::wstring descriptor_;
|
||||
@ -62,6 +62,9 @@ struct drawing_object_description
|
||||
double anchor_x_;
|
||||
double anchor_y_;
|
||||
|
||||
_CP_OPT(_INT32) owner_cx_;
|
||||
_CP_OPT(_INT32) owner_cy_;
|
||||
|
||||
_action_desc action_;
|
||||
std::vector<_hlink_desc> hlinks_;
|
||||
|
||||
|
||||
@ -38,8 +38,9 @@
|
||||
#include "oox_rels.h"
|
||||
namespace cpdoccore {
|
||||
|
||||
namespace odf_reader {
|
||||
class header_footer_impl;
|
||||
namespace odf_reader
|
||||
{
|
||||
class header_footer_impl;
|
||||
}
|
||||
|
||||
namespace oox {
|
||||
|
||||
@ -31,7 +31,6 @@
|
||||
*/
|
||||
|
||||
#include "hyperlinks.h"
|
||||
#include "oox_rels.h"
|
||||
|
||||
#include <xml/utils.h>
|
||||
|
||||
@ -48,7 +47,7 @@ hyperlinks::_ref hyperlinks::last()
|
||||
return r;
|
||||
}
|
||||
|
||||
std::wstring hyperlinks::add(const std::wstring & href, _type_place type_place, bool drawing)
|
||||
std::wstring hyperlinks::add(const std::wstring & href, _rels_type_place type_place, bool drawing)
|
||||
{
|
||||
std::wstring id = std::wstring(L"rHpId") + std::to_wstring(hrefs_.size() + 1);
|
||||
|
||||
@ -60,14 +59,14 @@ std::wstring hyperlinks::add(const std::wstring & href, _type_place type_place,
|
||||
}
|
||||
|
||||
|
||||
void hyperlinks::dump_rels(rels & Rels, _type_place type)
|
||||
void hyperlinks::dump_rels(rels & Rels, _rels_type_place type_place)
|
||||
{
|
||||
size_t i = 0;
|
||||
for (size_t i = 0; i < hrefs_.size(); i++)
|
||||
{
|
||||
if (hrefs_[i].used_rels)continue; // уже использовали этот релс
|
||||
|
||||
if (hrefs_[i].type_place == type)
|
||||
if (hrefs_[i].type_place == type_place)
|
||||
{
|
||||
Rels.add( relationship(hrefs_[i].id, L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", hrefs_[i].href, L"External" ) );
|
||||
hrefs_[i].used_rels = true;
|
||||
|
||||
@ -31,40 +31,29 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include "oox_rels.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
namespace oox {
|
||||
|
||||
class rels;
|
||||
|
||||
class hyperlinks
|
||||
{
|
||||
public:
|
||||
enum _type_place
|
||||
{
|
||||
document_place,
|
||||
endnote_place,
|
||||
footnote_place,
|
||||
comment_place
|
||||
|
||||
};
|
||||
|
||||
struct _ref
|
||||
{
|
||||
std::wstring href;
|
||||
_type_place type_place;
|
||||
bool drawing;
|
||||
std::wstring id;
|
||||
bool used_rels;
|
||||
std::wstring href;
|
||||
_rels_type_place type_place;
|
||||
bool drawing;
|
||||
std::wstring id;
|
||||
bool used_rels;
|
||||
};
|
||||
|
||||
std::wstring add(const std::wstring & href, _type_place type_place, bool drawing);
|
||||
std::wstring add(const std::wstring & href, _rels_type_place type_place, bool drawing);
|
||||
|
||||
_ref last();
|
||||
|
||||
void dump_rels(rels & Rels, _type_place type);
|
||||
void dump_rels(rels & Rels, _rels_type_place type_place);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
@ -34,47 +34,38 @@
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#include <logging.h>
|
||||
|
||||
#include <float.h>
|
||||
|
||||
#include "../../../DesktopEditor/graphics/pro/Fonts.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
namespace utils {
|
||||
|
||||
namespace
|
||||
std::pair<double, double> GetMaxDigitSizePixelsImpl(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IFontManager *pFontManager)
|
||||
{
|
||||
class Error : public std::exception {};
|
||||
class LoadFontError : public Error {};
|
||||
class MeasureError : public Error {};
|
||||
}
|
||||
if (pFontManager == NULL) return std::pair<double, double>(7., 8.);
|
||||
|
||||
std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IFontManager *pFontManager)
|
||||
{
|
||||
if (pFontManager == NULL) return std::pair<float, float>(7,8);
|
||||
|
||||
int hr = FALSE;
|
||||
int hr = FALSE;
|
||||
|
||||
if (FALSE == (hr = pFontManager->LoadFontByName(fontName, fontSize, fontStyle, dpi, dpi )))
|
||||
{
|
||||
if (FALSE == (hr = pFontManager->LoadFontByName(L"Arial", fontSize, fontStyle, dpi, dpi )))
|
||||
{
|
||||
return std::pair<float, float>(7, 8);
|
||||
return std::pair<double, double>(7, 8);
|
||||
}
|
||||
}
|
||||
|
||||
float maxWidth = 0;
|
||||
float maxHeight = 0;
|
||||
double maxWidth = 0;
|
||||
double maxHeight = 0;
|
||||
|
||||
float minWidth = 0xffff;
|
||||
float minHeight = 0xffff;
|
||||
double minWidth = 0xffffffff;
|
||||
double minHeight = 0xfffffff;
|
||||
|
||||
// for (int i = 0; i <= 9; ++i)
|
||||
{
|
||||
//if (FALSE == (hr = pFontManager->LoadString2( std::to_wstring(i), 0, 0)))
|
||||
// return std::pair<float, float>(7,8);
|
||||
|
||||
if (FALSE == (hr = pFontManager->LoadString2( L"xxxxx" , 0, 0)))
|
||||
return std::pair<float, float>(7,8);
|
||||
if (FALSE == (hr = pFontManager->LoadString2( L"0123456789abcdefghijklmnopqrstuvwxyz" , 0, 0)))//
|
||||
return std::pair<double, double>(7., 8.);
|
||||
|
||||
TBBox box;
|
||||
try
|
||||
@ -82,12 +73,12 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
|
||||
box = pFontManager->MeasureString();
|
||||
}catch(...)
|
||||
{
|
||||
return std::pair<float, float>(7,8);
|
||||
return std::pair<double, double>(7.,8.);
|
||||
}
|
||||
|
||||
if (box.fMaxX < -0xffff+1 || box.fMaxY < -0xffff+1 ||
|
||||
box.fMinX > 0xffff-1 || box.fMinY > 0xffff-1)
|
||||
return std::pair<float, float>(7,8);
|
||||
return std::pair<double, double>(7., 8. );
|
||||
|
||||
if (box.fMaxX - box.fMinX > maxWidth) maxWidth = box.fMaxX - box.fMinX;
|
||||
if (box.fMaxY - box.fMinY > maxHeight) maxHeight = box.fMaxY - box.fMinY;
|
||||
@ -96,12 +87,13 @@ std::pair<float, float> GetMaxDigitSizePixelsImpl(const std::wstring & fontName,
|
||||
if (box.fMaxY - box.fMinY < minHeight) minHeight = box.fMaxY - box.fMinY;
|
||||
}
|
||||
|
||||
double width = (minWidth + 2 * maxWidth) /3. /5.;
|
||||
return std::pair<float, float>(width, maxHeight);
|
||||
double width = (minWidth + 2 * maxWidth) /36. /3.;
|
||||
//double width = (minWidth + 2 * maxWidth) / 5./*/36.*/ /3.;
|
||||
return std::pair<double, double>(width, maxHeight);
|
||||
}
|
||||
|
||||
|
||||
std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IApplicationFonts *appFonts)
|
||||
std::pair<double, double> GetMaxDigitSizePixels(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IApplicationFonts *appFonts)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -111,7 +103,7 @@ std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, dou
|
||||
{
|
||||
NSFonts::IFontManager *pFontManager = appFonts->GenerateFontManager();
|
||||
|
||||
std::pair<float, float> val = GetMaxDigitSizePixelsImpl(fontName, fontSize, dpi, fontStyle, pFontManager);
|
||||
std::pair<double, double> val = GetMaxDigitSizePixelsImpl(fontName, fontSize, dpi, fontStyle, pFontManager);
|
||||
|
||||
if (pFontManager)
|
||||
{
|
||||
@ -126,7 +118,7 @@ std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, dou
|
||||
{
|
||||
// TODO: default value!
|
||||
}
|
||||
return std::pair<float, float>(7, 8);
|
||||
return std::pair<double, double>(7., 8.);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ namespace NSFonts
|
||||
namespace cpdoccore {
|
||||
namespace utils {
|
||||
|
||||
std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IApplicationFonts *appFonts);
|
||||
std::pair<double, double> GetMaxDigitSizePixels(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IApplicationFonts *appFonts);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,18 +59,10 @@ bool is_internal(const std::wstring & uri, const std::wstring & packetRoot)
|
||||
return NSFile::CFileBinary::Exists(resultPath) || NSDirectory::Exists(mediaPath);
|
||||
}
|
||||
|
||||
mediaitems::item::item( std::wstring const & _href,
|
||||
RelsType _type,
|
||||
std::wstring const & _outputName,
|
||||
bool _mediaInternal,
|
||||
std::wstring const & _Id
|
||||
)
|
||||
: href(_href),
|
||||
type(_type),
|
||||
outputName(_outputName),
|
||||
mediaInternal(_mediaInternal),
|
||||
Id(_Id),
|
||||
valid(true) //вообще говоря даже если файл покоцанный то мы все равно обязаны перенести "объект"
|
||||
mediaitems::item::item(std::wstring const & _href,_rels_type _type, std::wstring const & _outputName,
|
||||
bool _mediaInternal, std::wstring const & _Id, _rels_type_place type_place_)
|
||||
: href(_href), type(_type), outputName(_outputName), mediaInternal(_mediaInternal), Id(_Id), valid(true), type_place(type_place_)
|
||||
//вообще говоря даже если файл покоцанный то мы все равно обязаны перенести "объект"
|
||||
{
|
||||
count_add = 1;
|
||||
count_used = 0;
|
||||
@ -101,13 +93,14 @@ void mediaitems::set_font_directory(std::wstring pathFonts)
|
||||
if (applicationFonts_)
|
||||
applicationFonts_->InitializeFromFolder(pathFonts);
|
||||
}
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, bool & isInternal)
|
||||
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, _rels_type type, bool & isInternal, _rels_type_place type_place)
|
||||
{
|
||||
std::wstring ref;
|
||||
return add_or_find(href, type, isInternal, ref);
|
||||
return add_or_find(href, type, isInternal, ref, type_place);
|
||||
}
|
||||
|
||||
std::wstring static get_default_file_name(RelsType type)
|
||||
std::wstring static get_default_file_name(_rels_type type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@ -135,7 +128,7 @@ std::wstring static get_default_file_name(RelsType type)
|
||||
return L"";
|
||||
}
|
||||
}
|
||||
std::wstring mediaitems::create_file_name(const std::wstring & uri, RelsType type, bool & isInternal, size_t Num)
|
||||
std::wstring mediaitems::create_file_name(const std::wstring & uri, _rels_type type, bool & isInternal, size_t Num)
|
||||
{
|
||||
if (uri.empty()) return L"";
|
||||
|
||||
@ -193,12 +186,19 @@ std::wstring mediaitems::detectImageFileExtension(const std::wstring &fileName)
|
||||
CImageFileFormatChecker image_checker;
|
||||
sExt = image_checker.DetectFormatByData(buffer, buffer_size);
|
||||
|
||||
if (!sExt.empty()) sExt = std::wstring(L".") + sExt;
|
||||
if (sExt.empty())
|
||||
{
|
||||
size_t n = fileName.rfind(L".");
|
||||
if (n != std::wstring::npos)
|
||||
sExt = XmlUtils::GetLower(fileName.substr(n));
|
||||
|
||||
}
|
||||
else sExt = std::wstring(L".") + sExt;
|
||||
}
|
||||
return XmlUtils::GetLower(sExt);
|
||||
}
|
||||
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, bool & isInternal, std::wstring & ref)
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, _rels_type type, bool & isInternal, std::wstring & ref, _rels_type_place type_place)
|
||||
{
|
||||
bool isMediaInternal = true;
|
||||
std::wstring sub_path = L"media/";
|
||||
@ -246,6 +246,8 @@ std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, b
|
||||
std::wstring id;
|
||||
for (size_t i = 0 ; i < items_.size(); i++)
|
||||
{
|
||||
if (items_[i].type_place != type_place) continue;
|
||||
|
||||
if ((items_[i].href == inputPath && !inputPath.empty()) || (items_[i].type == type && inputPath.empty()))
|
||||
{
|
||||
id = items_[i].Id;
|
||||
@ -305,13 +307,18 @@ std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, b
|
||||
count_shape++;
|
||||
}
|
||||
|
||||
items_.push_back( item(inputPath, type, xml::utils::replace_text_to_xml(outputPath), isMediaInternal, id) );
|
||||
items_.push_back( item(inputPath, type, xml::utils::replace_text_to_xml(outputPath), isMediaInternal, id, type_place) );
|
||||
}
|
||||
|
||||
ref = outputPath;
|
||||
isInternal = isMediaInternal;
|
||||
return id;
|
||||
}
|
||||
void mediaitems::add_rels(bool isInternal, std::wstring const & rid, std::wstring const & ref, _rels_type type, _rels_type_place type_place)
|
||||
{
|
||||
items_.push_back( item(L"", type, ref, isInternal, rid, type_place) );
|
||||
}
|
||||
|
||||
std::wstring mediaitems::add_control_props(std::wstring & oox_target)
|
||||
{
|
||||
const bool isMediaInternal = true;
|
||||
@ -322,15 +329,21 @@ std::wstring mediaitems::add_control_props(std::wstring & oox_target)
|
||||
|
||||
oox_target = std::wstring(L"ctrlProp") + std::to_wstring(count_control) + L".xml";
|
||||
|
||||
items_.push_back( item(L"", typeControlProps, oox_target, isMediaInternal, rId) );
|
||||
items_.push_back( item(L"", typeControlProps, oox_target, isMediaInternal, rId, oox::document_place) );
|
||||
return rId;
|
||||
}
|
||||
void mediaitems::dump_rels(rels & Rels)
|
||||
void mediaitems::dump_rels(rels & Rels, _rels_type_place type_place)
|
||||
{
|
||||
for (size_t i = 0; i < items_.size(); i++)
|
||||
{
|
||||
if ( items_[i].type == typeUnknown ) continue;
|
||||
if ( items_[i].type == typeShape ) continue;
|
||||
if ( items_[i].type == typeGroupShape ) continue;
|
||||
|
||||
if (items_[i].type_place != type_place) continue;
|
||||
|
||||
if (items_[i].count_used >= items_[i].count_add) continue; // уже использовали этот релс выше(колонтитул ....)
|
||||
|
||||
|
||||
Rels.add( relationship(
|
||||
items_[i].Id,
|
||||
get_rel_type (items_[i].type),
|
||||
@ -338,7 +351,7 @@ void mediaitems::dump_rels(rels & Rels)
|
||||
items_[i].mediaInternal ? L"" : L"External" )
|
||||
);
|
||||
items_[i].count_used++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -46,25 +46,28 @@ namespace oox {
|
||||
class mediaitems
|
||||
{
|
||||
public:
|
||||
|
||||
mediaitems(const std::wstring & odfPacket);
|
||||
virtual ~mediaitems();
|
||||
|
||||
struct item
|
||||
{
|
||||
item( std::wstring const & _href,
|
||||
RelsType _type,
|
||||
std::wstring const & _outputName,
|
||||
bool _mediaInternal,
|
||||
std::wstring const & _Id);
|
||||
item( std::wstring const & href,
|
||||
_rels_type type,
|
||||
std::wstring const & outputName,
|
||||
bool mediaInternal,
|
||||
std::wstring const & Id,
|
||||
_rels_type_place type_place);
|
||||
|
||||
std::wstring href;
|
||||
RelsType type;
|
||||
std::wstring outputName;
|
||||
bool mediaInternal;
|
||||
bool valid;
|
||||
std::wstring Id;
|
||||
int count_used;
|
||||
int count_add;
|
||||
std::wstring href;
|
||||
_rels_type type;
|
||||
_rels_type_place type_place;
|
||||
std::wstring outputName;
|
||||
bool mediaInternal;
|
||||
bool valid;
|
||||
std::wstring Id;
|
||||
int count_used;
|
||||
int count_add;
|
||||
};
|
||||
typedef std::vector< item > items_array;
|
||||
|
||||
@ -83,15 +86,17 @@ public:
|
||||
void set_font_directory(std::wstring pathFonts);
|
||||
NSFonts::IApplicationFonts *applicationFonts() {return applicationFonts_;}
|
||||
|
||||
std::wstring add_or_find(const std::wstring & href, RelsType type, bool & isInternal);//возможны ссылки на один и тот же объект
|
||||
std::wstring add_or_find(const std::wstring & href, RelsType type, bool & isInternal, std::wstring & ref);
|
||||
std::wstring add_or_find(const std::wstring & href, _rels_type type, bool & isInternal, _rels_type_place type_place);//возможны ссылки на один и тот же объект
|
||||
std::wstring add_or_find(const std::wstring & href, _rels_type type, bool & isInternal, std::wstring & ref, _rels_type_place type_place);
|
||||
|
||||
void add_rels(bool isInternal, std::wstring const & rid, std::wstring const & ref, _rels_type type, _rels_type_place type_place);
|
||||
std::wstring add_control_props (std::wstring & oox_target);
|
||||
|
||||
void dump_rels(rels & Rels);
|
||||
items_array & items() { return items_; }
|
||||
void dump_rels(rels & Rels, _rels_type_place type);
|
||||
|
||||
items_array & items() { return items_; }
|
||||
|
||||
static std::wstring get_rel_type(RelsType type)
|
||||
static std::wstring get_rel_type(_rels_type type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@ -111,7 +116,7 @@ public:
|
||||
return L"";
|
||||
}
|
||||
}
|
||||
static RelsType detectMediaType(const std::wstring & fileName)
|
||||
static _rels_type detectMediaType(const std::wstring & fileName)
|
||||
{
|
||||
size_t pos = fileName.rfind(L".");
|
||||
|
||||
@ -137,8 +142,9 @@ public:
|
||||
|
||||
return typeMedia;
|
||||
}
|
||||
|
||||
private:
|
||||
std::wstring create_file_name (const std::wstring & uri, RelsType type, bool & isInternal, size_t Num);
|
||||
std::wstring create_file_name (const std::wstring & uri, _rels_type type, bool & isInternal, size_t Num);
|
||||
std::wstring detectImageFileExtension (const std::wstring &fileName);
|
||||
|
||||
items_array items_;
|
||||
@ -147,6 +153,7 @@ private:
|
||||
NSFonts::IApplicationFonts *applicationFonts_;
|
||||
};
|
||||
|
||||
typedef _CP_PTR(mediaitems) mediaitems_ptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_NODE(L"c:orientation")
|
||||
{
|
||||
odf_reader::GetProperty(content_.properties_,L"reverse-direction",boolVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"reverse-direction",boolVal);
|
||||
if ((boolVal == true) && (boolVal.get()==true))
|
||||
{
|
||||
CP_XML_ATTR(L"val", "maxMin");
|
||||
@ -147,7 +147,7 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
CP_XML_ATTR(L"val", "minMax");//default
|
||||
}
|
||||
}
|
||||
odf_reader::GetProperty(content_.properties_,L"maximum", doubleVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"maximum", doubleVal);
|
||||
if (doubleVal)
|
||||
{
|
||||
CP_XML_NODE(L"c:max")
|
||||
@ -189,16 +189,31 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
CP_XML_ATTR(L"val",L"l");// "b" | "l" | "r" | "t"// == bottom left right top
|
||||
}
|
||||
//oox_serialize_ln(_Wostream, content_.graphic_properties_);
|
||||
_CP_OPT(std::wstring) strNumFormat, strPercentFormat;
|
||||
_CP_OPT(bool) bLinkData;
|
||||
_CP_OPT(int) nTypeFormat;
|
||||
|
||||
odf_reader::GetProperty(content_.properties_, L"num_format", strVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"link-data-style-to-source", boolVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"num_format", strNumFormat);
|
||||
odf_reader::GetProperty(content_.properties_, L"percentage_num_format", strPercentFormat);
|
||||
odf_reader::GetProperty(content_.properties_, L"data-label-number", nTypeFormat);
|
||||
odf_reader::GetProperty(content_.properties_, L"link-data-style-to-source", bLinkData);
|
||||
|
||||
if ((strVal) && (strVal->length() > 1))
|
||||
std::wstring formatCode;
|
||||
if ((nTypeFormat) && (*nTypeFormat == 2) && strPercentFormat)
|
||||
{
|
||||
formatCode = *strPercentFormat;
|
||||
}
|
||||
else if ((strNumFormat) && (strNumFormat->length() > 1))
|
||||
{
|
||||
formatCode = *strNumFormat;
|
||||
}
|
||||
|
||||
if (formatCode.length() > 1)
|
||||
{
|
||||
CP_XML_NODE(L"c:numFmt")
|
||||
{
|
||||
CP_XML_ATTR(L"formatCode", *strVal);
|
||||
CP_XML_ATTR(L"sourceLinked", boolVal.get_value_or(true));
|
||||
CP_XML_ATTR(L"formatCode", formatCode);
|
||||
CP_XML_ATTR(L"sourceLinked", bLinkData.get_value_or(true));
|
||||
}
|
||||
}
|
||||
|
||||
@ -228,7 +243,7 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
{
|
||||
shape.oox_serialize(CP_XML_STREAM());
|
||||
}
|
||||
odf_reader::GetProperty(content_.properties_,L"display_label",boolVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"display_label",boolVal);
|
||||
if ((boolVal == true) && (boolVal.get()==true))
|
||||
{
|
||||
CP_XML_NODE(L"c:minorTickMark")
|
||||
@ -241,7 +256,7 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
|
||||
title.oox_serialize(_Wostream);
|
||||
|
||||
odf_reader::GetProperty(content_.properties_,L"display_label", boolVal);
|
||||
odf_reader::GetProperty(content_.properties_, L"display_label", boolVal);
|
||||
if ((boolVal == true) && (boolVal.get()==true))
|
||||
{
|
||||
CP_XML_NODE(L"c:tickLblPos")
|
||||
@ -250,7 +265,7 @@ void oox_axis_content::oox_serialize_content(std::wostream & _Wostream)
|
||||
}
|
||||
}
|
||||
|
||||
shape.set(content_.graphic_properties_,content_.fill_) ;
|
||||
shape.set(content_.graphic_properties_, content_.fill_) ;
|
||||
shape.oox_serialize(_Wostream);
|
||||
|
||||
oox_serialize_default_text(_Wostream, content_.text_properties_);
|
||||
|
||||
@ -41,22 +41,8 @@
|
||||
namespace cpdoccore {
|
||||
namespace oox {
|
||||
|
||||
class oox_chart_context::Impl
|
||||
oox_chart_context::oox_chart_context(mediaitems_ptr & m, std::wstring name) : mediaitems_(m), no_used_local_tables_(false)
|
||||
{
|
||||
public:
|
||||
Impl(std::wstring name){}
|
||||
std::wstring name_;
|
||||
|
||||
std::wstringstream chartData_;
|
||||
|
||||
std::wstring drawingName_;
|
||||
std::wstring drawingId_;
|
||||
};
|
||||
|
||||
oox_chart_context::oox_chart_context(mediaitems & m, std::wstring name) :
|
||||
impl_(new oox_chart_context::Impl( name)), mediaitems_(m)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void oox_chart_context::reset_fill(oox::_oox_fill &f)
|
||||
@ -65,7 +51,7 @@ void oox_chart_context::reset_fill(oox::_oox_fill &f)
|
||||
{
|
||||
bool isInternal = true;
|
||||
std::wstring ref;
|
||||
f.bitmap->rId = mediaitems_.add_or_find(f.bitmap->xlink_href_, typeImage, isInternal, ref);
|
||||
f.bitmap->rId = mediaitems_->add_or_find(f.bitmap->xlink_href_, typeImage, isInternal, ref, oox::chart_place);
|
||||
|
||||
rels_.push_back(_rel(isInternal, f.bitmap->rId, ref, typeImage));
|
||||
}
|
||||
@ -75,12 +61,14 @@ void oox_chart_context::set_externalData(const std::wstring & href)
|
||||
bool isInternal = true;
|
||||
std::wstring href_out;
|
||||
|
||||
externalDataId_ = mediaitems_.add_or_find(href, typeMsObject, isInternal, href_out);
|
||||
externalDataId_ = mediaitems_->add_or_find(href, typeMsObject, isInternal, href_out, oox::chart_place);
|
||||
rels_.push_back(_rel(isInternal, externalDataId_, href_out, typeMsObject));
|
||||
}
|
||||
std::wostream & oox_chart_context::chartData()
|
||||
void oox_chart_context::set_userShapes(std::pair<std::wstring, std::wstring> &link)
|
||||
{
|
||||
return impl_->chartData_;
|
||||
bool isInternal = true;
|
||||
userShapesId_ = link.second;
|
||||
rels_.push_back(_rel(isInternal, userShapesId_, link.first, typeChartUserShapes));
|
||||
}
|
||||
|
||||
void oox_chart_context::dump_rels(rels & Rels)
|
||||
@ -116,6 +104,15 @@ void oox_chart_context::dump_rels(rels & Rels)
|
||||
(r.is_internal ? L"" : L"External"))
|
||||
);
|
||||
}
|
||||
else if (r.type == typeChartUserShapes)
|
||||
{
|
||||
Rels.add(relationship(
|
||||
r.rid,
|
||||
L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes",
|
||||
r.is_internal ? std::wstring(L"../drawings/") + r.ref : r.ref,
|
||||
(r.is_internal ? L"" : L"External"))
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,9 +128,12 @@ void oox_chart_context::serialize(std::wostream & strm)
|
||||
|
||||
CP_XML_NODE(L"c:lang")
|
||||
{
|
||||
CP_XML_ATTR(L"val",L"en-US");
|
||||
CP_XML_ATTR(L"val", L"en-US");
|
||||
}
|
||||
CP_XML_NODE(L"c:roundedCorners")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 0);
|
||||
}
|
||||
|
||||
if (pivot_source_.empty() == false)
|
||||
{
|
||||
set_cache_only(true);
|
||||
@ -154,6 +154,7 @@ void oox_chart_context::serialize(std::wostream & strm)
|
||||
{
|
||||
if (plot_area_.current_chart_->is3D_)
|
||||
{
|
||||
plot_area_.oox_serialize_view3D(CP_XML_STREAM());
|
||||
//CP_XML_NODE(L"c:view3D");
|
||||
CP_XML_NODE(L"c:floor");
|
||||
CP_XML_NODE(L"c:backWall");
|
||||
@ -226,6 +227,13 @@ void oox_chart_context::serialize(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (userShapesId_.empty() == false)
|
||||
{
|
||||
CP_XML_NODE(L"c:userShapes")
|
||||
{
|
||||
CP_XML_ATTR(L"r:id", userShapesId_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user