Table of Contents

No Table of Contents available.

Changelog

Here is some information about the versions of IDML-Creator, when they were released and what changes there were.


4.0.0 2024-02-08

Changed

  • PHP >=8.1 is now required.
  • All Enum Classes have been replaced by native Enums. This changes, how they need to be written. For example, instead of writing PagePosition::RIGHT() you need to write PagePosition::RIGHT now.

Added

  • A class Factory has been added, that allows handling IDML components easier. Instead of initializing every object manually and also adding it to the Content object manually, the Factory takes care of that.

    Before

    <?php 
    
    use IDML\Content;
    use Content\Style\ParagraphStyle;
    
    $content = new Content();
    
    $paragraphStyle = new ParagraphStyle('Body Text');
    $paragraphStyle
        ->setPointSize(12)
        ->setLineHeight(14.4)
    ;
    
    $content->add($paragraphStyle);

    After

    <?php 
    
    use IDML\Factory;
    
    $factory = new Factory();
    
    $paragraphStyle = $factory->createParagraphStyle('Body Text')
        ->setPointSize(12)
        ->setLineHeight(14.4)
    ;
  • The Content class has been extended with a new method add(). The method is a shorthand for every other set* or add* method. So for example, instead of writing $content->addSpread($spread), you can write $content->add($spread) now.


3.6.0 2024-01-23

Changed

  • Update dependencies.

3.5.0 2023-12-14

Changed

  • The method fitImageToFrame has been deprecated and was replaced by fillFrameWithImageProportional.
  • When setting an image the a Rectangle, Polygon or Oval, the method setSrc accepts now a second parameter with an different file path. This allows to use other paths when creating an IDML document than in Adobe InDesign itself.

Added

  • The method fitImageToFrameProportional has been added to the classes Rectangle, Polygon and Oval.

3.4.1 2023-11-30

Fixed

  • Fix handling of GraphicLines.

3.4.0 2023-11-23

Fixed

  • Fix positioning of elements that could lead to wrong (ordered) element edges.

Changed

  • bitandblack/image-information >= 2.0.1 is now required.
  • The Image class can now be initialized with a class that allows caching of image information. The easiest way is to use the library's default Cache class (which implements the symfony/cache library), but any other (custom) class implementing the CacheInterface can be used too.
  • Stories can be cloned now.
  • Format styles as well as colors will be sorted alphabetically now.

Added

  • The Content class now provides the three default colors Paper, Black and Registration. Their color model depends on the DocumentIntent setting and is RGB or CMYK. The colors can be used by calling Content::getDefaultWhite(), Content::getDefaultBlack() and Content::getRegistrationColor().

3.3.0 2023-10-27

Added

  • Added properties to Table Styles:

    • StartRowFillColor
    • StartColumnStrokeColor
    • StartColumnFillCount
    • EndRowFillColor
    • EndColumnStrokeColor
    • EndColumnFillCount
  • Added properties to TextFrames and Rectangles:

    • TopLeftCornerOption
    • TopRightCornerOption
    • TopLeftCornerRadius
    • TopRightCornerRadius
    • BottomLeftCornerOption
    • BottomRightCornerOption
    • BottomLeftCornerRadius
    • BottomRightCornerRadius

Fixed

  • Fixed the wrong inheritance of Paragraph Styles in Cells.
  • Fixed the wrong order of attributes when setting an inset space for a TextFrame.
  • Fixed the wrong row count when adding headers and footers to Tables.
  • Fixed calculation of anchor points that could cause inset spacing and border radius to get ignored.

3.2.0 2023-10-17

Changed

  • Changed the handling of annotations in the PropertyReader class, that brings a massive performance improvement.

Added

  • Added the method setCacheItemPool in the PropertyReader class, so the annotation reading can be cached. This can improve the performance on large IDML documents.

3.1.0 2023-10-12

Changed

  • Updated the InDesignVersion enum to the latest InDesign version with the property INDESIGN_2024. IDML files will contain the new version number 19.0 when no other definition has been set.
  • Dependencies have been updated.

3.0.1 2023-10-06

Fixed

  • Fix wrong namespace causing autoload problems.

3.0.0 2023-07-18

Changed

  • PHP >=8.0.2 is now required.
  • Deprecations have been removed.

2.22.0 2024-01-23

Changed

  • Update dependencies.

