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
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "thor"
|
|
4
|
+
require "rainbow"
|
|
5
|
+
require_relative "helpers"
|
|
6
|
+
require_relative "styleset_cli"
|
|
7
|
+
require_relative "resources_cli"
|
|
8
|
+
require_relative "theme_cli"
|
|
9
|
+
require_relative "generate_cli"
|
|
10
|
+
require_relative "review_cli"
|
|
11
|
+
require_relative "template_cli"
|
|
12
|
+
require_relative "diff_cli"
|
|
13
|
+
require_relative "toc_cli"
|
|
14
|
+
require_relative "images_cli"
|
|
15
|
+
require_relative "spellcheck_cli"
|
|
16
|
+
require_relative "headers_cli"
|
|
17
|
+
require_relative "watermark_cli"
|
|
18
|
+
require_relative "protect_cli"
|
|
19
|
+
|
|
20
|
+
module Uniword
|
|
21
|
+
# Command-line interface for Uniword.
|
|
22
|
+
#
|
|
23
|
+
# Provides commands for document conversion, inspection, validation,
|
|
24
|
+
# building, checking, batch processing, metadata, and verification.
|
|
25
|
+
#
|
|
26
|
+
# Subcommands:
|
|
27
|
+
# - theme → ThemeCLI
|
|
28
|
+
# - styleset → StyleSetCLI
|
|
29
|
+
# - resources → ResourcesCLI
|
|
30
|
+
class CLI < Thor
|
|
31
|
+
include CLIHelpers
|
|
32
|
+
|
|
33
|
+
desc "convert INPUT OUTPUT", "Convert document between formats"
|
|
34
|
+
long_desc <<~DESC
|
|
35
|
+
Convert a document from one format to another.
|
|
36
|
+
|
|
37
|
+
Supported formats: DOCX, MHTML, HTML
|
|
38
|
+
|
|
39
|
+
Examples:
|
|
40
|
+
$ uniword convert input.docx output.mhtml
|
|
41
|
+
$ uniword convert input.mhtml output.docx --verbose
|
|
42
|
+
$ uniword convert input.html output.docx
|
|
43
|
+
DESC
|
|
44
|
+
option :from, aliases: "-f", desc: "Input format (docx/mhtml/html)",
|
|
45
|
+
type: :string
|
|
46
|
+
option :to, aliases: "-t", desc: "Output format (docx/mhtml)", type: :string
|
|
47
|
+
option :verbose, aliases: "-v", desc: "Verbose output", type: :boolean,
|
|
48
|
+
default: false
|
|
49
|
+
def convert(input_path, output_path)
|
|
50
|
+
from_format = options[:from]&.to_sym || :auto
|
|
51
|
+
to_format = options[:to]&.to_sym || :auto
|
|
52
|
+
|
|
53
|
+
if options[:verbose]
|
|
54
|
+
say "Converting #{input_path} to #{output_path}...",
|
|
55
|
+
:green
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
doc = DocumentFactory.from_file(input_path, format: from_format)
|
|
59
|
+
|
|
60
|
+
if options[:verbose]
|
|
61
|
+
say " Loaded document:", :cyan
|
|
62
|
+
say " Paragraphs: #{doc.paragraphs.count}"
|
|
63
|
+
say " Tables: #{doc.tables.count}"
|
|
64
|
+
say " Styles: #{doc.styles_configuration&.styles&.count || 0}"
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
doc.save(output_path, format: to_format)
|
|
68
|
+
say "Conversion complete!", :green if options[:verbose]
|
|
69
|
+
rescue Uniword::Error => e
|
|
70
|
+
handle_error(e)
|
|
71
|
+
rescue StandardError => e
|
|
72
|
+
handle_error(e, verbose: options[:verbose])
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
desc "info FILE", "Display document information"
|
|
76
|
+
long_desc <<~DESC
|
|
77
|
+
Display detailed information about a document.
|
|
78
|
+
|
|
79
|
+
Examples:
|
|
80
|
+
$ uniword info document.docx
|
|
81
|
+
$ uniword info report.mhtml --verbose
|
|
82
|
+
DESC
|
|
83
|
+
option :verbose, aliases: "-v", desc: "Show detailed information", type: :boolean,
|
|
84
|
+
default: false
|
|
85
|
+
def info(path)
|
|
86
|
+
say "Analyzing #{path}...", :green
|
|
87
|
+
|
|
88
|
+
detector = ::Uniword::FormatDetector.new
|
|
89
|
+
format = detector.detect(path)
|
|
90
|
+
say "\nFormat: #{format.to_s.upcase}", :cyan
|
|
91
|
+
|
|
92
|
+
doc = load_document(path)
|
|
93
|
+
|
|
94
|
+
say "\nDocument Statistics:", :cyan
|
|
95
|
+
say " Paragraphs: #{doc.paragraphs.count}"
|
|
96
|
+
say " Tables: #{doc.tables.count}"
|
|
97
|
+
say " Text length: #{doc.text.length} characters"
|
|
98
|
+
say " Styles: #{doc.styles_configuration.styles.count}" if doc.styles_configuration&.styles&.any?
|
|
99
|
+
|
|
100
|
+
display_verbose_info(doc) if options[:verbose]
|
|
101
|
+
say "\nAnalysis complete!", :green
|
|
102
|
+
rescue Uniword::Error => e
|
|
103
|
+
handle_error(e)
|
|
104
|
+
rescue StandardError => e
|
|
105
|
+
handle_error(e)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
desc "validate FILE", "Validate document structure"
|
|
109
|
+
long_desc <<~DESC
|
|
110
|
+
Validate a document's structure and check for common issues.
|
|
111
|
+
|
|
112
|
+
Examples:
|
|
113
|
+
$ uniword validate document.docx
|
|
114
|
+
$ uniword validate report.mhtml --verbose
|
|
115
|
+
DESC
|
|
116
|
+
option :verbose, aliases: "-v", desc: "Show detailed validation results", type: :boolean,
|
|
117
|
+
default: false
|
|
118
|
+
def validate(path)
|
|
119
|
+
say "Validating #{path}...", :green
|
|
120
|
+
|
|
121
|
+
doc = load_document(path)
|
|
122
|
+
say "File format is valid", :green
|
|
123
|
+
|
|
124
|
+
if doc.valid?
|
|
125
|
+
say "Document structure is valid", :green
|
|
126
|
+
else
|
|
127
|
+
say "Document has structural issues", :yellow
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
if doc.paragraphs.any? || doc.tables.any?
|
|
131
|
+
say "Document contains content", :green
|
|
132
|
+
else
|
|
133
|
+
say "Document appears to be empty", :yellow
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
display_detailed_validation(doc) if options[:verbose]
|
|
137
|
+
say "\nValidation complete!", :green
|
|
138
|
+
rescue Uniword::Error => e
|
|
139
|
+
handle_error(e)
|
|
140
|
+
rescue StandardError => e
|
|
141
|
+
handle_error(e)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
desc "build TEMPLATE OUTPUT", "Build document from a .docx template"
|
|
145
|
+
long_desc <<~DESC
|
|
146
|
+
Build a document by filling a .docx template with data.
|
|
147
|
+
|
|
148
|
+
Examples:
|
|
149
|
+
$ uniword build template.docx output.docx --data data.yml
|
|
150
|
+
$ uniword build template.docx output.docx --set title="My Report"
|
|
151
|
+
DESC
|
|
152
|
+
option :data, desc: "Path to YAML or JSON data file", type: :string
|
|
153
|
+
option "set", desc: "Set variable (key=value)", type: :array, default: []
|
|
154
|
+
option :verbose, aliases: "-v", desc: "Verbose output", type: :boolean,
|
|
155
|
+
default: false
|
|
156
|
+
def build(template_path, output_path)
|
|
157
|
+
unless File.exist?(template_path)
|
|
158
|
+
say("Template not found: #{template_path}", :red)
|
|
159
|
+
exit 1
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
template = Uniword::Template::Template.load(template_path)
|
|
163
|
+
|
|
164
|
+
if options[:verbose]
|
|
165
|
+
say("Loaded template: #{template_path}", :cyan)
|
|
166
|
+
say(" Markers found: #{template.markers.count}")
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
data = load_build_data
|
|
170
|
+
document = template.render(data)
|
|
171
|
+
document.save(output_path)
|
|
172
|
+
|
|
173
|
+
say("Built document: #{output_path}", :green)
|
|
174
|
+
rescue Uniword::Error => e
|
|
175
|
+
handle_error(e)
|
|
176
|
+
rescue StandardError => e
|
|
177
|
+
handle_error(e, verbose: options[:verbose])
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
desc "check FILE", "Run accessibility and quality checks on a document"
|
|
181
|
+
long_desc <<~DESC
|
|
182
|
+
Run document quality and accessibility checks.
|
|
183
|
+
|
|
184
|
+
Examples:
|
|
185
|
+
$ uniword check document.docx
|
|
186
|
+
$ uniword check document.docx --type accessibility
|
|
187
|
+
$ uniword check document.docx --json
|
|
188
|
+
DESC
|
|
189
|
+
option :type, desc: "Check type (quality/accessibility/all)", type: :string,
|
|
190
|
+
default: "all"
|
|
191
|
+
option :verbose, aliases: "-v", desc: "Show detailed results", type: :boolean,
|
|
192
|
+
default: false
|
|
193
|
+
option :json, desc: "Output JSON report", type: :boolean, default: false
|
|
194
|
+
def check(path)
|
|
195
|
+
doc = load_document(path)
|
|
196
|
+
check_type = options[:type]
|
|
197
|
+
|
|
198
|
+
reports = {}
|
|
199
|
+
|
|
200
|
+
if %w[all quality].include?(check_type)
|
|
201
|
+
checker = Quality::DocumentChecker.new
|
|
202
|
+
reports[:quality] = checker.check(doc)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
if %w[all accessibility].include?(check_type)
|
|
206
|
+
checker = Accessibility::AccessibilityChecker.new
|
|
207
|
+
reports[:accessibility] = checker.check(doc)
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
if options[:json]
|
|
211
|
+
require "json"
|
|
212
|
+
output = reports.transform_values do |r|
|
|
213
|
+
{ valid: r.valid?,
|
|
214
|
+
issues: r.respond_to?(:issues) ? r.issues.count : 0 }
|
|
215
|
+
end
|
|
216
|
+
puts JSON.pretty_generate(output)
|
|
217
|
+
else
|
|
218
|
+
display_check_reports(reports)
|
|
219
|
+
end
|
|
220
|
+
rescue Uniword::Error => e
|
|
221
|
+
handle_error(e)
|
|
222
|
+
rescue StandardError => e
|
|
223
|
+
handle_error(e)
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
desc "batch PATTERN OUTPUT_DIR",
|
|
227
|
+
"Batch convert documents matching a glob pattern"
|
|
228
|
+
long_desc <<~DESC
|
|
229
|
+
Convert multiple documents matching a file glob pattern.
|
|
230
|
+
|
|
231
|
+
Examples:
|
|
232
|
+
$ uniword batch "docs/*.html" output/
|
|
233
|
+
$ uniword batch "*.mhtml" converted/ --format docx
|
|
234
|
+
DESC
|
|
235
|
+
option :format, aliases: "-f", desc: "Output format (docx/mhtml)", type: :string,
|
|
236
|
+
default: "docx"
|
|
237
|
+
option :verbose, aliases: "-v", desc: "Verbose output", type: :boolean,
|
|
238
|
+
default: false
|
|
239
|
+
def batch(pattern, output_dir)
|
|
240
|
+
require "fileutils"
|
|
241
|
+
FileUtils.mkdir_p(output_dir)
|
|
242
|
+
|
|
243
|
+
files = Dir.glob(pattern)
|
|
244
|
+
if files.empty?
|
|
245
|
+
say("No files found matching '#{pattern}'", :yellow)
|
|
246
|
+
return
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
say("Processing #{files.count} files...", :green) if options[:verbose]
|
|
250
|
+
|
|
251
|
+
success = 0
|
|
252
|
+
errors = []
|
|
253
|
+
|
|
254
|
+
files.each do |input_path|
|
|
255
|
+
basename = File.basename(input_path, ".*")
|
|
256
|
+
ext = options[:format] == "mhtml" ? ".mhtml" : ".docx"
|
|
257
|
+
output_path = File.join(output_dir, "#{basename}#{ext}")
|
|
258
|
+
|
|
259
|
+
begin
|
|
260
|
+
doc = DocumentFactory.from_file(input_path)
|
|
261
|
+
doc.save(output_path, format: options[:format].to_sym)
|
|
262
|
+
say(" #{File.basename(input_path)} -> #{File.basename(output_path)}") if options[:verbose]
|
|
263
|
+
success += 1
|
|
264
|
+
rescue StandardError => e
|
|
265
|
+
errors << "#{File.basename(input_path)}: #{e.message}"
|
|
266
|
+
if options[:verbose]
|
|
267
|
+
say(" Error: #{File.basename(input_path)}: #{e.message}",
|
|
268
|
+
:red)
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
say("\nBatch complete: #{success} converted, #{errors.count} errors",
|
|
274
|
+
:green)
|
|
275
|
+
return if errors.empty?
|
|
276
|
+
|
|
277
|
+
say("Errors:", :red)
|
|
278
|
+
errors.each { |e| say(" - #{e}", :red) }
|
|
279
|
+
rescue StandardError => e
|
|
280
|
+
say "Error: #{e.message}", :red
|
|
281
|
+
exit 1
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
desc "metadata FILE", "Display or edit document metadata"
|
|
285
|
+
long_desc <<~DESC
|
|
286
|
+
Display document metadata. Use --set-title, --set-author, etc. to update.
|
|
287
|
+
|
|
288
|
+
Examples:
|
|
289
|
+
$ uniword metadata document.docx
|
|
290
|
+
$ uniword metadata document.docx --set-title "Annual Report"
|
|
291
|
+
$ uniword metadata document.docx --json
|
|
292
|
+
DESC
|
|
293
|
+
option "set-title", type: :string, desc: "Set document title"
|
|
294
|
+
option "set-author", type: :string, desc: "Set document author"
|
|
295
|
+
option "set-subject", type: :string, desc: "Set document subject"
|
|
296
|
+
option "set-keywords", type: :string, desc: "Set document keywords"
|
|
297
|
+
option "set-description", type: :string, desc: "Set document description"
|
|
298
|
+
option :json, desc: "Output as JSON", type: :boolean, default: false
|
|
299
|
+
option :output, aliases: "-o", desc: "Output file (required when setting metadata)",
|
|
300
|
+
type: :string
|
|
301
|
+
def metadata(path)
|
|
302
|
+
doc = load_document(path)
|
|
303
|
+
cp = doc.core_properties
|
|
304
|
+
|
|
305
|
+
updated = apply_metadata_updates(cp)
|
|
306
|
+
|
|
307
|
+
if updated
|
|
308
|
+
output_path = options[:output]
|
|
309
|
+
unless output_path
|
|
310
|
+
say("Error: --output is required when setting metadata", :red)
|
|
311
|
+
exit 1
|
|
312
|
+
end
|
|
313
|
+
doc.save(output_path)
|
|
314
|
+
say("Metadata updated and saved to #{output_path}", :green)
|
|
315
|
+
return
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
display_metadata(cp)
|
|
319
|
+
rescue Uniword::Error => e
|
|
320
|
+
handle_error(e)
|
|
321
|
+
rescue StandardError => e
|
|
322
|
+
handle_error(e)
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
desc "verify FILE", "Verify DOCX against OPC and XSD schemas"
|
|
326
|
+
long_desc <<~DESC
|
|
327
|
+
Perform comprehensive DOCX verification across three layers:
|
|
328
|
+
|
|
329
|
+
1. OPC Package -- ZIP integrity, content types, relationships
|
|
330
|
+
2. XSD Schema -- XML schema validation (namespace-aware)
|
|
331
|
+
3. Word Document -- semantic checks
|
|
332
|
+
|
|
333
|
+
Examples:
|
|
334
|
+
$ uniword verify document.docx
|
|
335
|
+
$ uniword verify document.docx --verbose
|
|
336
|
+
$ uniword verify document.docx --xsd
|
|
337
|
+
DESC
|
|
338
|
+
option :verbose, aliases: "-v", desc: "Show detailed issue listing",
|
|
339
|
+
type: :boolean, default: false
|
|
340
|
+
option :json, desc: "Output JSON report", type: :boolean, default: false
|
|
341
|
+
option :yaml, desc: "Output YAML report", type: :boolean, default: false
|
|
342
|
+
option :xsd, desc: "Enable XSD schema validation", type: :boolean,
|
|
343
|
+
default: false
|
|
344
|
+
def verify(path)
|
|
345
|
+
unless File.exist?(path)
|
|
346
|
+
say(Rainbow(" File not found: #{path}").red.bright)
|
|
347
|
+
exit 1
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
orchestrator = Uniword::Validation::VerifyOrchestrator.new(
|
|
351
|
+
xsd_validation: options[:xsd],
|
|
352
|
+
)
|
|
353
|
+
report = orchestrator.verify(path)
|
|
354
|
+
|
|
355
|
+
if options[:json]
|
|
356
|
+
puts report.to_json
|
|
357
|
+
elsif options[:yaml]
|
|
358
|
+
require "yaml"
|
|
359
|
+
puts YAML.dump(JSON.parse(report.to_json))
|
|
360
|
+
else
|
|
361
|
+
formatter = Uniword::Validation::Report::TerminalFormatter.new
|
|
362
|
+
puts formatter.format(report, verbose: options[:verbose])
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
exit report.valid ? 0 : 1
|
|
366
|
+
rescue StandardError => e
|
|
367
|
+
say(Rainbow(" Error: #{e.message}").red.bright)
|
|
368
|
+
exit 1
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
desc "version", "Show Uniword version"
|
|
372
|
+
def version
|
|
373
|
+
say "Uniword version #{Uniword::VERSION}", :green
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
# Register subcommands
|
|
377
|
+
desc "theme SUBCOMMAND", "Manage document themes"
|
|
378
|
+
subcommand "theme", ThemeCLI
|
|
379
|
+
|
|
380
|
+
desc "styleset SUBCOMMAND", "Manage document StyleSets"
|
|
381
|
+
subcommand "styleset", StyleSetCLI
|
|
382
|
+
|
|
383
|
+
desc "resources SUBCOMMAND", "Manage Word resources"
|
|
384
|
+
subcommand "resources", ResourcesCLI
|
|
385
|
+
|
|
386
|
+
desc "generate INPUT OUTPUT", "Generate DOCX from structured text"
|
|
387
|
+
subcommand "generate", GenerateCLI
|
|
388
|
+
|
|
389
|
+
desc "review SUBCOMMAND", "Review comments and tracked changes"
|
|
390
|
+
subcommand "review", ReviewCLI
|
|
391
|
+
|
|
392
|
+
desc "diff SUBCOMMAND", "Compare two DOCX files"
|
|
393
|
+
subcommand "diff", DiffCLI
|
|
394
|
+
|
|
395
|
+
desc "toc SUBCOMMAND", "Generate and manage table of contents"
|
|
396
|
+
subcommand "toc", TocCLI
|
|
397
|
+
|
|
398
|
+
desc "images SUBCOMMAND", "Manage images in documents"
|
|
399
|
+
subcommand "images", ImagesCLI
|
|
400
|
+
|
|
401
|
+
desc "spellcheck SUBCOMMAND", "Spell and grammar checking"
|
|
402
|
+
subcommand "spellcheck", SpellcheckCLI
|
|
403
|
+
|
|
404
|
+
desc "template SUBCOMMAND", "Manage document templates"
|
|
405
|
+
subcommand "template", TemplateCLI
|
|
406
|
+
|
|
407
|
+
desc "headers SUBCOMMAND", "Manage headers and footers"
|
|
408
|
+
subcommand "headers", HeadersCLI
|
|
409
|
+
|
|
410
|
+
desc "watermark SUBCOMMAND", "Manage watermarks"
|
|
411
|
+
subcommand "watermark", WatermarkCLI
|
|
412
|
+
|
|
413
|
+
desc "protect SUBCOMMAND", "Manage document protection"
|
|
414
|
+
subcommand "protect", ProtectCLI
|
|
415
|
+
|
|
416
|
+
private
|
|
417
|
+
|
|
418
|
+
def display_verbose_info(doc)
|
|
419
|
+
say "\nDetailed Information:", :cyan
|
|
420
|
+
|
|
421
|
+
if doc.paragraphs.any?
|
|
422
|
+
say " First paragraphs:"
|
|
423
|
+
doc.paragraphs.first(3).each_with_index do |para, i|
|
|
424
|
+
text = para.text[0..80]
|
|
425
|
+
text += "..." if para.text.length > 80
|
|
426
|
+
say " #{i + 1}. #{text}"
|
|
427
|
+
end
|
|
428
|
+
end
|
|
429
|
+
|
|
430
|
+
return unless doc.tables.any?
|
|
431
|
+
|
|
432
|
+
say " Tables:"
|
|
433
|
+
doc.tables.each_with_index do |table, i|
|
|
434
|
+
say " #{i + 1}. #{table.row_count} rows x #{table.column_count} columns"
|
|
435
|
+
end
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
def display_detailed_validation(doc)
|
|
439
|
+
say "\nDetailed Validation:", :cyan
|
|
440
|
+
|
|
441
|
+
empty_paras = doc.paragraphs.count(&:empty?)
|
|
442
|
+
if empty_paras.positive?
|
|
443
|
+
say " #{empty_paras} empty paragraph(s) found", :yellow
|
|
444
|
+
else
|
|
445
|
+
say " All paragraphs have content", :green
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
return unless doc.tables.any?
|
|
449
|
+
|
|
450
|
+
empty_tables = doc.tables.count(&:empty?)
|
|
451
|
+
if empty_tables.positive?
|
|
452
|
+
say " #{empty_tables} empty table(s) found", :yellow
|
|
453
|
+
else
|
|
454
|
+
say " All tables have content", :green
|
|
455
|
+
end
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
def display_check_reports(reports)
|
|
459
|
+
reports.each do |type, report|
|
|
460
|
+
label = type.to_s.capitalize
|
|
461
|
+
if report.valid?
|
|
462
|
+
say("#{label}: No issues found", :green)
|
|
463
|
+
else
|
|
464
|
+
issue_count = report.respond_to?(:issues) ? report.issues.count : "?"
|
|
465
|
+
say("#{label}: #{issue_count} issue(s) found", :yellow)
|
|
466
|
+
if options[:verbose] && report.respond_to?(:issues)
|
|
467
|
+
report.issues.each do |issue|
|
|
468
|
+
say(" - #{issue}", :yellow)
|
|
469
|
+
end
|
|
470
|
+
end
|
|
471
|
+
end
|
|
472
|
+
end
|
|
473
|
+
end
|
|
474
|
+
|
|
475
|
+
def load_build_data
|
|
476
|
+
data = {}
|
|
477
|
+
if options[:data]
|
|
478
|
+
unless File.exist?(options[:data])
|
|
479
|
+
say("Data file not found: #{options[:data]}", :red)
|
|
480
|
+
exit 1
|
|
481
|
+
end
|
|
482
|
+
|
|
483
|
+
ext = File.extname(options[:data])
|
|
484
|
+
content = File.read(options[:data])
|
|
485
|
+
data = if ext == ".json"
|
|
486
|
+
require "json"
|
|
487
|
+
JSON.parse(content)
|
|
488
|
+
else
|
|
489
|
+
require "yaml"
|
|
490
|
+
YAML.safe_load(content) || {}
|
|
491
|
+
end
|
|
492
|
+
end
|
|
493
|
+
|
|
494
|
+
options["set"].each do |pair|
|
|
495
|
+
key, value = pair.split("=", 2)
|
|
496
|
+
data[key] = value if key && value
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
data
|
|
500
|
+
end
|
|
501
|
+
|
|
502
|
+
def apply_metadata_updates(core_properties)
|
|
503
|
+
setters = {
|
|
504
|
+
"set-title" => :title=,
|
|
505
|
+
"set-author" => :creator=,
|
|
506
|
+
"set-subject" => :subject=,
|
|
507
|
+
"set-keywords" => :keywords=,
|
|
508
|
+
"set-description" => :description=,
|
|
509
|
+
}
|
|
510
|
+
updated = false
|
|
511
|
+
setters.each do |opt, setter|
|
|
512
|
+
next unless options[opt]
|
|
513
|
+
|
|
514
|
+
core_properties&.send(setter, options[opt])
|
|
515
|
+
updated = true
|
|
516
|
+
end
|
|
517
|
+
updated
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
def display_metadata(core_properties)
|
|
521
|
+
meta = {
|
|
522
|
+
title: core_properties&.title,
|
|
523
|
+
author: core_properties&.creator,
|
|
524
|
+
subject: core_properties&.subject,
|
|
525
|
+
keywords: core_properties&.keywords,
|
|
526
|
+
description: core_properties&.description,
|
|
527
|
+
last_modified_by: core_properties&.last_modified_by,
|
|
528
|
+
revision: core_properties&.revision,
|
|
529
|
+
created: core_properties&.created,
|
|
530
|
+
modified: core_properties&.modified,
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
if options[:json]
|
|
534
|
+
require "json"
|
|
535
|
+
puts JSON.pretty_generate(meta)
|
|
536
|
+
else
|
|
537
|
+
say "Document Metadata:", :cyan
|
|
538
|
+
say " Title: #{meta[:title] || '(none)'}"
|
|
539
|
+
say " Author: #{meta[:author] || '(none)'}"
|
|
540
|
+
say " Subject: #{meta[:subject] || '(none)'}"
|
|
541
|
+
say " Keywords: #{meta[:keywords] || '(none)'}"
|
|
542
|
+
say " Description: #{meta[:description] || '(none)'}"
|
|
543
|
+
say " Modified by: #{meta[:last_modified_by] || '(none)'}"
|
|
544
|
+
say " Revision: #{meta[:revision] || '(none)'}"
|
|
545
|
+
say " Created: #{meta[:created] || '(unknown)'}"
|
|
546
|
+
say " Modified: #{meta[:modified] || '(unknown)'}"
|
|
547
|
+
end
|
|
548
|
+
end
|
|
549
|
+
end
|
|
550
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "thor"
|
|
4
|
+
require_relative "helpers"
|
|
5
|
+
|
|
6
|
+
module Uniword
|
|
7
|
+
# Protect subcommand for Uniword CLI.
|
|
8
|
+
#
|
|
9
|
+
# Manages document editing restrictions and password protection.
|
|
10
|
+
class ProtectCLI < Thor
|
|
11
|
+
include CLIHelpers
|
|
12
|
+
|
|
13
|
+
desc "apply FILE", "Apply editing restriction"
|
|
14
|
+
long_desc <<~DESC
|
|
15
|
+
Apply editing restriction to a document.
|
|
16
|
+
|
|
17
|
+
Protection types:
|
|
18
|
+
- read_only: No edits allowed
|
|
19
|
+
- comments: Only comments allowed
|
|
20
|
+
- tracked_changes: Only tracked changes allowed
|
|
21
|
+
- forms: Only form fields editable
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
$ uniword protect apply document.docx --type read_only -o out.docx
|
|
25
|
+
$ uniword protect apply document.docx --type comments --password secret -o out.docx
|
|
26
|
+
DESC
|
|
27
|
+
option :output, aliases: "-o", required: true, type: :string
|
|
28
|
+
option :type, desc: "Protection type", type: :string,
|
|
29
|
+
default: "read_only"
|
|
30
|
+
option :password, desc: "Optional password", type: :string
|
|
31
|
+
def apply(path)
|
|
32
|
+
doc = load_document(path)
|
|
33
|
+
manager = Protect::Manager.new(doc)
|
|
34
|
+
|
|
35
|
+
protection_type = options[:type].to_sym
|
|
36
|
+
manager.apply(protection_type, password: options[:password])
|
|
37
|
+
|
|
38
|
+
doc.save(options[:output])
|
|
39
|
+
say "Applied #{options[:type]} protection to #{options[:output]}",
|
|
40
|
+
:green
|
|
41
|
+
say "Password protected" if options[:password]
|
|
42
|
+
rescue ArgumentError => e
|
|
43
|
+
say "Error: #{e.message}", :red
|
|
44
|
+
exit 1
|
|
45
|
+
rescue Uniword::Error => e
|
|
46
|
+
handle_error(e)
|
|
47
|
+
rescue StandardError => e
|
|
48
|
+
handle_error(e)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
desc "remove FILE", "Remove document protection"
|
|
52
|
+
long_desc <<~DESC
|
|
53
|
+
Remove all editing restrictions from a document.
|
|
54
|
+
|
|
55
|
+
Examples:
|
|
56
|
+
$ uniword protect remove document.docx -o unprotected.docx
|
|
57
|
+
DESC
|
|
58
|
+
option :output, aliases: "-o", required: true, type: :string
|
|
59
|
+
def remove(path)
|
|
60
|
+
doc = load_document(path)
|
|
61
|
+
manager = Protect::Manager.new(doc)
|
|
62
|
+
|
|
63
|
+
manager.remove
|
|
64
|
+
doc.save(options[:output])
|
|
65
|
+
say "Removed protection from #{options[:output]}", :green
|
|
66
|
+
rescue Uniword::Error => e
|
|
67
|
+
handle_error(e)
|
|
68
|
+
rescue StandardError => e
|
|
69
|
+
handle_error(e)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
desc "info FILE", "Show document protection status"
|
|
73
|
+
long_desc <<~DESC
|
|
74
|
+
Display the current protection status of a document.
|
|
75
|
+
|
|
76
|
+
Examples:
|
|
77
|
+
$ uniword protect info document.docx
|
|
78
|
+
DESC
|
|
79
|
+
def info(path)
|
|
80
|
+
doc = load_document(path)
|
|
81
|
+
manager = Protect::Manager.new(doc)
|
|
82
|
+
|
|
83
|
+
if manager.protected?
|
|
84
|
+
details = manager.info
|
|
85
|
+
say "Document is protected:", :yellow
|
|
86
|
+
say " Type: #{details[:type]}"
|
|
87
|
+
say " Password: #{details[:password_protected] ? 'Yes' : 'No'}"
|
|
88
|
+
else
|
|
89
|
+
say "Document is not protected.", :green
|
|
90
|
+
end
|
|
91
|
+
rescue Uniword::Error => e
|
|
92
|
+
handle_error(e)
|
|
93
|
+
rescue StandardError => e
|
|
94
|
+
handle_error(e)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|