idml 0.1.0
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 +7 -0
- data/.github/workflows/rake.yml +18 -0
- data/.github/workflows/release.yml +27 -0
- data/.gitignore +27 -0
- data/.rspec +3 -0
- data/.rubocop.yml +21 -0
- data/.rubocop_todo.yml +113 -0
- data/.yardopts +4 -0
- data/CLAUDE.md +305 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +253 -0
- data/README.adoc +4 -0
- data/Rakefile +22 -0
- data/TODO.complete/01-bootstrap.md +52 -0
- data/TODO.complete/02-package-layer.md +48 -0
- data/TODO.complete/03-parts-registry-and-designmap.md +64 -0
- data/TODO.complete/04-spread-and-master-spread.md +57 -0
- data/TODO.complete/05-story-and-backing-story.md +56 -0
- data/TODO.complete/06-resources.md +53 -0
- data/TODO.complete/07-xml-structure.md +32 -0
- data/TODO.complete/08-round-trip-suite.md +44 -0
- data/TODO.complete/09-validation.md +51 -0
- data/TODO.complete/10-composition.md +62 -0
- data/TODO.complete/11-package-accessors.md +41 -0
- data/TODO.complete/12-document-layer.md +44 -0
- data/TODO.complete/13-insert-idml.md +31 -0
- data/TODO.complete/14-geometry.md +33 -0
- data/TODO.complete/15-cli.md +44 -0
- data/TODO.complete/16-cross-version-tolerance.md +40 -0
- data/TODO.complete/17-yard-documentation.md +38 -0
- data/TODO.complete/18-remove-nokogiri.md +38 -0
- data/TODO.complete/19-vendor-fixtures.md +44 -0
- data/TODO.complete/20-round-trip-all-fixtures.md +39 -0
- data/TODO.complete/21-anti-pattern-forbid-nokogiri.md +31 -0
- data/TODO.complete/22-claude-md-no-nokogiri.md +29 -0
- data/TODO.complete/23-lutaml-only-no-rexml.md +60 -0
- data/TODO.complete/24-anti-pattern-forbid-rexml.md +29 -0
- data/TODO.complete/25-claude-md-lutaml-only.md +29 -0
- data/TODO.complete/26-rnc-faithful-models.md +66 -0
- data/TODO.complete/27-geometry-scale-rotate.md +28 -0
- data/TODO.complete/28-designmap-migration.md +33 -0
- data/TODO.complete/29-add-page-from-idml.md +35 -0
- data/TODO.complete/30-import-xml.md +37 -0
- data/TODO.complete/31-export-xml.md +32 -0
- data/TODO.complete/33-element-spec-coverage.md +30 -0
- data/TODO.pdf/01-font-metrics.md +43 -0
- data/TODO.pdf/02-font-resolver.md +42 -0
- data/TODO.pdf/03-text-shaper.md +40 -0
- data/TODO.pdf/04-line-breaker-justifier.md +51 -0
- data/TODO.pdf/05-vertical-layout.md +42 -0
- data/TODO.pdf/06-pdf-color-operators.md +25 -0
- data/TODO.pdf/07-pdf-path-operators.md +29 -0
- data/TODO.pdf/08-pdf-text-operators.md +29 -0
- data/TODO.pdf/09-image-embedding.md +34 -0
- data/TODO.pdf/10-spread-renderer.md +33 -0
- data/TODO.pdf/11-font-embedding.md +38 -0
- data/TODO.pdf/12-idml-to-pdf-pipeline.md +41 -0
- data/TODO.pdf/13-cjk-text-layout.md +40 -0
- data/TODO.pdf/14-page-item-element-models.md +61 -0
- data/TODO.pdf/15-wire-spread-children.md +46 -0
- data/TODO.pdf/16-typed-model-pipeline.md +48 -0
- data/TODO.pdf/17-shape-rendering.md +46 -0
- data/TODO.pdf/18-text-rendering.md +48 -0
- data/TODO.pdf/19-page-dimensions.md +40 -0
- data/TODO.pdf/20-png-image-support.md +43 -0
- data/TODO.pdf/21-coordinate-transform.md +41 -0
- data/TODO.pdf/22-color-resolution.md +41 -0
- data/TODO.pdf/23-fontmetrics-ps-name-fix.md +43 -0
- data/TODO.pdf/24-antipattern-coverage.md +35 -0
- data/TODO.pdf/25-cli-render.md +38 -0
- data/TODO.pdf/26-renderer-registry.md +45 -0
- data/TODO.pdf/27-text-engine-integration.md +41 -0
- data/TODO.pdf/28-path-geometry-models.md +47 -0
- data/TODO.pdf/29-character-style-extraction.md +36 -0
- data/TODO.pdf/30-shape-geometry-rendering.md +40 -0
- data/TODO.pdf/31-stroke-rendering.md +35 -0
- data/TODO.pdf/32-master-spread-rendering.md +36 -0
- data/TODO.pdf/33-font-resolution-from-idml.md +38 -0
- data/TODO.pdf/34-story-threading.md +32 -0
- data/TODO.pdf/35-pdf-metadata.md +34 -0
- data/TODO.pdf/36-performance-caching.md +33 -0
- data/TODO.pdf/37-round-trip-specs.md +33 -0
- data/TODO.pdf/38-pdf-output-validation.md +34 -0
- data/TODO.pdf/39-geometry-coordinate-helpers.md +26 -0
- data/TODO.pdf/40-font-ps-name-resolution.md +30 -0
- data/TODO.pdf/41-graphic-line-rendering.md +20 -0
- data/TODO.pdf/42-group-transform-application.md +17 -0
- data/TODO.pdf/43-text-frame-insets.md +17 -0
- data/TODO.pdf/44-layer-support.md +20 -0
- data/TODO.pdf/45-image-clipping.md +17 -0
- data/TODO.pdf/46-spread-to-page-separation.md +19 -0
- data/TODO.pdf/47-pdf-bookmarks.md +17 -0
- data/TODO.pdf/48-table-rendering.md +20 -0
- data/TODO.pdf/49-gradient-fill-rendering.md +20 -0
- data/TODO.pdf/50-pdf-a-compliance.md +21 -0
- data/TODO.pdf/51-remove-dead-code.md +41 -0
- data/TODO.pdf/52-font-subsetting.md +22 -0
- data/TODO.pdf/53-tagged-pdf-accessibility.md +24 -0
- data/TODO.pdf/54-pdfrb-pipeline-specs.md +27 -0
- data/TODO.pdf/55-dead-code-deprecation.md +30 -0
- data/TODO.pdf/56-text-engine-pdfrb-integration.md +33 -0
- data/TODO.pdf/57-image-clipping-pdfrb.md +26 -0
- data/TODO.pdf/58-bookmarks-pdfrb.md +23 -0
- data/TODO.pdf/59-dry-placement-rect.md +15 -0
- data/TODO.pdf/60-cli-pdf-a-flag.md +16 -0
- data/TODO.pdf/README.md +21 -0
- data/exe/idml +5 -0
- data/idml.gemspec +39 -0
- data/lib/idml/cli.rb +105 -0
- data/lib/idml/composition/add_page_from_idml.rb +67 -0
- data/lib/idml/composition/export_xml.rb +70 -0
- data/lib/idml/composition/import_xml.rb +73 -0
- data/lib/idml/composition/insert_idml.rb +93 -0
- data/lib/idml/composition/prefix.rb +78 -0
- data/lib/idml/composition.rb +16 -0
- data/lib/idml/document.rb +87 -0
- data/lib/idml/elements/anchored_object_setting.rb +40 -0
- data/lib/idml/elements/baseline_frame_grid_option.rb +24 -0
- data/lib/idml/elements/bevel_and_emboss_setting.rb +48 -0
- data/lib/idml/elements/blending_setting.rb +24 -0
- data/lib/idml/elements/cell_style.rb +166 -0
- data/lib/idml/elements/cell_style_group.rb +18 -0
- data/lib/idml/elements/character_style.rb +302 -0
- data/lib/idml/elements/character_style_group.rb +18 -0
- data/lib/idml/elements/character_style_range.rb +670 -0
- data/lib/idml/elements/color.rb +48 -0
- data/lib/idml/elements/content.rb +16 -0
- data/lib/idml/elements/content_transparency_setting.rb +15 -0
- data/lib/idml/elements/contour_option.rb +30 -0
- data/lib/idml/elements/dashed_stroke_style.rb +26 -0
- data/lib/idml/elements/directional_feather_setting.rb +34 -0
- data/lib/idml/elements/document_object.rb +82 -0
- data/lib/idml/elements/dotted_stroke_style.rb +24 -0
- data/lib/idml/elements/drop_shadow_setting.rb +44 -0
- data/lib/idml/elements/feather_setting.rb +26 -0
- data/lib/idml/elements/fill_transparency_setting.rb +15 -0
- data/lib/idml/elements/flex_layout_attribute_option.rb +42 -0
- data/lib/idml/elements/font.rb +50 -0
- data/lib/idml/elements/font_family.rb +23 -0
- data/lib/idml/elements/frame_fitting_option.rb +30 -0
- data/lib/idml/elements/geometry_path_type.rb +24 -0
- data/lib/idml/elements/gradient.rb +34 -0
- data/lib/idml/elements/gradient_feather_setting.rb +30 -0
- data/lib/idml/elements/gradient_stop.rb +24 -0
- data/lib/idml/elements/graphic_line.rb +34 -0
- data/lib/idml/elements/group.rb +41 -0
- data/lib/idml/elements/image.rb +33 -0
- data/lib/idml/elements/ink.rb +36 -0
- data/lib/idml/elements/inner_glow_setting.rb +34 -0
- data/lib/idml/elements/inner_shadow_setting.rb +40 -0
- data/lib/idml/elements/layer.rb +35 -0
- data/lib/idml/elements/link.rb +25 -0
- data/lib/idml/elements/master_spread_object.rb +55 -0
- data/lib/idml/elements/mixed_ink.rb +46 -0
- data/lib/idml/elements/mixed_ink_group.rb +40 -0
- data/lib/idml/elements/object_export_option.rb +100 -0
- data/lib/idml/elements/object_style.rb +148 -0
- data/lib/idml/elements/object_style_content_effects_category_settings.rb +36 -0
- data/lib/idml/elements/object_style_export_tag_map.rb +28 -0
- data/lib/idml/elements/object_style_fill_effects_category_settings.rb +36 -0
- data/lib/idml/elements/object_style_group.rb +18 -0
- data/lib/idml/elements/object_style_object_effects_category_settings.rb +36 -0
- data/lib/idml/elements/object_style_stroke_effects_category_settings.rb +36 -0
- data/lib/idml/elements/opacity_gradient_stop.rb +24 -0
- data/lib/idml/elements/outer_glow_setting.rb +32 -0
- data/lib/idml/elements/page.rb +43 -0
- data/lib/idml/elements/paragraph_style.rb +600 -0
- data/lib/idml/elements/paragraph_style_group.rb +18 -0
- data/lib/idml/elements/paragraph_style_range.rb +673 -0
- data/lib/idml/elements/pasted_smooth_shade.rb +40 -0
- data/lib/idml/elements/path_geometry.rb +36 -0
- data/lib/idml/elements/path_point_array.rb +21 -0
- data/lib/idml/elements/path_point_type.rb +38 -0
- data/lib/idml/elements/polygon.rb +40 -0
- data/lib/idml/elements/pref_anchored_object_default.rb +26 -0
- data/lib/idml/elements/pref_button_preference.rb +18 -0
- data/lib/idml/elements/pref_chapter_number_preference.rb +20 -0
- data/lib/idml/elements/pref_cjk_grid_preference.rb +34 -0
- data/lib/idml/elements/pref_data_merge.rb +20 -0
- data/lib/idml/elements/pref_data_merge_field.rb +20 -0
- data/lib/idml/elements/pref_data_merge_option.rb +28 -0
- data/lib/idml/elements/pref_dictionary_preference.rb +22 -0
- data/lib/idml/elements/pref_document_preference.rb +66 -0
- data/lib/idml/elements/pref_e_pub_export_preference.rb +152 -0
- data/lib/idml/elements/pref_e_pub_fixed_layout_export_preference.rb +82 -0
- data/lib/idml/elements/pref_export_for_web_preference.rb +32 -0
- data/lib/idml/elements/pref_footnote_option.rb +78 -0
- data/lib/idml/elements/pref_grid_preference.rb +40 -0
- data/lib/idml/elements/pref_guide_preference.rb +26 -0
- data/lib/idml/elements/pref_html_export_preference.rb +94 -0
- data/lib/idml/elements/pref_index_header_setting.rb +26 -0
- data/lib/idml/elements/pref_index_options.rb +60 -0
- data/lib/idml/elements/pref_layout_adjustment_preference.rb +28 -0
- data/lib/idml/elements/pref_layout_grid_data_information.rb +28 -0
- data/lib/idml/elements/pref_margin_preference.rb +32 -0
- data/lib/idml/elements/pref_mojikumi_ui_preference.rb +18 -0
- data/lib/idml/elements/pref_page_item_default.rb +88 -0
- data/lib/idml/elements/pref_pasteboard_preference.rb +22 -0
- data/lib/idml/elements/pref_print_booklet_option.rb +40 -0
- data/lib/idml/elements/pref_print_booklet_print_preference.rb +188 -0
- data/lib/idml/elements/pref_print_preference.rb +198 -0
- data/lib/idml/elements/pref_story_grid_data_information.rb +40 -0
- data/lib/idml/elements/pref_text_default.rb +578 -0
- data/lib/idml/elements/pref_text_preference.rb +84 -0
- data/lib/idml/elements/pref_tin_document_data_object.rb +15 -0
- data/lib/idml/elements/pref_transparency_default_container_object.rb +15 -0
- data/lib/idml/elements/pref_transparency_preference.rb +22 -0
- data/lib/idml/elements/pref_view_preference.rb +50 -0
- data/lib/idml/elements/pref_xml_export_preference.rb +48 -0
- data/lib/idml/elements/pref_xml_import_preference.rb +36 -0
- data/lib/idml/elements/pref_xml_preference.rb +26 -0
- data/lib/idml/elements/properties.rb +24 -0
- data/lib/idml/elements/rectangle.rb +56 -0
- data/lib/idml/elements/root_cell_style_group.rb +21 -0
- data/lib/idml/elements/root_character_style_group.rb +21 -0
- data/lib/idml/elements/root_object_style_group.rb +21 -0
- data/lib/idml/elements/root_paragraph_style_group.rb +21 -0
- data/lib/idml/elements/root_table_style_group.rb +21 -0
- data/lib/idml/elements/satin_setting.rb +32 -0
- data/lib/idml/elements/spread_object.rb +64 -0
- data/lib/idml/elements/story_inner.rb +697 -0
- data/lib/idml/elements/story_preference.rb +26 -0
- data/lib/idml/elements/striped_stroke_style.rb +22 -0
- data/lib/idml/elements/stroke_style.rb +20 -0
- data/lib/idml/elements/stroke_transparency_setting.rb +15 -0
- data/lib/idml/elements/style_export_tag_map.rb +30 -0
- data/lib/idml/elements/swatch.rb +30 -0
- data/lib/idml/elements/table.rb +40 -0
- data/lib/idml/elements/table_cell.rb +24 -0
- data/lib/idml/elements/table_row.rb +28 -0
- data/lib/idml/elements/table_style.rb +260 -0
- data/lib/idml/elements/table_style_group.rb +18 -0
- data/lib/idml/elements/text_frame.rb +54 -0
- data/lib/idml/elements/text_frame_footnote_options_object.rb +24 -0
- data/lib/idml/elements/text_frame_preference.rb +90 -0
- data/lib/idml/elements/text_wrap_preference.rb +24 -0
- data/lib/idml/elements/tint.rb +44 -0
- data/lib/idml/elements/toc_style.rb +40 -0
- data/lib/idml/elements/toc_style_entry.rb +28 -0
- data/lib/idml/elements/transform_attribute_option.rb +30 -0
- data/lib/idml/elements/transparency_setting.rb +15 -0
- data/lib/idml/elements/trap_preset.rb +48 -0
- data/lib/idml/elements/xml_element.rb +41 -0
- data/lib/idml/elements/xml_export_map.rb +28 -0
- data/lib/idml/elements/xml_import_map.rb +22 -0
- data/lib/idml/elements/xml_story.rb +609 -0
- data/lib/idml/elements/xml_tag.rb +20 -0
- data/lib/idml/elements.rb +167 -0
- data/lib/idml/errors.rb +10 -0
- data/lib/idml/geometry.rb +110 -0
- data/lib/idml/namespace.rb +13 -0
- data/lib/idml/package.rb +213 -0
- data/lib/idml/part.rb +20 -0
- data/lib/idml/parts/backing_story.rb +27 -0
- data/lib/idml/parts/designmap.rb +91 -0
- data/lib/idml/parts/fonts.rb +26 -0
- data/lib/idml/parts/graphic.rb +48 -0
- data/lib/idml/parts/mapping.rb +25 -0
- data/lib/idml/parts/master_spread.rb +27 -0
- data/lib/idml/parts/preferences.rb +201 -0
- data/lib/idml/parts/raw.rb +27 -0
- data/lib/idml/parts/spread.rb +38 -0
- data/lib/idml/parts/story.rb +39 -0
- data/lib/idml/parts/style.rb +122 -0
- data/lib/idml/parts/style_mapping.rb +21 -0
- data/lib/idml/parts/tags.rb +25 -0
- data/lib/idml/parts.rb +47 -0
- data/lib/idml/render/color.rb +69 -0
- data/lib/idml/render/color_helper.rb +23 -0
- data/lib/idml/render/color_resolver.rb +72 -0
- data/lib/idml/render/font_embedder.rb +79 -0
- data/lib/idml/render/font_reference_resolver.rb +51 -0
- data/lib/idml/render/gradient_resolver.rb +111 -0
- data/lib/idml/render/image.rb +302 -0
- data/lib/idml/render/layer_filter.rb +60 -0
- data/lib/idml/render/page_item_renderer.rb +34 -0
- data/lib/idml/render/path.rb +80 -0
- data/lib/idml/render/pdf_writer.rb +426 -0
- data/lib/idml/render/pdfrb_ext/clip.rb +31 -0
- data/lib/idml/render/pdfrb_ext/invoke_xobject.rb +24 -0
- data/lib/idml/render/pdfrb_ext.rb +13 -0
- data/lib/idml/render/pdfrb_writer.rb +97 -0
- data/lib/idml/render/pipeline.rb +196 -0
- data/lib/idml/render/render_context.rb +22 -0
- data/lib/idml/render/renderers/graphic_line_renderer.rb +28 -0
- data/lib/idml/render/renderers/group_renderer.rb +42 -0
- data/lib/idml/render/renderers/polygon_renderer.rb +47 -0
- data/lib/idml/render/renderers/rectangle_renderer.rb +62 -0
- data/lib/idml/render/renderers/table_renderer.rb +41 -0
- data/lib/idml/render/renderers/text_frame_renderer.rb +113 -0
- data/lib/idml/render/renderers.rb +11 -0
- data/lib/idml/render/spread_renderer.rb +111 -0
- data/lib/idml/render/story_threader.rb +56 -0
- data/lib/idml/render/style_resolver.rb +48 -0
- data/lib/idml/render/text.rb +91 -0
- data/lib/idml/render.rb +63 -0
- data/lib/idml/text_engine/cjk_layout.rb +114 -0
- data/lib/idml/text_engine/font_metrics.rb +226 -0
- data/lib/idml/text_engine/font_resolver.rb +105 -0
- data/lib/idml/text_engine/justifier.rb +46 -0
- data/lib/idml/text_engine/line_breaker.rb +55 -0
- data/lib/idml/text_engine/shaper.rb +35 -0
- data/lib/idml/text_engine/vertical_layout.rb +64 -0
- data/lib/idml/text_engine.rb +19 -0
- data/lib/idml/validation/result.rb +14 -0
- data/lib/idml/validation/validator.rb +121 -0
- data/lib/idml/validation.rb +14 -0
- data/lib/idml/version.rb +5 -0
- data/lib/idml.rb +33 -0
- data/reference-docs/idml-specification.pdf +0 -0
- data/reference-docs/schemas/README.md +79 -0
- data/reference-docs/schemas/fix-adobe-schema-bug.rb +69 -0
- data/reference-docs/schemas/package/MasterSpreads/MasterSpread.rnc +4415 -0
- data/reference-docs/schemas/package/Resources/Fonts.rnc +93 -0
- data/reference-docs/schemas/package/Resources/Graphic.rnc +226 -0
- data/reference-docs/schemas/package/Resources/Preferences.rnc +1827 -0
- data/reference-docs/schemas/package/Resources/Styles.rnc +1770 -0
- data/reference-docs/schemas/package/Spreads/Spread.rnc +4431 -0
- data/reference-docs/schemas/package/Stories/Story.rnc +6547 -0
- data/reference-docs/schemas/package/XML/BackingStory.rnc +6527 -0
- data/reference-docs/schemas/package/XML/Mapping.rnc +35 -0
- data/reference-docs/schemas/package/XML/Tags.rnc +30 -0
- data/reference-docs/schemas/package/datatype.rnc +563 -0
- data/reference-docs/schemas/package/designmap.rnc +974 -0
- data/reference-docs/schemas/single/IDMarkupLanguage.rnc +11486 -0
- data/reference-docs/schemas/single/datatype.rnc +563 -0
- data/reference-docs/spec/00_index.md +16 -0
- data/reference-docs/spec/00_title/00_index.md +480 -0
- data/reference-docs/spec/01_abstract/00_index.md +3 -0
- data/reference-docs/spec/02_introduction/00_index.md +11 -0
- data/reference-docs/spec/03_terminology/00_index.md +7 -0
- data/reference-docs/spec/04_inx_idml_and_in_design_scripting/00_index.md +48 -0
- data/reference-docs/spec/05_uses_for_idml/00_index.md +13 -0
- data/reference-docs/spec/06_idml_design_goals/00_index.md +18 -0
- data/reference-docs/spec/07_idml_design_approaches/00_index.md +59 -0
- data/reference-docs/spec/08_idml_document_structure/00_index.md +120 -0
- data/reference-docs/spec/09_idml_syntax/00_index.md +367 -0
- data/reference-docs/spec/09_idml_syntax/examples/01_example_properties_expressed_as_attributes_or_elements_depending_on_their_value.md +6 -0
- data/reference-docs/spec/09_idml_syntax/examples/02_example_object_serialization.md +10 -0
- data/reference-docs/spec/09_idml_syntax/examples/03_example_record_type_serialization.md +6 -0
- data/reference-docs/spec/09_idml_syntax/examples/04_example_geometry_serialization.md +6 -0
- data/reference-docs/spec/09_idml_syntax/examples/index.md +10 -0
- data/reference-docs/spec/09_idml_syntax/images/image_01.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_01.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/image_02.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_02.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/image_03.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_03.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/image_04.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_04.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/image_05.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_05.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/image_06.md +1 -0
- data/reference-docs/spec/09_idml_syntax/images/image_06.png +0 -0
- data/reference-docs/spec/09_idml_syntax/images/index.md +12 -0
- data/reference-docs/spec/09_idml_syntax/schemas/00_schema_example_1_column_guide_color_and_margin_guide_color_elements.rnc +3 -0
- data/reference-docs/spec/09_idml_syntax/schemas/01_datatype.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/02_designmap.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/03_Master_Spreads.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/04_Fonts.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/05_Graphic.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/06_Preferences.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/07_Styles.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/08_Spread.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/09_Story.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/10_BackingStory.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/11_Mapping.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/12_Tags.rnc +4 -0
- data/reference-docs/spec/09_idml_syntax/schemas/index.md +19 -0
- data/reference-docs/spec/09_idml_syntax/tables/01_idml_basic_data_types.md +20 -0
- data/reference-docs/spec/09_idml_syntax/tables/02_property_elements.md +6 -0
- data/reference-docs/spec/09_idml_syntax/tables/index.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/00_index.md +16 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/examples/98_xml_export_map.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/examples/99_xml_import_map.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/index.md +44 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/schemas/175_xml_export_map.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/schemas/176_xml_import_map.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/tables/191_xml_export_map_properties.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_10_mapping/tables/192_xml_import_map_properties.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_11_xmltags/examples/100_example_xmltag.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_11_xmltags/imdex.md +42 -0
- data/reference-docs/spec/10_idml_file_reference/10_11_xmltags/schemas/177_xmltag.rnc +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_11_xmltags/tables/193_xmltag_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_11_xmltags/tables/194_xmltag_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/examples/05_example_self.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/examples/06_example_label.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/index.md +96 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/schemas/02_self.rnc +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/schemas/03_label.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_1_common_attributes_and_elements/tables/label_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/07_example_document_element_references.md +26 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/08_example_document_element_designmap.md +25 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/09_example_color_management_attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/10_example_tagged_pdf_preference_structure_order.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/11_example_text_variable.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/12_example_layer.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/13_example_building_block.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/14_example_hyperlink.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/examples/15_example_article.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/index.md +1349 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/004_document.rnc +108 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/005_language.rnc +16 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/006_kinsokutable.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/007_numberinglist.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/007b_mojikumitable.rnc +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/008_namedgrid.rnc +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/009_griddatainformation.rnc +22 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/010_motionpreset.rnc +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/011_condition.rnc +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/012_conditionset.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/013_linkedstoryoption.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/014_taggedpdfpreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/015_metadatapacketpreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/016_watermarkpreference.rnc +18 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/016b_conditionaltextpreference.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/017_textvariable.rnc +22 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/018_customtextvariablepreference.rnc +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/019_filenamevariablepreference.rnc +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/020_pagenumbervariablepreference.rnc +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/021_chapternumbervariablepreference.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/022_datevariablepreference.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/023_matchcharacterstylepreference.rnc +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/024_matchparagraphstylepreference.rnc +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/025_captionmetadatavariablepreference.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/026_layer.rnc +19 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/027_section.rnc +25 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/028_documentuser.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/029_crossreferenceformat.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/030_buildingblock.rnc +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/031_index.rnc +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/032_topic.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/033_crossreference.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/034_hyperlink.rnc +34 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/035_hyperlinkpagedestination.rnc +17 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/036_hyperlinkurldestination.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/037_hyperlinkexternalpagedestination.rnc +17 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/038_hyperlinkpageitemsource.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/039_bookmark.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/040_preflightprofile.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/041_preflightprofilerule.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/042_ruledataobject.rnc +51 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/043_preflightruleinstance.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/044_datamergeimageplaceholder.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/045_hyphenationexception.rnc +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/046_indexingsortoption.rnc +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/047_abullet.rnc +28 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/048_assignment.rnc +21 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/049_assignedstory.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/051_article.rnc +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/schemas/052_articlemember.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/03_document_properties_attributes.md +28 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/04_document_properties_elements.md +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/05_language_properties_attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/06_kinsokutable_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/07_mojikumitable_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/08_mojikumitable_properties_elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/09_numberinglist_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/10_namedgrid_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/11_griddatainformation_properties_attributes.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/12_griddatainformation_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/13_motionpreset_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/14_motionpreset_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/15_condition_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/16_condition_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/17_conditionset_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/18_linkedstoryoption_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/19_taggedpdfpreference_structureorder_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/20_metadatapacketpreference_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/21_watermarkpreference_properties_attributes.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/22_watermarkpreference_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/23_conditionaltextpreference_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/24_textvariable_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/25_common_text_variable_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/26_custom_textvariable_preference_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/27_filename_variable_preference_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/28_pagenumber_variable_preference_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/29_chapternumber_variable_preference_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/30_date_variable_preference_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/31_matchcharacterstylepreference_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/32_matchparagraphstylepreference_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/33_captionmetadatavariablepreference_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/34_metadata_provider_names.md +63 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/35_layer_properties_attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/36_layer_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/37_section_properties_attributes.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/38_documentuser_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/39_documentuser_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/40_crossreferenceformat_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/41_buildingblock_properties_attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/42_topic_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/43_crossreference_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/44_hyperlink_properties_attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/45_hyperlinkpagedestination_properties_attributes.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/46_hyperlinkpagedestination_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/47_hyperlinkurldestination_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/48_hyperlinkexternalpagedestination_properties_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/49_hyperlinkexternalpagedestination_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/50_hyperlinkpageitemsource_properties_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/51_bookmark_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/52_preflightprofile_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/53_preflightprofilerule_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/54_ruledataobject_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/55_ruledataobject_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/56_preflightruleinstance_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/57_datamergeplaceholder_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/58_hyphenationexception_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/59_indexingsortoption_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/60_abullet_properties_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/61_abullet_properties_elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/62_assignment_properties_attributes.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/62_assignment_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/63_article_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/64_article_properties_elements.md +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_2_designmap_xml/tables/65_articlemember_properties_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/16_example_minimal_spread.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/17_example_untransformed_rectangle.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/18_example_rotation_changes_the_itemtransform_attribute_in_idml.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/19_the_rectangle_transformed_by_itemtransform_attribute_of_both_the_rectangle_and_the_group.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/20_example_animation_setting.md +33 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/21_example_timing_setting.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/22_example_rectangle.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/23_example_nested_page_item.md +28 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/24_example_rotated_page_item.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/25_example_page_item_imported_graphic.md +28 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/26_example_movie.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/27_example_navigation_point.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/28_example_sound.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/29_example_text_frame.md +29 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/30_example_threaded_linked_textframes.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/31_example_text_frame_preference_single_inset.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/32_example_text_frame_preference_multiple_inset.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/33_example_multi_column_text_frame.md +24 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/34_example_baseline_frame_grid.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/35_example_transparency.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/36_example_group.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/37_example_button.md +43 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/38_example_multi_state_object.md +26 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/39_example_associating_frame_xml_element.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/40_example_associating_text_frame_xml_element.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/41_example_pages_within_spread.md +19 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/42_example_margin_preferences.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/43_example_guide.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/examples/44_example_flattener_preference.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img001.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img002.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img003.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img004.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img005.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img006.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img007.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img008.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img009.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img010.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img011.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img012.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img013.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img014.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img015.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img016.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img017.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img018.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img019.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img020.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img021.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/images/10_3_spreads_and_master_spreads_img022.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/index.md +1421 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/53_spread.rnc +30 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/54_master_spread.rnc +24 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/55_page_item.rnc +104 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/56_animation_setting.rnc +22 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/57_timing_setting.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/58_timing_list.rnc +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/60_timing_group.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/61_timing_target.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/62_graphic.rnc +41 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/63_pdf_attribute.rnc +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/64_navigation_point.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/65_text_frame.rnc +43 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/66_text_frame_preference.rnc +30 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/67_baseline_frame_grid.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/68_transparency_setting.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/69_blending_setting.rnc +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/70_button.rnc +96 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/71_state.rnc +20 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/72_behavior.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/73_multi_state_object.rnc +72 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/74_page.rnc +34 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/75_margin_preference.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/76_guide.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/schemas/77_flattener_preference.rnc +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/066_spread_masterspread_properties_as_attributes.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/067_masterspread_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/068_common_pageitem_properties_as_attributes.md +46 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/069_common_pageitem_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/070_animationsetting_properties_as_attributes.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/071_animationsetting_properties_as_elements.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/072_timinglist_properties_as_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/073_timinggroup_properties_as_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/074_timingtarget_properties_as_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/075_graphic_properties_as_attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/076_graphic_properties_as_elements.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/077_image_properties_as_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/078_image_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/079_pdf_eps_properties_as_attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/080_pdfattribute_properties_as_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/081_importedpage_properties_as_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/082_movie_properties_as_attributes.md +19 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/083_sound_properties_as_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/084_textframe_properties_as_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/085_textframe_preference_properties_as_attributes.md +22 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/086_textframe_preference_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/087_baselineframegrid_properties_expressed_as_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/088_baselineframegrid_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/089_button_properties_expressed_as_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/090_button_properties_expressed_as_properties.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/091_state_properties_as_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/092_common_behavior_properties_as_attributes.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/093_gotonextstatebehavior_properties_as_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/094_gotopreviousstatebehavior_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/095_gotostatebehavior_properties_as_attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/096_gotostatebehavior_properties_as_attributes_2.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/097_animationbehavior_properties_as_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/097a_sound_showhide_openfile_viewzoom_gotopage_behavior_properties.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/098_multistateobject_properties_as_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/099_multistateobject_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/100_page_properties_as_attributes.md +17 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/101_page_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/102_guide_properties_as_attributes.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_3_spreads_and_master_spreads/tables/103_guide_properties_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/45_example_story_file_in_idml_package.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/46_example_local_formatting_vs_styles.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/47_example_paragraph_style_range_character_style_range.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/48_example_paragraph_breaks_in_character_style_range.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/49_example_paragraph_style_range_elements_column_breaks.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/50_example_multiple_paragraph_style_range_elements.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/51_example_multi_column_straddle_paragraphs.md +25 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/52_example_xml_element.md +141 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/53_example_table.md +31 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/54_example_footnote.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/55_example_note.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/56_example_anchored_text_frame.md +31 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/57_example_anchored_graphic.md +39 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/58_example_hyperlink_text_source.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/59_example_hyperlink_text_destination.md +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/examples/60_example_cross_reference_source.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img001.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img002.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img003.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img004.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img005.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img006.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img007.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img008.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img009.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img010.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img011.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/images/10_4_stories_img012.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/index.md +1299 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/78_story.rnc +92 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/79_paragraph_style_range.rnc +381 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/80_character_style_range.rnc +431 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/81_table.rnc +53 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/82_cell.rnc +66 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/83_column.rnc +28 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/84_row.rnc +33 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/85_footnote.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/86_note.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/87_anchored_object_settings.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/88_hyperlink_text_source.rnc +20 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/89_hyperlink_text_destination.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/schemas/90_cross_reference_source.rnc +16 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/104_common_text_properties_attributes.md +230 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/105_common_text_properties_elements.md +41 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/106_story_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/107_story_properties_elements.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/108_character_style_range_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/109_table_properties_attributes.md +133 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/110_cell_properties_attributes.md +83 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/111_cell_properties_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/112_column_properties_attributes.md +29 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/113_row_properties_attributes.md +34 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/114_anchored_object_setting_properties_attributes.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/115_hyperlink_text_source_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/116_hyperlink_text_destination_properties_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/117_cross_reference_source_properties_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/118_applied_format_tags.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_4_stories/tables/119_metacharacters.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/examples/61_example_font.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/examples/62_example_referring_to_font.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/index.md +86 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/schemas/091_font_family.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/schemas/092_font.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/schemas/093_composite_font.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/schemas/094_composite_font_entry.rnc +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_5_fonts/tables/120_font_properties_represented_as_attributes.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/63_example_none_swatch.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/64_example_process_color.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/65_example_spot_color.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/66_example_lab_color.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/67_example_gradient.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/68_example_tint.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/69_example_mixed_ink.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/70_example_mixed_ink_group.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/71_example_process_magenta_ink.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/72_example_pantone_274_c_spot_ink.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/73_example_default_stroke_styles.md +18 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/74_example_dashed_stroke_style.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/75_example_dotted_stroke_style.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/examples/76_example_striped_stroke_style.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img001.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img002.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img003.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img004.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img005.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img006.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img007.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img008.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img009.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img010.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img011.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/images/10_6_graphics_img012.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/index.md +406 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/095_swatch.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/096_color.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/097_gradient.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/098_gradient_stop.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/099_tint.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/100_mixed_ink.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/101_mixed_ink_group.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/102_ink.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/103_stroke_style.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/104_dashed_stroke_style.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/105_dotted_stroke_style.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/schemas/106_striped_stroke_style.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/121_swatch_properties.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/122_color_properties.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/123_gradient_properties.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/124_gradient_stop_properties.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/125_tint_properties.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/126_mixed_ink_properties.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/127_mixed_ink_group_properties.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/128_ink_properties.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/129_stroke_style_properties.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/130_dashed_stroke_style_properties.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/131_dotted_stroke_style_properties.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_6_graphics/tables/132_striped_stroke_style_properties.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/77_epub_export_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/78_html_export_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/79_transparency_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/80_story_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/81_anchored_object_default.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/82_anchored_object_setting.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/83_baseline_frame_grid_option.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/84_footnote_options.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/85_text_wrap_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/86_document_preference.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/87_grid_preference.md +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/examples/88_guide_preference.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/index.md +1153 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/107_Preferences_File.rnc +2 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/108_DataMerge.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/109_DataMergeField.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/110_DataMergeOption.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/111_LayoutAdjustmentPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/112_EPubExportPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/113_HTMLExportPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/114_XMLImportPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/115_XMLExport_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/116_XMLPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/117_Export_For_Web_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/118_Transparency_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/119_Transparency_Default_Container_Object.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/120_StoryPreference.rnc +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/121_Text_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/122_Text_Default.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/123_DictionaryPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/124_AnchoredObjectDefault.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/125_AnchoredObjectSetting.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/126_BaselineFrameGridOption.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/127_FootnoteOption.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/128_TextWrapPreference.rnc +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/129_Contour_Option.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/130_Document_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/131_Grid_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/132_GuidePreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/133_MarginPreference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/134_Pasteboard_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/135_View_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/136_Print_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/137_Print_Booklet_Option.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/138_Print_Booklet_Print_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/139_Index_Options.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/140_Index_Header_Setting.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/141_Page_Item_Default.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/142_Frame_Fitting_Option.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/143_Button_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/144_Tin_Document_Data_Object.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/145_Layout_Grid_Data_Information.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/146_Story_Grid_Data_Information.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/147_Cjk_Grid_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/148_Mojikumi_Ui_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/schemas/149_Chapter_Number_Preference.rnc +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/133_DataMerge_Properties_Represented_as_Attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/134_DataMergeField_Properties_Represented_as_Attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/135_DataMergeOption_Properties_Represented_as_Attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/136_LayoutAdjustmentPreference_Properties_Represented_as_Attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/137_EPubExportPreference_Properties_Represented_as_Attributes.md +44 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/138_HTMLExportPreference_Properties_Represented_as_Attributes.md +39 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/139_XMLImportPreference_Properties_Represented_as_Attributes.md +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/140_XMLImportPreference_Properties_Represented_as_Elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/141_XMLExportPreference_Properties_Represented_as_Attributes.md +21 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/142_XMLExport_Preference_Properties_Represented_as_Elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/143_XMLPreference_Properties_Represented_as_Attributes.md +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/144_XMLPreference_Properties_Represented_as_Elements.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/145_ExportForWebPreference_Properties_Represented_as_Attributes.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/146_TransparencyPreference_Properties_Represented_as_Attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/147_StoryPreference_Properties_Represented_as_Attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/148_TextPreference_Properties_Represented_as_Attributes.md +33 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/149_AnchoredObjectDefault_Properties_Represented_as_Attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/150_AnchoredObjectSetting_Properties_Represented_as_Attributes.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/151_BaselineFrameGridOption_Properties_Represented_as_Attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/152_BaselineFrameGridOption_Properties_Represented_as_Elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/153_FootnoteOption_Properties_Represented_as_Attributes.md +33 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/154_FootnoteOption_Properties_Represented_as_Elements.md +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/155_Contour_Option_Properties_Represented_as_Attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/156_DocumentPreference_Properties_Represented_as_Attributes.md +26 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/157_DocumentPreference_Properties_Represented_as_Elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/158_Grid_Preference_Properties_Represented_as_Attributes.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/159_GridPreference_Properties_Represented_as_Elements.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/160_GuidePreference_Properties_Represented_as_Attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/161_GuidePreference_Properties_Represented_as_Elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/162_PasteboardPreference_Properties_Represented_as_Attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/163_PasteboardPreference_Properties_Represented_as_Elements.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/164_ViewPreference_Properties_Represented_as_Attributes.md +20 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/165_Print_Preference_Properties_Represented_as_Attributes.md +104 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/166_Print_Preference_Properties_Represented_as_Elements.md +15 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/167_Cjk_Grid_Preference_Properties_Represented_as_Attributes.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/168_Cjk_Grid_Preference_Properties_Represented_as_Elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/169_Mojikumi_Ui_Preference_Properties_Represented_as_Attributes.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/170_Chapter_Number_Preference_Properties_Represented_as_Attributes.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_7_preferences/tables/171_Chapter_Number_Preference_Properties_Represented_as_Elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/001_paragraph_style_self_attribute.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/002_paragraph_style_group_nested.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/089_paragraph_style_group.md +14 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/090_based_on_no_paragraph_style.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/091_based_on_another_style.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/092_nested_style.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/093_character_style_group.md +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/094_object_style.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/095_toc_style.md +10 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/examples/096_trap_preset.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img001.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img002.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img003.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img004.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img005.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/images/10_8_styles_img006.png +0 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/index.md +1154 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/150_paragraphstylegroup.rnc +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/151_paragraphstyle.rnc +510 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/152_nestedstyle.rnc +19 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/153_characterstylegroup.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/154_characterstyle.rnc +255 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/155_styleexporttagmap.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/156_tablestylegroup.rnc +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/157_tablestyle.rnc +118 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/158_cellstylegroup.rnc +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/159_cellstyle.rnc +135 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/160_objectstylegroup.rnc +9 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/161_objectstyle.rnc +79 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/162_objectstyleobjecteffectscategorysettings.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/163_objectstyle_effects_category_settings.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/164_objectstyle_effects_category_settings.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/165_objectstyle_effects_category_settings.rnc +12 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/166_tocstyle_tocstyleentry.rnc +16 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/167_tocstyle_tocstyleentry.rnc +22 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/schemas/168_trappreset.rnc +21 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/172_paragraph_style_properties_represented_as_attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/173_paragraph_style_properties_represented_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/174_nestedstyle_properties_represented_as_elements.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/175_characterstyle_properties_represented_as_attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/176_characterstyle_properties_represented_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/177_styleexporttagmap_properties_represented_as_attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/178_tablestyle_properties_represented_as_attributes.md +109 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/179_tablestyle_properties_represented_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/180_cellstyle_properties_represented_as_elements.md +3 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/181_tocstyle_properties_represented_as_attributes.md +11 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/182_tocstyle_entry_properties_represented_as_attributes.md +8 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/183_tocstyleentry_properties_represented_as_elements.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_8_styles/tables/184_trappreset_properties_represented_as_attributes.md +17 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/examples/97_example_backingstory.md +1 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/index.md +101 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/169_BackingStory.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/170_XMLElement.rnc +37 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/171_XMLAttribute.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/172_XMLInstruction.rnc +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/173_XMLComment.rnc +4 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/schemas/174_DTD.rnc +13 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/185_XMLElement_Properties_Represented_as_Attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/186_XMLAttribute_Properties_Represented_as_Attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/187_XMLInstruction_Properties_Represented_as_Attributes.md +7 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/188_XMLComment_Properties_Represented_as_Attributes.md +6 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/189_DTD_Properties_Represented_as_Attributes.md +5 -0
- data/reference-docs/spec/10_idml_file_reference/10_9_xml_elements/tables/190_DTD_Properties_Represented_as_Elements.md +5 -0
- data/reference-docs/spec/appendix/00_index.md +7 -0
- data/reference-docs/spec/appendix/a_appendix.md +467 -0
- data/reference-docs/spec/appendix/b_appendix.md +81 -0
- data/reference-docs/spec/appendix/c_appendix.md +3192 -0
- data/reference-docs/spec/appendix/d_appendix.md +7 -0
- data/reference-docs/spec/appendix/e_appendix.md +224 -0
- data/scripts/assemble_element.rb +90 -0
- data/scripts/assemble_part.rb +57 -0
- data/scripts/build_elements_autoloads.rb +46 -0
- data/scripts/generate_all_objects.rb +38 -0
- data/scripts/rnc_to_lutaml.rb +114 -0
- metadata +1043 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Idml
|
|
4
|
+
module Render
|
|
5
|
+
# Builds text frame chains from PreviousTextFrame/NextTextFrame
|
|
6
|
+
# links. A story flows across linked frames: the first frame gets
|
|
7
|
+
# lines that fit, overflow goes to the next frame, and so on.
|
|
8
|
+
class StoryThreader
|
|
9
|
+
Thread = Struct.new(:story_id, :frames, keyword_init: true)
|
|
10
|
+
|
|
11
|
+
def self.build_chains(spread)
|
|
12
|
+
chains = []
|
|
13
|
+
return chains unless spread
|
|
14
|
+
|
|
15
|
+
frames_by_id = collect_text_frames(spread)
|
|
16
|
+
frames_by_id.each_value do |frame|
|
|
17
|
+
next unless chain_head?(frame)
|
|
18
|
+
|
|
19
|
+
chains << build_chain(frame, frames_by_id)
|
|
20
|
+
end
|
|
21
|
+
chains
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# A chain head has previous_text_frame == "n" (no predecessor).
|
|
25
|
+
def self.chain_head?(frame)
|
|
26
|
+
frame.previous_text_frame.nil? || frame.previous_text_frame == "n"
|
|
27
|
+
end
|
|
28
|
+
private_class_method :chain_head?
|
|
29
|
+
|
|
30
|
+
def self.build_chain(head, frames_by_id)
|
|
31
|
+
frames = []
|
|
32
|
+
current = head
|
|
33
|
+
while current && !frames.include?(current)
|
|
34
|
+
frames << current
|
|
35
|
+
next_id = current.next_text_frame
|
|
36
|
+
break if next_id.nil? || next_id == "n"
|
|
37
|
+
|
|
38
|
+
current = frames_by_id[next_id]
|
|
39
|
+
end
|
|
40
|
+
Thread.new(story_id: head.parent_story, frames: frames)
|
|
41
|
+
end
|
|
42
|
+
private_class_method :build_chain
|
|
43
|
+
|
|
44
|
+
def self.collect_text_frames(spread)
|
|
45
|
+
result = {}
|
|
46
|
+
spread.each_page_item do |item|
|
|
47
|
+
next unless item.is_a?(Idml::Elements::TextFrame)
|
|
48
|
+
|
|
49
|
+
result[item.self_attr] = item
|
|
50
|
+
end
|
|
51
|
+
result
|
|
52
|
+
end
|
|
53
|
+
private_class_method :collect_text_frames
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Idml
|
|
4
|
+
module Render
|
|
5
|
+
# Extracts styled text runs from an IDML Story. Each run carries the
|
|
6
|
+
# text content plus the CharacterStyleRange attributes that affect
|
|
7
|
+
# rendering (font style, size, fill color, applied font reference).
|
|
8
|
+
class StyleResolver
|
|
9
|
+
StyledRun = Struct.new(
|
|
10
|
+
:text, :font_style, :point_size,
|
|
11
|
+
:fill_color, :fill_tint, :applied_font, keyword_init: true
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
DEFAULT_POINT_SIZE = 12.0
|
|
15
|
+
|
|
16
|
+
def self.extract_runs(story)
|
|
17
|
+
return [] unless story&.inner
|
|
18
|
+
|
|
19
|
+
story.inner.paragraph_style_range.flat_map do |psr|
|
|
20
|
+
csr_runs(psr)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.csr_runs(psr)
|
|
25
|
+
psr.character_style_range.filter_map do |csr|
|
|
26
|
+
text = csr.text_content
|
|
27
|
+
next if text.nil? || text.empty?
|
|
28
|
+
|
|
29
|
+
StyledRun.new(
|
|
30
|
+
text: text,
|
|
31
|
+
font_style: csr.font_style,
|
|
32
|
+
point_size: csr.point_size || DEFAULT_POINT_SIZE,
|
|
33
|
+
fill_color: csr.fill_color,
|
|
34
|
+
fill_tint: csr.fill_tint,
|
|
35
|
+
applied_font: csr.applied_font,
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
private_class_method :csr_runs
|
|
40
|
+
|
|
41
|
+
# Concatenate runs into a single block. Used when the renderer
|
|
42
|
+
# can't handle per-run styling (e.g., no font metrics available).
|
|
43
|
+
def self.concatenate(runs)
|
|
44
|
+
runs.map(&:text).join
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# DEPRECATED: This module is superseded by Canvas#text method.
|
|
4
|
+
# Text rendering is now handled by pdfrb's Canvas API.
|
|
5
|
+
|
|
6
|
+
module Idml
|
|
7
|
+
module Render
|
|
8
|
+
# Converts positioned glyphs to PDF text-showing operators.
|
|
9
|
+
module Text
|
|
10
|
+
module_function
|
|
11
|
+
|
|
12
|
+
# Begin text block
|
|
13
|
+
def begin_text
|
|
14
|
+
"BT"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# End text block
|
|
18
|
+
def end_text
|
|
19
|
+
"ET"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Set font: `/FontName size Tf`
|
|
23
|
+
def set_font(font_name, size)
|
|
24
|
+
format("/%<name>s %<size>.1f Tf", name: font_name, size: size)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Move text position: `x y Td`
|
|
28
|
+
def move_to(x, y)
|
|
29
|
+
format("%<x>.2f %<y>.2f Td", x: x, y: y)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Set text matrix: `a b c d e f Tm`
|
|
33
|
+
def set_matrix(a:, b:, c:, d:, e:, f:)
|
|
34
|
+
format("%<a>.4f %<b>.4f %<c>.4f %<d>.4f %<e>.2f %<f>.2f Tm",
|
|
35
|
+
a: a, b: b, c: c, d: d, e: e, f: f)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Show a text string: `(escaped) Tj`
|
|
39
|
+
def show(text_string)
|
|
40
|
+
"(#{escape(text_string)}) Tj"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Build a complete text-showing block for a run of glyphs
|
|
44
|
+
# at the same font/size, positioned at (x, y).
|
|
45
|
+
def show_run(text_string:, font_name:, size:, x:, y:)
|
|
46
|
+
[
|
|
47
|
+
begin_text,
|
|
48
|
+
set_font(font_name, size),
|
|
49
|
+
move_to(x, y),
|
|
50
|
+
show(text_string),
|
|
51
|
+
end_text,
|
|
52
|
+
].join("\n")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Emit positioned glyphs. Groups glyphs by y coordinate into
|
|
56
|
+
# lines, sets the text matrix per-line for absolute positioning,
|
|
57
|
+
# then shows the line text. Multiple lines within one BT/ET block.
|
|
58
|
+
def show_positioned(glyphs)
|
|
59
|
+
return "" if glyphs.empty?
|
|
60
|
+
|
|
61
|
+
lines = group_by_line(glyphs)
|
|
62
|
+
lines.map do |line|
|
|
63
|
+
[
|
|
64
|
+
set_matrix(a: 1, b: 0, c: 0, d: 1,
|
|
65
|
+
e: line.first.x, f: line.first.y),
|
|
66
|
+
show(line.map { |g| [g.codepoint].pack("U") }.join),
|
|
67
|
+
].join("\n")
|
|
68
|
+
end.join("\n")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def group_by_line(glyphs)
|
|
72
|
+
result = []
|
|
73
|
+
current = nil
|
|
74
|
+
glyphs.each do |glyph|
|
|
75
|
+
if current.nil? || current.first.y != glyph.y
|
|
76
|
+
current = []
|
|
77
|
+
result << current
|
|
78
|
+
end
|
|
79
|
+
current << glyph
|
|
80
|
+
end
|
|
81
|
+
result
|
|
82
|
+
end
|
|
83
|
+
private_class_method :group_by_line
|
|
84
|
+
|
|
85
|
+
# Escape characters that are special in PDF strings.
|
|
86
|
+
def escape(str)
|
|
87
|
+
str.to_s.gsub("\\", "\\\\\\\\").gsub("(", "\\(").gsub(")", "\\)")
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
data/lib/idml/render.rb
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pdfrb"
|
|
4
|
+
|
|
5
|
+
module Idml
|
|
6
|
+
module Render
|
|
7
|
+
autoload :Color, "#{__dir__}/render/color"
|
|
8
|
+
autoload :ColorHelper, "#{__dir__}/render/color_helper"
|
|
9
|
+
autoload :Path, "#{__dir__}/render/path"
|
|
10
|
+
autoload :Text, "#{__dir__}/render/text"
|
|
11
|
+
autoload :Image, "#{__dir__}/render/image"
|
|
12
|
+
autoload :FontEmbedder, "#{__dir__}/render/font_embedder"
|
|
13
|
+
autoload :PdfrbWriter, "#{__dir__}/render/pdfrb_writer"
|
|
14
|
+
autoload :PdfrbExt, "#{__dir__}/render/pdfrb_ext"
|
|
15
|
+
autoload :Text, "#{__dir__}/render/text"
|
|
16
|
+
autoload :Image, "#{__dir__}/render/image"
|
|
17
|
+
autoload :FontEmbedder, "#{__dir__}/render/font_embedder"
|
|
18
|
+
autoload :ColorResolver, "#{__dir__}/render/color_resolver"
|
|
19
|
+
autoload :StyleResolver, "#{__dir__}/render/style_resolver"
|
|
20
|
+
autoload :FontReferenceResolver,
|
|
21
|
+
"#{__dir__}/render/font_reference_resolver"
|
|
22
|
+
autoload :GradientResolver, "#{__dir__}/render/gradient_resolver"
|
|
23
|
+
autoload :LayerFilter, "#{__dir__}/render/layer_filter"
|
|
24
|
+
autoload :StoryThreader, "#{__dir__}/render/story_threader"
|
|
25
|
+
autoload :PdfWriter, "#{__dir__}/render/pdf_writer"
|
|
26
|
+
autoload :SpreadRenderer, "#{__dir__}/render/spread_renderer"
|
|
27
|
+
autoload :Pipeline, "#{__dir__}/render/pipeline"
|
|
28
|
+
autoload :RenderContext, "#{__dir__}/render/render_context"
|
|
29
|
+
autoload :PageItemRenderer, "#{__dir__}/render/page_item_renderer"
|
|
30
|
+
autoload :Renderers, "#{__dir__}/render/renderers"
|
|
31
|
+
|
|
32
|
+
DEFAULT_FONT = "Helvetica"
|
|
33
|
+
|
|
34
|
+
def self.render(package:, to:, font_search_paths: nil, compliance: nil)
|
|
35
|
+
Pipeline.new(package, to, font_search_paths, compliance: compliance).call
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
Idml::Render::Renderers.autoload(
|
|
41
|
+
:RectangleRenderer,
|
|
42
|
+
"#{__dir__}/render/renderers/rectangle_renderer",
|
|
43
|
+
)
|
|
44
|
+
Idml::Render::Renderers.autoload(
|
|
45
|
+
:TextFrameRenderer,
|
|
46
|
+
"#{__dir__}/render/renderers/text_frame_renderer",
|
|
47
|
+
)
|
|
48
|
+
Idml::Render::Renderers.autoload(
|
|
49
|
+
:PolygonRenderer,
|
|
50
|
+
"#{__dir__}/render/renderers/polygon_renderer",
|
|
51
|
+
)
|
|
52
|
+
Idml::Render::Renderers.autoload(
|
|
53
|
+
:GraphicLineRenderer,
|
|
54
|
+
"#{__dir__}/render/renderers/graphic_line_renderer",
|
|
55
|
+
)
|
|
56
|
+
Idml::Render::Renderers.autoload(
|
|
57
|
+
:GroupRenderer,
|
|
58
|
+
"#{__dir__}/render/renderers/group_renderer",
|
|
59
|
+
)
|
|
60
|
+
Idml::Render::Renderers.autoload(
|
|
61
|
+
:TableRenderer,
|
|
62
|
+
"#{__dir__}/render/renderers/table_renderer",
|
|
63
|
+
)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Idml
|
|
4
|
+
module TextEngine
|
|
5
|
+
# CJK text layout utilities: character classification, kinsoku
|
|
6
|
+
# shori (line-breaking rules), and vertical writing-mode helpers.
|
|
7
|
+
module CjkLayout
|
|
8
|
+
module_function
|
|
9
|
+
|
|
10
|
+
CJK_RANGES = [
|
|
11
|
+
0x3000..0x303F, # CJK Symbols and Punctuation
|
|
12
|
+
0x3040..0x309F, # Hiragana
|
|
13
|
+
0x30A0..0x30FF, # Katakana
|
|
14
|
+
0x3400..0x4DBF, # CJK Extension A
|
|
15
|
+
0x4E00..0x9FFF, # CJK Unified Ideographs
|
|
16
|
+
0xAC00..0xD7AF, # Hangul Syllables
|
|
17
|
+
0xF900..0xFAFF, # CJK Compatibility Ideographs
|
|
18
|
+
0xFF00..0xFFEF, # Halfwidth and Fullwidth Forms
|
|
19
|
+
].freeze
|
|
20
|
+
|
|
21
|
+
# Characters forbidden at line start (kinsoku shori).
|
|
22
|
+
FORBIDDEN_LINE_START = %w[
|
|
23
|
+
、 。, . 。 : ; ? ソ ゙ ゚ ! ! ” 〉 》 」 』 】
|
|
24
|
+
〕 } ) 」 ゛ ゝ ゞ 〃 々 〆 〇 ー 〜
|
|
25
|
+
ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ
|
|
26
|
+
ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ
|
|
27
|
+
ぁ ぃ ぅ ぇ ぉ
|
|
28
|
+
].map(&:codepoints).flatten.freeze
|
|
29
|
+
|
|
30
|
+
# Characters forbidden at line end (kinsoku shori).
|
|
31
|
+
FORBIDDEN_LINE_END = %w[
|
|
32
|
+
“ 〈 《 「 『 【 〔 { ( 「
|
|
33
|
+
].map(&:codepoints).flatten.freeze
|
|
34
|
+
|
|
35
|
+
def cjk?(codepoint)
|
|
36
|
+
CJK_RANGES.any? { |range| range.include?(codepoint) }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def forbidden_start?(codepoint)
|
|
40
|
+
FORBIDDEN_LINE_START.include?(codepoint)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def forbidden_end?(codepoint)
|
|
44
|
+
FORBIDDEN_LINE_END.include?(codepoint)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Check if text contains any CJK characters.
|
|
48
|
+
def contains_cjk?(text)
|
|
49
|
+
text.each_codepoint.any? { |cp| cjk?(cp) }
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Apply kinsoku shori to an array of Line objects. Moves
|
|
53
|
+
# forbidden-start chars from the beginning of a line to the
|
|
54
|
+
# end of the previous line, and forbidden-end chars from the
|
|
55
|
+
# end of a line to the beginning of the next line.
|
|
56
|
+
def apply_kinsoku(lines)
|
|
57
|
+
return lines if lines.length < 2
|
|
58
|
+
|
|
59
|
+
result = [dup_line(lines.first)]
|
|
60
|
+
lines[1..].each do |line|
|
|
61
|
+
prev = result.last
|
|
62
|
+
curr = dup_line(line)
|
|
63
|
+
adjusted_prev, adjusted_current = adjust_boundary(prev, curr)
|
|
64
|
+
result[-1] = adjusted_prev
|
|
65
|
+
result << adjusted_current
|
|
66
|
+
end
|
|
67
|
+
result
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def dup_line(line)
|
|
71
|
+
Line.new(line.glyphs.dup, line.width, line.x_offset)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Adjust the boundary between two lines according to kinsoku rules.
|
|
75
|
+
def adjust_boundary(prev_line, current_line)
|
|
76
|
+
prev = dup_line(prev_line)
|
|
77
|
+
curr = dup_line(current_line)
|
|
78
|
+
|
|
79
|
+
# Move forbidden-start chars from current line start to prev line end.
|
|
80
|
+
until curr.glyphs.empty? || !forbidden_start?(curr.glyphs.first.codepoint)
|
|
81
|
+
moved = curr.glyphs.shift
|
|
82
|
+
prev.glyphs << moved
|
|
83
|
+
prev.width += moved.width
|
|
84
|
+
curr.width -= moved.width
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Move forbidden-end chars from prev line end to current line start.
|
|
88
|
+
until prev.glyphs.empty? || !forbidden_end?(prev.glyphs.last.codepoint)
|
|
89
|
+
moved = prev.glyphs.pop
|
|
90
|
+
prev.width -= moved.width
|
|
91
|
+
curr.glyphs.unshift(moved)
|
|
92
|
+
curr.width += moved.width
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
[prev, curr]
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Detect if a codepoint is a CJK full-width digit (0-9).
|
|
99
|
+
def fullwidth_digit?(codepoint)
|
|
100
|
+
codepoint.between?(0xFF10, 0xFF19)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Tate-Chu-Yoko candidate: 1-2 digit horizontal runs in vertical text.
|
|
104
|
+
def tate_chu_yoko?(codepoint)
|
|
105
|
+
codepoint.between?(0x30, 0x39) || fullwidth_digit?(codepoint)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Check if a StoryOrientation value indicates vertical writing.
|
|
109
|
+
def vertical_mode?(orientation)
|
|
110
|
+
["TopToBottom", "RightToLeftTopToBottom"].include?(orientation)
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "fontisan"
|
|
4
|
+
|
|
5
|
+
module Idml
|
|
6
|
+
module TextEngine
|
|
7
|
+
# Reads OpenType/TrueType font metrics via Fontisan. Uses Fontisan's
|
|
8
|
+
# FontLoader to open the font file and locate table offsets, then
|
|
9
|
+
# parses the head, hhea, hmtx, and cmap tables directly from the
|
|
10
|
+
# binary. No ttfunk.
|
|
11
|
+
class FontMetrics
|
|
12
|
+
@cache = {}
|
|
13
|
+
|
|
14
|
+
def self.open(path)
|
|
15
|
+
@cache[path] ||= new(path)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.clear_cache
|
|
19
|
+
@cache.clear
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def initialize(path)
|
|
23
|
+
@path = path
|
|
24
|
+
@font = Fontisan::FontLoader.load(path)
|
|
25
|
+
@io = File.open(path, "rb")
|
|
26
|
+
parse_head
|
|
27
|
+
parse_hhea
|
|
28
|
+
parse_hmtx
|
|
29
|
+
parse_cmap
|
|
30
|
+
@width_cache = {}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
attr_reader :units_per_em, :ascent, :descent, :line_gap, :path
|
|
34
|
+
|
|
35
|
+
def glyph_width(codepoint)
|
|
36
|
+
@width_cache[codepoint] ||=
|
|
37
|
+
begin
|
|
38
|
+
glyph_id = @code_map[codepoint] || 0
|
|
39
|
+
metric = @advance_widths[glyph_id]
|
|
40
|
+
metric || @advance_widths.last || 0
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def kerning_pair(_left_cp, _right_cp)
|
|
45
|
+
0
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def measure_text(text, size:)
|
|
49
|
+
total = 0
|
|
50
|
+
text.each_codepoint { |cp| total += glyph_width(cp) }
|
|
51
|
+
total.to_f / units_per_em * size
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def postscript_name
|
|
55
|
+
@postscript_name ||= parse_name_entry(6) || "Unknown"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def family_name
|
|
59
|
+
@family_name ||= parse_name_entry(1) || "Unknown"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def style_name
|
|
63
|
+
@style_name ||= parse_name_entry(2) || "Regular"
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
private
|
|
67
|
+
|
|
68
|
+
def find_table(tag)
|
|
69
|
+
@font.tables.find { |entry| entry.tag == tag }
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def read_table_bytes(tag)
|
|
73
|
+
entry = find_table(tag)
|
|
74
|
+
return nil unless entry
|
|
75
|
+
|
|
76
|
+
@io.seek(entry.offset)
|
|
77
|
+
@io.read(entry.table_length)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def parse_head
|
|
81
|
+
data = read_table_bytes("head")
|
|
82
|
+
return unless data
|
|
83
|
+
|
|
84
|
+
@units_per_em = data[18, 2].unpack1("n")
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def parse_hhea
|
|
88
|
+
data = read_table_bytes("hhea")
|
|
89
|
+
return unless data
|
|
90
|
+
|
|
91
|
+
@ascent = sign_extend(data[4, 2].unpack1("n"))
|
|
92
|
+
@descent = sign_extend(data[6, 2].unpack1("n"))
|
|
93
|
+
@line_gap = sign_extend(data[8, 2].unpack1("n"))
|
|
94
|
+
@num_hmetrics = data[34, 2].unpack1("n")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def parse_hmtx
|
|
98
|
+
data = read_table_bytes("hmtx")
|
|
99
|
+
return unless data
|
|
100
|
+
|
|
101
|
+
@advance_widths = []
|
|
102
|
+
@num_hmetrics.times do |i|
|
|
103
|
+
offset = i * 4
|
|
104
|
+
@advance_widths[i] = data[offset, 2].unpack1("n")
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def parse_cmap
|
|
109
|
+
data = read_table_bytes("cmap")
|
|
110
|
+
return unless data
|
|
111
|
+
|
|
112
|
+
_, num_subtables = data[0, 4].unpack("nn")
|
|
113
|
+
@code_map = {}
|
|
114
|
+
|
|
115
|
+
best_offset = nil
|
|
116
|
+
num_subtables.times do |i|
|
|
117
|
+
rec_off = 4 + (i * 4)
|
|
118
|
+
platform_id, encoding_id, offset = data[rec_off, 8].unpack("nnN")
|
|
119
|
+
if platform_id == 3 && encoding_id == 1
|
|
120
|
+
best_offset = offset
|
|
121
|
+
break
|
|
122
|
+
end
|
|
123
|
+
best_offset ||= offset if platform_id.zero?
|
|
124
|
+
end
|
|
125
|
+
return unless best_offset
|
|
126
|
+
|
|
127
|
+
parse_cmap_subtable(data, best_offset)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def parse_cmap_subtable(data, offset)
|
|
131
|
+
format = data[offset, 2].unpack1("n")
|
|
132
|
+
parse_cmap_format4(data, offset) if format == 4
|
|
133
|
+
parse_cmap_format0(data, offset) if format.zero?
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def sign_extend(uint16)
|
|
137
|
+
uint16 >= 32768 ? uint16 - 65536 : uint16
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def parse_cmap_format4(data, offset)
|
|
141
|
+
seg_count_x2 = data[offset + 6, 2].unpack1("n")
|
|
142
|
+
seg_count = seg_count_x2 / 2
|
|
143
|
+
|
|
144
|
+
end_start = offset + 14
|
|
145
|
+
start_start = end_start + seg_count_x2 + 2
|
|
146
|
+
delta_start = start_start + seg_count_x2
|
|
147
|
+
range_start = delta_start + seg_count_x2
|
|
148
|
+
|
|
149
|
+
seg_count.times do |i|
|
|
150
|
+
end_code = data[end_start + (i * 2), 2].unpack1("n")
|
|
151
|
+
start_code = data[start_start + (i * 2), 2].unpack1("n")
|
|
152
|
+
delta = sign_extend(data[delta_start + (i * 2), 2].unpack1("n"))
|
|
153
|
+
range_off = data[range_start + (i * 2), 2].unpack1("n")
|
|
154
|
+
|
|
155
|
+
(start_code..end_code).each do |cp|
|
|
156
|
+
if range_off.zero?
|
|
157
|
+
glyph_id = (cp + delta) & 0xFFFF
|
|
158
|
+
else
|
|
159
|
+
idx = range_start + (i * 2) + range_off + ((cp - start_code) * 2)
|
|
160
|
+
glyph_id = data[idx, 2].unpack1("n")
|
|
161
|
+
glyph_id = (glyph_id + delta) & 0xFFFF if glyph_id != 0
|
|
162
|
+
end
|
|
163
|
+
@code_map[cp] = glyph_id if glyph_id != 0
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def parse_cmap_format0(data, offset)
|
|
169
|
+
256.times do |cp|
|
|
170
|
+
glyph_id = data[offset + 6 + cp, 1].unpack1("C")
|
|
171
|
+
@code_map[cp] = glyph_id if glyph_id != 0
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def parse_name_entry(name_id)
|
|
176
|
+
data = read_table_bytes("name")
|
|
177
|
+
return nil unless data
|
|
178
|
+
|
|
179
|
+
_format, count, string_offset = data[0, 6].unpack("nnn")
|
|
180
|
+
best = nil
|
|
181
|
+
best_priority = 99
|
|
182
|
+
count.times do |i|
|
|
183
|
+
rec = 6 + (i * 12)
|
|
184
|
+
platform_id, encoding_id, _lang_id, id, length, str_off =
|
|
185
|
+
data[rec, 12].unpack("nnnnnn")
|
|
186
|
+
next unless id == name_id
|
|
187
|
+
|
|
188
|
+
priority = name_platform_priority(platform_id, encoding_id)
|
|
189
|
+
next if priority >= best_priority
|
|
190
|
+
|
|
191
|
+
raw = data[string_offset + str_off, length]
|
|
192
|
+
decoded = decode_name_string(raw, platform_id)
|
|
193
|
+
next unless decoded && !decoded.empty?
|
|
194
|
+
|
|
195
|
+
best = decoded
|
|
196
|
+
best_priority = priority
|
|
197
|
+
end
|
|
198
|
+
best
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# Prefer Windows (platform 3, encoding 1) name records, then
|
|
202
|
+
# any Windows record, then Macintosh, then Unicode.
|
|
203
|
+
def name_platform_priority(platform_id, encoding_id)
|
|
204
|
+
case platform_id
|
|
205
|
+
when 3 then encoding_id == 1 ? 0 : 1
|
|
206
|
+
when 0 then 3
|
|
207
|
+
when 1 then 2
|
|
208
|
+
else 4
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def decode_name_string(raw, platform_id)
|
|
213
|
+
result =
|
|
214
|
+
case platform_id
|
|
215
|
+
when 3, 0
|
|
216
|
+
raw.encode("UTF-8", "UTF-16BE", invalid: :replace, undef: :replace)
|
|
217
|
+
when 1
|
|
218
|
+
raw.encode("UTF-8", "MacRoman", invalid: :replace, undef: :replace)
|
|
219
|
+
else
|
|
220
|
+
raw.dup.force_encoding("UTF-8").scrub("")
|
|
221
|
+
end
|
|
222
|
+
result.strip
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Idml
|
|
4
|
+
module TextEngine
|
|
5
|
+
# Maps IDML font references (family + style name) to .ttf/.otf
|
|
6
|
+
# file paths on disk via Fontisan. Searches system font dirs and
|
|
7
|
+
# any user-configured search paths.
|
|
8
|
+
class FontResolver
|
|
9
|
+
DEFAULT_SEARCH_PATHS = [
|
|
10
|
+
"/System/Library/Fonts",
|
|
11
|
+
"/Library/Fonts",
|
|
12
|
+
File.expand_path("~/Library/Fonts"),
|
|
13
|
+
"/usr/share/fonts",
|
|
14
|
+
File.expand_path("~/.local/share/fonts"),
|
|
15
|
+
].freeze
|
|
16
|
+
|
|
17
|
+
STYLE_ALIASES = {
|
|
18
|
+
"Regular" => %w[Regular Normal Book Roman Medium],
|
|
19
|
+
"Bold" => %w[Bold Semibold Heavy Black],
|
|
20
|
+
"Italic" => %w[Italic Oblique Slanted],
|
|
21
|
+
"Bold Italic" => %w[Bold\ Italic BoldOblique SemiboldItalic],
|
|
22
|
+
}.freeze
|
|
23
|
+
|
|
24
|
+
def initialize(search_paths: DEFAULT_SEARCH_PATHS)
|
|
25
|
+
@search_paths = search_paths
|
|
26
|
+
@cache = {}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def resolve(family_name:, style_name: "Regular")
|
|
30
|
+
key = [family_name, style_name]
|
|
31
|
+
@cache[key] ||= find_font(family_name, style_name)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Search by PostScriptName (e.g., "MinionPro-Regular").
|
|
35
|
+
# More precise than family+style — maps directly to the font's
|
|
36
|
+
# internal PostScript name. Used when the IDML document references
|
|
37
|
+
# a specific PostScriptName from Fonts.xml.
|
|
38
|
+
def resolve_by_ps_name(ps_name)
|
|
39
|
+
return nil unless ps_name
|
|
40
|
+
|
|
41
|
+
@ps_cache ||= {}
|
|
42
|
+
return @ps_cache[ps_name] if @ps_cache.key?(ps_name)
|
|
43
|
+
|
|
44
|
+
@ps_cache[ps_name] = find_by_ps_name(ps_name)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def find_by_ps_name(ps_name)
|
|
50
|
+
@search_paths.each do |dir|
|
|
51
|
+
next unless Dir.exist?(dir)
|
|
52
|
+
|
|
53
|
+
Dir.glob(File.join(dir, "**", "*.ttf")).each do |path|
|
|
54
|
+
font = safe_load(path)
|
|
55
|
+
next unless font
|
|
56
|
+
|
|
57
|
+
return FontMetrics.open(path) if font.postscript_name == ps_name
|
|
58
|
+
end
|
|
59
|
+
Dir.glob(File.join(dir, "**", "*.otf")).each do |path|
|
|
60
|
+
font = safe_load(path)
|
|
61
|
+
next unless font
|
|
62
|
+
|
|
63
|
+
return FontMetrics.open(path) if font.postscript_name == ps_name
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
nil
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def find_font(family, style)
|
|
70
|
+
candidates = STYLE_ALIASES[style] || [style]
|
|
71
|
+
@search_paths.each do |dir|
|
|
72
|
+
next unless Dir.exist?(dir)
|
|
73
|
+
|
|
74
|
+
Dir.glob(File.join(dir, "**", "*.ttf")).each do |path|
|
|
75
|
+
font = safe_load(path)
|
|
76
|
+
next unless font
|
|
77
|
+
|
|
78
|
+
return FontMetrics.open(path) if matches?(font, family, candidates)
|
|
79
|
+
end
|
|
80
|
+
Dir.glob(File.join(dir, "**", "*.otf")).each do |path|
|
|
81
|
+
font = safe_load(path)
|
|
82
|
+
next unless font
|
|
83
|
+
|
|
84
|
+
return FontMetrics.open(path) if matches?(font, family, candidates)
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
nil
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def matches?(font, family, style_candidates)
|
|
91
|
+
return false unless font.family_name.match?(/#{Regexp.escape(family)}/i)
|
|
92
|
+
|
|
93
|
+
style_candidates.any? do |s|
|
|
94
|
+
font.style_name.match?(/#{Regexp.escape(s)}/i)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def safe_load(path)
|
|
99
|
+
FontMetrics.open(path)
|
|
100
|
+
rescue StandardError
|
|
101
|
+
nil
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|