2.21.0 2023-07-07

Changed

  • Changed some methods from private to public in class FontStyle.

2.20.0 2023-02-01

Fixed

  • Added missing InDesign version property in FontStyle and ParagraphStyle.
  • Added missing null type in ParagraphStyle.
  • Added base64 encoding to all image classes to improve file handling.

Changed

  • Added methods getPages and getPageCount to class AbstractSpread.
  • Added method getElements to class Page.
  • Added method removeElement to class Page.
  • Added method isSinglePage to class Preference.
  • IDML-Creator sets the preference attributes PreserveLayoutWhenShuffling and AllowPageShuffle by its own depending on the page count and layout mode. This improves the handling of pages in InDesign.

2.19.0 2022-11-14

Changed

  • Updated the InDesignVersion enum to the latest InDesign version with the property INDESIGN_2023. IDML files will contain the new version number 18.0 when no other definition has been set.

2.18.1 2022-08-05

Fixed

  • Fixed unlikable Layers.

2.18.0 2022-05-19

Added

  • Gradients are now supported.

2.17.1 2022-02-11

Fixed

  • Fixed version number for bitandblack/qr-code.

2.17.0 2022-02-11

Fixed

  • Replace character / with character - in Story file names to prevent broken IDML files.
  • Improved rotation of elements.
  • Improved deprecation handling in class Content.

Changed

  • Sort all kind of styles by their names.

Added

  • Added class MixedInk to handle mixed inks.
  • Added possibility to handle position in Polygons.
  • Allow all types of page items as anchored objects.
  • Added class ParentSpread in addition to the current MasterSpread to follow Adobes inclusive language.
  • Added method fitFrameToContent.

2.16.0 2021-10-27

Changed

  • Updated the InDesignVersion enum to the latest InDesign version with the property INDESIGN_2022. IDML files will contain the new version number 17.0 when no other definition has been set.

2.15.0 2021-10-06

Added

  • HEX colors can now be added too.
  • Polygons are ready to use now.
  • Added methods getCharacterStyle and setCharacterStyle to CharacterStyleRange.
  • Added method addContent to CharacterStyleRange to allow adding content to a later point.
  • Added method addCharacterStyleRange to ParagraphStyleRange to allow adding content to a later point.
  • The document indent can now be defined as Web, Print or Mobile. It may be added when initializing a Content object. This effects the color space and the default black which will be in CMYK or RGB now. Default is Print.

Changed

  • Changed deprecation messages, so they are using error level E_USER_DEPRECATION now.
  • Story::setContent has been replaced with Story::addContent.
  • Page elements are not rendered until the page itself is rendered. This has been changed to allow page elements to be changed after they have been attached to a page.
  • The annotation reader has been moved. This means that it's no longer needed to create a Content object at first before using any other classes.

2.14.1 2021-01-13

Added

  • Added missing values in class CharacterStyle.

2.14.0 2020-11-30

Added

  • Added the Oval class to create circles and ovals.

Changed

  • Added support for PHP 8.

2.13.0 2020-11-03

Added

  • The InDesignVersion Enum supports now version 2021.
  • Images can be embedded into an IDML document now. This can be done with the new embedImage() method. It is available in the classes Image, EPS, PDF and SVG.
  • IDML-Creator can add meta information to an IDML now. The new class MetaData provides some methods for adding authors and contact information.
  • When using an image without setting its source, the ImageSrcNotSetException will be thrown now.

2.12.5 2020-10-14

Fixed

  • Fixed wrong variable type.

2.12.4 2020-10-14

Fixed

  • Added missing attribute fillColor to class Image.

2.12.3 2020-10-13

Fixed

  • Added missing getters.

2.12.2 2020-10-02

Fixed

  • The library bitandblack/composer-helper has been updated, and it's usage too. This fixes some incompatibilities with different environments.

2.12.1 2020-10-01

Changed

  • Updated library bitandblack/image-information to ^1.5 to make ext-imagick optional.

2.12.0 2020-09-29

Fixed

  • Fixed several bugs that could result in wrongly placed elements when rotating them.

Added

  • Added the possibility to set the blend mode and all related settings for Rectangles, GraphicLines, Polygons and TextFrames. This works with the new TransparencySetting class.
  • Groups are now possible by using the new class IDML\Content\Group.
  • PDFs can now be places using the PDF class. Crop mode and the page can be defined.
  • Added class TransformAttributeOption to improve the work with ObjectStyles.

