uniword 1.0.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.adoc +71 -2142
- data/config/accessibility_profiles.yml +145 -0
- data/config/font_metadata.yml +213 -0
- data/config/latent_styles.yml +962 -0
- data/config/link_validation_rules.yml +62 -0
- data/config/locale_profiles.yml +226 -0
- data/config/metadata_schema.yml +294 -0
- data/config/ooxml/schema_loader.yml +98 -0
- data/config/ooxml/schema_main.yml +524 -0
- data/config/ooxml/schemas/01_document_structure.yml +44 -0
- data/config/ooxml/schemas/02_paragraph.yml +282 -0
- data/config/ooxml/schemas/03_run.yml +276 -0
- data/config/ooxml/schemas/04_table.yml +184 -0
- data/config/ooxml/schemas/05_headers_footers.yml +82 -0
- data/config/ooxml/schemas/06_fields.yml +81 -0
- data/config/ooxml/schemas/07_footnotes.yml +92 -0
- data/config/ooxml/schemas/08_styles.yml +265 -0
- data/config/ooxml/schemas/09_numbering.yml +247 -0
- data/config/ooxml/schemas/10_sections.yml +250 -0
- data/config/ooxml/schemas/11_drawing.yml +381 -0
- data/config/ooxml/schemas/12_math.yml +349 -0
- data/config/ooxml/schemas/13_charts.yml +920 -0
- data/config/ooxml/schemas/bibliography.yml +351 -0
- data/config/ooxml/schemas/chart.yml +1472 -0
- data/config/ooxml/schemas/content_types.yml +93 -0
- data/config/ooxml/schemas/customxml.yml +493 -0
- data/config/ooxml/schemas/document_properties.yml +275 -0
- data/config/ooxml/schemas/document_variables.yml +135 -0
- data/config/ooxml/schemas/drawingml.yml +1368 -0
- data/config/ooxml/schemas/glossary.yml +235 -0
- data/config/ooxml/schemas/math.yml +1266 -0
- data/config/ooxml/schemas/office.yml +648 -0
- data/config/ooxml/schemas/picture.yml +213 -0
- data/config/ooxml/schemas/presentationml.yml +1003 -0
- data/config/ooxml/schemas/relationships.yml +91 -0
- data/config/ooxml/schemas/shared_types.yml +174 -0
- data/config/ooxml/schemas/spreadsheetml.yml +1534 -0
- data/config/ooxml/schemas/vml.yml +426 -0
- data/config/ooxml/schemas/vml_office.yml +415 -0
- data/config/ooxml/schemas/wordprocessingml.yml +1881 -0
- data/config/ooxml/schemas/wordprocessingml_2010.yml +428 -0
- data/config/ooxml/schemas/wordprocessingml_2013.yml +286 -0
- data/config/ooxml/schemas/wordprocessingml_2016.yml +205 -0
- data/config/ooxml/schemas/wp_drawing.yml +528 -0
- data/config/pipeline.yml +108 -0
- data/config/profiles.yml +49 -0
- data/config/quality_rules.yml +49 -0
- data/config/style_mappings/iso_publication.yml +30 -0
- data/config/styles/iso_standard.yml +229 -0
- data/config/styles/legal_document.yml +198 -0
- data/config/styles/minimal.yml +90 -0
- data/config/styles/technical_report.yml +233 -0
- data/config/system_profiles.yml +87 -0
- data/config/theme_mapping.yml +447 -0
- data/config/transformation_rules.yml +160 -0
- data/config/validation_rules.yml +60 -0
- data/config/warning_rules.yml +57 -0
- data/data/color_schemes/amber.yml +17 -0
- data/data/color_schemes/azure.yml +17 -0
- data/data/color_schemes/burgundy.yml +17 -0
- data/data/color_schemes/cerulean.yml +17 -0
- data/data/color_schemes/chartreuse.yml +17 -0
- data/data/color_schemes/classic.yml +17 -0
- data/data/color_schemes/cobalt.yml +17 -0
- data/data/color_schemes/coral.yml +17 -0
- data/data/color_schemes/crimson.yml +17 -0
- data/data/color_schemes/emerald.yml +17 -0
- data/data/color_schemes/horizon.yml +17 -0
- data/data/color_schemes/indigo.yml +17 -0
- data/data/color_schemes/lavender.yml +17 -0
- data/data/color_schemes/magenta.yml +17 -0
- data/data/color_schemes/modern.yml +17 -0
- data/data/color_schemes/monochrome.yml +17 -0
- data/data/color_schemes/parchment.yml +17 -0
- data/data/color_schemes/saffron.yml +17 -0
- data/data/color_schemes/sage.yml +17 -0
- data/data/color_schemes/scarlet.yml +17 -0
- data/data/color_schemes/solar.yml +17 -0
- data/data/color_schemes/teal.yml +17 -0
- data/data/color_schemes/terrain.yml +17 -0
- data/data/font_schemes/caladea.yml +45 -0
- data/data/font_schemes/carlito_caladea.yml +45 -0
- data/data/font_schemes/carlito_liberation.yml +45 -0
- data/data/font_schemes/carlito_sans.yml +45 -0
- data/data/font_schemes/classic_office.yml +45 -0
- data/data/font_schemes/eb_garamond.yml +45 -0
- data/data/font_schemes/eb_garamond_liberation.yml +45 -0
- data/data/font_schemes/gelasio.yml +45 -0
- data/data/font_schemes/league_gothic.yml +45 -0
- data/data/font_schemes/league_liberation.yml +45 -0
- data/data/font_schemes/liberation_bold_sans.yml +45 -0
- data/data/font_schemes/liberation_libre.yml +45 -0
- data/data/font_schemes/liberation_mono_sans.yml +45 -0
- data/data/font_schemes/liberation_pair.yml +45 -0
- data/data/font_schemes/liberation_reverse.yml +45 -0
- data/data/font_schemes/liberation_sans.yml +45 -0
- data/data/font_schemes/liberation_sans_trebuchet.yml +45 -0
- data/data/font_schemes/libre_bodoni.yml +45 -0
- data/data/font_schemes/libre_franklin.yml +45 -0
- data/data/font_schemes/modern_office.yml +45 -0
- data/data/font_schemes/ms_office_2007.yml +72 -0
- data/data/font_schemes/ms_office_2013.yml +106 -0
- data/data/font_schemes/ms_office_2024.yml +106 -0
- data/data/font_schemes/source_alfa_slab.yml +45 -0
- data/data/font_schemes/source_display.yml +45 -0
- data/data/font_schemes/source_modern.yml +45 -0
- data/data/font_schemes/source_sans.yml +45 -0
- data/data/font_schemes/source_sans_century.yml +45 -0
- data/data/resources/document_elements/ar/bibliographies.yml +13 -0
- data/data/resources/document_elements/ar/cover_pages.yml +26 -0
- data/data/resources/document_elements/ar/equations.yml +21 -0
- data/data/resources/document_elements/ar/footers.yml +31 -0
- data/data/resources/document_elements/ar/headers.yml +32 -0
- data/data/resources/document_elements/ar/table_of_contents.yml +21 -0
- data/data/resources/document_elements/ar/tables.yml +19 -0
- data/data/resources/document_elements/ar/watermarks.yml +25 -0
- data/data/resources/document_elements/cs/bibliographies.yml +13 -0
- data/data/resources/document_elements/cs/cover_pages.yml +26 -0
- data/data/resources/document_elements/cs/equations.yml +21 -0
- data/data/resources/document_elements/cs/footers.yml +31 -0
- data/data/resources/document_elements/cs/headers.yml +32 -0
- data/data/resources/document_elements/cs/table_of_contents.yml +21 -0
- data/data/resources/document_elements/cs/tables.yml +19 -0
- data/data/resources/document_elements/cs/watermarks.yml +25 -0
- data/data/resources/document_elements/da/bibliographies.yml +13 -0
- data/data/resources/document_elements/da/cover_pages.yml +26 -0
- data/data/resources/document_elements/da/equations.yml +21 -0
- data/data/resources/document_elements/da/footers.yml +31 -0
- data/data/resources/document_elements/da/headers.yml +32 -0
- data/data/resources/document_elements/da/table_of_contents.yml +21 -0
- data/data/resources/document_elements/da/tables.yml +19 -0
- data/data/resources/document_elements/da/watermarks.yml +25 -0
- data/data/resources/document_elements/de/bibliographies.yml +13 -0
- data/data/resources/document_elements/de/cover_pages.yml +26 -0
- data/data/resources/document_elements/de/equations.yml +21 -0
- data/data/resources/document_elements/de/footers.yml +31 -0
- data/data/resources/document_elements/de/headers.yml +32 -0
- data/data/resources/document_elements/de/table_of_contents.yml +21 -0
- data/data/resources/document_elements/de/tables.yml +19 -0
- data/data/resources/document_elements/de/watermarks.yml +25 -0
- data/data/resources/document_elements/el/bibliographies.yml +13 -0
- data/data/resources/document_elements/el/cover_pages.yml +26 -0
- data/data/resources/document_elements/el/equations.yml +21 -0
- data/data/resources/document_elements/el/footers.yml +31 -0
- data/data/resources/document_elements/el/headers.yml +32 -0
- data/data/resources/document_elements/el/table_of_contents.yml +21 -0
- data/data/resources/document_elements/el/tables.yml +19 -0
- data/data/resources/document_elements/el/watermarks.yml +25 -0
- data/data/resources/document_elements/en/bibliographies.yml +13 -0
- data/data/resources/document_elements/en/cover_pages.yml +26 -0
- data/data/resources/document_elements/en/equations.yml +21 -0
- data/data/resources/document_elements/en/footers.yml +31 -0
- data/data/resources/document_elements/en/headers.yml +32 -0
- data/data/resources/document_elements/en/table_of_contents.yml +21 -0
- data/data/resources/document_elements/en/tables.yml +19 -0
- data/data/resources/document_elements/en/watermarks.yml +25 -0
- data/data/resources/document_elements/en-GB/bibliographies.yml +13 -0
- data/data/resources/document_elements/en-GB/cover_pages.yml +26 -0
- data/data/resources/document_elements/en-GB/equations.yml +21 -0
- data/data/resources/document_elements/en-GB/footers.yml +31 -0
- data/data/resources/document_elements/en-GB/headers.yml +32 -0
- data/data/resources/document_elements/en-GB/table_of_contents.yml +21 -0
- data/data/resources/document_elements/en-GB/tables.yml +19 -0
- data/data/resources/document_elements/en-GB/watermarks.yml +25 -0
- data/data/resources/document_elements/es/bibliographies.yml +13 -0
- data/data/resources/document_elements/es/cover_pages.yml +26 -0
- data/data/resources/document_elements/es/equations.yml +21 -0
- data/data/resources/document_elements/es/footers.yml +31 -0
- data/data/resources/document_elements/es/headers.yml +32 -0
- data/data/resources/document_elements/es/table_of_contents.yml +21 -0
- data/data/resources/document_elements/es/tables.yml +19 -0
- data/data/resources/document_elements/es/watermarks.yml +25 -0
- data/data/resources/document_elements/es-MX/bibliographies.yml +13 -0
- data/data/resources/document_elements/es-MX/cover_pages.yml +26 -0
- data/data/resources/document_elements/es-MX/equations.yml +21 -0
- data/data/resources/document_elements/es-MX/footers.yml +31 -0
- data/data/resources/document_elements/es-MX/headers.yml +32 -0
- data/data/resources/document_elements/es-MX/table_of_contents.yml +21 -0
- data/data/resources/document_elements/es-MX/tables.yml +19 -0
- data/data/resources/document_elements/es-MX/watermarks.yml +25 -0
- data/data/resources/document_elements/fi/bibliographies.yml +13 -0
- data/data/resources/document_elements/fi/cover_pages.yml +26 -0
- data/data/resources/document_elements/fi/equations.yml +21 -0
- data/data/resources/document_elements/fi/footers.yml +31 -0
- data/data/resources/document_elements/fi/headers.yml +32 -0
- data/data/resources/document_elements/fi/table_of_contents.yml +21 -0
- data/data/resources/document_elements/fi/tables.yml +19 -0
- data/data/resources/document_elements/fi/watermarks.yml +25 -0
- data/data/resources/document_elements/fr/bibliographies.yml +13 -0
- data/data/resources/document_elements/fr/cover_pages.yml +26 -0
- data/data/resources/document_elements/fr/equations.yml +21 -0
- data/data/resources/document_elements/fr/footers.yml +31 -0
- data/data/resources/document_elements/fr/headers.yml +32 -0
- data/data/resources/document_elements/fr/table_of_contents.yml +21 -0
- data/data/resources/document_elements/fr/tables.yml +19 -0
- data/data/resources/document_elements/fr/watermarks.yml +25 -0
- data/data/resources/document_elements/fr-CA/bibliographies.yml +13 -0
- data/data/resources/document_elements/fr-CA/cover_pages.yml +26 -0
- data/data/resources/document_elements/fr-CA/equations.yml +21 -0
- data/data/resources/document_elements/fr-CA/footers.yml +31 -0
- data/data/resources/document_elements/fr-CA/headers.yml +32 -0
- data/data/resources/document_elements/fr-CA/table_of_contents.yml +21 -0
- data/data/resources/document_elements/fr-CA/tables.yml +19 -0
- data/data/resources/document_elements/fr-CA/watermarks.yml +25 -0
- data/data/resources/document_elements/he/bibliographies.yml +13 -0
- data/data/resources/document_elements/he/cover_pages.yml +26 -0
- data/data/resources/document_elements/he/equations.yml +21 -0
- data/data/resources/document_elements/he/footers.yml +31 -0
- data/data/resources/document_elements/he/headers.yml +32 -0
- data/data/resources/document_elements/he/table_of_contents.yml +21 -0
- data/data/resources/document_elements/he/tables.yml +19 -0
- data/data/resources/document_elements/he/watermarks.yml +25 -0
- data/data/resources/document_elements/hu/bibliographies.yml +13 -0
- data/data/resources/document_elements/hu/cover_pages.yml +26 -0
- data/data/resources/document_elements/hu/equations.yml +21 -0
- data/data/resources/document_elements/hu/footers.yml +31 -0
- data/data/resources/document_elements/hu/headers.yml +32 -0
- data/data/resources/document_elements/hu/table_of_contents.yml +21 -0
- data/data/resources/document_elements/hu/tables.yml +19 -0
- data/data/resources/document_elements/hu/watermarks.yml +25 -0
- data/data/resources/document_elements/id/bibliographies.yml +13 -0
- data/data/resources/document_elements/id/cover_pages.yml +26 -0
- data/data/resources/document_elements/id/equations.yml +21 -0
- data/data/resources/document_elements/id/footers.yml +31 -0
- data/data/resources/document_elements/id/headers.yml +32 -0
- data/data/resources/document_elements/id/table_of_contents.yml +21 -0
- data/data/resources/document_elements/id/tables.yml +19 -0
- data/data/resources/document_elements/id/watermarks.yml +25 -0
- data/data/resources/document_elements/it/bibliographies.yml +13 -0
- data/data/resources/document_elements/it/cover_pages.yml +26 -0
- data/data/resources/document_elements/it/equations.yml +21 -0
- data/data/resources/document_elements/it/footers.yml +31 -0
- data/data/resources/document_elements/it/headers.yml +32 -0
- data/data/resources/document_elements/it/table_of_contents.yml +21 -0
- data/data/resources/document_elements/it/tables.yml +19 -0
- data/data/resources/document_elements/it/watermarks.yml +25 -0
- data/data/resources/document_elements/ja/bibliographies.yml +13 -0
- data/data/resources/document_elements/ja/cover_pages.yml +26 -0
- data/data/resources/document_elements/ja/equations.yml +21 -0
- data/data/resources/document_elements/ja/footers.yml +31 -0
- data/data/resources/document_elements/ja/headers.yml +32 -0
- data/data/resources/document_elements/ja/table_of_contents.yml +21 -0
- data/data/resources/document_elements/ja/tables.yml +19 -0
- data/data/resources/document_elements/ja/watermarks.yml +25 -0
- data/data/resources/document_elements/ko/bibliographies.yml +13 -0
- data/data/resources/document_elements/ko/cover_pages.yml +26 -0
- data/data/resources/document_elements/ko/equations.yml +21 -0
- data/data/resources/document_elements/ko/footers.yml +31 -0
- data/data/resources/document_elements/ko/headers.yml +32 -0
- data/data/resources/document_elements/ko/table_of_contents.yml +21 -0
- data/data/resources/document_elements/ko/tables.yml +19 -0
- data/data/resources/document_elements/ko/watermarks.yml +25 -0
- data/data/resources/document_elements/nl/bibliographies.yml +13 -0
- data/data/resources/document_elements/nl/cover_pages.yml +26 -0
- data/data/resources/document_elements/nl/equations.yml +21 -0
- data/data/resources/document_elements/nl/footers.yml +31 -0
- data/data/resources/document_elements/nl/headers.yml +32 -0
- data/data/resources/document_elements/nl/table_of_contents.yml +21 -0
- data/data/resources/document_elements/nl/tables.yml +19 -0
- data/data/resources/document_elements/nl/watermarks.yml +25 -0
- data/data/resources/document_elements/no/bibliographies.yml +13 -0
- data/data/resources/document_elements/no/cover_pages.yml +26 -0
- data/data/resources/document_elements/no/equations.yml +21 -0
- data/data/resources/document_elements/no/footers.yml +31 -0
- data/data/resources/document_elements/no/headers.yml +32 -0
- data/data/resources/document_elements/no/table_of_contents.yml +21 -0
- data/data/resources/document_elements/no/tables.yml +19 -0
- data/data/resources/document_elements/no/watermarks.yml +25 -0
- data/data/resources/document_elements/pl/bibliographies.yml +13 -0
- data/data/resources/document_elements/pl/cover_pages.yml +26 -0
- data/data/resources/document_elements/pl/equations.yml +21 -0
- data/data/resources/document_elements/pl/footers.yml +31 -0
- data/data/resources/document_elements/pl/headers.yml +32 -0
- data/data/resources/document_elements/pl/table_of_contents.yml +21 -0
- data/data/resources/document_elements/pl/tables.yml +19 -0
- data/data/resources/document_elements/pl/watermarks.yml +25 -0
- data/data/resources/document_elements/pt/bibliographies.yml +13 -0
- data/data/resources/document_elements/pt/cover_pages.yml +26 -0
- data/data/resources/document_elements/pt/equations.yml +21 -0
- data/data/resources/document_elements/pt/footers.yml +31 -0
- data/data/resources/document_elements/pt/headers.yml +32 -0
- data/data/resources/document_elements/pt/table_of_contents.yml +21 -0
- data/data/resources/document_elements/pt/tables.yml +19 -0
- data/data/resources/document_elements/pt/watermarks.yml +25 -0
- data/data/resources/document_elements/pt-PT/bibliographies.yml +13 -0
- data/data/resources/document_elements/pt-PT/cover_pages.yml +26 -0
- data/data/resources/document_elements/pt-PT/equations.yml +21 -0
- data/data/resources/document_elements/pt-PT/footers.yml +31 -0
- data/data/resources/document_elements/pt-PT/headers.yml +32 -0
- data/data/resources/document_elements/pt-PT/table_of_contents.yml +21 -0
- data/data/resources/document_elements/pt-PT/tables.yml +19 -0
- data/data/resources/document_elements/pt-PT/watermarks.yml +25 -0
- data/data/resources/document_elements/ru/bibliographies.yml +13 -0
- data/data/resources/document_elements/ru/cover_pages.yml +26 -0
- data/data/resources/document_elements/ru/equations.yml +21 -0
- data/data/resources/document_elements/ru/footers.yml +31 -0
- data/data/resources/document_elements/ru/headers.yml +32 -0
- data/data/resources/document_elements/ru/table_of_contents.yml +21 -0
- data/data/resources/document_elements/ru/tables.yml +19 -0
- data/data/resources/document_elements/ru/watermarks.yml +25 -0
- data/data/resources/document_elements/sk/bibliographies.yml +13 -0
- data/data/resources/document_elements/sk/cover_pages.yml +26 -0
- data/data/resources/document_elements/sk/equations.yml +21 -0
- data/data/resources/document_elements/sk/footers.yml +31 -0
- data/data/resources/document_elements/sk/headers.yml +32 -0
- data/data/resources/document_elements/sk/table_of_contents.yml +21 -0
- data/data/resources/document_elements/sk/tables.yml +19 -0
- data/data/resources/document_elements/sk/watermarks.yml +25 -0
- data/data/resources/document_elements/sv/bibliographies.yml +13 -0
- data/data/resources/document_elements/sv/cover_pages.yml +26 -0
- data/data/resources/document_elements/sv/equations.yml +21 -0
- data/data/resources/document_elements/sv/footers.yml +31 -0
- data/data/resources/document_elements/sv/headers.yml +32 -0
- data/data/resources/document_elements/sv/table_of_contents.yml +21 -0
- data/data/resources/document_elements/sv/tables.yml +19 -0
- data/data/resources/document_elements/sv/watermarks.yml +25 -0
- data/data/resources/document_elements/th/bibliographies.yml +13 -0
- data/data/resources/document_elements/th/cover_pages.yml +26 -0
- data/data/resources/document_elements/th/equations.yml +21 -0
- data/data/resources/document_elements/th/footers.yml +31 -0
- data/data/resources/document_elements/th/headers.yml +32 -0
- data/data/resources/document_elements/th/table_of_contents.yml +21 -0
- data/data/resources/document_elements/th/tables.yml +19 -0
- data/data/resources/document_elements/th/watermarks.yml +25 -0
- data/data/resources/document_elements/tr/bibliographies.yml +13 -0
- data/data/resources/document_elements/tr/cover_pages.yml +26 -0
- data/data/resources/document_elements/tr/equations.yml +21 -0
- data/data/resources/document_elements/tr/footers.yml +31 -0
- data/data/resources/document_elements/tr/headers.yml +32 -0
- data/data/resources/document_elements/tr/table_of_contents.yml +21 -0
- data/data/resources/document_elements/tr/tables.yml +19 -0
- data/data/resources/document_elements/tr/watermarks.yml +25 -0
- data/data/resources/document_elements/zh-CN/bibliographies.yml +13 -0
- data/data/resources/document_elements/zh-CN/cover_pages.yml +26 -0
- data/data/resources/document_elements/zh-CN/equations.yml +21 -0
- data/data/resources/document_elements/zh-CN/footers.yml +31 -0
- data/data/resources/document_elements/zh-CN/headers.yml +32 -0
- data/data/resources/document_elements/zh-CN/table_of_contents.yml +21 -0
- data/data/resources/document_elements/zh-CN/tables.yml +19 -0
- data/data/resources/document_elements/zh-CN/watermarks.yml +25 -0
- data/data/resources/document_elements/zh-TW/bibliographies.yml +13 -0
- data/data/resources/document_elements/zh-TW/cover_pages.yml +26 -0
- data/data/resources/document_elements/zh-TW/equations.yml +21 -0
- data/data/resources/document_elements/zh-TW/footers.yml +31 -0
- data/data/resources/document_elements/zh-TW/headers.yml +32 -0
- data/data/resources/document_elements/zh-TW/table_of_contents.yml +21 -0
- data/data/resources/document_elements/zh-TW/tables.yml +19 -0
- data/data/resources/document_elements/zh-TW/watermarks.yml +25 -0
- data/data/resources/font_registry.yml +135 -0
- data/data/schemas/ecma/opc-contentTypes.xsd +42 -0
- data/data/schemas/ecma/opc-coreProperties.xsd +50 -0
- data/data/schemas/ecma/opc-digSig.xsd +49 -0
- data/data/schemas/ecma/opc-relationships.xsd +33 -0
- data/data/schemas/iso/dml-chart.xsd +1499 -0
- data/data/schemas/iso/dml-chartDrawing.xsd +146 -0
- data/data/schemas/iso/dml-diagram.xsd +1085 -0
- data/data/schemas/iso/dml-lockedCanvas.xsd +11 -0
- data/data/schemas/iso/dml-main.xsd +3081 -0
- data/data/schemas/iso/dml-picture.xsd +23 -0
- data/data/schemas/iso/dml-spreadsheetDrawing.xsd +185 -0
- data/data/schemas/iso/dml-wordprocessingDrawing.xsd +287 -0
- data/data/schemas/iso/pml.xsd +1676 -0
- data/data/schemas/iso/shared-additionalCharacteristics.xsd +28 -0
- data/data/schemas/iso/shared-bibliography.xsd +144 -0
- data/data/schemas/iso/shared-commonSimpleTypes.xsd +172 -0
- data/data/schemas/iso/shared-customXmlDataProperties.xsd +25 -0
- data/data/schemas/iso/shared-customXmlSchemaProperties.xsd +18 -0
- data/data/schemas/iso/shared-documentPropertiesCustom.xsd +59 -0
- data/data/schemas/iso/shared-documentPropertiesExtended.xsd +56 -0
- data/data/schemas/iso/shared-documentPropertiesVariantTypes.xsd +195 -0
- data/data/schemas/iso/shared-math.xsd +582 -0
- data/data/schemas/iso/shared-relationshipReference.xsd +25 -0
- data/data/schemas/iso/sml.xsd +4439 -0
- data/data/schemas/iso/vml-main.xsd +570 -0
- data/data/schemas/iso/vml-officeDrawing.xsd +509 -0
- data/data/schemas/iso/vml-presentationDrawing.xsd +12 -0
- data/data/schemas/iso/vml-spreadsheetDrawing.xsd +108 -0
- data/data/schemas/iso/vml-wordprocessingDrawing.xsd +96 -0
- data/data/schemas/iso/wml.xsd +3646 -0
- data/data/schemas/iso/xml.xsd +116 -0
- data/data/schemas/mce/mc.xsd +75 -0
- data/data/schemas/microsoft/wml-2010.xsd +560 -0
- data/data/schemas/microsoft/wml-2012.xsd +66 -0
- data/data/schemas/microsoft/wml-2018.xsd +14 -0
- data/data/schemas/microsoft/wml-cex-2018.xsd +19 -0
- data/data/schemas/microsoft/wml-cid-2016.xsd +13 -0
- data/data/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- data/data/schemas/microsoft/wml-symex-2015.xsd +8 -0
- data/data/schemas/microsoft/word12.xsd +3 -0
- data/data/stylesets/ceremonial.yml +929 -0
- data/data/stylesets/classic.yml +1051 -0
- data/data/stylesets/contemporary.yml +951 -0
- data/data/stylesets/gazette.yml +1452 -0
- data/data/stylesets/heritage.yml +898 -0
- data/data/stylesets/minimal.yml +855 -0
- data/data/stylesets/ornate.yml +920 -0
- data/data/stylesets/outlook.yml +1428 -0
- data/data/stylesets/refined.yml +956 -0
- data/data/stylesets/scrollwork.yml +891 -0
- data/data/stylesets/signature.yml +903 -0
- data/data/stylesets/wicker.yml +1285 -0
- data/data/themes/abyss.yml +197 -0
- data/data/themes/archive.yml +197 -0
- data/data/themes/boardwalk.yml +197 -0
- data/data/themes/botanical.yml +197 -0
- data/data/themes/bulletin.yml +197 -0
- data/data/themes/calculus.yml +389 -0
- data/data/themes/constellation.yml +197 -0
- data/data/themes/contrail.yml +197 -0
- data/data/themes/corporate.yml +197 -0
- data/data/themes/emblem.yml +197 -0
- data/data/themes/exhibit.yml +197 -0
- data/data/themes/harvest.yml +197 -0
- data/data/themes/incision.yml +197 -0
- data/data/themes/lather.yml +197 -0
- data/data/themes/letterpress.yml +197 -0
- data/data/themes/memoir.yml +389 -0
- data/data/themes/meridian.yml +197 -0
- data/data/themes/mosaic.yml +197 -0
- data/data/themes/parkway.yml +197 -0
- data/data/themes/plasma.yml +197 -0
- data/data/themes/plumage.yml +197 -0
- data/data/themes/prism.yml +197 -0
- data/data/themes/ripple.yml +197 -0
- data/data/themes/spectrum.yml +197 -0
- data/data/themes/spotlight.yml +197 -0
- data/data/themes/vista.yml +197 -0
- data/data/themes/weave.yml +197 -0
- data/data/themes/workspace.yml +197 -0
- data/data/themes/zephyr.yml +197 -0
- data/exe/uniword +2 -2
- data/lib/uniword/accessibility/accessibility_checker.rb +4 -4
- data/lib/uniword/accessibility/accessibility_profile.rb +20 -11
- data/lib/uniword/accessibility/accessibility_report.rb +9 -9
- data/lib/uniword/accessibility/accessibility_rule.rb +7 -7
- data/lib/uniword/accessibility/accessibility_violation.rb +1 -1
- data/lib/uniword/accessibility/rules/descriptive_headings_rule.rb +5 -5
- data/lib/uniword/accessibility/rules/document_title_rule.rb +3 -3
- data/lib/uniword/accessibility/rules/heading_structure_rule.rb +6 -6
- data/lib/uniword/accessibility/rules/image_alt_text_rule.rb +7 -5
- data/lib/uniword/accessibility/rules/language_specification_rule.rb +2 -2
- data/lib/uniword/accessibility/rules/table_headers_rule.rb +2 -2
- data/lib/uniword/accessibility/rules.rb +4 -2
- data/lib/uniword/accessibility.rb +8 -4
- data/lib/uniword/assembly/assembly_manifest.rb +27 -18
- data/lib/uniword/assembly/component_registry.rb +10 -10
- data/lib/uniword/assembly/cross_reference_resolver.rb +1 -1
- data/lib/uniword/assembly/document_assembler.rb +19 -19
- data/lib/uniword/assembly/toc.rb +4 -4
- data/lib/uniword/assembly/toc_entry.rb +2 -1
- data/lib/uniword/assembly/toc_instruction.rb +3 -3
- data/lib/uniword/assembly/variable_substitutor.rb +2 -2
- data/lib/uniword/assembly.rb +2 -1
- data/lib/uniword/batch/batch_result.rb +20 -20
- data/lib/uniword/batch/document_processor.rb +32 -28
- data/lib/uniword/batch/processing_stage.rb +6 -6
- data/lib/uniword/batch/stages/compress_images_stage.rb +2 -2
- data/lib/uniword/batch/stages/convert_format_stage.rb +7 -7
- data/lib/uniword/batch/stages/normalize_styles_stage.rb +14 -14
- data/lib/uniword/batch/stages/quality_check_stage.rb +13 -9
- data/lib/uniword/batch/stages/update_metadata_stage.rb +7 -11
- data/lib/uniword/batch/stages/validate_links_stage.rb +9 -9
- data/lib/uniword/batch.rb +6 -3
- data/lib/uniword/bibliography/author.rb +21 -21
- data/lib/uniword/bibliography/city.rb +3 -3
- data/lib/uniword/bibliography/corporate.rb +3 -3
- data/lib/uniword/bibliography/day.rb +3 -3
- data/lib/uniword/bibliography/edition.rb +3 -3
- data/lib/uniword/bibliography/first.rb +3 -3
- data/lib/uniword/bibliography/first_name.rb +3 -3
- data/lib/uniword/bibliography/guid.rb +3 -3
- data/lib/uniword/bibliography/issue.rb +3 -3
- data/lib/uniword/bibliography/last.rb +3 -3
- data/lib/uniword/bibliography/last_name.rb +3 -3
- data/lib/uniword/bibliography/lcid.rb +3 -3
- data/lib/uniword/bibliography/locale_id.rb +3 -3
- data/lib/uniword/bibliography/month.rb +3 -3
- data/lib/uniword/bibliography/name_list.rb +3 -3
- data/lib/uniword/bibliography/pages.rb +3 -3
- data/lib/uniword/bibliography/person.rb +5 -5
- data/lib/uniword/bibliography/publisher.rb +3 -3
- data/lib/uniword/bibliography/ref_order.rb +3 -3
- data/lib/uniword/bibliography/source.rb +59 -55
- data/lib/uniword/bibliography/source_tag.rb +3 -3
- data/lib/uniword/bibliography/source_type.rb +3 -3
- data/lib/uniword/bibliography/sources.rb +6 -6
- data/lib/uniword/bibliography/tag.rb +3 -3
- data/lib/uniword/bibliography/title.rb +3 -3
- data/lib/uniword/bibliography/url.rb +3 -3
- data/lib/uniword/bibliography/volume_number.rb +3 -3
- data/lib/uniword/bibliography/year.rb +3 -3
- data/lib/uniword/bibliography.rb +30 -30
- data/lib/uniword/bookmark.rb +2 -2
- data/lib/uniword/builder/base_builder.rb +44 -0
- data/lib/uniword/builder/bibliography_builder.rb +7 -7
- data/lib/uniword/builder/chart_builder.rb +100 -159
- data/lib/uniword/builder/comment_builder.rb +1 -1
- data/lib/uniword/builder/document_builder.rb +18 -59
- data/lib/uniword/builder/footnote_builder.rb +2 -2
- data/lib/uniword/builder/has_borders.rb +26 -0
- data/lib/uniword/builder/has_shading.rb +19 -0
- data/lib/uniword/builder/header_footer_builder.rb +2 -2
- data/lib/uniword/builder/image_builder.rb +41 -36
- data/lib/uniword/builder/list_builder.rb +5 -4
- data/lib/uniword/builder/numbering_builder.rb +4 -16
- data/lib/uniword/builder/paragraph_builder.rb +16 -89
- data/lib/uniword/builder/run_builder.rb +31 -158
- data/lib/uniword/builder/sdt_builder.rb +19 -37
- data/lib/uniword/builder/section_builder.rb +11 -39
- data/lib/uniword/builder/style_builder.rb +3 -3
- data/lib/uniword/builder/table_builder.rb +11 -51
- data/lib/uniword/builder/table_cell_builder.rb +14 -58
- data/lib/uniword/builder/table_row_builder.rb +4 -16
- data/lib/uniword/builder/toc_builder.rb +4 -4
- data/lib/uniword/builder/watermark_builder.rb +17 -17
- data/lib/uniword/builder.rb +37 -36
- data/lib/uniword/chart/area3_d_chart.rb +9 -9
- data/lib/uniword/chart/area_chart.rb +8 -8
- data/lib/uniword/chart/auto_title_deleted.rb +3 -3
- data/lib/uniword/chart/axis_id.rb +3 -3
- data/lib/uniword/chart/axis_position.rb +3 -3
- data/lib/uniword/chart/bar3_d_chart.rb +11 -11
- data/lib/uniword/chart/bar_chart.rb +10 -10
- data/lib/uniword/chart/bubble_chart.rb +10 -10
- data/lib/uniword/chart/bubble_size.rb +4 -4
- data/lib/uniword/chart/cat_ax.rb +14 -14
- data/lib/uniword/chart/category_axis_data.rb +6 -6
- data/lib/uniword/chart/chart.rb +9 -8
- data/lib/uniword/chart/chart_reference.rb +3 -3
- data/lib/uniword/chart/chart_space.rb +9 -9
- data/lib/uniword/chart/color_map_override.rb +3 -3
- data/lib/uniword/chart/data_label.rb +9 -9
- data/lib/uniword/chart/data_labels.rb +12 -12
- data/lib/uniword/chart/date_ax.rb +14 -14
- data/lib/uniword/chart/diagram_reference.rb +3 -3
- data/lib/uniword/chart/doughnut_chart.rb +7 -7
- data/lib/uniword/chart/drop_lines.rb +3 -3
- data/lib/uniword/chart/error_bar_type.rb +3 -3
- data/lib/uniword/chart/error_bars.rb +10 -10
- data/lib/uniword/chart/error_direction.rb +3 -3
- data/lib/uniword/chart/explosion.rb +3 -3
- data/lib/uniword/chart/gap_width.rb +3 -3
- data/lib/uniword/chart/hi_low_lines.rb +3 -3
- data/lib/uniword/chart/index.rb +3 -3
- data/lib/uniword/chart/layout.rb +3 -3
- data/lib/uniword/chart/legend.rb +10 -9
- data/lib/uniword/chart/legend_entry.rb +5 -5
- data/lib/uniword/chart/legend_position.rb +3 -3
- data/lib/uniword/chart/line3_d_chart.rb +9 -9
- data/lib/uniword/chart/line_chart.rb +12 -12
- data/lib/uniword/chart/major_gridlines.rb +3 -3
- data/lib/uniword/chart/marker.rb +5 -5
- data/lib/uniword/chart/marker_size.rb +3 -3
- data/lib/uniword/chart/marker_style.rb +3 -3
- data/lib/uniword/chart/minor_gridlines.rb +3 -3
- data/lib/uniword/chart/number_reference.rb +4 -4
- data/lib/uniword/chart/numbering_format.rb +4 -4
- data/lib/uniword/chart/order.rb +3 -3
- data/lib/uniword/chart/orientation.rb +3 -3
- data/lib/uniword/chart/pie3_d_chart.rb +5 -5
- data/lib/uniword/chart/pie_chart.rb +6 -6
- data/lib/uniword/chart/plot_area.rb +9 -9
- data/lib/uniword/chart/plot_vis_only.rb +3 -3
- data/lib/uniword/chart/radar_chart.rb +7 -7
- data/lib/uniword/chart/scaling.rb +6 -6
- data/lib/uniword/chart/scatter_chart.rb +7 -7
- data/lib/uniword/chart/ser_ax.rb +13 -13
- data/lib/uniword/chart/series.rb +6 -6
- data/lib/uniword/chart/series_text.rb +4 -4
- data/lib/uniword/chart/shape_properties.rb +3 -3
- data/lib/uniword/chart/show_category_name.rb +3 -3
- data/lib/uniword/chart/show_legend_key.rb +3 -3
- data/lib/uniword/chart/show_value.rb +3 -3
- data/lib/uniword/chart/smooth.rb +3 -3
- data/lib/uniword/chart/stock_chart.rb +8 -8
- data/lib/uniword/chart/style.rb +3 -3
- data/lib/uniword/chart/surface3_d_chart.rb +6 -6
- data/lib/uniword/chart/surface_chart.rb +6 -6
- data/lib/uniword/chart/text_properties.rb +3 -3
- data/lib/uniword/chart/tick_label_position.rb +3 -3
- data/lib/uniword/chart/title.rb +7 -7
- data/lib/uniword/chart/trendline.rb +9 -9
- data/lib/uniword/chart/trendline_type.rb +3 -3
- data/lib/uniword/chart/up_down_bars.rb +5 -5
- data/lib/uniword/chart/val_ax.rb +16 -16
- data/lib/uniword/chart/values.rb +4 -4
- data/lib/uniword/chart/x_values.rb +4 -4
- data/lib/uniword/chart/y_values.rb +4 -4
- data/lib/uniword/cli/diff_cli.rb +188 -0
- data/lib/uniword/cli/generate_cli.rb +83 -0
- data/lib/uniword/cli/headers_cli.rb +159 -0
- data/lib/uniword/cli/helpers.rb +43 -0
- data/lib/uniword/cli/images_cli.rb +166 -0
- data/lib/uniword/cli/main.rb +550 -0
- data/lib/uniword/cli/protect_cli.rb +97 -0
- data/lib/uniword/cli/resources_cli.rb +165 -0
- data/lib/uniword/cli/review_cli.rb +291 -0
- data/lib/uniword/cli/spellcheck_cli.rb +102 -0
- data/lib/uniword/cli/styleset_cli.rb +191 -0
- data/lib/uniword/cli/template_cli.rb +194 -0
- data/lib/uniword/cli/theme_cli.rb +221 -0
- data/lib/uniword/cli/toc_cli.rb +154 -0
- data/lib/uniword/cli/watermark_cli.rb +97 -0
- data/lib/uniword/cli.rb +18 -735
- data/lib/uniword/column_configuration.rb +2 -2
- data/lib/uniword/comment.rb +7 -7
- data/lib/uniword/comment_range.rb +5 -5
- data/lib/uniword/comments_part.rb +7 -3
- data/lib/uniword/configuration/configuration_loader.rb +3 -3
- data/lib/uniword/configuration.rb +2 -1
- data/lib/uniword/content_types/default.rb +4 -4
- data/lib/uniword/content_types/override.rb +4 -4
- data/lib/uniword/content_types/types.rb +4 -7
- data/lib/uniword/content_types.rb +35 -35
- data/lib/uniword/customxml/custom_xml.rb +6 -6
- data/lib/uniword/customxml/custom_xml_attribute.rb +5 -5
- data/lib/uniword/customxml/custom_xml_block.rb +6 -6
- data/lib/uniword/customxml/custom_xml_cell.rb +6 -6
- data/lib/uniword/customxml/custom_xml_del_range_start.rb +5 -5
- data/lib/uniword/customxml/custom_xml_ins_range_end.rb +3 -3
- data/lib/uniword/customxml/custom_xml_ins_range_start.rb +5 -5
- data/lib/uniword/customxml/custom_xml_move_from_range_end.rb +3 -3
- data/lib/uniword/customxml/custom_xml_move_from_range_start.rb +5 -5
- data/lib/uniword/customxml/custom_xml_move_to_range_end.rb +3 -3
- data/lib/uniword/customxml/custom_xml_move_to_range_start.rb +5 -5
- data/lib/uniword/customxml/custom_xml_properties.rb +7 -6
- data/lib/uniword/customxml/custom_xml_row.rb +6 -6
- data/lib/uniword/customxml/custom_xml_run.rb +6 -6
- data/lib/uniword/customxml/data_binding.rb +5 -5
- data/lib/uniword/customxml/data_store_item.rb +4 -4
- data/lib/uniword/customxml/element_name.rb +3 -3
- data/lib/uniword/customxml/name.rb +3 -3
- data/lib/uniword/customxml/namespace_uri.rb +3 -3
- data/lib/uniword/customxml/placeholder.rb +3 -3
- data/lib/uniword/customxml/placeholder_text.rb +3 -3
- data/lib/uniword/customxml/prefix_mappings.rb +3 -3
- data/lib/uniword/customxml/schema_reference.rb +5 -5
- data/lib/uniword/customxml/showing_placeholder.rb +3 -3
- data/lib/uniword/customxml/showing_placeholder_header.rb +3 -3
- data/lib/uniword/customxml/smart_tag.rb +6 -6
- data/lib/uniword/customxml/smart_tag_attribute.rb +4 -4
- data/lib/uniword/customxml/smart_tag_element.rb +3 -3
- data/lib/uniword/customxml/smart_tag_name.rb +3 -3
- data/lib/uniword/customxml/smart_tag_properties.rb +5 -4
- data/lib/uniword/customxml/smart_tag_type.rb +5 -5
- data/lib/uniword/customxml/smart_tag_uri.rb +3 -3
- data/lib/uniword/customxml/store_item_id.rb +3 -3
- data/lib/uniword/customxml/x_path.rb +3 -3
- data/lib/uniword/customxml/x_path_expression.rb +3 -3
- data/lib/uniword/customxml.rb +45 -38
- data/lib/uniword/diff/diff_result.rb +100 -0
- data/lib/uniword/diff/document_differ.rb +517 -0
- data/lib/uniword/diff/formatter.rb +120 -0
- data/lib/uniword/diff/package_diff_result.rb +204 -0
- data/lib/uniword/diff/package_differ.rb +581 -0
- data/lib/uniword/diff.rb +19 -0
- data/lib/uniword/document_factory.rb +55 -26
- data/lib/uniword/document_variables/data_type.rb +3 -3
- data/lib/uniword/document_variables/default_value.rb +3 -3
- data/lib/uniword/document_variables/doc_var.rb +4 -4
- data/lib/uniword/document_variables/doc_vars.rb +3 -3
- data/lib/uniword/document_variables/read_only.rb +3 -3
- data/lib/uniword/document_variables/variable_binding.rb +5 -5
- data/lib/uniword/document_variables/variable_collection.rb +4 -4
- data/lib/uniword/document_variables/variable_expression.rb +3 -3
- data/lib/uniword/document_variables/variable_format.rb +3 -3
- data/lib/uniword/document_variables/variable_scope.rb +3 -3
- data/lib/uniword/document_writer.rb +18 -17
- data/lib/uniword/docx/document_statistics.rb +142 -0
- data/lib/uniword/docx/package.rb +492 -0
- data/lib/uniword/docx/package_defaults.rb +151 -0
- data/lib/uniword/docx/package_serialization.rb +490 -0
- data/lib/uniword/docx/profile.rb +256 -0
- data/lib/uniword/docx/reconciler.rb +1006 -0
- data/lib/uniword/docx.rb +15 -0
- data/lib/uniword/drawingml/adjust_value_list.rb +3 -3
- data/lib/uniword/drawingml/alpha.rb +3 -3
- data/lib/uniword/drawingml/alpha_bi_level.rb +3 -3
- data/lib/uniword/drawingml/alpha_modulation.rb +3 -3
- data/lib/uniword/drawingml/alpha_modulation_fixed.rb +3 -3
- data/lib/uniword/drawingml/alpha_offset.rb +3 -3
- data/lib/uniword/drawingml/arc_to.rb +6 -6
- data/lib/uniword/drawingml/background_color.rb +4 -4
- data/lib/uniword/drawingml/bevel_top.rb +5 -5
- data/lib/uniword/drawingml/bi_level.rb +3 -3
- data/lib/uniword/drawingml/blip.rb +11 -9
- data/lib/uniword/drawingml/blip_fill.rb +6 -6
- data/lib/uniword/drawingml/blue.rb +3 -3
- data/lib/uniword/drawingml/blur.rb +4 -4
- data/lib/uniword/drawingml/body_properties.rb +3 -3
- data/lib/uniword/drawingml/camera.rb +4 -4
- data/lib/uniword/drawingml/close_path.rb +2 -2
- data/lib/uniword/drawingml/color_scheme.rb +71 -71
- data/lib/uniword/drawingml/complex_script_font.rb +4 -4
- data/lib/uniword/drawingml/custom_dash.rb +3 -3
- data/lib/uniword/drawingml/custom_geometry.rb +4 -4
- data/lib/uniword/drawingml/dash_stop.rb +4 -4
- data/lib/uniword/drawingml/default_paragraph_properties.rb +4 -4
- data/lib/uniword/drawingml/duotone.rb +5 -4
- data/lib/uniword/drawingml/east_asian_font.rb +4 -4
- data/lib/uniword/drawingml/effect_container.rb +3 -3
- data/lib/uniword/drawingml/effect_list.rb +7 -7
- data/lib/uniword/drawingml/extension.rb +11 -11
- data/lib/uniword/drawingml/extension_list.rb +2 -2
- data/lib/uniword/drawingml/extents.rb +4 -4
- data/lib/uniword/drawingml/extra_color_scheme_list.rb +1 -1
- data/lib/uniword/drawingml/fill_overlay.rb +3 -3
- data/lib/uniword/drawingml/fill_rect.rb +27 -0
- data/lib/uniword/drawingml/fill_to_rect.rb +6 -6
- data/lib/uniword/drawingml/font_reference.rb +4 -4
- data/lib/uniword/drawingml/font_scheme.rb +30 -30
- data/lib/uniword/drawingml/foreground_color.rb +4 -4
- data/lib/uniword/drawingml/format_scheme.rb +23 -23
- data/lib/uniword/drawingml/gamma.rb +2 -2
- data/lib/uniword/drawingml/geometry_guide.rb +4 -4
- data/lib/uniword/drawingml/glow.rb +5 -5
- data/lib/uniword/drawingml/gradient_fill.rb +6 -6
- data/lib/uniword/drawingml/gradient_stop.rb +5 -5
- data/lib/uniword/drawingml/gradient_stop_list.rb +5 -4
- data/lib/uniword/drawingml/graphic.rb +3 -3
- data/lib/uniword/drawingml/graphic_data.rb +6 -6
- data/lib/uniword/drawingml/graphic_frame_locks.rb +24 -0
- data/lib/uniword/drawingml/grayscale.rb +2 -2
- data/lib/uniword/drawingml/green.rb +3 -3
- data/lib/uniword/drawingml/group_locking.rb +10 -10
- data/lib/uniword/drawingml/group_shape_properties.rb +3 -3
- data/lib/uniword/drawingml/gvml.rb +17 -12
- data/lib/uniword/drawingml/gvml_connector.rb +5 -5
- data/lib/uniword/drawingml/gvml_connector_non_visual.rb +4 -4
- data/lib/uniword/drawingml/gvml_graphic_frame_non_visual.rb +5 -4
- data/lib/uniword/drawingml/gvml_graphical_object_frame.rb +6 -5
- data/lib/uniword/drawingml/gvml_group_shape.rb +10 -10
- data/lib/uniword/drawingml/gvml_group_shape_non_visual.rb +4 -4
- data/lib/uniword/drawingml/gvml_picture.rb +6 -6
- data/lib/uniword/drawingml/gvml_picture_non_visual.rb +4 -4
- data/lib/uniword/drawingml/gvml_shape.rb +6 -6
- data/lib/uniword/drawingml/gvml_shape_non_visual.rb +4 -4
- data/lib/uniword/drawingml/gvml_text_shape.rb +5 -5
- data/lib/uniword/drawingml/gvml_use_shape_rectangle.rb +2 -2
- data/lib/uniword/drawingml/hue.rb +3 -3
- data/lib/uniword/drawingml/hue_modulation.rb +3 -3
- data/lib/uniword/drawingml/hue_offset.rb +3 -3
- data/lib/uniword/drawingml/inner_shadow.rb +7 -7
- data/lib/uniword/drawingml/inverse_gamma.rb +2 -2
- data/lib/uniword/drawingml/level1_paragraph_properties.rb +4 -4
- data/lib/uniword/drawingml/level2_paragraph_properties.rb +4 -4
- data/lib/uniword/drawingml/level3_paragraph_properties.rb +4 -4
- data/lib/uniword/drawingml/light_rig.rb +5 -5
- data/lib/uniword/drawingml/line_defaults.rb +6 -6
- data/lib/uniword/drawingml/line_join_miter.rb +3 -3
- data/lib/uniword/drawingml/line_join_round.rb +2 -2
- data/lib/uniword/drawingml/line_properties.rb +10 -10
- data/lib/uniword/drawingml/line_to.rb +3 -3
- data/lib/uniword/drawingml/linear_gradient.rb +4 -4
- data/lib/uniword/drawingml/list_style.rb +6 -6
- data/lib/uniword/drawingml/luminance.rb +3 -3
- data/lib/uniword/drawingml/luminance_modulation.rb +3 -3
- data/lib/uniword/drawingml/luminance_offset.rb +3 -3
- data/lib/uniword/drawingml/move_to.rb +3 -3
- data/lib/uniword/drawingml/no_fill.rb +2 -2
- data/lib/uniword/drawingml/non_visual_connector_properties.rb +3 -3
- data/lib/uniword/drawingml/non_visual_drawing_properties.rb +10 -4
- data/lib/uniword/drawingml/non_visual_graphic_frame_properties.rb +3 -3
- data/lib/uniword/drawingml/non_visual_group_drawing_shape_properties.rb +3 -3
- data/lib/uniword/drawingml/non_visual_picture_properties.rb +6 -5
- data/lib/uniword/drawingml/non_visual_shape_properties.rb +3 -3
- data/lib/uniword/drawingml/object_defaults.rb +4 -4
- data/lib/uniword/drawingml/office_art_extension.rb +5 -3
- data/lib/uniword/drawingml/office_art_extension_list.rb +5 -4
- data/lib/uniword/drawingml/offset.rb +4 -4
- data/lib/uniword/drawingml/outer_shadow.rb +11 -11
- data/lib/uniword/drawingml/path_gradient.rb +4 -4
- data/lib/uniword/drawingml/path_list.rb +3 -3
- data/lib/uniword/drawingml/pattern_fill.rb +5 -5
- data/lib/uniword/drawingml/picture_locking.rb +10 -10
- data/lib/uniword/drawingml/preset_dash.rb +3 -3
- data/lib/uniword/drawingml/preset_geometry.rb +4 -4
- data/lib/uniword/drawingml/preset_shadow.rb +5 -5
- data/lib/uniword/drawingml/red.rb +3 -3
- data/lib/uniword/drawingml/red_modulation.rb +3 -3
- data/lib/uniword/drawingml/red_offset.rb +3 -3
- data/lib/uniword/drawingml/reflection.rb +10 -10
- data/lib/uniword/drawingml/relative_rect.rb +6 -6
- data/lib/uniword/drawingml/rotation.rb +5 -5
- data/lib/uniword/drawingml/saturation.rb +3 -3
- data/lib/uniword/drawingml/saturation_modulation.rb +3 -3
- data/lib/uniword/drawingml/saturation_offset.rb +3 -3
- data/lib/uniword/drawingml/scene_3d.rb +4 -4
- data/lib/uniword/drawingml/scheme_color.rb +13 -13
- data/lib/uniword/drawingml/shade.rb +3 -3
- data/lib/uniword/drawingml/shape.rb +4 -4
- data/lib/uniword/drawingml/shape_3d.rb +6 -6
- data/lib/uniword/drawingml/shape_defaults.rb +6 -6
- data/lib/uniword/drawingml/shape_properties.rb +4 -4
- data/lib/uniword/drawingml/shape_style.rb +6 -6
- data/lib/uniword/drawingml/soft_edge.rb +3 -3
- data/lib/uniword/drawingml/solid_fill.rb +4 -4
- data/lib/uniword/drawingml/source_rect.rb +6 -6
- data/lib/uniword/drawingml/srgb_color.rb +13 -13
- data/lib/uniword/drawingml/stretch.rb +6 -2
- data/lib/uniword/drawingml/style_matrix.rb +6 -6
- data/lib/uniword/drawingml/style_matrix_reference.rb +5 -5
- data/lib/uniword/drawingml/style_reference.rb +4 -4
- data/lib/uniword/drawingml/text_body.rb +6 -5
- data/lib/uniword/drawingml/text_character_properties.rb +8 -8
- data/lib/uniword/drawingml/text_defaults.rb +6 -6
- data/lib/uniword/drawingml/text_font.rb +4 -4
- data/lib/uniword/drawingml/text_paragraph.rb +3 -3
- data/lib/uniword/drawingml/text_paragraph_properties.rb +5 -5
- data/lib/uniword/drawingml/text_run.rb +3 -3
- data/lib/uniword/drawingml/theme.rb +29 -29
- data/lib/uniword/drawingml/tile.rb +8 -8
- data/lib/uniword/drawingml/tile_rect.rb +6 -6
- data/lib/uniword/drawingml/tint.rb +3 -3
- data/lib/uniword/drawingml/transform2_d.rb +4 -4
- data/lib/uniword/drawingml/use_local_dpi.rb +21 -0
- data/lib/uniword/drawingml.rb +163 -144
- data/lib/uniword/element.rb +1 -1
- data/lib/uniword/element_registry.rb +1 -1
- data/lib/uniword/endnote.rb +1 -1
- data/lib/uniword/errors.rb +1 -1
- data/lib/uniword/field.rb +21 -21
- data/lib/uniword/footer.rb +8 -5
- data/lib/uniword/footnote.rb +1 -1
- data/lib/uniword/format_converter.rb +6 -6
- data/lib/uniword/format_detector.rb +39 -16
- data/lib/uniword/generation/document_generator.rb +135 -0
- data/lib/uniword/generation/structured_text_parser.rb +131 -0
- data/lib/uniword/generation/style_extractor.rb +90 -0
- data/lib/uniword/generation/style_mapper.rb +89 -0
- data/lib/uniword/generation.rb +17 -0
- data/lib/uniword/glossary/auto_text.rb +3 -3
- data/lib/uniword/glossary/category_name.rb +3 -3
- data/lib/uniword/glossary/doc_part.rb +4 -4
- data/lib/uniword/glossary/doc_part_behavior.rb +3 -3
- data/lib/uniword/glossary/doc_part_behaviors.rb +5 -4
- data/lib/uniword/glossary/doc_part_body.rb +7 -6
- data/lib/uniword/glossary/doc_part_category.rb +4 -4
- data/lib/uniword/glossary/doc_part_description.rb +3 -3
- data/lib/uniword/glossary/doc_part_gallery.rb +3 -3
- data/lib/uniword/glossary/doc_part_id.rb +3 -3
- data/lib/uniword/glossary/doc_part_name.rb +3 -3
- data/lib/uniword/glossary/doc_part_properties.rb +9 -9
- data/lib/uniword/glossary/doc_part_type.rb +3 -3
- data/lib/uniword/glossary/doc_part_types.rb +4 -4
- data/lib/uniword/glossary/doc_parts.rb +3 -3
- data/lib/uniword/glossary/equation.rb +3 -3
- data/lib/uniword/glossary/glossary_document.rb +5 -5
- data/lib/uniword/glossary/style_id.rb +3 -3
- data/lib/uniword/glossary/text_box.rb +3 -3
- data/lib/uniword/glossary.rb +19 -19
- data/lib/uniword/header.rb +8 -5
- data/lib/uniword/headers_footers/manager.rb +140 -0
- data/lib/uniword/headers_footers.rb +12 -0
- data/lib/uniword/hyperlink.rb +1 -1
- data/lib/uniword/image.rb +12 -9
- data/lib/uniword/images/image_info.rb +48 -0
- data/lib/uniword/images/image_manager.rb +253 -0
- data/lib/uniword/images.rb +15 -0
- data/lib/uniword/infrastructure/mime_packager.rb +15 -17
- data/lib/uniword/infrastructure/mime_parser.rb +28 -18
- data/lib/uniword/infrastructure/xml_namespace_normalizer.rb +8 -6
- data/lib/uniword/infrastructure/zip_extractor.rb +23 -15
- data/lib/uniword/infrastructure/zip_packager.rb +30 -29
- data/lib/uniword/lazy_loader.rb +5 -11
- data/lib/uniword/line_numbering.rb +11 -11
- data/lib/uniword/logger.rb +1 -1
- data/lib/uniword/math/accent.rb +4 -4
- data/lib/uniword/math/accent_properties.rb +4 -4
- data/lib/uniword/math/argument_properties.rb +3 -3
- data/lib/uniword/math/bar.rb +4 -4
- data/lib/uniword/math/bar_properties.rb +4 -4
- data/lib/uniword/math/begin_char.rb +3 -3
- data/lib/uniword/math/border_box.rb +4 -4
- data/lib/uniword/math/border_box_properties.rb +11 -11
- data/lib/uniword/math/box.rb +4 -4
- data/lib/uniword/math/box_properties.rb +8 -8
- data/lib/uniword/math/char.rb +3 -3
- data/lib/uniword/math/control_properties.rb +3 -3
- data/lib/uniword/math/degree.rb +4 -4
- data/lib/uniword/math/delimiter.rb +4 -4
- data/lib/uniword/math/delimiter_properties.rb +8 -8
- data/lib/uniword/math/denominator.rb +4 -4
- data/lib/uniword/math/element.rb +29 -24
- data/lib/uniword/math/end_char.rb +3 -3
- data/lib/uniword/math/equation_array.rb +4 -4
- data/lib/uniword/math/equation_array_properties.rb +8 -8
- data/lib/uniword/math/fraction.rb +5 -5
- data/lib/uniword/math/fraction_properties.rb +4 -4
- data/lib/uniword/math/function.rb +5 -5
- data/lib/uniword/math/function_name.rb +4 -4
- data/lib/uniword/math/function_properties.rb +3 -3
- data/lib/uniword/math/group_char.rb +4 -4
- data/lib/uniword/math/group_char_properties.rb +6 -6
- data/lib/uniword/math/lim.rb +4 -4
- data/lib/uniword/math/lower_limit.rb +5 -5
- data/lib/uniword/math/lower_limit_properties.rb +3 -3
- data/lib/uniword/math/math_break.rb +3 -3
- data/lib/uniword/math/math_font.rb +3 -3
- data/lib/uniword/math/math_properties.rb +18 -18
- data/lib/uniword/math/math_run.rb +5 -5
- data/lib/uniword/math/math_run_properties.rb +9 -9
- data/lib/uniword/math/math_simple_int_val.rb +3 -3
- data/lib/uniword/math/math_simple_val.rb +3 -3
- data/lib/uniword/math/math_style.rb +3 -3
- data/lib/uniword/math/math_text.rb +2 -2
- data/lib/uniword/math/matrix.rb +4 -4
- data/lib/uniword/math/matrix_column.rb +3 -3
- data/lib/uniword/math/matrix_column_properties.rb +4 -4
- data/lib/uniword/math/matrix_columns.rb +3 -3
- data/lib/uniword/math/matrix_properties.rb +10 -10
- data/lib/uniword/math/matrix_row.rb +3 -3
- data/lib/uniword/math/nary.rb +6 -6
- data/lib/uniword/math/nary_properties.rb +8 -8
- data/lib/uniword/math/numerator.rb +4 -4
- data/lib/uniword/math/o_math.rb +28 -23
- data/lib/uniword/math/o_math_para.rb +4 -4
- data/lib/uniword/math/o_math_para_properties.rb +3 -3
- data/lib/uniword/math/phantom.rb +4 -4
- data/lib/uniword/math/phantom_properties.rb +8 -8
- data/lib/uniword/math/plurimath_adapter.rb +26 -22
- data/lib/uniword/math/pre_sub_superscript.rb +6 -6
- data/lib/uniword/math/pre_sub_superscript_properties.rb +3 -3
- data/lib/uniword/math/radical.rb +5 -5
- data/lib/uniword/math/radical_properties.rb +4 -4
- data/lib/uniword/math/separator_char.rb +3 -3
- data/lib/uniword/math/sub.rb +4 -4
- data/lib/uniword/math/sub_superscript.rb +6 -6
- data/lib/uniword/math/sub_superscript_properties.rb +4 -4
- data/lib/uniword/math/subscript.rb +5 -5
- data/lib/uniword/math/subscript_properties.rb +3 -3
- data/lib/uniword/math/sup.rb +4 -4
- data/lib/uniword/math/superscript.rb +5 -5
- data/lib/uniword/math/superscript_properties.rb +3 -3
- data/lib/uniword/math/upper_limit.rb +5 -5
- data/lib/uniword/math/upper_limit_properties.rb +3 -3
- data/lib/uniword/math.rb +70 -68
- data/lib/uniword/math_equation.rb +6 -6
- data/lib/uniword/mhtml/css_number_formatter.rb +7 -6
- data/lib/uniword/mhtml/document.rb +24 -18
- data/lib/uniword/mhtml/html_part.rb +19 -18
- data/lib/uniword/mhtml/math_converter.rb +17 -15
- data/lib/uniword/mhtml/metadata/document_properties.rb +21 -21
- data/lib/uniword/mhtml/metadata/latent_styles.rb +8 -8
- data/lib/uniword/mhtml/metadata/office_document_settings.rb +4 -4
- data/lib/uniword/mhtml/metadata/word_document_settings.rb +16 -15
- data/lib/uniword/mhtml/metadata.rb +4 -2
- data/lib/uniword/mhtml/mhtml_package.rb +7 -9
- data/lib/uniword/mhtml/mime_part.rb +17 -13
- data/lib/uniword/mhtml/namespaces.rb +7 -7
- data/lib/uniword/mhtml/numbering_configuration.rb +3 -3
- data/lib/uniword/mhtml/styles_configuration.rb +3 -3
- data/lib/uniword/mhtml/theme.rb +2 -2
- data/lib/uniword/mhtml/word_css.rb +15 -29
- data/lib/uniword/office/bottom.rb +3 -3
- data/lib/uniword/office/brightness.rb +3 -3
- data/lib/uniword/office/button.rb +5 -5
- data/lib/uniword/office/callout.rb +10 -10
- data/lib/uniword/office/callout_anchor.rb +3 -3
- data/lib/uniword/office/checkbox.rb +4 -4
- data/lib/uniword/office/color_menu.rb +4 -4
- data/lib/uniword/office/color_mru.rb +4 -4
- data/lib/uniword/office/complex.rb +3 -3
- data/lib/uniword/office/diagram.rb +10 -10
- data/lib/uniword/office/diffusity.rb +3 -3
- data/lib/uniword/office/document_protection.rb +5 -5
- data/lib/uniword/office/document_view.rb +3 -3
- data/lib/uniword/office/edge.rb +4 -4
- data/lib/uniword/office/extrusion.rb +19 -19
- data/lib/uniword/office/extrusion_color.rb +4 -4
- data/lib/uniword/office/extrusion_color_mode.rb +3 -3
- data/lib/uniword/office/extrusion_ok.rb +3 -3
- data/lib/uniword/office/field.rb +4 -4
- data/lib/uniword/office/forms.rb +3 -3
- data/lib/uniword/office/id_map.rb +4 -4
- data/lib/uniword/office/ink.rb +4 -4
- data/lib/uniword/office/ink_annotation.rb +4 -4
- data/lib/uniword/office/left.rb +3 -3
- data/lib/uniword/office/lock.rb +7 -7
- data/lib/uniword/office/metal.rb +3 -3
- data/lib/uniword/office/proof_state.rb +4 -4
- data/lib/uniword/office/regroup.rb +3 -3
- data/lib/uniword/office/regroup_table.rb +3 -3
- data/lib/uniword/office/relation_table.rb +3 -3
- data/lib/uniword/office/right.rb +3 -3
- data/lib/uniword/office/rules.rb +3 -3
- data/lib/uniword/office/shape_defaults.rb +6 -6
- data/lib/uniword/office/shape_layout.rb +4 -4
- data/lib/uniword/office/signature_line.rb +12 -12
- data/lib/uniword/office/skew.rb +6 -6
- data/lib/uniword/office/specularity.rb +3 -3
- data/lib/uniword/office/top.rb +3 -3
- data/lib/uniword/office/writing_style.rb +6 -6
- data/lib/uniword/office/zoom.rb +3 -3
- data/lib/uniword/office.rb +41 -41
- data/lib/uniword/ooxml/additional_characteristics.rb +8 -8
- data/lib/uniword/ooxml/app_properties.rb +44 -44
- data/lib/uniword/ooxml/core_properties.rb +15 -14
- data/lib/uniword/ooxml/custom_properties.rb +35 -35
- data/lib/uniword/ooxml/dotx_package.rb +161 -52
- data/lib/uniword/ooxml/namespaces.rb +267 -114
- data/lib/uniword/ooxml/package_file.rb +13 -10
- data/lib/uniword/ooxml/relationships/hyperlink_relationship.rb +3 -3
- data/lib/uniword/ooxml/relationships/image_relationship.rb +2 -2
- data/lib/uniword/ooxml/relationships/office_document_relationship.rb +3 -3
- data/lib/uniword/ooxml/relationships/package_relationship.rb +6 -6
- data/lib/uniword/ooxml/relationships/package_relationships.rb +16 -16
- data/lib/uniword/ooxml/relationships/relationship.rb +6 -6
- data/lib/uniword/ooxml/relationships/relationships.rb +7 -6
- data/lib/uniword/ooxml/relationships.rb +6 -3
- data/lib/uniword/ooxml/schema/attribute_definition.rb +10 -9
- data/lib/uniword/ooxml/schema/child_definition.rb +17 -17
- data/lib/uniword/ooxml/schema/element_definition.rb +3 -3
- data/lib/uniword/ooxml/schema/element_serializer.rb +43 -21
- data/lib/uniword/ooxml/schema/ooxml_schema.rb +7 -6
- data/lib/uniword/ooxml/schema_library.rb +9 -8
- data/lib/uniword/ooxml/styleset_package.rb +1 -1
- data/lib/uniword/ooxml/theme_package.rb +6 -6
- data/lib/uniword/ooxml/thmx_package.rb +13 -12
- data/lib/uniword/ooxml/types/cp_description_type.rb +1 -1
- data/lib/uniword/ooxml/types/cp_keywords_type.rb +1 -1
- data/lib/uniword/ooxml/types/cp_last_modified_by_type.rb +1 -1
- data/lib/uniword/ooxml/types/cp_revision_type.rb +1 -1
- data/lib/uniword/ooxml/types/dc_creator_type.rb +1 -1
- data/lib/uniword/ooxml/types/dc_subject_type.rb +1 -1
- data/lib/uniword/ooxml/types/dc_title_type.rb +1 -1
- data/lib/uniword/ooxml/types/dcterms_created_type.rb +4 -4
- data/lib/uniword/ooxml/types/dcterms_modified_type.rb +4 -4
- data/lib/uniword/ooxml/types/dcterms_w3cdtf_type.rb +6 -35
- data/lib/uniword/ooxml/types/mc_ignorable_type.rb +1 -1
- data/lib/uniword/ooxml/types/on_off_type.rb +5 -5
- data/lib/uniword/ooxml/types/ooxml_boolean.rb +7 -7
- data/lib/uniword/ooxml/types/ooxml_boolean_optional.rb +7 -7
- data/lib/uniword/ooxml/types/relationship_id.rb +18 -0
- data/lib/uniword/ooxml/types/variant_types.rb +41 -41
- data/lib/uniword/ooxml/types.rb +29 -25
- data/lib/uniword/ooxml.rb +2 -2
- data/lib/uniword/page_borders.rb +9 -9
- data/lib/uniword/paragraph_border.rb +9 -8
- data/lib/uniword/picture/fill_rect.rb +6 -6
- data/lib/uniword/picture/non_visual_drawing_properties.rb +29 -0
- data/lib/uniword/picture/non_visual_picture_drawing_properties.rb +4 -4
- data/lib/uniword/picture/non_visual_picture_properties.rb +5 -5
- data/lib/uniword/picture/picture.rb +5 -5
- data/lib/uniword/picture/picture_blip_fill.rb +6 -6
- data/lib/uniword/picture/picture_locks.rb +4 -4
- data/lib/uniword/picture/picture_shape_properties.rb +5 -5
- data/lib/uniword/picture/picture_source_rect.rb +6 -6
- data/lib/uniword/picture/picture_stretch.rb +3 -3
- data/lib/uniword/picture/tile.rb +7 -7
- data/lib/uniword/picture.rb +4 -1
- data/lib/uniword/presentationml/audio.rb +5 -5
- data/lib/uniword/presentationml/body_properties.rb +7 -7
- data/lib/uniword/presentationml/break.rb +3 -3
- data/lib/uniword/presentationml/color_map.rb +6 -6
- data/lib/uniword/presentationml/common_slide_data.rb +5 -5
- data/lib/uniword/presentationml/common_time_node.rb +8 -8
- data/lib/uniword/presentationml/connection_shape.rb +4 -4
- data/lib/uniword/presentationml/embed.rb +3 -3
- data/lib/uniword/presentationml/embedded_font.rb +4 -4
- data/lib/uniword/presentationml/end_conditions_list.rb +3 -3
- data/lib/uniword/presentationml/end_paragraph_run_properties.rb +5 -5
- data/lib/uniword/presentationml/extension.rb +3 -3
- data/lib/uniword/presentationml/extension_list.rb +3 -3
- data/lib/uniword/presentationml/field.rb +7 -7
- data/lib/uniword/presentationml/graphic_frame.rb +5 -5
- data/lib/uniword/presentationml/group_shape.rb +6 -6
- data/lib/uniword/presentationml/handout_master.rb +4 -4
- data/lib/uniword/presentationml/handout_master_id_list.rb +3 -3
- data/lib/uniword/presentationml/list_style.rb +6 -6
- data/lib/uniword/presentationml/non_visual_shape_properties.rb +5 -5
- data/lib/uniword/presentationml/notes.rb +5 -5
- data/lib/uniword/presentationml/notes_master_id_list.rb +3 -3
- data/lib/uniword/presentationml/notes_size.rb +4 -4
- data/lib/uniword/presentationml/ole_object.rb +5 -5
- data/lib/uniword/presentationml/paragraph.rb +7 -7
- data/lib/uniword/presentationml/paragraph_properties.rb +7 -7
- data/lib/uniword/presentationml/parallel_time_node.rb +3 -3
- data/lib/uniword/presentationml/picture.rb +5 -5
- data/lib/uniword/presentationml/presentation.rb +14 -11
- data/lib/uniword/presentationml/run.rb +4 -4
- data/lib/uniword/presentationml/run_properties.rb +9 -9
- data/lib/uniword/presentationml/sequence_time_node.rb +5 -5
- data/lib/uniword/presentationml/shape.rb +5 -5
- data/lib/uniword/presentationml/shape_properties.rb +7 -7
- data/lib/uniword/presentationml/shape_tree.rb +13 -11
- data/lib/uniword/presentationml/slide.rb +8 -8
- data/lib/uniword/presentationml/slide_id.rb +6 -5
- data/lib/uniword/presentationml/slide_id_list.rb +3 -3
- data/lib/uniword/presentationml/slide_layout.rb +8 -8
- data/lib/uniword/presentationml/slide_master.rb +8 -8
- data/lib/uniword/presentationml/slide_master_id.rb +6 -5
- data/lib/uniword/presentationml/slide_master_id_list.rb +5 -4
- data/lib/uniword/presentationml/slide_size.rb +5 -5
- data/lib/uniword/presentationml/start_conditions_list.rb +3 -3
- data/lib/uniword/presentationml/text_body.rb +5 -5
- data/lib/uniword/presentationml/time_node_list.rb +4 -4
- data/lib/uniword/presentationml/timing.rb +4 -4
- data/lib/uniword/presentationml/transition.rb +8 -8
- data/lib/uniword/presentationml/video.rb +4 -4
- data/lib/uniword/presentationml.rb +54 -50
- data/lib/uniword/properties/adjust_right_ind.rb +27 -0
- data/lib/uniword/properties/alignment.rb +3 -3
- data/lib/uniword/properties/auto_space_de.rb +27 -0
- data/lib/uniword/properties/auto_space_dn.rb +27 -0
- data/lib/uniword/properties/bold.rb +5 -5
- data/lib/uniword/properties/boolean_formatting.rb +44 -30
- data/lib/uniword/properties/border.rb +8 -8
- data/lib/uniword/properties/borders.rb +8 -8
- data/lib/uniword/properties/cell_vertical_align.rb +3 -3
- data/lib/uniword/properties/cell_width.rb +4 -4
- data/lib/uniword/properties/character_spacing.rb +3 -3
- data/lib/uniword/properties/color_value.rb +6 -6
- data/lib/uniword/properties/contextual_spacing.rb +4 -4
- data/lib/uniword/properties/displaced_by_custom_xml_value.rb +18 -0
- data/lib/uniword/properties/emphasis_mark.rb +3 -3
- data/lib/uniword/properties/font_size.rb +3 -3
- data/lib/uniword/properties/highlight.rb +3 -3
- data/lib/uniword/properties/history_value.rb +17 -0
- data/lib/uniword/properties/indentation.rb +6 -6
- data/lib/uniword/properties/italic.rb +5 -5
- data/lib/uniword/properties/kerning.rb +3 -3
- data/lib/uniword/properties/language.rb +5 -5
- data/lib/uniword/properties/margin.rb +3 -3
- data/lib/uniword/properties/numbering_id.rb +3 -3
- data/lib/uniword/properties/numbering_level.rb +3 -3
- data/lib/uniword/properties/numbering_properties.rb +4 -4
- data/lib/uniword/properties/outline.rb +6 -6
- data/lib/uniword/properties/outline_level.rb +3 -3
- data/lib/uniword/properties/page_break_before.rb +26 -0
- data/lib/uniword/properties/position.rb +3 -3
- data/lib/uniword/properties/relationship_id.rb +17 -0
- data/lib/uniword/properties/run_fonts.rb +11 -11
- data/lib/uniword/properties/shading.rb +6 -6
- data/lib/uniword/properties/spacing.rb +12 -6
- data/lib/uniword/properties/style_reference.rb +5 -5
- data/lib/uniword/properties/tab_stop.rb +5 -5
- data/lib/uniword/properties/table_caption.rb +19 -0
- data/lib/uniword/properties/table_cell_margin.rb +6 -6
- data/lib/uniword/properties/table_indent.rb +4 -4
- data/lib/uniword/properties/table_justification.rb +3 -3
- data/lib/uniword/properties/table_layout.rb +23 -0
- data/lib/uniword/properties/table_look.rb +9 -9
- data/lib/uniword/properties/table_width.rb +4 -4
- data/lib/uniword/properties/tabs.rb +3 -3
- data/lib/uniword/properties/text_fill.rb +3 -3
- data/lib/uniword/properties/text_outline.rb +4 -4
- data/lib/uniword/properties/underline.rb +6 -6
- data/lib/uniword/properties/vertical_align.rb +3 -3
- data/lib/uniword/properties/widow_control.rb +27 -0
- data/lib/uniword/properties/width_scale.rb +3 -3
- data/lib/uniword/properties/word2010_id_value.rb +17 -0
- data/lib/uniword/properties.rb +69 -55
- data/lib/uniword/protect/manager.rb +124 -0
- data/lib/uniword/protect.rb +11 -0
- data/lib/uniword/quality/document_checker.rb +10 -10
- data/lib/uniword/quality/quality_report.rb +19 -19
- data/lib/uniword/quality/quality_rule.rb +7 -7
- data/lib/uniword/quality/rules/heading_hierarchy_rule.rb +2 -2
- data/lib/uniword/quality/rules/image_alt_text_rule.rb +4 -4
- data/lib/uniword/quality/rules/link_validation_rule.rb +8 -10
- data/lib/uniword/quality/rules/paragraph_length_rule.rb +4 -4
- data/lib/uniword/quality/rules/style_consistency_rule.rb +6 -5
- data/lib/uniword/quality/rules/table_header_rule.rb +2 -2
- data/lib/uniword/quality.rb +8 -4
- data/lib/uniword/resource/cache.rb +1 -1
- data/lib/uniword/resource/cache_paths.rb +9 -7
- data/lib/uniword/resource/cache_version.rb +4 -3
- data/lib/uniword/resource/color_scheme_loader.rb +36 -0
- data/lib/uniword/resource/color_transformer.rb +2 -2
- data/lib/uniword/resource/document_element_converter.rb +63 -0
- data/lib/uniword/resource/document_element_loader.rb +54 -0
- data/lib/uniword/resource/document_element_template.rb +54 -0
- data/lib/uniword/resource/font_scheme_loader.rb +50 -0
- data/lib/uniword/resource/font_substitutor.rb +98 -21
- data/lib/uniword/resource/importer.rb +54 -6
- data/lib/uniword/resource/resource_location.rb +1 -1
- data/lib/uniword/resource/resource_resolver.rb +9 -7
- data/lib/uniword/resource/theme_mapping_loader.rb +138 -0
- data/lib/uniword/resource/theme_processor.rb +7 -10
- data/lib/uniword/resource/theme_transition.rb +124 -0
- data/lib/uniword/resource.rb +18 -0
- data/lib/uniword/review/accept_reject.rb +120 -0
- data/lib/uniword/review/interactive_review.rb +233 -0
- data/lib/uniword/review/review_manager.rb +250 -0
- data/lib/uniword/review.rb +19 -0
- data/lib/uniword/revision.rb +8 -8
- data/lib/uniword/schema/model_generator.rb +22 -21
- data/lib/uniword/schema/schema_loader.rb +8 -8
- data/lib/uniword/section.rb +28 -25
- data/lib/uniword/section_properties.rb +15 -13
- data/lib/uniword/serialization/ooxml_serializer.rb +3 -2
- data/lib/uniword/shading.rb +15 -14
- data/lib/uniword/shared_types/angle.rb +3 -3
- data/lib/uniword/shared_types/boolean_value.rb +3 -3
- data/lib/uniword/shared_types/decimal_number.rb +3 -3
- data/lib/uniword/shared_types/emu_measure.rb +3 -3
- data/lib/uniword/shared_types/fixed_percentage.rb +3 -3
- data/lib/uniword/shared_types/hex_color.rb +3 -3
- data/lib/uniword/shared_types/on_off.rb +3 -3
- data/lib/uniword/shared_types/percent_value.rb +3 -3
- data/lib/uniword/shared_types/pixel_measure.rb +3 -3
- data/lib/uniword/shared_types/point_measure.rb +3 -3
- data/lib/uniword/shared_types/positive_percentage.rb +3 -3
- data/lib/uniword/shared_types/string_type.rb +3 -3
- data/lib/uniword/shared_types/text_alignment.rb +3 -3
- data/lib/uniword/shared_types/twips_measure.rb +3 -3
- data/lib/uniword/shared_types/vertical_alignment.rb +3 -3
- data/lib/uniword/shared_types.rb +16 -16
- data/lib/uniword/spellcheck/grammar_checker.rb +135 -0
- data/lib/uniword/spellcheck/hunspell_adapter.rb +100 -0
- data/lib/uniword/spellcheck/spell_checker.rb +160 -0
- data/lib/uniword/spellcheck/spellcheck_result.rb +82 -0
- data/lib/uniword/spellcheck.rb +10 -0
- data/lib/uniword/spreadsheetml/alignment.rb +8 -8
- data/lib/uniword/spreadsheetml/authors.rb +5 -4
- data/lib/uniword/spreadsheetml/auto_filter.rb +7 -6
- data/lib/uniword/spreadsheetml/bold.rb +3 -3
- data/lib/uniword/spreadsheetml/book_views.rb +3 -3
- data/lib/uniword/spreadsheetml/border.rb +7 -7
- data/lib/uniword/spreadsheetml/borders.rb +6 -5
- data/lib/uniword/spreadsheetml/calc_properties.rb +5 -5
- data/lib/uniword/spreadsheetml/cell.rb +7 -7
- data/lib/uniword/spreadsheetml/cell_format.rb +12 -12
- data/lib/uniword/spreadsheetml/cell_formats.rb +4 -4
- data/lib/uniword/spreadsheetml/cell_formula.rb +6 -6
- data/lib/uniword/spreadsheetml/cell_style.rb +8 -8
- data/lib/uniword/spreadsheetml/cell_style_xfs.rb +4 -4
- data/lib/uniword/spreadsheetml/cell_styles.rb +4 -4
- data/lib/uniword/spreadsheetml/cell_value.rb +3 -3
- data/lib/uniword/spreadsheetml/chartsheet.rb +4 -4
- data/lib/uniword/spreadsheetml/col.rb +8 -8
- data/lib/uniword/spreadsheetml/col_breaks.rb +4 -4
- data/lib/uniword/spreadsheetml/color.rb +6 -6
- data/lib/uniword/spreadsheetml/color_filter.rb +4 -4
- data/lib/uniword/spreadsheetml/colors.rb +3 -3
- data/lib/uniword/spreadsheetml/cols.rb +3 -3
- data/lib/uniword/spreadsheetml/comment.rb +5 -5
- data/lib/uniword/spreadsheetml/comment_list.rb +5 -4
- data/lib/uniword/spreadsheetml/comments.rb +4 -4
- data/lib/uniword/spreadsheetml/conditional_formatting.rb +6 -5
- data/lib/uniword/spreadsheetml/conditional_formatting_rule.rb +5 -5
- data/lib/uniword/spreadsheetml/custom_filter.rb +4 -4
- data/lib/uniword/spreadsheetml/custom_filters.rb +6 -5
- data/lib/uniword/spreadsheetml/custom_workbook_views.rb +3 -3
- data/lib/uniword/spreadsheetml/data_validation.rb +13 -13
- data/lib/uniword/spreadsheetml/data_validations.rb +6 -5
- data/lib/uniword/spreadsheetml/date_group_item.rb +9 -9
- data/lib/uniword/spreadsheetml/defined_name.rb +6 -6
- data/lib/uniword/spreadsheetml/defined_names.rb +3 -3
- data/lib/uniword/spreadsheetml/dimension.rb +3 -3
- data/lib/uniword/spreadsheetml/drawing.rb +3 -3
- data/lib/uniword/spreadsheetml/dynamic_filter.rb +5 -5
- data/lib/uniword/spreadsheetml/external_reference.rb +3 -3
- data/lib/uniword/spreadsheetml/external_references.rb +3 -3
- data/lib/uniword/spreadsheetml/file_sharing.rb +3 -3
- data/lib/uniword/spreadsheetml/file_version.rb +4 -4
- data/lib/uniword/spreadsheetml/fill.rb +3 -3
- data/lib/uniword/spreadsheetml/fills.rb +4 -4
- data/lib/uniword/spreadsheetml/filter.rb +3 -3
- data/lib/uniword/spreadsheetml/filter_column.rb +11 -11
- data/lib/uniword/spreadsheetml/filters.rb +8 -7
- data/lib/uniword/spreadsheetml/font.rb +7 -7
- data/lib/uniword/spreadsheetml/font_name.rb +3 -3
- data/lib/uniword/spreadsheetml/font_size.rb +3 -3
- data/lib/uniword/spreadsheetml/fonts.rb +4 -4
- data/lib/uniword/spreadsheetml/hyperlink.rb +7 -7
- data/lib/uniword/spreadsheetml/hyperlinks.rb +3 -3
- data/lib/uniword/spreadsheetml/icon_filter.rb +4 -4
- data/lib/uniword/spreadsheetml/italic.rb +3 -3
- data/lib/uniword/spreadsheetml/legacy_drawing.rb +3 -3
- data/lib/uniword/spreadsheetml/merge_cell.rb +3 -3
- data/lib/uniword/spreadsheetml/merge_cells.rb +4 -4
- data/lib/uniword/spreadsheetml/number_format.rb +4 -4
- data/lib/uniword/spreadsheetml/number_formats.rb +4 -4
- data/lib/uniword/spreadsheetml/ole_object.rb +4 -4
- data/lib/uniword/spreadsheetml/ole_objects.rb +3 -3
- data/lib/uniword/spreadsheetml/ole_size.rb +3 -3
- data/lib/uniword/spreadsheetml/pattern_fill.rb +5 -5
- data/lib/uniword/spreadsheetml/phonetic_pr.rb +10 -10
- data/lib/uniword/spreadsheetml/phonetic_properties.rb +4 -4
- data/lib/uniword/spreadsheetml/pivot_caches.rb +3 -3
- data/lib/uniword/spreadsheetml/pivot_table.rb +4 -4
- data/lib/uniword/spreadsheetml/pivot_table_definition.rb +5 -5
- data/lib/uniword/spreadsheetml/protected_ranges.rb +3 -3
- data/lib/uniword/spreadsheetml/query_table.rb +4 -4
- data/lib/uniword/spreadsheetml/rich_text_run.rb +4 -4
- data/lib/uniword/spreadsheetml/row.rb +8 -8
- data/lib/uniword/spreadsheetml/row_breaks.rb +4 -4
- data/lib/uniword/spreadsheetml/run_properties.rb +6 -6
- data/lib/uniword/spreadsheetml/scenarios.rb +5 -5
- data/lib/uniword/spreadsheetml/shared_string_table.rb +7 -6
- data/lib/uniword/spreadsheetml/sheet.rb +6 -6
- data/lib/uniword/spreadsheetml/sheet_data.rb +3 -3
- data/lib/uniword/spreadsheetml/sheet_format_pr.rb +12 -9
- data/lib/uniword/spreadsheetml/sheet_protection.rb +6 -6
- data/lib/uniword/spreadsheetml/sheet_view.rb +7 -7
- data/lib/uniword/spreadsheetml/sheet_views.rb +3 -3
- data/lib/uniword/spreadsheetml/sheets.rb +3 -3
- data/lib/uniword/spreadsheetml/sort_condition.rb +9 -9
- data/lib/uniword/spreadsheetml/sort_state.rb +6 -5
- data/lib/uniword/spreadsheetml/sparkline_group.rb +4 -4
- data/lib/uniword/spreadsheetml/sparkline_groups.rb +5 -4
- data/lib/uniword/spreadsheetml/string_item.rb +5 -5
- data/lib/uniword/spreadsheetml/table.rb +9 -9
- data/lib/uniword/spreadsheetml/table_column.rb +4 -4
- data/lib/uniword/spreadsheetml/table_columns.rb +4 -4
- data/lib/uniword/spreadsheetml/table_formula.rb +3 -3
- data/lib/uniword/spreadsheetml/table_parts.rb +4 -4
- data/lib/uniword/spreadsheetml/table_style_info.rb +7 -7
- data/lib/uniword/spreadsheetml/table_styles.rb +6 -5
- data/lib/uniword/spreadsheetml/text.rb +4 -4
- data/lib/uniword/spreadsheetml/top10.rb +6 -6
- data/lib/uniword/spreadsheetml/workbook.rb +7 -7
- data/lib/uniword/spreadsheetml/workbook_properties.rb +5 -5
- data/lib/uniword/spreadsheetml/workbook_protection.rb +4 -4
- data/lib/uniword/spreadsheetml/workbook_view.rb +5 -5
- data/lib/uniword/spreadsheetml/worksheet/sheet_format_pr.rb +12 -9
- data/lib/uniword/spreadsheetml/worksheet.rb +8 -8
- data/lib/uniword/spreadsheetml.rb +108 -105
- data/lib/uniword/streaming_parser.rb +21 -21
- data/lib/uniword/styles.rb +12 -7
- data/lib/uniword/styleset.rb +12 -12
- data/lib/uniword/stylesets/package.rb +13 -9
- data/lib/uniword/stylesets/styleset_importer.rb +10 -10
- data/lib/uniword/stylesets/yaml_styleset_loader.rb +4 -4
- data/lib/uniword/tab_stop.rb +13 -12
- data/lib/uniword/table_border.rb +16 -15
- data/lib/uniword/template/helpers/conditional_helper.rb +2 -1
- data/lib/uniword/template/helpers/filter_helper.rb +20 -17
- data/lib/uniword/template/template.rb +4 -2
- data/lib/uniword/template/template_parser.rb +5 -5
- data/lib/uniword/template/template_validator.rb +5 -4
- data/lib/uniword/template/variable_resolver.rb +10 -10
- data/lib/uniword/template_manager.rb +163 -0
- data/lib/uniword/text_box.rb +5 -4
- data/lib/uniword/text_frame.rb +16 -16
- data/lib/uniword/theme/media_file.rb +18 -12
- data/lib/uniword/theme/theme_applicator.rb +13 -12
- data/lib/uniword/theme/theme_package_reader.rb +5 -5
- data/lib/uniword/theme/theme_xml_parser.rb +67 -56
- data/lib/uniword/theme_writer.rb +1 -1
- data/lib/uniword/themes/theme.rb +29 -21
- data/lib/uniword/themes/theme_importer.rb +24 -24
- data/lib/uniword/themes/theme_transformation.rb +41 -13
- data/lib/uniword/toc/toc_entry.rb +73 -0
- data/lib/uniword/toc/toc_generator.rb +302 -0
- data/lib/uniword/toc.rb +16 -0
- data/lib/uniword/tracked_changes.rb +8 -7
- data/lib/uniword/transformation/html_element_builder.rb +445 -0
- data/lib/uniword/transformation/html_formatting_mapper.rb +245 -0
- data/lib/uniword/transformation/html_to_ooxml_converter.rb +48 -457
- data/lib/uniword/transformation/hyperlink_transformation_rule.rb +2 -2
- data/lib/uniword/transformation/image_transformation_rule.rb +1 -1
- data/lib/uniword/transformation/mhtml_element_renderer.rb +626 -0
- data/lib/uniword/transformation/mhtml_metadata_builder.rb +233 -0
- data/lib/uniword/transformation/mhtml_style_builder.rb +713 -0
- data/lib/uniword/transformation/ooxml_to_html_converter.rb +19 -19
- data/lib/uniword/transformation/ooxml_to_mhtml_converter.rb +182 -1278
- data/lib/uniword/transformation/paragraph_transformation_rule.rb +10 -10
- data/lib/uniword/transformation/run_transformation_rule.rb +1 -1
- data/lib/uniword/transformation/table_transformation_rule.rb +3 -3
- data/lib/uniword/transformation/transformation_rule_registry.rb +1 -1
- data/lib/uniword/transformation/transformer.rb +41 -46
- data/lib/uniword/transformation.rb +31 -11
- data/lib/uniword/validation/checkers/external_link_checker.rb +30 -18
- data/lib/uniword/validation/checkers/file_reference_checker.rb +25 -17
- data/lib/uniword/validation/checkers/footnote_reference_checker.rb +19 -11
- data/lib/uniword/validation/checkers/internal_link_checker.rb +19 -11
- data/lib/uniword/validation/checkers.rb +4 -2
- data/lib/uniword/validation/document_validator.rb +12 -12
- data/lib/uniword/validation/layer_validation_result.rb +3 -3
- data/lib/uniword/validation/layer_validator.rb +5 -5
- data/lib/uniword/validation/link_validator.rb +8 -8
- data/lib/uniword/validation/opc_validator.rb +229 -0
- data/lib/uniword/validation/report/layer_result.rb +59 -0
- data/lib/uniword/validation/report/terminal_formatter.rb +102 -0
- data/lib/uniword/validation/report/validation_issue.rb +56 -0
- data/lib/uniword/validation/report/verification_report.rb +66 -0
- data/lib/uniword/validation/rules/base.rb +100 -0
- data/lib/uniword/validation/rules/bookmarks_rule.rb +84 -0
- data/lib/uniword/validation/rules/content_types_coverage_rule.rb +64 -0
- data/lib/uniword/validation/rules/core_properties_namespace_rule.rb +86 -0
- data/lib/uniword/validation/rules/document_context.rb +197 -0
- data/lib/uniword/validation/rules/font_table_signature_rule.rb +55 -0
- data/lib/uniword/validation/rules/fonts_rule.rb +64 -0
- data/lib/uniword/validation/rules/footnotes_rule.rb +164 -0
- data/lib/uniword/validation/rules/headers_footers_rule.rb +91 -0
- data/lib/uniword/validation/rules/images_rule.rb +115 -0
- data/lib/uniword/validation/rules/mc_ignorable_namespace_rule.rb +82 -0
- data/lib/uniword/validation/rules/numbering_preservation_rule.rb +139 -0
- data/lib/uniword/validation/rules/numbering_rule.rb +81 -0
- data/lib/uniword/validation/rules/registry.rb +69 -0
- data/lib/uniword/validation/rules/relationship_integrity_rule.rb +85 -0
- data/lib/uniword/validation/rules/rsid_rule.rb +65 -0
- data/lib/uniword/validation/rules/section_properties_rule.rb +72 -0
- data/lib/uniword/validation/rules/settings_rule.rb +76 -0
- data/lib/uniword/validation/rules/settings_values_rule.rb +76 -0
- data/lib/uniword/validation/rules/style_references_rule.rb +98 -0
- data/lib/uniword/validation/rules/tables_rule.rb +69 -0
- data/lib/uniword/validation/rules/theme_completeness_rule.rb +72 -0
- data/lib/uniword/validation/rules/theme_rule.rb +88 -0
- data/lib/uniword/validation/rules.rb +47 -0
- data/lib/uniword/validation/schema_registry.rb +200 -0
- data/lib/uniword/validation/structural_validator.rb +116 -0
- data/lib/uniword/validation/validation_report.rb +18 -18
- data/lib/uniword/validation/validation_result.rb +3 -3
- data/lib/uniword/validation/validators/content_type_validator.rb +28 -22
- data/lib/uniword/validation/validators/document_semantics_validator.rb +42 -123
- data/lib/uniword/validation/validators/file_structure_validator.rb +10 -7
- data/lib/uniword/validation/validators/ooxml_part_validator.rb +19 -19
- data/lib/uniword/validation/validators/relationship_validator.rb +22 -21
- data/lib/uniword/validation/validators/xml_schema_validator.rb +110 -73
- data/lib/uniword/validation/validators/zip_integrity_validator.rb +8 -8
- data/lib/uniword/validation/validators.rb +10 -5
- data/lib/uniword/validation/verify_orchestrator.rb +171 -0
- data/lib/uniword/validation.rb +3 -1
- data/lib/uniword/validators/element_validator.rb +11 -9
- data/lib/uniword/validators/paragraph_validator.rb +5 -11
- data/lib/uniword/validators/table_validator.rb +6 -12
- data/lib/uniword/version.rb +1 -1
- data/lib/uniword/visitor/text_extractor.rb +6 -6
- data/lib/uniword/vml/arc.rb +13 -13
- data/lib/uniword/vml/background.rb +9 -9
- data/lib/uniword/vml/curve.rb +11 -11
- data/lib/uniword/vml/fill.rb +8 -8
- data/lib/uniword/vml/formula.rb +3 -3
- data/lib/uniword/vml/formulas.rb +3 -3
- data/lib/uniword/vml/group.rb +7 -7
- data/lib/uniword/vml/handle.rb +11 -11
- data/lib/uniword/vml/handles.rb +3 -3
- data/lib/uniword/vml/image.rb +16 -16
- data/lib/uniword/vml/imagedata.rb +14 -9
- data/lib/uniword/vml/line.rb +10 -10
- data/lib/uniword/vml/oval.rb +11 -11
- data/lib/uniword/vml/path.rb +6 -6
- data/lib/uniword/vml/polyline.rb +9 -9
- data/lib/uniword/vml/rect.rb +11 -11
- data/lib/uniword/vml/roundrect.rb +12 -12
- data/lib/uniword/vml/shadow.rb +9 -9
- data/lib/uniword/vml/shape.rb +22 -22
- data/lib/uniword/vml/shapetype.rb +10 -10
- data/lib/uniword/vml/stroke.rb +9 -9
- data/lib/uniword/vml/textbox.rb +5 -5
- data/lib/uniword/vml/textpath.rb +5 -5
- data/lib/uniword/vml/wrap.rb +4 -4
- data/lib/uniword/vml.rb +24 -24
- data/lib/uniword/vml_office/vml_anchor_lock.rb +3 -3
- data/lib/uniword/vml_office/vml_bottom.rb +4 -4
- data/lib/uniword/vml_office/vml_callout.rb +10 -10
- data/lib/uniword/vml_office/vml_clip_path.rb +4 -4
- data/lib/uniword/vml_office/vml_color_mru.rb +4 -4
- data/lib/uniword/vml_office/vml_column.rb +4 -4
- data/lib/uniword/vml_office/vml_complex.rb +3 -3
- data/lib/uniword/vml_office/vml_complex_extension.rb +4 -4
- data/lib/uniword/vml_office/vml_diagram.rb +8 -8
- data/lib/uniword/vml_office/vml_entry.rb +4 -4
- data/lib/uniword/vml_office/vml_extrusion.rb +14 -14
- data/lib/uniword/vml_office/vml_id_map.rb +4 -4
- data/lib/uniword/vml_office/vml_ink.rb +5 -5
- data/lib/uniword/vml_office/vml_left.rb +4 -4
- data/lib/uniword/vml_office/vml_lock.rb +11 -11
- data/lib/uniword/vml_office/vml_office_fill.rb +8 -8
- data/lib/uniword/vml_office/vml_proxy.rb +6 -6
- data/lib/uniword/vml_office/vml_regroup.rb +3 -3
- data/lib/uniword/vml_office/vml_relation_table.rb +4 -4
- data/lib/uniword/vml_office/vml_right.rb +4 -4
- data/lib/uniword/vml_office/vml_rule.rb +5 -5
- data/lib/uniword/vml_office/vml_rules.rb +4 -4
- data/lib/uniword/vml_office/vml_shape_defaults.rb +9 -9
- data/lib/uniword/vml_office/vml_shape_layout.rb +12 -12
- data/lib/uniword/vml_office/vml_signature_line.rb +11 -11
- data/lib/uniword/vml_office/vml_skew.rb +7 -7
- data/lib/uniword/vml_office/vml_top.rb +4 -4
- data/lib/uniword/vml_office/vml_wrap_block.rb +4 -4
- data/lib/uniword/vml_office/vml_wrap_coords.rb +3 -3
- data/lib/uniword/vml_office.rb +31 -31
- data/lib/uniword/vml_word/border_bottom.rb +7 -7
- data/lib/uniword/vml_word/border_left.rb +7 -7
- data/lib/uniword/vml_word/border_right.rb +7 -7
- data/lib/uniword/vml_word/border_top.rb +7 -7
- data/lib/uniword/vml_word.rb +4 -4
- data/lib/uniword/warnings/warning.rb +1 -1
- data/lib/uniword/warnings/warning_collector.rb +9 -9
- data/lib/uniword/warnings/warning_report.rb +6 -6
- data/lib/uniword/watermark/manager.rb +119 -0
- data/lib/uniword/watermark.rb +11 -0
- data/lib/uniword/word2010_ext/wrap.rb +4 -4
- data/lib/uniword/word2010_ext.rb +2 -2
- data/lib/uniword/word_implementation.rb +12 -4
- data/lib/uniword/word_implementation_factory.rb +1 -1
- data/lib/uniword/word_implementation_linux.rb +7 -7
- data/lib/uniword/word_implementation_macos.rb +8 -8
- data/lib/uniword/word_implementation_null.rb +1 -1
- data/lib/uniword/word_implementation_windows.rb +22 -17
- data/lib/uniword/wordprocessing_group.rb +5 -5
- data/lib/uniword/wordprocessing_shape.rb +10 -10
- data/lib/uniword/wordprocessingml/abstract_num.rb +5 -5
- data/lib/uniword/wordprocessingml/abstract_num_id.rb +3 -3
- data/lib/uniword/wordprocessingml/alternate_content.rb +4 -4
- data/lib/uniword/wordprocessingml/anchor.rb +9 -9
- data/lib/uniword/wordprocessingml/based_on.rb +3 -3
- data/lib/uniword/wordprocessingml/body.rb +38 -14
- data/lib/uniword/wordprocessingml/bookmark_end.rb +5 -3
- data/lib/uniword/wordprocessingml/bookmark_start.rb +6 -4
- data/lib/uniword/wordprocessingml/border.rb +7 -7
- data/lib/uniword/wordprocessingml/break.rb +4 -4
- data/lib/uniword/wordprocessingml/carriage_return.rb +2 -2
- data/lib/uniword/wordprocessingml/character_style.rb +64 -63
- data/lib/uniword/wordprocessingml/choice.rb +4 -4
- data/lib/uniword/wordprocessingml/cnf_style.rb +15 -15
- data/lib/uniword/wordprocessingml/columns.rb +5 -5
- data/lib/uniword/wordprocessingml/comment_range_end.rb +3 -3
- data/lib/uniword/wordprocessingml/comment_range_start.rb +3 -3
- data/lib/uniword/wordprocessingml/comment_reference.rb +3 -3
- data/lib/uniword/wordprocessingml/compat.rb +7 -6
- data/lib/uniword/wordprocessingml/compat_setting.rb +5 -5
- data/lib/uniword/wordprocessingml/deleted_text.rb +3 -3
- data/lib/uniword/wordprocessingml/doc_defaults.rb +4 -4
- data/lib/uniword/wordprocessingml/doc_grid.rb +5 -5
- data/lib/uniword/wordprocessingml/doc_pr.rb +5 -5
- data/lib/uniword/wordprocessingml/document_root/feature_facade.rb +317 -0
- data/lib/uniword/wordprocessingml/document_root.rb +145 -30
- data/lib/uniword/wordprocessingml/drawing.rb +4 -4
- data/lib/uniword/wordprocessingml/emboss.rb +3 -3
- data/lib/uniword/wordprocessingml/endnote.rb +5 -5
- data/lib/uniword/wordprocessingml/endnote_ref.rb +2 -2
- data/lib/uniword/wordprocessingml/endnote_reference.rb +3 -3
- data/lib/uniword/wordprocessingml/endnotes.rb +5 -4
- data/lib/uniword/wordprocessingml/extent.rb +4 -4
- data/lib/uniword/wordprocessingml/fallback.rb +4 -4
- data/lib/uniword/wordprocessingml/field_char.rb +4 -4
- data/lib/uniword/wordprocessingml/font.rb +36 -26
- data/lib/uniword/wordprocessingml/font_table.rb +23 -5
- data/lib/uniword/wordprocessingml/fonts.rb +3 -3
- data/lib/uniword/wordprocessingml/footer.rb +4 -4
- data/lib/uniword/wordprocessingml/footer_reference.rb +6 -8
- data/lib/uniword/wordprocessingml/footnote.rb +5 -5
- data/lib/uniword/wordprocessingml/footnote_ref.rb +2 -2
- data/lib/uniword/wordprocessingml/footnote_reference.rb +3 -3
- data/lib/uniword/wordprocessingml/footnotes.rb +5 -4
- data/lib/uniword/wordprocessingml/graphic.rb +3 -3
- data/lib/uniword/wordprocessingml/graphic_data.rb +3 -3
- data/lib/uniword/wordprocessingml/grid_after.rb +3 -3
- data/lib/uniword/wordprocessingml/grid_before.rb +3 -3
- data/lib/uniword/wordprocessingml/grid_col.rb +3 -3
- data/lib/uniword/wordprocessingml/header.rb +4 -4
- data/lib/uniword/wordprocessingml/header_reference.rb +6 -8
- data/lib/uniword/wordprocessingml/hide_mark.rb +20 -0
- data/lib/uniword/wordprocessingml/hyperlink.rb +14 -32
- data/lib/uniword/wordprocessingml/imprint.rb +3 -3
- data/lib/uniword/wordprocessingml/inline.rb +5 -5
- data/lib/uniword/wordprocessingml/instr_text.rb +7 -6
- data/lib/uniword/wordprocessingml/last_rendered_page_break.rb +2 -2
- data/lib/uniword/wordprocessingml/latent_styles.rb +16 -16
- data/lib/uniword/wordprocessingml/level.rb +50 -16
- data/lib/uniword/wordprocessingml/link.rb +3 -3
- data/lib/uniword/wordprocessingml/lvl_jc.rb +3 -3
- data/lib/uniword/wordprocessingml/lvl_text.rb +3 -3
- data/lib/uniword/wordprocessingml/mc_requires.rb +1 -1
- data/lib/uniword/wordprocessingml/multi_level_type.rb +3 -3
- data/lib/uniword/wordprocessingml/next.rb +3 -3
- data/lib/uniword/wordprocessingml/no_break_hyphen.rb +2 -2
- data/lib/uniword/wordprocessingml/no_wrap.rb +2 -2
- data/lib/uniword/wordprocessingml/num.rb +7 -4
- data/lib/uniword/wordprocessingml/num_fmt.rb +3 -3
- data/lib/uniword/wordprocessingml/numbering.rb +29 -5
- data/lib/uniword/wordprocessingml/numbering_configuration.rb +29 -9
- data/lib/uniword/wordprocessingml/numbering_definition.rb +37 -27
- data/lib/uniword/wordprocessingml/numbering_elements.rb +14 -14
- data/lib/uniword/wordprocessingml/numbering_instance.rb +40 -8
- data/lib/uniword/wordprocessingml/numbering_level.rb +9 -8
- data/lib/uniword/wordprocessingml/object.rb +4 -4
- data/lib/uniword/wordprocessingml/outline.rb +3 -3
- data/lib/uniword/wordprocessingml/p_pr_default.rb +3 -3
- data/lib/uniword/wordprocessingml/page_margins.rb +9 -9
- data/lib/uniword/wordprocessingml/page_numbering.rb +6 -4
- data/lib/uniword/wordprocessingml/page_size.rb +7 -5
- data/lib/uniword/wordprocessingml/paragraph.rb +33 -75
- data/lib/uniword/wordprocessingml/paragraph_borders.rb +9 -11
- data/lib/uniword/wordprocessingml/paragraph_properties.rb +108 -119
- data/lib/uniword/wordprocessingml/paragraph_style.rb +66 -59
- data/lib/uniword/wordprocessingml/pict.rb +3 -3
- data/lib/uniword/wordprocessingml/picture.rb +4 -4
- data/lib/uniword/wordprocessingml/position_tab.rb +5 -5
- data/lib/uniword/wordprocessingml/proof_err.rb +3 -3
- data/lib/uniword/wordprocessingml/r_pr_default.rb +3 -3
- data/lib/uniword/wordprocessingml/recipient_data.rb +5 -5
- data/lib/uniword/wordprocessingml/recipients.rb +5 -4
- data/lib/uniword/wordprocessingml/run.rb +34 -28
- data/lib/uniword/wordprocessingml/run_properties/accessors.rb +74 -0
- data/lib/uniword/wordprocessingml/run_properties/conversion.rb +167 -0
- data/lib/uniword/wordprocessingml/run_properties/predicates.rb +96 -0
- data/lib/uniword/wordprocessingml/run_properties/yaml_transforms.rb +205 -0
- data/lib/uniword/wordprocessingml/run_properties.rb +89 -598
- data/lib/uniword/wordprocessingml/section_properties.rb +29 -19
- data/lib/uniword/wordprocessingml/semi_hidden.rb +3 -3
- data/lib/uniword/wordprocessingml/settings.rb +174 -136
- data/lib/uniword/wordprocessingml/shading.rb +7 -7
- data/lib/uniword/wordprocessingml/shadow.rb +3 -3
- data/lib/uniword/wordprocessingml/shape.rb +5 -5
- data/lib/uniword/wordprocessingml/simple_field.rb +5 -5
- data/lib/uniword/wordprocessingml/simple_pos.rb +4 -4
- data/lib/uniword/wordprocessingml/soft_hyphen.rb +2 -2
- data/lib/uniword/wordprocessingml/start.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/alias.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/appearance.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/bibliography.rb +2 -2
- data/lib/uniword/wordprocessingml/structured_document_tag/content.rb +19 -10
- data/lib/uniword/wordprocessingml/structured_document_tag/data_binding.rb +6 -5
- data/lib/uniword/wordprocessingml/structured_document_tag/date.rb +16 -15
- data/lib/uniword/wordprocessingml/structured_document_tag/doc_part_obj.rb +11 -10
- data/lib/uniword/wordprocessingml/structured_document_tag/end_properties.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/id.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/placeholder.rb +5 -5
- data/lib/uniword/wordprocessingml/structured_document_tag/run_properties.rb +31 -31
- data/lib/uniword/wordprocessingml/structured_document_tag/showing_placeholder_header.rb +2 -2
- data/lib/uniword/wordprocessingml/structured_document_tag/tag.rb +3 -3
- data/lib/uniword/wordprocessingml/structured_document_tag/temporary.rb +2 -2
- data/lib/uniword/wordprocessingml/structured_document_tag/text.rb +5 -2
- data/lib/uniword/wordprocessingml/structured_document_tag.rb +15 -10
- data/lib/uniword/wordprocessingml/structured_document_tag_properties.rb +17 -16
- data/lib/uniword/wordprocessingml/style.rb +48 -171
- data/lib/uniword/wordprocessingml/style_name.rb +3 -3
- data/lib/uniword/wordprocessingml/styles/list_style_definition.rb +2 -2
- data/lib/uniword/wordprocessingml/styles/paragraph_style_definition.rb +3 -2
- data/lib/uniword/wordprocessingml/styles/style_definition.rb +1 -1
- data/lib/uniword/wordprocessingml/styles/style_library.rb +1 -1
- data/lib/uniword/wordprocessingml/styles/table_style_definition.rb +7 -5
- data/lib/uniword/wordprocessingml/styles.rb +4 -2
- data/lib/uniword/wordprocessingml/styles_configuration.rb +47 -19
- data/lib/uniword/wordprocessingml/symbol.rb +4 -4
- data/lib/uniword/wordprocessingml/tab.rb +4 -4
- data/lib/uniword/wordprocessingml/tab_stop.rb +5 -37
- data/lib/uniword/wordprocessingml/table.rb +8 -7
- data/lib/uniword/wordprocessingml/table_borders.rb +8 -8
- data/lib/uniword/wordprocessingml/table_cell.rb +8 -38
- data/lib/uniword/wordprocessingml/table_cell_borders.rb +6 -6
- data/lib/uniword/wordprocessingml/table_cell_margin.rb +7 -7
- data/lib/uniword/wordprocessingml/table_cell_properties.rb +14 -28
- data/lib/uniword/wordprocessingml/table_grid.rb +3 -3
- data/lib/uniword/wordprocessingml/table_properties.rb +18 -253
- data/lib/uniword/wordprocessingml/table_row.rb +9 -25
- data/lib/uniword/wordprocessingml/table_row_properties.rb +13 -9
- data/lib/uniword/wordprocessingml/table_style.rb +3 -3
- data/lib/uniword/wordprocessingml/text.rb +6 -13
- data/lib/uniword/wordprocessingml/text_box_content.rb +7 -6
- data/lib/uniword/wordprocessingml/text_direction.rb +3 -3
- data/lib/uniword/wordprocessingml/title_pg.rb +20 -0
- data/lib/uniword/wordprocessingml/tr_height.rb +4 -4
- data/lib/uniword/wordprocessingml/ui_priority.rb +3 -3
- data/lib/uniword/wordprocessingml/val_int.rb +3 -3
- data/lib/uniword/wordprocessingml/w14_attributes.rb +1 -1
- data/lib/uniword/wordprocessingml/web_settings.rb +30 -7
- data/lib/uniword/wordprocessingml/width_after.rb +4 -4
- data/lib/uniword/wordprocessingml/width_before.rb +4 -4
- data/lib/uniword/wordprocessingml/zoom.rb +3 -3
- data/lib/uniword/wordprocessingml.rb +209 -197
- data/lib/uniword/wordprocessingml_2010/checkbox.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/checked_state.rb +4 -4
- data/lib/uniword/wordprocessingml_2010/conditional_format_style.rb +7 -7
- data/lib/uniword/wordprocessingml_2010/conflict_deletion.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/conflict_insertion.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/conflict_mode.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/custom_xml_conflict_insertion.rb +4 -4
- data/lib/uniword/wordprocessingml_2010/doc_id.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/doc_part_gallery.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/doc_part_obj.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/entity_picker.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/ligatures.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/number_form.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/para_id.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/props3d.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/sdt_content.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/sdt_properties.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/structured_document_tag.rb +4 -4
- data/lib/uniword/wordprocessingml_2010/text_fill.rb +5 -5
- data/lib/uniword/wordprocessingml_2010/text_glow.rb +4 -4
- data/lib/uniword/wordprocessingml_2010/text_id.rb +3 -3
- data/lib/uniword/wordprocessingml_2010/text_outline.rb +6 -6
- data/lib/uniword/wordprocessingml_2010/text_reflection.rb +6 -6
- data/lib/uniword/wordprocessingml_2010/text_shadow.rb +6 -6
- data/lib/uniword/wordprocessingml_2010/unchecked_state.rb +4 -4
- data/lib/uniword/wordprocessingml_2010.rb +30 -26
- data/lib/uniword/wordprocessingml_2013/chart_props.rb +4 -4
- data/lib/uniword/wordprocessingml_2013/chart_tracking_ref_based.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/comment_author.rb +5 -5
- data/lib/uniword/wordprocessingml_2013/comment_collapsed.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/comment_done.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/comment_ex.rb +5 -5
- data/lib/uniword/wordprocessingml_2013/comments_ids.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/doc_part_anchor.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/document_part.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/footnote_columns.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/people_group.rb +4 -4
- data/lib/uniword/wordprocessingml_2013/person.rb +5 -5
- data/lib/uniword/wordprocessingml_2013/presence_info.rb +4 -4
- data/lib/uniword/wordprocessingml_2013/repeating_section.rb +4 -4
- data/lib/uniword/wordprocessingml_2013/repeating_section_item.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/sdt_appearance.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/sdt_color.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/sdt_data_binding.rb +4 -4
- data/lib/uniword/wordprocessingml_2013/web_extension.rb +3 -3
- data/lib/uniword/wordprocessingml_2013/web_extension_linked.rb +3 -3
- data/lib/uniword/wordprocessingml_2013.rb +26 -21
- data/lib/uniword/wordprocessingml_2016/cell_rsid.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/chart_color_style.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/chart_style2016.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/comments_ext.rb +4 -4
- data/lib/uniword/wordprocessingml_2016/conflict_mode2016.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/content_id.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/data_binding2016.rb +5 -5
- data/lib/uniword/wordprocessingml_2016/extension.rb +4 -4
- data/lib/uniword/wordprocessingml_2016/extension_list.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/persistent_document_id.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/row_rsid.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/sdt_appearance2016.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/separator_extension.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/table_rsid.rb +3 -3
- data/lib/uniword/wordprocessingml_2016/web_video_property.rb +4 -4
- data/lib/uniword/wordprocessingml_2016.rb +21 -16
- data/lib/uniword/wp_drawing/align.rb +3 -3
- data/lib/uniword/wp_drawing/allow_overlap.rb +3 -3
- data/lib/uniword/wp_drawing/anchor.rb +29 -27
- data/lib/uniword/wp_drawing/behind_doc.rb +3 -3
- data/lib/uniword/wp_drawing/c_nv_graphic_frame_pr.rb +5 -5
- data/lib/uniword/wp_drawing/doc_pr.rb +7 -7
- data/lib/uniword/wp_drawing/doc_properties.rb +8 -6
- data/lib/uniword/wp_drawing/effect_extent.rb +6 -6
- data/lib/uniword/wp_drawing/extent.rb +4 -4
- data/lib/uniword/wp_drawing/hidden.rb +3 -3
- data/lib/uniword/wp_drawing/inline.rb +16 -11
- data/lib/uniword/wp_drawing/layout_in_cell.rb +3 -3
- data/lib/uniword/wp_drawing/line_to.rb +4 -4
- data/lib/uniword/wp_drawing/locked.rb +3 -3
- data/lib/uniword/wp_drawing/non_visual_drawing_props.rb +6 -4
- data/lib/uniword/wp_drawing/pos_offset.rb +3 -3
- data/lib/uniword/wp_drawing/position_h.rb +5 -5
- data/lib/uniword/wp_drawing/position_v.rb +5 -5
- data/lib/uniword/wp_drawing/relative_height.rb +3 -3
- data/lib/uniword/wp_drawing/simple_pos.rb +4 -4
- data/lib/uniword/wp_drawing/size_rel_h.rb +4 -4
- data/lib/uniword/wp_drawing/size_rel_v.rb +4 -4
- data/lib/uniword/wp_drawing/start.rb +4 -4
- data/lib/uniword/wp_drawing/wrap_none.rb +2 -2
- data/lib/uniword/wp_drawing/wrap_polygon.rb +5 -5
- data/lib/uniword/wp_drawing/wrap_square.rb +8 -8
- data/lib/uniword/wp_drawing/wrap_through.rb +6 -6
- data/lib/uniword/wp_drawing/wrap_tight.rb +6 -6
- data/lib/uniword/wp_drawing/wrap_top_and_bottom.rb +5 -5
- data/lib/uniword/wp_drawing.rb +30 -29
- data/lib/uniword.rb +139 -121
- metadata +583 -41
- data/lib/uniword/document_properties/app_version.rb +0 -22
- data/lib/uniword/document_properties/application.rb +0 -22
- data/lib/uniword/document_properties/bool_value.rb +0 -22
- data/lib/uniword/document_properties/company.rb +0 -22
- data/lib/uniword/document_properties/custom_properties.rb +0 -23
- data/lib/uniword/document_properties/custom_property.rb +0 -37
- data/lib/uniword/document_properties/doc_security.rb +0 -22
- data/lib/uniword/document_properties/extended_properties.rb +0 -41
- data/lib/uniword/document_properties/file_time.rb +0 -22
- data/lib/uniword/document_properties/heading_pairs.rb +0 -23
- data/lib/uniword/document_properties/hyperlinks_changed.rb +0 -22
- data/lib/uniword/document_properties/i4.rb +0 -22
- data/lib/uniword/document_properties/links_up_to_date.rb +0 -22
- data/lib/uniword/document_properties/lpw_str.rb +0 -22
- data/lib/uniword/document_properties/manager.rb +0 -22
- data/lib/uniword/document_properties/scale_crop.rb +0 -22
- data/lib/uniword/document_properties/shared_doc.rb +0 -22
- data/lib/uniword/document_properties/titles_of_parts.rb +0 -23
- data/lib/uniword/document_properties/variant.rb +0 -25
- data/lib/uniword/document_properties/vector.rb +0 -27
- data/lib/uniword/document_properties.rb +0 -32
- data/lib/uniword/metadata/metadata.rb +0 -345
- data/lib/uniword/metadata/metadata_extractor.rb +0 -403
- data/lib/uniword/metadata/metadata_index.rb +0 -455
- data/lib/uniword/metadata/metadata_manager.rb +0 -334
- data/lib/uniword/metadata/metadata_updater.rb +0 -243
- data/lib/uniword/metadata/metadata_validator.rb +0 -326
- data/lib/uniword/metadata.rb +0 -12
- data/lib/uniword/ooxml/docx_package.rb +0 -989
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'nokogiri'
|
|
4
|
-
|
|
5
3
|
module Uniword
|
|
6
4
|
module Transformation
|
|
7
5
|
# Converts OOXML DocumentRoot to Mhtml::Document for full-fidelity MHT output.
|
|
@@ -9,20 +7,117 @@ module Uniword
|
|
|
9
7
|
# This is COMPLETELY SEPARATE from OoxmlToHtmlConverter which produces HTML5.
|
|
10
8
|
# This converter produces Word HTML4 with proper MIME multipart structure.
|
|
11
9
|
#
|
|
10
|
+
# Delegates to:
|
|
11
|
+
# - MhtmlStyleBuilder for static style templates
|
|
12
|
+
# - MhtmlElementRenderer for element-to-HTML conversion
|
|
13
|
+
# - MhtmlMetadataBuilder for metadata, properties, and file parts
|
|
14
|
+
#
|
|
12
15
|
# @example Transform DOCX to MHT
|
|
13
|
-
# docx_doc = Uniword::
|
|
16
|
+
# docx_doc = Uniword::Docx::Package.from_file("document.docx")
|
|
14
17
|
# mhtml_doc = OoxmlToMhtmlConverter.document_to_mht(docx_doc)
|
|
15
18
|
# output = Uniword::Infrastructure::MimePackager.new(mhtml_doc).build_mime_content
|
|
16
19
|
#
|
|
17
20
|
class OoxmlToMhtmlConverter
|
|
21
|
+
# Static MsoNormalTable CSS (used in wrap_html_document head)
|
|
22
|
+
MSO_NORMAL_TABLE_STYLE = <<~CSS
|
|
23
|
+
<!--[if gte mso 10]>
|
|
24
|
+
<style>
|
|
25
|
+
/* Style Definitions */
|
|
26
|
+
table.MsoNormalTable
|
|
27
|
+
{mso-style-name:"Table Normal";
|
|
28
|
+
mso-tstyle-rowband-size:0;
|
|
29
|
+
mso-tstyle-colband-size:0;
|
|
30
|
+
mso-style-noshow:yes;
|
|
31
|
+
mso-style-priority:99;
|
|
32
|
+
mso-style-parent:"";
|
|
33
|
+
mso-padding-alt:0in 5.4pt 0in 5.4pt;
|
|
34
|
+
mso-para-margin-top:0in;
|
|
35
|
+
mso-para-margin-right:0in;
|
|
36
|
+
mso-para-margin-bottom:8.0pt;
|
|
37
|
+
mso-para-margin-left:0in;
|
|
38
|
+
line-height:115%;
|
|
39
|
+
mso-pagination:widow-orphan;
|
|
40
|
+
font-size:12.0pt;
|
|
41
|
+
font-family:"Aptos",sans-serif;
|
|
42
|
+
mso-ascii-font-family:Aptos;
|
|
43
|
+
mso-ascii-theme-font:minor-latin;
|
|
44
|
+
mso-hansi-font-family:Aptos;
|
|
45
|
+
mso-hansi-theme-font:minor-latin;
|
|
46
|
+
mso-font-kerning:1.0pt;
|
|
47
|
+
mso-ligatures:standardcontextual;}
|
|
48
|
+
</style>
|
|
49
|
+
<![endif]-->
|
|
50
|
+
CSS
|
|
51
|
+
|
|
52
|
+
# Static VML behavior style block
|
|
53
|
+
VML_BEHAVIOR_STYLE = <<~CSS
|
|
54
|
+
<!--[if !mso]>
|
|
55
|
+
<style>
|
|
56
|
+
v:* {behavior:url(#default#VML);}
|
|
57
|
+
o:* {behavior:url(#default#VML);}
|
|
58
|
+
w:* {behavior:url(#default#VML);}
|
|
59
|
+
.shape {behavior:url(#default#VML);}
|
|
60
|
+
</style>
|
|
61
|
+
<![endif]-->
|
|
62
|
+
CSS
|
|
63
|
+
|
|
64
|
+
# Static WordDocument XML block (compatibility settings + MathPr)
|
|
65
|
+
WORD_DOCUMENT_XML = <<~XML
|
|
66
|
+
<!--[if gte mso 9]><xml>
|
|
67
|
+
<w:WordDocument xmlns:w="urn:schemas-microsoft-com:office:word">
|
|
68
|
+
<w:TrackMoves>false</w:TrackMoves>
|
|
69
|
+
<w:TrackFormatting/>
|
|
70
|
+
<w:PunctuationKerning/>
|
|
71
|
+
<w:ValidateAgainstSchemas/>
|
|
72
|
+
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
|
|
73
|
+
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
|
|
74
|
+
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
|
|
75
|
+
<w:DoNotPromoteQF/>
|
|
76
|
+
<w:LidThemeOther>en-US</w:LidThemeOther>
|
|
77
|
+
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
|
|
78
|
+
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
|
|
79
|
+
<w:Compatibility>
|
|
80
|
+
<w:BreakWrappedTables/>
|
|
81
|
+
<w:SnapToGridInCell/>
|
|
82
|
+
<w:WrapTextWithPunct/>
|
|
83
|
+
<w:UseAsianBreakRules/>
|
|
84
|
+
<w:DontGrowAutofit/>
|
|
85
|
+
<w:SplitPgBreakAndParaMark/>
|
|
86
|
+
<w:EnableOpenTypeKerning/>
|
|
87
|
+
<w:DontFlipMirrorIndents/>
|
|
88
|
+
<w:OverrideTableStyleHps/>
|
|
89
|
+
<w:UseFELayout/>
|
|
90
|
+
</w:Compatibility>
|
|
91
|
+
<w:MathPr>
|
|
92
|
+
<w:MathFont w:val="Cambria Math"/>
|
|
93
|
+
<w:brkBin w:val="before"/>
|
|
94
|
+
<w:brkBinSub w:val="--"/>
|
|
95
|
+
<w:smallFrac w:val="off"/>
|
|
96
|
+
<w:dispDef/>
|
|
97
|
+
<w:lMargin w:val="0"/>
|
|
98
|
+
<w:rMargin w:val="0"/>
|
|
99
|
+
<w:defJc w:val="centerGroup"/>
|
|
100
|
+
<w:wrapIndent w:val="1440"/>
|
|
101
|
+
<w:intLim w:val="subSup"/>
|
|
102
|
+
<w:naryLim w:val="undOvr"/>
|
|
103
|
+
</w:MathPr>
|
|
104
|
+
</w:WordDocument>
|
|
105
|
+
</xml><![endif]-->
|
|
106
|
+
XML
|
|
107
|
+
|
|
108
|
+
# Static OfficeDocumentSettings XML
|
|
109
|
+
OFFICE_SETTINGS_XML = <<~XML
|
|
110
|
+
<o:OfficeDocumentSettings xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
111
|
+
<o:AllowPNG/>
|
|
112
|
+
</o:OfficeDocumentSettings>
|
|
113
|
+
XML
|
|
114
|
+
|
|
18
115
|
# Convert OOXML DocumentRoot to Mhtml::Document
|
|
19
116
|
#
|
|
20
117
|
# @param document [Uniword::Wordprocessingml::DocumentRoot] OOXML document
|
|
21
118
|
# @param core_properties [Uniword::Ooxml::CoreProperties] Optional core properties
|
|
22
|
-
# (if not provided, uses document.core_properties which may be lazily initialized)
|
|
23
119
|
# @param relationships [Uniword::Ooxml::Relationships::PackageRelationships] Optional relationships
|
|
24
|
-
# @param document_name [String] Optional document name
|
|
25
|
-
# extracts from relationships or defaults to 'document'
|
|
120
|
+
# @param document_name [String] Optional document name
|
|
26
121
|
# @return [Uniword::Mhtml::Document] MHT document model
|
|
27
122
|
def self.document_to_mht(document, core_properties = nil, relationships = nil,
|
|
28
123
|
document_name = nil)
|
|
@@ -36,17 +131,23 @@ module Uniword
|
|
|
36
131
|
# @param core_properties [Uniword::Ooxml::CoreProperties] Optional core properties
|
|
37
132
|
# @param relationships [Uniword::Ooxml::Relationships::PackageRelationships] Optional relationships
|
|
38
133
|
# @return [String] Word HTML4 body content
|
|
39
|
-
def self.document_to_html_body(document, core_properties = nil,
|
|
134
|
+
def self.document_to_html_body(document, core_properties = nil,
|
|
135
|
+
relationships = nil)
|
|
40
136
|
converter = new(document, core_properties, relationships)
|
|
41
137
|
converter.build_html_body
|
|
42
138
|
end
|
|
43
139
|
|
|
44
|
-
def initialize(document, core_properties = nil, relationships = nil,
|
|
140
|
+
def initialize(document, core_properties = nil, relationships = nil,
|
|
141
|
+
document_name = nil)
|
|
45
142
|
@document = document
|
|
46
143
|
@relationships = relationships
|
|
47
|
-
@provided_document_name = document_name
|
|
48
|
-
# Use provided core_properties if given, otherwise use document's (which may be lazily initialized)
|
|
49
144
|
@core_properties = core_properties
|
|
145
|
+
|
|
146
|
+
@metadata_builder = MhtmlMetadataBuilder.new(
|
|
147
|
+
document, core_properties, relationships, document_name
|
|
148
|
+
)
|
|
149
|
+
@element_renderer = MhtmlElementRenderer.new(relationships,
|
|
150
|
+
document.image_parts)
|
|
50
151
|
end
|
|
51
152
|
|
|
52
153
|
# Get the core properties to use (provided or from document)
|
|
@@ -54,6 +155,11 @@ module Uniword
|
|
|
54
155
|
@core_properties || @document.core_properties
|
|
55
156
|
end
|
|
56
157
|
|
|
158
|
+
# Get document name via metadata builder
|
|
159
|
+
def document_name
|
|
160
|
+
@metadata_builder.document_name
|
|
161
|
+
end
|
|
162
|
+
|
|
57
163
|
# Build the complete Mhtml::Document
|
|
58
164
|
def build_mhtml_document
|
|
59
165
|
mhtml_doc = Uniword::Mhtml::Document.new
|
|
@@ -61,8 +167,8 @@ module Uniword
|
|
|
61
167
|
# Build HTML content
|
|
62
168
|
html_content = build_html_body
|
|
63
169
|
html_part = Uniword::Mhtml::HtmlPart.new
|
|
64
|
-
html_part.content_type =
|
|
65
|
-
html_part.content_transfer_encoding =
|
|
170
|
+
html_part.content_type = "text/html"
|
|
171
|
+
html_part.content_transfer_encoding = "quoted-printable"
|
|
66
172
|
html_part.raw_content = html_content
|
|
67
173
|
html_part.content_location = "file:///C:/D057922B/#{document_name}.htm"
|
|
68
174
|
|
|
@@ -70,21 +176,19 @@ module Uniword
|
|
|
70
176
|
mhtml_doc.parts << html_part
|
|
71
177
|
|
|
72
178
|
# Build metadata
|
|
73
|
-
mhtml_doc.document_properties = build_document_properties
|
|
179
|
+
mhtml_doc.document_properties = @metadata_builder.build_document_properties
|
|
74
180
|
|
|
75
181
|
# Build filelist.xml
|
|
76
|
-
filelist_part = build_filelist_part
|
|
182
|
+
filelist_part = @metadata_builder.build_filelist_part
|
|
77
183
|
mhtml_doc.parts << filelist_part if filelist_part
|
|
78
184
|
|
|
79
185
|
# Build image parts from document.image_parts
|
|
80
|
-
|
|
81
|
-
image_parts.each do |image_part|
|
|
186
|
+
@metadata_builder.build_image_parts.each do |image_part|
|
|
82
187
|
mhtml_doc.parts << image_part
|
|
83
188
|
end
|
|
84
189
|
|
|
85
190
|
# Generate deterministic boundary based on document name
|
|
86
|
-
|
|
87
|
-
hash = document_name.gsub(/[^a-zA-Z0-9]/, '').upcase[0..7] || 'DOC'
|
|
191
|
+
hash = document_name.gsub(/[^a-zA-Z0-9]/, "").upcase[0..7] || "DOC"
|
|
88
192
|
mhtml_doc.boundary = "----=_NextPart_01DC60F8.#{hash}"
|
|
89
193
|
|
|
90
194
|
mhtml_doc
|
|
@@ -93,95 +197,26 @@ module Uniword
|
|
|
93
197
|
# Build the HTML body content
|
|
94
198
|
def build_html_body
|
|
95
199
|
body = @document.body
|
|
96
|
-
return
|
|
200
|
+
return "" unless body
|
|
97
201
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
end.join("\n")
|
|
202
|
+
# Split body elements into sections based on paragraph section_properties
|
|
203
|
+
sections = split_into_sections(body.elements)
|
|
101
204
|
|
|
102
|
-
wrap_html_document(
|
|
205
|
+
wrap_html_document(sections)
|
|
103
206
|
end
|
|
104
207
|
|
|
105
208
|
private
|
|
106
209
|
|
|
107
|
-
# Build document properties from core properties
|
|
108
|
-
def build_document_properties
|
|
109
|
-
props = Uniword::Mhtml::Metadata::DocumentProperties.new
|
|
110
|
-
cp = core_properties
|
|
111
|
-
|
|
112
|
-
if cp
|
|
113
|
-
props.author = cp.creator.to_s if cp.respond_to?(:creator) && cp.creator
|
|
114
|
-
# Use .value for date types, not .to_s (which returns object inspect)
|
|
115
|
-
props.created = cp.created.value.to_s if cp.respond_to?(:created) && cp.created
|
|
116
|
-
if cp.respond_to?(:last_modified_by) && cp.last_modified_by
|
|
117
|
-
props.last_author = cp.last_modified_by.to_s
|
|
118
|
-
end
|
|
119
|
-
props.last_saved = cp.modified.value.to_s if cp.respond_to?(:modified) && cp.modified
|
|
120
|
-
props.pages = cp.pages.to_s if cp.respond_to?(:pages) && cp.pages
|
|
121
|
-
props.words = cp.words.to_s if cp.respond_to?(:words) && cp.words
|
|
122
|
-
props.characters = cp.characters.to_s if cp.respond_to?(:characters) && cp.characters
|
|
123
|
-
props.application = 'Microsoft Word'
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
props
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
# Build filelist.xml part
|
|
130
|
-
def build_filelist_part
|
|
131
|
-
# Build file list entries for images
|
|
132
|
-
image_entries = if @document.image_parts && !@document.image_parts.empty?
|
|
133
|
-
@document.image_parts.map do |_r_id, image_data|
|
|
134
|
-
%(<o:File HRef="#{image_data[:target]}"/>)
|
|
135
|
-
end.join("\n ")
|
|
136
|
-
else
|
|
137
|
-
''
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
filelist_xml = <<~XML
|
|
141
|
-
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
142
|
-
<o:MainFile HRef="../#{document_name}.htm"/>
|
|
143
|
-
<o:File HRef="filelist.xml"/>
|
|
144
|
-
#{image_entries}
|
|
145
|
-
</xml>
|
|
146
|
-
XML
|
|
147
|
-
|
|
148
|
-
part = Uniword::Mhtml::XmlPart.new
|
|
149
|
-
part.content_type = 'text/xml; charset="utf-8"'
|
|
150
|
-
part.content_transfer_encoding = 'quoted-printable'
|
|
151
|
-
part.raw_content = filelist_xml
|
|
152
|
-
part.content_location = "file:///C:/D057922B/#{document_name}.fld/filelist.xml"
|
|
153
|
-
|
|
154
|
-
part
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
# Build image parts from document.image_parts
|
|
158
|
-
#
|
|
159
|
-
# Each image in document.image_parts is a hash with:
|
|
160
|
-
# - data: binary image content
|
|
161
|
-
# - content_type: MIME type (e.g., 'image/png')
|
|
162
|
-
# - target: filename (e.g., 'image1.png')
|
|
163
|
-
#
|
|
164
|
-
# @return [Array<Uniword::Mhtml::ImagePart>] Array of image MIME parts
|
|
165
|
-
def build_image_parts
|
|
166
|
-
return [] unless @document.image_parts && !@document.image_parts.empty?
|
|
167
|
-
|
|
168
|
-
@document.image_parts.map do |_r_id, image_data|
|
|
169
|
-
part = Uniword::Mhtml::ImagePart.new
|
|
170
|
-
part.content_type = image_data[:content_type] || 'image/png'
|
|
171
|
-
part.content_transfer_encoding = 'base64'
|
|
172
|
-
part.raw_content = image_data[:data] # Binary data - MimePackager handles base64 encoding
|
|
173
|
-
# Use Content-Location matching the target filename in the MHT structure
|
|
174
|
-
part.content_location = "file:///C:/D057922B/#{document_name}.fld/#{image_data[:target]}"
|
|
175
|
-
part
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
|
|
179
210
|
# Wrap HTML content in full Word HTML document
|
|
180
|
-
def wrap_html_document(
|
|
181
|
-
|
|
182
|
-
meta_tags = build_meta_tags
|
|
183
|
-
link_tags = build_link_tags
|
|
184
|
-
|
|
211
|
+
def wrap_html_document(sections)
|
|
212
|
+
name = document_name
|
|
213
|
+
meta_tags = @metadata_builder.build_meta_tags
|
|
214
|
+
link_tags = @metadata_builder.build_link_tags
|
|
215
|
+
metadata_comments = @metadata_builder.build_metadata_comments
|
|
216
|
+
custom_props = @metadata_builder.build_custom_document_properties
|
|
217
|
+
|
|
218
|
+
# Build body content from sections
|
|
219
|
+
body_content = build_sections_html(sections)
|
|
185
220
|
|
|
186
221
|
<<~HTML
|
|
187
222
|
<html xmlns:o="urn:schemas-microsoft-com:office:office"
|
|
@@ -195,1211 +230,80 @@ module Uniword
|
|
|
195
230
|
<o:DocumentProperties xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
196
231
|
#{metadata_comments}
|
|
197
232
|
</o:DocumentProperties>
|
|
198
|
-
#{
|
|
199
|
-
|
|
200
|
-
<o:AllowPNG/>
|
|
201
|
-
</o:OfficeDocumentSettings>
|
|
202
|
-
</xml><![endif]-->
|
|
203
|
-
<link rel=themeData href="#{document_name}.fld/themedata.thmx">
|
|
204
|
-
<link rel=colorSchemeMapping href="#{document_name}.fld/colorschememapping.xml">
|
|
205
|
-
<!--[if gte mso 9]><xml>
|
|
206
|
-
<w:WordDocument xmlns:w="urn:schemas-microsoft-com:office:word">
|
|
207
|
-
<w:TrackMoves>false</w:TrackMoves>
|
|
208
|
-
<w:TrackFormatting/>
|
|
209
|
-
<w:PunctuationKerning/>
|
|
210
|
-
<w:ValidateAgainstSchemas/>
|
|
211
|
-
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
|
|
212
|
-
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
|
|
213
|
-
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
|
|
214
|
-
<w:DoNotPromoteQF/>
|
|
215
|
-
<w:LidThemeOther>en-US</w:LidThemeOther>
|
|
216
|
-
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
|
|
217
|
-
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
|
|
218
|
-
<w:Compatibility>
|
|
219
|
-
<w:BreakWrappedTables/>
|
|
220
|
-
<w:SnapToGridInCell/>
|
|
221
|
-
<w:WrapTextWithPunct/>
|
|
222
|
-
<w:UseAsianBreakRules/>
|
|
223
|
-
<w:DontGrowAutofit/>
|
|
224
|
-
<w:SplitPgBreakAndParaMark/>
|
|
225
|
-
<w:EnableOpenTypeKerning/>
|
|
226
|
-
<w:DontFlipMirrorIndents/>
|
|
227
|
-
<w:OverrideTableStyleHps/>
|
|
228
|
-
<w:UseFELayout/>
|
|
229
|
-
</w:Compatibility>
|
|
230
|
-
<w:MathPr>
|
|
231
|
-
<w:MathFont w:val="Cambria Math"/>
|
|
232
|
-
<w:brkBin w:val="before"/>
|
|
233
|
-
<w:brkBinSub w:val="--"/>
|
|
234
|
-
<w:smallFrac w:val="off"/>
|
|
235
|
-
<w:dispDef/>
|
|
236
|
-
<w:lMargin w:val="0"/>
|
|
237
|
-
<w:rMargin w:val="0"/>
|
|
238
|
-
<w:defJc w:val="centerGroup"/>
|
|
239
|
-
<w:wrapIndent w:val="1440"/>
|
|
240
|
-
<w:intLim w:val="subSup"/>
|
|
241
|
-
<w:naryLim w:val="undOvr"/>
|
|
242
|
-
</w:MathPr>
|
|
243
|
-
</w:WordDocument>
|
|
233
|
+
#{custom_props}
|
|
234
|
+
#{OFFICE_SETTINGS_XML}
|
|
244
235
|
</xml><![endif]-->
|
|
245
|
-
|
|
246
|
-
<
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
.
|
|
251
|
-
|
|
252
|
-
<![endif]-->
|
|
253
|
-
#{build_latent_styles}
|
|
254
|
-
#{style_block}
|
|
255
|
-
<!--[if gte mso 10]>
|
|
256
|
-
<style>
|
|
257
|
-
/* Style Definitions */
|
|
258
|
-
table.MsoNormalTable
|
|
259
|
-
{mso-style-name:"Table Normal";
|
|
260
|
-
mso-tstyle-rowband-size:0;
|
|
261
|
-
mso-tstyle-colband-size:0;
|
|
262
|
-
mso-style-noshow:yes;
|
|
263
|
-
mso-style-priority:99;
|
|
264
|
-
mso-style-parent:"";
|
|
265
|
-
mso-padding-alt:0in 5.4pt 0in 5.4pt;
|
|
266
|
-
mso-para-margin-top:0in;
|
|
267
|
-
mso-para-margin-right:0in;
|
|
268
|
-
mso-para-margin-bottom:8.0pt;
|
|
269
|
-
mso-para-margin-left:0in;
|
|
270
|
-
line-height:115%;
|
|
271
|
-
mso-pagination:widow-orphan;
|
|
272
|
-
font-size:12.0pt;
|
|
273
|
-
font-family:"Aptos",sans-serif;
|
|
274
|
-
mso-ascii-font-family:Aptos;
|
|
275
|
-
mso-ascii-theme-font:minor-latin;
|
|
276
|
-
mso-hansi-font-family:Aptos;
|
|
277
|
-
mso-hansi-theme-font:minor-latin;
|
|
278
|
-
mso-font-kerning:1.0pt;
|
|
279
|
-
mso-ligatures:standardcontextual;}
|
|
280
|
-
</style>
|
|
281
|
-
<![endif]-->
|
|
236
|
+
<link rel=themeData href="#{name}.fld/themedata.thmx">
|
|
237
|
+
<link rel=colorSchemeMapping href="#{name}.fld/colorschememapping.xml">
|
|
238
|
+
#{WORD_DOCUMENT_XML}
|
|
239
|
+
#{VML_BEHAVIOR_STYLE}
|
|
240
|
+
#{MhtmlStyleBuilder.latent_styles}
|
|
241
|
+
#{MhtmlStyleBuilder.style_block}
|
|
242
|
+
#{MSO_NORMAL_TABLE_STYLE}
|
|
282
243
|
</head>
|
|
283
244
|
<body lang=EN-US style='tab-interval:.5in;word-wrap:break-word'>
|
|
284
245
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
#{body_html}
|
|
288
|
-
|
|
289
|
-
</div>
|
|
246
|
+
#{body_content}
|
|
290
247
|
|
|
291
248
|
</body>
|
|
292
249
|
</html>
|
|
293
250
|
HTML
|
|
294
251
|
end
|
|
295
252
|
|
|
296
|
-
#
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
return
|
|
300
|
-
|
|
301
|
-
author = props.respond_to?(:creator) ? props.creator : nil
|
|
302
|
-
last_author = props.respond_to?(:last_modified_by) ? props.last_modified_by : nil
|
|
303
|
-
revision = props.respond_to?(:revision) ? props.revision : nil
|
|
304
|
-
# created and modified are specialized types, use .value to get the actual date
|
|
305
|
-
created = props.respond_to?(:created) && props.created ? props.created.value : nil
|
|
306
|
-
last_saved = props.respond_to?(:modified) && props.modified ? props.modified.value : nil
|
|
307
|
-
|
|
308
|
-
# Calculate document statistics
|
|
309
|
-
stats = calculate_document_stats
|
|
310
|
-
|
|
311
|
-
doc_props = []
|
|
312
|
-
doc_props << " <o:Author>#{escape_xml(author)}</o:Author>" if author
|
|
313
|
-
doc_props << " <o:LastAuthor>#{escape_xml(last_author)}</o:LastAuthor>" if last_author
|
|
314
|
-
doc_props << " <o:Revision>#{escape_xml(revision)}</o:Revision>" if revision
|
|
315
|
-
doc_props << ' <o:TotalTime>0</o:TotalTime>'
|
|
316
|
-
doc_props << " <o:Created>#{escape_xml(created)}</o:Created>" if created
|
|
317
|
-
doc_props << " <o:LastSaved>#{escape_xml(last_saved)}</o:LastSaved>" if last_saved
|
|
318
|
-
doc_props << " <o:Pages>#{stats[:pages]}</o:Pages>"
|
|
319
|
-
doc_props << " <o:Words>#{stats[:words]}</o:Words>"
|
|
320
|
-
doc_props << " <o:Characters>#{stats[:characters]}</o:Characters>"
|
|
321
|
-
doc_props << " <o:Lines>#{stats[:lines]}</o:Lines>"
|
|
322
|
-
doc_props << " <o:Paragraphs>#{stats[:paragraphs]}</o:Paragraphs>"
|
|
323
|
-
doc_props << " <o:CharactersWithSpaces>#{stats[:characters_with_spaces]}</o:CharactersWithSpaces>"
|
|
324
|
-
doc_props << ' <o:Version>16.00</o:Version>'
|
|
325
|
-
|
|
326
|
-
doc_props.join("\n")
|
|
327
|
-
end
|
|
328
|
-
|
|
329
|
-
# Calculate document statistics from content
|
|
330
|
-
#
|
|
331
|
-
# @return [Hash] Statistics hash with :words, :characters, :paragraphs, :lines, :pages
|
|
332
|
-
def calculate_document_stats
|
|
333
|
-
words = 0
|
|
334
|
-
characters = 0
|
|
335
|
-
paragraphs = 0
|
|
336
|
-
lines = 0
|
|
337
|
-
|
|
338
|
-
body = @document.body
|
|
339
|
-
unless body
|
|
340
|
-
return { words: 0, characters: 0, paragraphs: 0, lines: 0, pages: 1,
|
|
341
|
-
characters_with_spaces: 0 }
|
|
342
|
-
end
|
|
343
|
-
|
|
344
|
-
body.elements.each do |element|
|
|
345
|
-
next unless element.is_a?(Uniword::Wordprocessingml::Paragraph)
|
|
346
|
-
|
|
347
|
-
paragraphs += 1
|
|
348
|
-
para_words = 0
|
|
349
|
-
para_chars = 0
|
|
350
|
-
|
|
351
|
-
element.runs.each do |run|
|
|
352
|
-
text = run.text.to_s
|
|
353
|
-
characters += text.length
|
|
354
|
-
para_chars += text.length
|
|
355
|
-
words += text.split.length
|
|
356
|
-
para_words += text.split.length
|
|
357
|
-
end
|
|
358
|
-
|
|
359
|
-
# Estimate lines from paragraph (rough: 12pt font, 6 lines per inch, 11 inch page)
|
|
360
|
-
para_lines = [1, (para_chars / 80.0).ceil].max
|
|
361
|
-
lines += para_lines
|
|
362
|
-
end
|
|
363
|
-
|
|
364
|
-
# Rough page estimate: ~500 words per page, 24 lines per page
|
|
365
|
-
pages = [1, (words / 500.0).ceil, (lines / 24.0).ceil].max
|
|
253
|
+
# Split body elements into sections based on paragraph section_properties.
|
|
254
|
+
# Returns an array of arrays: each inner array is one section's elements.
|
|
255
|
+
def split_into_sections(elements)
|
|
256
|
+
return [elements] if elements.empty?
|
|
366
257
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
characters: characters,
|
|
370
|
-
paragraphs: paragraphs,
|
|
371
|
-
lines: lines,
|
|
372
|
-
pages: pages,
|
|
373
|
-
characters_with_spaces: characters + paragraphs # rough estimate
|
|
374
|
-
}
|
|
375
|
-
end
|
|
258
|
+
sections = []
|
|
259
|
+
current_section = []
|
|
376
260
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
# @return [String] CustomDocumentProperties XML or empty string
|
|
380
|
-
def build_custom_document_properties
|
|
381
|
-
# Check if document has custom properties with AssetID
|
|
382
|
-
asset_id = custom_property('AssetID')
|
|
383
|
-
return '' unless asset_id
|
|
384
|
-
|
|
385
|
-
<<~XML
|
|
386
|
-
<o:CustomDocumentProperties xmlns:o="urn:schemas-microsoft-com:office:office">
|
|
387
|
-
<o:AssetID dt:dt="string">#{escape_xml(asset_id)}</o:AssetID>
|
|
388
|
-
</o:CustomDocumentProperties>
|
|
389
|
-
XML
|
|
390
|
-
end
|
|
261
|
+
elements.each do |element|
|
|
262
|
+
current_section << element
|
|
391
263
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
# Try to get from core_properties via custom_properties hash
|
|
398
|
-
if @document.respond_to?(:core_properties) && @document.core_properties
|
|
399
|
-
cp = @document.core_properties
|
|
400
|
-
if cp.respond_to?(:custom_properties) && cp.custom_properties
|
|
401
|
-
return cp.custom_properties[name]
|
|
264
|
+
# Check if this paragraph marks a section boundary
|
|
265
|
+
if element.is_a?(Uniword::Wordprocessingml::Paragraph) &&
|
|
266
|
+
element.properties&.section_properties
|
|
267
|
+
sections << current_section
|
|
268
|
+
current_section = []
|
|
402
269
|
end
|
|
403
270
|
end
|
|
404
|
-
nil
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
# Build meta tags for the head
|
|
408
|
-
def build_meta_tags
|
|
409
|
-
<<~META
|
|
410
|
-
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
|
|
411
|
-
<meta name=ProgId content=Word.Document>
|
|
412
|
-
<meta name=Generator content="Microsoft Word 15">
|
|
413
|
-
<meta name=Originator content="Microsoft Word 15">
|
|
414
|
-
META
|
|
415
|
-
end
|
|
416
271
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
<<~LINK
|
|
420
|
-
<link rel=File-List href="#{document_name}.fld/filelist.xml">
|
|
421
|
-
LINK
|
|
422
|
-
end
|
|
272
|
+
# Add remaining elements as the last section
|
|
273
|
+
sections << current_section unless current_section.empty?
|
|
423
274
|
|
|
424
|
-
|
|
425
|
-
def document_name
|
|
426
|
-
@document_name ||= @provided_document_name || begin
|
|
427
|
-
# Try package_rels (has the main document relationship)
|
|
428
|
-
if @relationships
|
|
429
|
-
rel = @relationships.relationships.find do |r|
|
|
430
|
-
r.target.to_s.include?('document.xml')
|
|
431
|
-
end
|
|
432
|
-
if rel
|
|
433
|
-
target = rel.target # e.g., "word/document.xml"
|
|
434
|
-
# Extract "document" from "word/document.xml"
|
|
435
|
-
parts = target.split('/')
|
|
436
|
-
return parts.last.sub(/\.xml$/, '') if parts.last
|
|
437
|
-
end
|
|
438
|
-
end
|
|
439
|
-
# Fallback to document_rels from document itself
|
|
440
|
-
location = @document.document_rels&.relationships&.first&.target || 'document'
|
|
441
|
-
File.basename(location, '.*')
|
|
442
|
-
rescue StandardError
|
|
443
|
-
'document'
|
|
444
|
-
end
|
|
275
|
+
sections
|
|
445
276
|
end
|
|
446
277
|
|
|
447
|
-
# Build
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
|
|
452
|
-
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
|
|
453
|
-
LatentStyleCount="376">
|
|
454
|
-
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
|
|
455
|
-
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
|
|
456
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
|
|
457
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
|
|
458
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
|
|
459
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
|
|
460
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
|
|
461
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
|
|
462
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
|
|
463
|
-
<w:LsdException Locked="false" Priority="9" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
|
|
464
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 1"/>
|
|
465
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 2"/>
|
|
466
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 3"/>
|
|
467
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 4"/>
|
|
468
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 5"/>
|
|
469
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 6"/>
|
|
470
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 7"/>
|
|
471
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 8"/>
|
|
472
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index 9"/>
|
|
473
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 1"/>
|
|
474
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 2"/>
|
|
475
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 3"/>
|
|
476
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 4"/>
|
|
477
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 5"/>
|
|
478
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 6"/>
|
|
479
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 7"/>
|
|
480
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 8"/>
|
|
481
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" Name="toc 9"/>
|
|
482
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Indent"/>
|
|
483
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote text"/>
|
|
484
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation text"/>
|
|
485
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="header"/>
|
|
486
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footer"/>
|
|
487
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="index heading"/>
|
|
488
|
-
<w:LsdException Locked="false" Priority="35" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="caption"/>
|
|
489
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of figures"/>
|
|
490
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope address"/>
|
|
491
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="envelope return"/>
|
|
492
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="footnote reference"/>
|
|
493
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation reference"/>
|
|
494
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="line number"/>
|
|
495
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="page number"/>
|
|
496
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote reference"/>
|
|
497
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="endnote text"/>
|
|
498
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="table of authorities"/>
|
|
499
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="macro"/>
|
|
500
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="toa heading"/>
|
|
501
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List"/>
|
|
502
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet"/>
|
|
503
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number"/>
|
|
504
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 2"/>
|
|
505
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 3"/>
|
|
506
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 4"/>
|
|
507
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List 5"/>
|
|
508
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 2"/>
|
|
509
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 3"/>
|
|
510
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 4"/>
|
|
511
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Bullet 5"/>
|
|
512
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 2"/>
|
|
513
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 3"/>
|
|
514
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 4"/>
|
|
515
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Number 5"/>
|
|
516
|
-
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
|
|
517
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Closing"/>
|
|
518
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Signature"/>
|
|
519
|
-
<w:LsdException Locked="false" Priority="1" SemiHidden="true" UnhideWhenUsed="true" Name="Default Paragraph Font"/>
|
|
520
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text"/>
|
|
521
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent"/>
|
|
522
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue"/>
|
|
523
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 2"/>
|
|
524
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 3"/>
|
|
525
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 4"/>
|
|
526
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="List Continue 5"/>
|
|
527
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Message Header"/>
|
|
528
|
-
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
|
|
529
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Salutation"/>
|
|
530
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Date"/>
|
|
531
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent"/>
|
|
532
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text First Indent 2"/>
|
|
533
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Note Heading"/>
|
|
534
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 2"/>
|
|
535
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text 3"/>
|
|
536
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 2"/>
|
|
537
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Body Text Indent 3"/>
|
|
538
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Block Text"/>
|
|
539
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hyperlink"/>
|
|
540
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="FollowedHyperlink"/>
|
|
541
|
-
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
|
|
542
|
-
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
|
|
543
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Document Map"/>
|
|
544
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Plain Text"/>
|
|
545
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="E-mail Signature"/>
|
|
546
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Top of Form"/>
|
|
547
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Bottom of Form"/>
|
|
548
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal (Web)"/>
|
|
549
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Acronym"/>
|
|
550
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Address"/>
|
|
551
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Cite"/>
|
|
552
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Code"/>
|
|
553
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Definition"/>
|
|
554
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Keyboard"/>
|
|
555
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Preformatted"/>
|
|
556
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Sample"/>
|
|
557
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Typewriter"/>
|
|
558
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="HTML Variable"/>
|
|
559
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Normal Table"/>
|
|
560
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="annotation subject"/>
|
|
561
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="No List"/>
|
|
562
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 1"/>
|
|
563
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 2"/>
|
|
564
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Outline List 3"/>
|
|
565
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 1"/>
|
|
566
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 2"/>
|
|
567
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Simple 3"/>
|
|
568
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 1"/>
|
|
569
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 2"/>
|
|
570
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 3"/>
|
|
571
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Classic 4"/>
|
|
572
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 1"/>
|
|
573
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 2"/>
|
|
574
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Colorful 3"/>
|
|
575
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 1"/>
|
|
576
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 2"/>
|
|
577
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 3"/>
|
|
578
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 4"/>
|
|
579
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Columns 5"/>
|
|
580
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 1"/>
|
|
581
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 2"/>
|
|
582
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 3"/>
|
|
583
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 4"/>
|
|
584
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 5"/>
|
|
585
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 6"/>
|
|
586
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 7"/>
|
|
587
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Grid 8"/>
|
|
588
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 1"/>
|
|
589
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 2"/>
|
|
590
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 3"/>
|
|
591
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 4"/>
|
|
592
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 5"/>
|
|
593
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 6"/>
|
|
594
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 7"/>
|
|
595
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table List 8"/>
|
|
596
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 1"/>
|
|
597
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 2"/>
|
|
598
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table 3D effects 3"/>
|
|
599
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Contemporary"/>
|
|
600
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Elegant"/>
|
|
601
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Professional"/>
|
|
602
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 1"/>
|
|
603
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Subtle 2"/>
|
|
604
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 1"/>
|
|
605
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 2"/>
|
|
606
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Web 3"/>
|
|
607
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Balloon Text"/>
|
|
608
|
-
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
|
|
609
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Table Theme"/>
|
|
610
|
-
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
|
|
611
|
-
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
|
|
612
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
|
|
613
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
|
|
614
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
|
|
615
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
|
|
616
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
|
|
617
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
|
|
618
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
|
|
619
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
|
|
620
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
|
|
621
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
|
|
622
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
|
|
623
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
|
|
624
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
|
|
625
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
|
|
626
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
|
|
627
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
|
|
628
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
|
|
629
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
|
|
630
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
|
|
631
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
|
|
632
|
-
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
|
|
633
|
-
<w:LsdException Locked="false" Priority="34" QFormat="true" Name="List Paragraph"/>
|
|
634
|
-
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
|
|
635
|
-
<w:LsdException Locked="false" Priority="30" QFormat="true" Name="Intense Quote"/>
|
|
636
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
|
|
637
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
|
|
638
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
|
|
639
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
|
|
640
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
|
|
641
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
|
|
642
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
|
|
643
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
|
|
644
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
|
|
645
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
|
|
646
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
|
|
647
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
|
|
648
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
|
|
649
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
|
|
650
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
|
|
651
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
|
|
652
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
|
|
653
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
|
|
654
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
|
|
655
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
|
|
656
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
|
|
657
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
|
|
658
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
|
|
659
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
|
|
660
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
|
|
661
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
|
|
662
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
|
|
663
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
|
|
664
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
|
|
665
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
|
|
666
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
|
|
667
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
|
|
668
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
|
|
669
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
|
|
670
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
|
|
671
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
|
|
672
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
|
|
673
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
|
|
674
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
|
|
675
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
|
|
676
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
|
|
677
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
|
|
678
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
|
|
679
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
|
|
680
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
|
|
681
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
|
|
682
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
|
|
683
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
|
|
684
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
|
|
685
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
|
|
686
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
|
|
687
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
|
|
688
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
|
|
689
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
|
|
690
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
|
|
691
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
|
|
692
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
|
|
693
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
|
|
694
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
|
|
695
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
|
|
696
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
|
|
697
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
|
|
698
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
|
|
699
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
|
|
700
|
-
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
|
|
701
|
-
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
|
|
702
|
-
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
|
|
703
|
-
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
|
|
704
|
-
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
|
|
705
|
-
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
|
|
706
|
-
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
|
|
707
|
-
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
|
|
708
|
-
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
|
|
709
|
-
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
|
|
710
|
-
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
|
|
711
|
-
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
|
|
712
|
-
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
|
|
713
|
-
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
|
|
714
|
-
<w:LsdException Locked="false" Priority="19" QFormat="true" Name="Subtle Emphasis"/>
|
|
715
|
-
<w:LsdException Locked="false" Priority="21" QFormat="true" Name="Intense Emphasis"/>
|
|
716
|
-
<w:LsdException Locked="false" Priority="31" QFormat="true" Name="Subtle Reference"/>
|
|
717
|
-
<w:LsdException Locked="false" Priority="32" QFormat="true" Name="Intense Reference"/>
|
|
718
|
-
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
|
|
719
|
-
<w:LsdException Locked="false" Priority="37" SemiHidden="true" UnhideWhenUsed="true" Name="Bibliography"/>
|
|
720
|
-
<w:LsdException Locked="false" Priority="39" SemiHidden="true" UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
|
|
721
|
-
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
|
|
722
|
-
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
|
|
723
|
-
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
|
|
724
|
-
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
|
|
725
|
-
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
|
|
726
|
-
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
|
|
727
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
|
|
728
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
|
|
729
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
|
|
730
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
|
|
731
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
|
|
732
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
|
|
733
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
|
|
734
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 1"/>
|
|
735
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
|
|
736
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
|
|
737
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
|
|
738
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
|
|
739
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 1"/>
|
|
740
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 1"/>
|
|
741
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 2"/>
|
|
742
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
|
|
743
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
|
|
744
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
|
|
745
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
|
|
746
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 2"/>
|
|
747
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 2"/>
|
|
748
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 3"/>
|
|
749
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
|
|
750
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
|
|
751
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
|
|
752
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
|
|
753
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 3"/>
|
|
754
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 3"/>
|
|
755
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 4"/>
|
|
756
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
|
|
757
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
|
|
758
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
|
|
759
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
|
|
760
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 4"/>
|
|
761
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 4"/>
|
|
762
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 5"/>
|
|
763
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
|
|
764
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
|
|
765
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
|
|
766
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
|
|
767
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 5"/>
|
|
768
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 5"/>
|
|
769
|
-
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light Accent 6"/>
|
|
770
|
-
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
|
|
771
|
-
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
|
|
772
|
-
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
|
|
773
|
-
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
|
|
774
|
-
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful Accent 6"/>
|
|
775
|
-
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful Accent 6"/>
|
|
776
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
|
|
777
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
|
|
778
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
|
|
779
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
|
|
780
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
|
|
781
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
|
|
782
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
|
|
783
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 1"/>
|
|
784
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
|
|
785
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
|
|
786
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
|
|
787
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
|
|
788
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 1"/>
|
|
789
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 1"/>
|
|
790
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 2"/>
|
|
791
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
|
|
792
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
|
|
793
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
|
|
794
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
|
|
795
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 2"/>
|
|
796
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 2"/>
|
|
797
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 3"/>
|
|
798
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
|
|
799
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
|
|
800
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
|
|
801
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
|
|
802
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 3"/>
|
|
803
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 3"/>
|
|
804
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 4"/>
|
|
805
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
|
|
806
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
|
|
807
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
|
|
808
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
|
|
809
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 4"/>
|
|
810
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 4"/>
|
|
811
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 5"/>
|
|
812
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
|
|
813
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
|
|
814
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
|
|
815
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
|
|
816
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 5"/>
|
|
817
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 5"/>
|
|
818
|
-
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light Accent 6"/>
|
|
819
|
-
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
|
|
820
|
-
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
|
|
821
|
-
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
|
|
822
|
-
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
|
|
823
|
-
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful Accent 6"/>
|
|
824
|
-
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful Accent 6"/>
|
|
825
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Mention"/>
|
|
826
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Hyperlink"/>
|
|
827
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Hashtag"/>
|
|
828
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Unresolved Mention"/>
|
|
829
|
-
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true" Name="Smart Link"/>
|
|
830
|
-
</w:LatentStyles>
|
|
831
|
-
</xml><![endif]-->
|
|
832
|
-
LATENT
|
|
833
|
-
end
|
|
834
|
-
|
|
835
|
-
# Build the CSS style block
|
|
836
|
-
def build_style_block
|
|
837
|
-
<<~STYLE
|
|
838
|
-
<style>
|
|
839
|
-
<!--
|
|
840
|
-
/* Font Definitions */
|
|
841
|
-
@font-face
|
|
842
|
-
{font-family:"Cambria Math";
|
|
843
|
-
panose-1:2 4 5 3 5 4 6 3 2 4;
|
|
844
|
-
mso-font-charset:0;
|
|
845
|
-
mso-generic-font-family:roman;
|
|
846
|
-
mso-font-pitch:variable;
|
|
847
|
-
mso-font-signature:-536870145 1107305727 0 0 415 0;}
|
|
848
|
-
@font-face
|
|
849
|
-
{font-family:DengXian;
|
|
850
|
-
panose-1:2 1 6 0 3 1 1 1 1 1;
|
|
851
|
-
mso-font-alt:等线;
|
|
852
|
-
mso-font-charset:134;
|
|
853
|
-
mso-generic-font-family:modern;
|
|
854
|
-
mso-font-pitch:fixed;
|
|
855
|
-
mso-font-signature:1 135135232 16 0 262144 0;}
|
|
856
|
-
@font-face
|
|
857
|
-
{font-family:Aptos;
|
|
858
|
-
panose-1:2 11 0 4 2 2 2 2 2 4;
|
|
859
|
-
mso-font-charset:0;
|
|
860
|
-
mso-generic-font-family:swiss;
|
|
861
|
-
mso-font-pitch:variable;
|
|
862
|
-
mso-font-signature:536871559 3 0 0 415 0;}
|
|
863
|
-
@font-face
|
|
864
|
-
{font-family:"\\@DengXian";
|
|
865
|
-
panose-1:2 1 6 0 3 1 1 1 1 1;
|
|
866
|
-
mso-font-charset:134;
|
|
867
|
-
mso-generic-font-family:auto;
|
|
868
|
-
mso-font-pitch:variable;
|
|
869
|
-
mso-font-signature:-1610612033 953122042 22 0 262159 0;}
|
|
870
|
-
/* Style Definitions */
|
|
871
|
-
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
|
872
|
-
{mso-style-unhide:no;
|
|
873
|
-
mso-style-qformat:yes;
|
|
874
|
-
mso-style-parent:"";
|
|
875
|
-
margin-top:0in;
|
|
876
|
-
margin-right:0in;
|
|
877
|
-
margin-bottom:8.0pt;
|
|
878
|
-
margin-left:0in;
|
|
879
|
-
line-height:115%;
|
|
880
|
-
mso-pagination:widow-orphan;
|
|
881
|
-
font-size:12.0pt;
|
|
882
|
-
font-family:"Aptos",sans-serif;
|
|
883
|
-
mso-ascii-font-family:Aptos;
|
|
884
|
-
mso-ascii-theme-font:minor-latin;
|
|
885
|
-
mso-fareast-font-family:DengXian;
|
|
886
|
-
mso-fareast-theme-font:minor-fareast;
|
|
887
|
-
mso-hansi-font-family:Aptos;
|
|
888
|
-
mso-hansi-theme-font:minor-latin;
|
|
889
|
-
mso-bidi-font-family:"Times New Roman";
|
|
890
|
-
mso-bidi-theme-font:minor-bidi;
|
|
891
|
-
mso-font-kerning:1.0pt;
|
|
892
|
-
mso-ligatures:standardcontextual;}
|
|
893
|
-
h1
|
|
894
|
-
{mso-style-priority:9;
|
|
895
|
-
mso-style-unhide:no;
|
|
896
|
-
mso-style-qformat:yes;
|
|
897
|
-
mso-style-link:"Heading 1 Char";
|
|
898
|
-
mso-style-next:Normal;
|
|
899
|
-
margin-top:.25in;
|
|
900
|
-
margin-right:0in;
|
|
901
|
-
margin-bottom:4.0pt;
|
|
902
|
-
margin-left:0in;
|
|
903
|
-
line-height:115%;
|
|
904
|
-
mso-pagination:widow-orphan lines-together;
|
|
905
|
-
page-break-after:avoid;
|
|
906
|
-
mso-outline-level:1;
|
|
907
|
-
font-size:20.0pt;
|
|
908
|
-
font-family:"Aptos Display",sans-serif;
|
|
909
|
-
mso-ascii-font-family:"Aptos Display";
|
|
910
|
-
mso-ascii-theme-font:major-latin;
|
|
911
|
-
mso-fareast-font-family:"DengXian Light";
|
|
912
|
-
mso-fareast-theme-font:major-fareast;
|
|
913
|
-
mso-hansi-font-family:"Aptos Display";
|
|
914
|
-
mso-hansi-theme-font:major-latin;
|
|
915
|
-
mso-bidi-font-family:"Times New Roman";
|
|
916
|
-
mso-bidi-theme-font:major-bidi;
|
|
917
|
-
color:#0F4761;
|
|
918
|
-
mso-themecolor:accent1;
|
|
919
|
-
mso-themeshade:191;
|
|
920
|
-
mso-font-kerning:1.0pt;
|
|
921
|
-
mso-ligatures:standardcontextual;
|
|
922
|
-
font-weight:normal;}
|
|
923
|
-
h2
|
|
924
|
-
{mso-style-noshow:yes;
|
|
925
|
-
mso-style-priority:9;
|
|
926
|
-
mso-style-qformat:yes;
|
|
927
|
-
mso-style-link:"Heading 2 Char";
|
|
928
|
-
mso-style-next:Normal;
|
|
929
|
-
margin-top:8.0pt;
|
|
930
|
-
margin-right:0in;
|
|
931
|
-
margin-bottom:4.0pt;
|
|
932
|
-
margin-left:0in;
|
|
933
|
-
line-height:115%;
|
|
934
|
-
mso-pagination:widow-orphan lines-together;
|
|
935
|
-
page-break-after:avoid;
|
|
936
|
-
mso-outline-level:2;
|
|
937
|
-
font-size:16.0pt;
|
|
938
|
-
font-family:"Aptos Display",sans-serif;
|
|
939
|
-
mso-ascii-font-family:"Aptos Display";
|
|
940
|
-
mso-ascii-theme-font:major-latin;
|
|
941
|
-
mso-fareast-font-family:"DengXian Light";
|
|
942
|
-
mso-fareast-theme-font:major-fareast;
|
|
943
|
-
mso-hansi-font-family:"Aptos Display";
|
|
944
|
-
mso-hansi-theme-font:major-latin;
|
|
945
|
-
mso-bidi-font-family:"Times New Roman";
|
|
946
|
-
mso-bidi-theme-font:major-bidi;
|
|
947
|
-
color:#0F4761;
|
|
948
|
-
mso-themecolor:accent1;
|
|
949
|
-
mso-themeshade:191;
|
|
950
|
-
mso-font-kerning:1.0pt;
|
|
951
|
-
mso-ligatures:standardcontextual;
|
|
952
|
-
font-weight:normal;}
|
|
953
|
-
h3
|
|
954
|
-
{mso-style-noshow:yes;
|
|
955
|
-
mso-style-priority:9;
|
|
956
|
-
mso-style-qformat:yes;
|
|
957
|
-
mso-style-link:"Heading 3 Char";
|
|
958
|
-
mso-style-next:Normal;
|
|
959
|
-
margin-top:8.0pt;
|
|
960
|
-
margin-right:0in;
|
|
961
|
-
margin-bottom:4.0pt;
|
|
962
|
-
margin-left:0in;
|
|
963
|
-
line-height:115%;
|
|
964
|
-
mso-pagination:widow-orphan lines-together;
|
|
965
|
-
page-break-after:avoid;
|
|
966
|
-
mso-outline-level:3;
|
|
967
|
-
font-size:14.0pt;
|
|
968
|
-
font-family:"Aptos",sans-serif;
|
|
969
|
-
mso-ascii-font-family:Aptos;
|
|
970
|
-
mso-ascii-theme-font:minor-latin;
|
|
971
|
-
mso-fareast-font-family:"DengXian Light";
|
|
972
|
-
mso-fareast-theme-font:major-fareast;
|
|
973
|
-
mso-hansi-font-family:Aptos;
|
|
974
|
-
mso-hansi-theme-font:minor-latin;
|
|
975
|
-
mso-bidi-font-family:"Times New Roman";
|
|
976
|
-
mso-bidi-theme-font:major-bidi;
|
|
977
|
-
color:#0F4761;
|
|
978
|
-
mso-themecolor:accent1;
|
|
979
|
-
mso-themeshade:191;
|
|
980
|
-
mso-font-kerning:1.0pt;
|
|
981
|
-
mso-ligatures:standardcontextual;
|
|
982
|
-
font-weight:normal;}
|
|
983
|
-
h4
|
|
984
|
-
{mso-style-noshow:yes;
|
|
985
|
-
mso-style-priority:9;
|
|
986
|
-
mso-style-qformat:yes;
|
|
987
|
-
mso-style-link:"Heading 4 Char";
|
|
988
|
-
mso-style-next:Normal;
|
|
989
|
-
margin-top:4.0pt;
|
|
990
|
-
margin-right:0in;
|
|
991
|
-
margin-bottom:2.0pt;
|
|
992
|
-
margin-left:0in;
|
|
993
|
-
line-height:115%;
|
|
994
|
-
mso-pagination:widow-orphan lines-together;
|
|
995
|
-
page-break-after:avoid;
|
|
996
|
-
mso-outline-level:4;
|
|
997
|
-
font-size:12.0pt;
|
|
998
|
-
font-family:"Aptos",sans-serif;
|
|
999
|
-
mso-ascii-font-family:Aptos;
|
|
1000
|
-
mso-ascii-theme-font:minor-latin;
|
|
1001
|
-
mso-fareast-font-family:"DengXian Light";
|
|
1002
|
-
mso-fareast-theme-font:major-fareast;
|
|
1003
|
-
mso-hansi-font-family:Aptos;
|
|
1004
|
-
mso-hansi-theme-font:minor-latin;
|
|
1005
|
-
mso-bidi-font-family:"Times New Roman";
|
|
1006
|
-
mso-bidi-theme-font:major-bidi;
|
|
1007
|
-
color:#0F4761;
|
|
1008
|
-
mso-themecolor:accent1;
|
|
1009
|
-
mso-themeshade:191;
|
|
1010
|
-
mso-font-kerning:1.0pt;
|
|
1011
|
-
mso-ligatures:standardcontextual;
|
|
1012
|
-
font-weight:normal;
|
|
1013
|
-
font-style:italic;}
|
|
1014
|
-
h5
|
|
1015
|
-
{mso-style-noshow:yes;
|
|
1016
|
-
mso-style-priority:9;
|
|
1017
|
-
mso-style-qformat:yes;
|
|
1018
|
-
mso-style-link:"Heading 5 Char";
|
|
1019
|
-
mso-style-next:Normal;
|
|
1020
|
-
margin-top:4.0pt;
|
|
1021
|
-
margin-right:0in;
|
|
1022
|
-
margin-bottom:2.0pt;
|
|
1023
|
-
margin-left:0in;
|
|
1024
|
-
line-height:115%;
|
|
1025
|
-
mso-pagination:widow-orphan lines-together;
|
|
1026
|
-
page-break-after:avoid;
|
|
1027
|
-
mso-outline-level:5;
|
|
1028
|
-
font-size:12.0pt;
|
|
1029
|
-
font-family:"Aptos",sans-serif;
|
|
1030
|
-
mso-ascii-font-family:Aptos;
|
|
1031
|
-
mso-ascii-theme-font:minor-latin;
|
|
1032
|
-
mso-fareast-font-family:"DengXian Light";
|
|
1033
|
-
mso-fareast-theme-font:major-fareast;
|
|
1034
|
-
mso-hansi-font-family:Aptos;
|
|
1035
|
-
mso-hansi-theme-font:minor-latin;
|
|
1036
|
-
mso-bidi-font-family:"Times New Roman";
|
|
1037
|
-
mso-bidi-theme-font:major-bidi;
|
|
1038
|
-
color:#0F4761;
|
|
1039
|
-
mso-themecolor:accent1;
|
|
1040
|
-
mso-themeshade:191;
|
|
1041
|
-
mso-font-kerning:1.0pt;
|
|
1042
|
-
mso-ligatures:standardcontextual;
|
|
1043
|
-
font-weight:normal;}
|
|
1044
|
-
h6
|
|
1045
|
-
{mso-style-noshow:yes;
|
|
1046
|
-
mso-style-priority:9;
|
|
1047
|
-
mso-style-qformat:yes;
|
|
1048
|
-
mso-style-link:"Heading 6 Char";
|
|
1049
|
-
mso-style-next:Normal;
|
|
1050
|
-
margin-top:2.0pt;
|
|
1051
|
-
margin-right:0in;
|
|
1052
|
-
margin-bottom:0in;
|
|
1053
|
-
margin-left:0in;
|
|
1054
|
-
line-height:115%;
|
|
1055
|
-
mso-pagination:widow-orphan lines-together;
|
|
1056
|
-
page-break-after:avoid;
|
|
1057
|
-
mso-outline-level:6;
|
|
1058
|
-
font-size:12.0pt;
|
|
1059
|
-
font-family:"Aptos",sans-serif;
|
|
1060
|
-
mso-ascii-font-family:Aptos;
|
|
1061
|
-
mso-ascii-theme-font:minor-latin;
|
|
1062
|
-
mso-fareast-font-family:"DengXian Light";
|
|
1063
|
-
mso-fareast-theme-font:major-fareast;
|
|
1064
|
-
mso-hansi-font-family:Aptos;
|
|
1065
|
-
mso-hansi-theme-font:minor-latin;
|
|
1066
|
-
mso-bidi-font-family:"Times New Roman";
|
|
1067
|
-
mso-bidi-theme-font:major-bidi;
|
|
1068
|
-
color:#595959;
|
|
1069
|
-
mso-themecolor:text1;
|
|
1070
|
-
mso-themetint:166;
|
|
1071
|
-
mso-font-kerning:1.0pt;
|
|
1072
|
-
mso-ligatures:standardcontextual;
|
|
1073
|
-
font-weight:normal;
|
|
1074
|
-
font-style:italic;}
|
|
1075
|
-
p.MsoTitle, li.MsoTitle, div.MsoTitle
|
|
1076
|
-
{mso-style-priority:10;
|
|
1077
|
-
mso-style-unhide:no;
|
|
1078
|
-
mso-style-qformat:yes;
|
|
1079
|
-
mso-style-link:"Title Char";
|
|
1080
|
-
mso-style-next:Normal;
|
|
1081
|
-
margin-top:0in;
|
|
1082
|
-
margin-right:0in;
|
|
1083
|
-
margin-bottom:4.0pt;
|
|
1084
|
-
margin-left:0in;
|
|
1085
|
-
mso-add-space:auto;
|
|
1086
|
-
mso-pagination:widow-orphan;
|
|
1087
|
-
font-size:28.0pt;
|
|
1088
|
-
font-family:"Aptos Display",sans-serif;
|
|
1089
|
-
mso-ascii-font-family:"Aptos Display";
|
|
1090
|
-
mso-ascii-theme-font:major-latin;
|
|
1091
|
-
mso-fareast-font-family:"DengXian Light";
|
|
1092
|
-
mso-fareast-theme-font:major-fareast;
|
|
1093
|
-
mso-hansi-font-family:"Aptos Display";
|
|
1094
|
-
mso-hansi-theme-font:major-latin;
|
|
1095
|
-
mso-bidi-font-family:"Times New Roman";
|
|
1096
|
-
mso-bidi-theme-font:major-bidi;
|
|
1097
|
-
letter-spacing:-.5pt;
|
|
1098
|
-
mso-font-kerning:14.0pt;
|
|
1099
|
-
mso-ligatures:standardcontextual;}
|
|
1100
|
-
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
|
|
1101
|
-
{mso-style-priority:11;
|
|
1102
|
-
mso-style-unhide:no;
|
|
1103
|
-
mso-style-qformat:yes;
|
|
1104
|
-
mso-style-link:"Subtitle Char";
|
|
1105
|
-
mso-style-next:Normal;
|
|
1106
|
-
margin-top:0in;
|
|
1107
|
-
margin-right:0in;
|
|
1108
|
-
margin-bottom:8.0pt;
|
|
1109
|
-
margin-left:0in;
|
|
1110
|
-
line-height:115%;
|
|
1111
|
-
mso-pagination:widow-orphan;
|
|
1112
|
-
font-size:14.0pt;
|
|
1113
|
-
font-family:"Aptos",sans-serif;
|
|
1114
|
-
mso-ascii-font-family:Aptos;
|
|
1115
|
-
mso-ascii-theme-font:minor-latin;
|
|
1116
|
-
mso-fareast-font-family:"DengXian Light";
|
|
1117
|
-
mso-fareast-theme-font:major-fareast;
|
|
1118
|
-
mso-hansi-font-family:"Aptos Display";
|
|
1119
|
-
mso-hansi-theme-font:major-latin;
|
|
1120
|
-
mso-bidi-font-family:"Times New Roman";
|
|
1121
|
-
mso-bidi-theme-font:major-bidi;
|
|
1122
|
-
color:#595959;
|
|
1123
|
-
mso-themecolor:text1;
|
|
1124
|
-
mso-themetint:166;
|
|
1125
|
-
letter-spacing:.75pt;
|
|
1126
|
-
mso-font-kerning:1.0pt;
|
|
1127
|
-
mso-ligatures:standardcontextual;}
|
|
1128
|
-
@page WordSection1
|
|
1129
|
-
{size:8.5in 11.0in;
|
|
1130
|
-
margin:1.0in 1.0in 1.0in 1.0in;
|
|
1131
|
-
mso-header-margin:.5in;
|
|
1132
|
-
mso-footer-margin:.5in;
|
|
1133
|
-
mso-paper-source:0;}
|
|
1134
|
-
div.WordSection1
|
|
1135
|
-
{page:WordSection1;}
|
|
1136
|
-
-->
|
|
1137
|
-
</style>
|
|
1138
|
-
STYLE
|
|
1139
|
-
end
|
|
278
|
+
# Build HTML body content from sections array.
|
|
279
|
+
# Each section is wrapped in a <div class=WordSectionN> with <br> between them.
|
|
280
|
+
def build_sections_html(sections)
|
|
281
|
+
return "" if sections.empty?
|
|
1140
282
|
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
table_to_html(element)
|
|
1148
|
-
else
|
|
1149
|
-
''
|
|
283
|
+
# Single section: wrap in WordSection1 without breaks
|
|
284
|
+
if sections.size == 1
|
|
285
|
+
elements_html = sections.first.map do |element|
|
|
286
|
+
@element_renderer.element_to_html(element)
|
|
287
|
+
end.join("\n")
|
|
288
|
+
return "<div class=WordSection1>\n\n#{elements_html}\n\n</div>"
|
|
1150
289
|
end
|
|
1151
|
-
end
|
|
1152
|
-
|
|
1153
|
-
# Convert OOXML Paragraph to HTML
|
|
1154
|
-
def paragraph_to_html(paragraph)
|
|
1155
|
-
style_class = style_to_css_class(paragraph.style)
|
|
1156
|
-
|
|
1157
|
-
# Build paragraph content including SDTs inline
|
|
1158
|
-
content = paragraph_content_to_html(paragraph)
|
|
1159
290
|
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
end
|
|
1165
|
-
end
|
|
291
|
+
section_divs = sections.each_with_index.map do |section_elements, idx|
|
|
292
|
+
elements_html = section_elements.map do |element|
|
|
293
|
+
@element_renderer.element_to_html(element)
|
|
294
|
+
end.join("\n")
|
|
1166
295
|
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
parts = paragraph.runs.map do |run|
|
|
1171
|
-
# SDT elements can appear in runs collection when parsed from MHT
|
|
1172
|
-
if run.is_a?(Uniword::Wordprocessingml::StructuredDocumentTag)
|
|
1173
|
-
sdt_to_inline_html(run)
|
|
296
|
+
# First N sections get WordSection1..N class, last section is unnamed
|
|
297
|
+
if idx < sections.size - 1
|
|
298
|
+
"<div class=WordSection#{idx + 1}>\n\n#{elements_html}\n\n</div>"
|
|
1174
299
|
else
|
|
1175
|
-
|
|
300
|
+
"<div class=>\n\n#{elements_html}\n\n</div>"
|
|
1176
301
|
end
|
|
1177
302
|
end
|
|
1178
303
|
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
# Process SDTs - in DOCX SDTs can be block elements, but in MHT they're inline
|
|
1184
|
-
paragraph.sdts.each do |sdt|
|
|
1185
|
-
parts << sdt_to_inline_html(sdt)
|
|
1186
|
-
end
|
|
1187
|
-
|
|
1188
|
-
parts.join
|
|
1189
|
-
end
|
|
1190
|
-
|
|
1191
|
-
# Convert OOXML Run to HTML
|
|
1192
|
-
def run_to_html(run)
|
|
1193
|
-
text = run.text.to_s
|
|
1194
|
-
return '' if text.empty?
|
|
1195
|
-
|
|
1196
|
-
# Escape raw text first, then apply formatting around it
|
|
1197
|
-
escaped = escape_html(text)
|
|
1198
|
-
|
|
1199
|
-
props = run.properties
|
|
1200
|
-
escaped = apply_run_formatting(escaped, props) if props
|
|
1201
|
-
|
|
1202
|
-
escaped
|
|
1203
|
-
end
|
|
1204
|
-
|
|
1205
|
-
# Apply run formatting (text must already be HTML-escaped)
|
|
1206
|
-
def apply_run_formatting(text, props)
|
|
1207
|
-
result = text
|
|
1208
|
-
|
|
1209
|
-
# Bold/Italic: element presence means true (value may be nil)
|
|
1210
|
-
result = "<strong>#{result}</strong>" if props.bold && props.bold.value != false
|
|
1211
|
-
result = "<em>#{result}</em>" if props.italic && props.italic.value != false
|
|
1212
|
-
result = "<u>#{result}</u>" if props.underline&.value
|
|
1213
|
-
|
|
1214
|
-
result = %(<span style="color:#{props.color.value}">#{result}</span>) if props.color&.value
|
|
1215
|
-
|
|
1216
|
-
if props.size&.value
|
|
1217
|
-
size_pt = props.size.value.to_f / 2
|
|
1218
|
-
result = %(<span style="font-size:#{size_pt}pt">#{result}</span>)
|
|
1219
|
-
end
|
|
1220
|
-
|
|
1221
|
-
if props.font.respond_to?(:ascii) && props.font.ascii
|
|
1222
|
-
result = %(<span style="font-family:'#{props.font.ascii}'">#{result}</span>)
|
|
1223
|
-
elsif props.font.is_a?(String) && !props.font.empty?
|
|
1224
|
-
result = %(<span style="font-family:'#{props.font}'">#{result}</span>)
|
|
1225
|
-
end
|
|
1226
|
-
|
|
1227
|
-
result
|
|
1228
|
-
end
|
|
1229
|
-
|
|
1230
|
-
# Convert OOXML Hyperlink to HTML
|
|
1231
|
-
def hyperlink_to_html(hyperlink)
|
|
1232
|
-
url = resolve_hyperlink_url(hyperlink)
|
|
1233
|
-
return '' unless url
|
|
1234
|
-
|
|
1235
|
-
# Get hyperlink text from runs
|
|
1236
|
-
text = hyperlink.runs.map { |r| r.text.to_s }.join
|
|
1237
|
-
|
|
1238
|
-
%(<a href="#{escape_html(url)}">#{escape_html(text)}</a>)
|
|
1239
|
-
end
|
|
1240
|
-
|
|
1241
|
-
# Resolve hyperlink URL from relationship or anchor
|
|
1242
|
-
def resolve_hyperlink_url(hyperlink)
|
|
1243
|
-
# Internal anchor link
|
|
1244
|
-
return "##{hyperlink.anchor}" if hyperlink.anchor
|
|
1245
|
-
|
|
1246
|
-
# External link via relationship ID
|
|
1247
|
-
if hyperlink.id && @relationships
|
|
1248
|
-
rel = @relationships.relationships.find { |r| r.id == hyperlink.id }
|
|
1249
|
-
return rel.target if rel && rel.target_mode == 'External'
|
|
1250
|
-
end
|
|
1251
|
-
|
|
1252
|
-
nil
|
|
1253
|
-
end
|
|
1254
|
-
|
|
1255
|
-
# Convert OOXML SDT block to inline MHT SDT
|
|
1256
|
-
def sdt_to_inline_html(sdt)
|
|
1257
|
-
return '' unless sdt.content
|
|
1258
|
-
|
|
1259
|
-
sdt_props = sdt.properties
|
|
1260
|
-
sdt_content = sdt.content
|
|
1261
|
-
|
|
1262
|
-
# Extract text content
|
|
1263
|
-
text = extract_sdt_text(sdt_content)
|
|
1264
|
-
|
|
1265
|
-
# Build inline SDT
|
|
1266
|
-
sdt_attrs = build_sdt_attrs(sdt_props)
|
|
1267
|
-
|
|
1268
|
-
if text.empty?
|
|
1269
|
-
%(<w:sdt#{sdt_attrs}><w:sdtPr></w:sdtPr></w:sdt>)
|
|
1270
|
-
else
|
|
1271
|
-
%(<w:sdt#{sdt_attrs}><w:sdtPr></w:sdtPr><w:sdtContent><span>#{escape_html(text)}</span></w:sdtContent></w:sdt>)
|
|
1272
|
-
end
|
|
1273
|
-
end
|
|
1274
|
-
|
|
1275
|
-
# Extract text from SDT content
|
|
1276
|
-
def extract_sdt_text(content)
|
|
1277
|
-
return '' unless content
|
|
1278
|
-
|
|
1279
|
-
# Content uses mixed_content - serialize back to XML and extract text
|
|
1280
|
-
xml = content.to_xml
|
|
1281
|
-
# Parse the XML to extract text content
|
|
1282
|
-
doc = Nokogiri::HTML(xml)
|
|
1283
|
-
doc.text.gsub(/\s+/, ' ').strip
|
|
1284
|
-
end
|
|
1285
|
-
|
|
1286
|
-
# Build SDT attribute string
|
|
1287
|
-
def build_sdt_attrs(props)
|
|
1288
|
-
return '' unless props
|
|
1289
|
-
|
|
1290
|
-
attrs = []
|
|
1291
|
-
|
|
1292
|
-
# ID attribute
|
|
1293
|
-
attrs << %(w:id="#{props.id.value}") if props.id.respond_to?(:value) && props.id.value
|
|
1294
|
-
|
|
1295
|
-
# ShowingPlcHdr attribute
|
|
1296
|
-
attrs << 'w:showingPlcHdr="t"' if props.showing_placeholder_header
|
|
1297
|
-
|
|
1298
|
-
# Temporary attribute
|
|
1299
|
-
attrs << 'w:temporary="t"' if props.temporary
|
|
1300
|
-
|
|
1301
|
-
# DocPart attribute (UUID from placeholder.doc_part)
|
|
1302
|
-
if props.placeholder&.doc_part
|
|
1303
|
-
doc_part = props.placeholder.doc_part
|
|
1304
|
-
if doc_part.respond_to?(:value) && doc_part.value
|
|
1305
|
-
attrs << %(w:docPart="#{doc_part.value}")
|
|
1306
|
-
end
|
|
1307
|
-
end
|
|
1308
|
-
|
|
1309
|
-
# Text attribute
|
|
1310
|
-
if props.text.respond_to?(:value) && props.text.value
|
|
1311
|
-
attrs << %(w:text="#{props.text.value}")
|
|
1312
|
-
end
|
|
1313
|
-
|
|
1314
|
-
# Tag attribute
|
|
1315
|
-
if props.tag.respond_to?(:value) && props.tag.value
|
|
1316
|
-
attrs << %(w:tag="#{escape_xml(props.tag.value)}")
|
|
1317
|
-
end
|
|
1318
|
-
|
|
1319
|
-
# Alias attribute
|
|
1320
|
-
if props.alias_name.respond_to?(:value) && props.alias_name.value
|
|
1321
|
-
attrs << %(w:alias="#{escape_xml(props.alias_name.value)}")
|
|
1322
|
-
end
|
|
1323
|
-
|
|
1324
|
-
attrs.empty? ? '' : " #{attrs.join(' ')}"
|
|
1325
|
-
end
|
|
1326
|
-
|
|
1327
|
-
# Convert OOXML Table to HTML
|
|
1328
|
-
def table_to_html(table)
|
|
1329
|
-
rows = table.rows || []
|
|
1330
|
-
|
|
1331
|
-
rows_html = rows.map do |row|
|
|
1332
|
-
cells = row.cells || []
|
|
1333
|
-
cells_html = cells.map { |cell| table_cell_to_html(cell) }.join
|
|
1334
|
-
|
|
1335
|
-
%(<tr>#{cells_html}</tr>)
|
|
1336
|
-
end.join("\n")
|
|
1337
|
-
|
|
1338
|
-
<<~HTML
|
|
1339
|
-
<table>
|
|
1340
|
-
#{rows_html}
|
|
1341
|
-
</table>
|
|
1342
|
-
HTML
|
|
1343
|
-
end
|
|
1344
|
-
|
|
1345
|
-
# Convert OOXML TableCell to HTML
|
|
1346
|
-
def table_cell_to_html(cell)
|
|
1347
|
-
paragraphs = cell.paragraphs || []
|
|
1348
|
-
|
|
1349
|
-
content = paragraphs.map do |para|
|
|
1350
|
-
paragraph_to_html(para)
|
|
1351
|
-
end.join("\n")
|
|
1352
|
-
|
|
1353
|
-
<<~HTML
|
|
1354
|
-
<td>
|
|
1355
|
-
#{content}
|
|
1356
|
-
</td>
|
|
1357
|
-
HTML
|
|
1358
|
-
end
|
|
1359
|
-
|
|
1360
|
-
# Map OOXML style to CSS class
|
|
1361
|
-
def style_to_css_class(style)
|
|
1362
|
-
return ' class=MsoNormal' unless style
|
|
1363
|
-
|
|
1364
|
-
# Handle StyleReference wrapper object or string
|
|
1365
|
-
style_value = style.is_a?(String) ? style : style.to_s
|
|
1366
|
-
|
|
1367
|
-
case style_value
|
|
1368
|
-
when 'Title' then ' class=MsoTitle'
|
|
1369
|
-
when 'Title2' then ' class=MsoTitle2'
|
|
1370
|
-
when 'Subtitle' then ' class=MsoSubtitle'
|
|
1371
|
-
when 'Heading1' then ' class=MsoHeading1'
|
|
1372
|
-
when 'Heading2' then ' class=MsoHeading2'
|
|
1373
|
-
when 'Heading3' then ' class=MsoHeading3'
|
|
1374
|
-
when 'Heading4' then ' class=MsoHeading4'
|
|
1375
|
-
when 'Heading5' then ' class=MsoHeading5'
|
|
1376
|
-
when 'Heading6' then ' class=MsoHeading6'
|
|
1377
|
-
when 'TOC1', 'TOC2', 'TOC3', 'TOC4', 'TOC5', 'TOC6', 'TOC7', 'TOC8', 'TOC9'
|
|
1378
|
-
' class=MsoToc1'
|
|
1379
|
-
when 'SectionTitle' then ' class=SectionTitle'
|
|
1380
|
-
else
|
|
1381
|
-
' class=MsoNormal'
|
|
1382
|
-
end
|
|
1383
|
-
end
|
|
1384
|
-
|
|
1385
|
-
# Escape HTML special characters
|
|
1386
|
-
def escape_html(text)
|
|
1387
|
-
text.to_s
|
|
1388
|
-
.gsub('&', '&')
|
|
1389
|
-
.gsub('<', '<')
|
|
1390
|
-
.gsub('>', '>')
|
|
1391
|
-
.gsub('"', '"')
|
|
1392
|
-
.gsub("'", ''')
|
|
1393
|
-
end
|
|
1394
|
-
|
|
1395
|
-
# Escape XML special characters
|
|
1396
|
-
def escape_xml(text)
|
|
1397
|
-
text.to_s
|
|
1398
|
-
.gsub('&', '&')
|
|
1399
|
-
.gsub('<', '<')
|
|
1400
|
-
.gsub('>', '>')
|
|
1401
|
-
.gsub('"', '"')
|
|
1402
|
-
.gsub("'", ''')
|
|
304
|
+
# Join with <br> between sections (not after the last one)
|
|
305
|
+
# Word HTML uses <br clear="all" class="section" /> between sections
|
|
306
|
+
section_divs.join("\n\n<br clear=\"all\" class=\"section\" />\n\n")
|
|
1403
307
|
end
|
|
1404
308
|
end
|
|
1405
309
|
end
|