Changelog
Here is some information about the versions of IDML-Creator, when they were released and what changes there were.
4.2.0 2024-10-14
Changed
- Updated dependencies.
- Set latest InDesign version to
2025
(20.0
).
4.1.1 2024-09-03
Fixed
- Fixed wrong handling of CIELab colors.
4.1.0 2024-07-30
Fixed
- Changed how grouped elements are getting placed. This fixes the possibly wrong positions of images inside Rectangles.
- Fixed wrong calculation of table rows, that could lead to wrong cell heights.
Added
- Add
Composer
enum for Paragraph Styles. - Add table style properties
ColumnFillsPriority
,StartColumnFillColor
andEndColumnFillColor
.
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 writePagePosition::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 theContent
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 methodadd()
. The method is a shorthand for every otherset*
oradd*
method. So for example, instead of writing$content->addSpread($spread)
, you can write$content->add($spread)
now.
3.9.0 2024-10-14
Changed
- Updated dependencies.
- Set latest InDesign version to
2025
(20.0
).
3.8.2 2024-09-03
Fixed
- Fixed wrong handling of CIELab colors.
3.8.1 2024-07-30
Fixed
- Fixed wrong calculation of table rows, that could lead to wrong cell heights.
3.8.0 2024-06-27
Added
- Add
Composer
enum for Paragraph Styles.
3.7.2 2024-06-13
Fixed
- Changed, how grouped elements are getting placed. This fixes the possibly wrong positions of images inside Rectangles.
3.7.1 2024-06-13
Added
- Add table style property
ColumnFillsPriority
.
3.7.0 2024-06-13
Added
- Add table style properties
StartColumnFillColor
andEndColumnFillColor
.
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 byfillFrameWithImageProportional
. - When setting an image the a
Rectangle
,Polygon
orOval
, the methodsetSrc
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 classesRectangle
,Polygon
andOval
.
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 thesymfony/cache
library), but any other (custom) class implementing theCacheInterface
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 colorsPaper
,Black
andRegistration
. Their color model depends on theDocumentIntent
setting and isRGB
orCMYK
. The colors can be used by callingContent::getDefaultWhite()
,Content::getDefaultBlack()
andContent::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 thePropertyReader
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 propertyINDESIGN_2024
. IDML files will contain the new version number19.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
topublic
in classFontStyle
.
2.20.0 2023-02-01
Fixed
- Added missing InDesign version property in
FontStyle
andParagraphStyle
. - Added missing null type in
ParagraphStyle
. - Added base64 encoding to all image classes to improve file handling.
Changed
- Added methods
getPages
andgetPageCount
to classAbstractSpread
. - Added method
getElements
to classPage
. - Added method
removeElement
to classPage
. - Added method
isSinglePage
to classPreference
. - IDML-Creator sets the preference attributes
PreserveLayoutWhenShuffling
andAllowPageShuffle
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 propertyINDESIGN_2023
. IDML files will contain the new version number18.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 currentMasterSpread
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 propertyINDESIGN_2022
. IDML files will contain the new version number17.0
when no other definition has been set.
2.15.0 2021-10-06
Added
HEX
colors can now be added too.Polygon
s are ready to use now.- Added methods
getCharacterStyle
andsetCharacterStyle
toCharacterStyleRange
. - Added method
addContent
toCharacterStyleRange
to allow adding content to a later point. - Added method
addCharacterStyleRange
toParagraphStyleRange
to allow adding content to a later point. - The document indent can now be defined as
Web
,Print
orMobile
. It may be added when initializing aContent
object. This effects the color space and the default black which will be in CMYK or RGB now. Default isPrint
.
Changed
- Changed deprecation messages, so they are using error level
E_USER_DEPRECATION
now. Story::setContent
has been replaced withStory::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 classesImage
,EPS
,PDF
andSVG
. - 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 classImage
.
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 makeext-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 theCalculator
class. Spread::insertPage()
has been replaced withSpread::addPage()
.Content::addDesignMap()
has been replaced withContent::setDesignMap()
.Page::addTextFrame()
has been replaced withPage::addElement()
.Page::addRectangle()
has been replaced withPage::addElement()
.Page::addGraphicLine()
has been replaced withPage::addElement()
.TextWrapPreference::setTextWrapOffset()
has been replaced withTextWrapPreference::setTopOffset()
,TextWrapPreference::setRightOffset()
,TextWrapPreference::setBottomOffset()
andTextWrapPreference::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
, andTableStyle
have a second parameter in their methodsetBasedOn()
. If set to true, the inheritance will actively change to children's classes values. The inheritance can by manually triggered by calling the methodupdateInheritance()
. Also, there's a new methodaddChild()
what is the opposite ofsetBasedOn()
.
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:
-
Instead of adding
new Text()
into a CharacterStyleRangenew Subscript()
ornew Superscript()
can be used. -
CharacterStyles have
setPosition()
now. Its values come from thePosition
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
tosetDesignMap
addTag
tosetTag
addBackingStory
tosetBackingStory
addContainer
tosetContainer
addPreference
tosetPreference
getContainers
togetContainer
getBackingStories
togetBackingStory
-
composer.lock
has been removed. Also some dependencies have been updated.
2.9.4 2020-02-07
Changed
- In class
ParagraphStyle
the propertystrikeThru
is now from typebool
.
Fixed
- A lot of properties and methods in class
ParagraphStyle
hadint
values when they should befloat
. 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 toaddTabulator
.