Changed

  • When adding elements to a Page, there's only one method for all elements: addElement.
  • The IDML\Content\CalculatorTrait has been replaced with the Calculator class.
  • Spread::insertPage() has been replaced with Spread::addPage().
  • Content::addDesignMap() has been replaced with Content::setDesignMap().
  • Page::addTextFrame() has been replaced with Page::addElement().
  • Page::addRectangle() has been replaced with Page::addElement().
  • Page::addGraphicLine() has been replaced with Page::addElement().
  • TextWrapPreference::setTextWrapOffset() has been replaced with TextWrapPreference::setTopOffset(), TextWrapPreference::setRightOffset(), TextWrapPreference::setBottomOffset() and TextWrapPreference::setLeftOffset().
  • It is no longer possible to add duplicates to the IDML\Content class.
  • Enums are now final.
  • The QRCode class has some setters and getters now.
  • The style classes CellStyle, CharacterStyle, ObjectStyle, ParagraphStyle, and TableStyle have a second parameter in their method setBasedOn(). If set to true, the inheritance will actively change to children's classes values. The inheritance can by manually triggered by calling the method updateInheritance(). Also, there's a new method addChild() what is the opposite of setBasedOn().

2.11.1 2020-02-24

Fixed

  • Changes of the namespace in bitandblack/idml-writer caused error messages. This has been fixed now.

2.11.0 2020-02-18

Added

  • GREP expressions can be added to Paragraph Styles now.

  • Added possibility to set a characters as subscript or superscript in two ways:

    1. Instead of adding new Text() into a CharacterStyleRange new Subscript() or new Superscript() can be used.

    2. CharacterStyles have setPosition() now. Its values come from the Position Enum.


2.10.0 2020-02-13

Added

  • A lot of Enums have been added.

  • Variable fonts can be used now. See example/variable-fonts.php for a use case.

  • SVG images can be added now.

  • The color of borders above and below a paragraph can be set.

  • Paragraphs can have borders and shadings now.

  • Paragraphs can have column rules now.

Changed

  • When a property has been set with the help of an Enum, its getter method will also return the Enum.

  • In class Content some setters have been renamed to make their behaviour clearer:

    • addDesignMap to setDesignMap
    • addTag to setTag
    • addBackingStory to setBackingStory
    • addContainer to setContainer
    • addPreference to setPreference
    • getContainers to getContainer
    • getBackingStories to getBackingStory
  • composer.lock has been removed. Also some dependencies have been updated.


2.9.4 2020-02-07

Changed

  • In class ParagraphStyle the property strikeThru is now from type bool.

Fixed

  • A lot of properties and methods in class ParagraphStyle had int values when they should be float. This has been fixed now.

2.9.3 2019-12-09

Fixed

  • Fixed wrong color value in QR codes when no foreground color was set.

2.9.2 2019-12-03

Fixed

  • Fixed a bug that caused empty content elements.

2.9.1 2019-11-26

Fixed

  • Fixed handling of spanned or splitted columns and added SpanColumnType to define the column type in paragraph styles.

  • Fixed the handling of special characters.


2.9.0 2019-11-22

Added

  • Added a lot of classes for a better handling of special characters. They are all under the namespace IDML\Content\SpecialChars:

    • AutoPageNumber
    • EndNestedStyleHere
    • IndentToHere
    • NextPageNumber
    • NonJoinerCharacter
    • PreviousPageNumber
    • RightIndentTab
    • SectionMarker
    • Tabulator.php

    All of them can be used inside a CharacterStyleRange, for example:

    <?php
    
    use IDML\Content\Story\Story;
    use IDML\Content\Story\ParagraphStyleRange;
    use IDML\Content\Story\CharacterStyleRange;
    use IDML\Content\SpecialChars\AutoPageNumber;
    
    $story = new Story();
    $story->setContent(
        new ParagraphStyleRange(
            null,
            new CharacterStyleRange(
                null,
                new AutoPageNumber()
            )       
        )
    );

Changed

  • Tabulators have been refactored and can be used with the new class IDML\Content\Style\Tabulator.

    To make it clearer that multiple tabulators can be added to a paragraph style, the method setTabulator has been renamed to addTabulator.