The goal of idmlr is to read and (eventually) modify and write InDesign Markup Language (IDML) files.
Installation
You can install the development version of idmlr from GitHub with:
# install.packages("pak")
pak::pkg_install("elipousson/idmlr")
Usage
This is a basic example which shows you how to read an IDML file:
idml <- read_idml(system.file("idml/letter_portrait_standard.idml", package = "idmlr"))
idml
#> <idml[3]>
#> file
#> letter_portrait_standard.idml
#> path
#> /var/folders/3f/50m42dx1333_dfqb5772j6_40000gn/T//RtmpCr945k/letter_portrait_standard.idml
#> contents
#> <pointer: 0x140e93220>, <pointer: 0x140e92f00>, <pointer: 0x140e94bd0>, <pointer: 0x140e94840>, <pointer: 0x140ebe840>, <pointer: 0x140ebe580>, <pointer: 0x140ec8070>, <pointer: 0x140ec1ac0>, <pointer: 0x120213a40>, <pointer: 0x1202136f0>, <pointer: 0x1202275b0>, <pointer: 0x120213830>, <pointer: 0x12028b150>, <pointer: 0x12028aee0>, <pointer: 0x1202ffdc0>, <pointer: 0x1202ffad0>, <pointer: 0x1203087d0>, <pointer: 0x120308470>, <pointer: 0x12030a040>, <pointer: 0x120309cf0>, <pointer: 0x12030b430>, <pointer: 0x12030b0e0>, <pointer: 0x12030c370>, <pointer: 0x12030c0a0>, application/vnd.adobe.indesign-idml-package
You can then get the styles from the idml
object as a list or in a xml_document
format:
get_idml_styles(idml)
#> {xml_document}
#> <Styles DOMVersion="18.5" xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging">
#> [1] <RootCharacterStyleGroup Self="u7f">\n <CharacterStyle Self="CharacterSt ...
#> [2] <RootParagraphStyleGroup Self="u7e">\n <ParagraphStyle Self="ParagraphSt ...
#> [3] <TOCStyle Self="TOCStyle/$ID/DefaultTOCStyleName" TitleStyle="ParagraphSt ...
#> [4] <RootCellStyleGroup Self="u8e">\n <CellStyle Self="CellStyle/$ID/[None]" ...
#> [5] <RootTableStyleGroup Self="u90">\n <TableStyle Self="TableStyle/$ID/[No ...
#> [6] <RootObjectStyleGroup Self="u99">\n <ObjectStyle Self="ObjectStyle/$ID/[ ...
#> [7] <TrapPreset Self="TrapPreset/$ID/k[No Trap Preset]" Name="$ID/k[No Trap P ...
#> [8] <TrapPreset Self="TrapPreset/$ID/kDefaultTrapStyleName" Name="$ID/kDefaul ...
You can also get fonts and other resources or metadata:
get_idml_fonts(idml)
#> {xml_document}
#> <Fonts DOMVersion="18.5" xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging">
#> [1] <FontFamily Self="di3f" Name="Minion Pro">\n <Font Self="di3fFontnMinion ...
#> [2] <FontFamily Self="di9d" Name="Myriad Pro">\n <Font Self="di9dFontnMyriad ...
#> [3] <FontFamily Self="diaa" Name="Kozuka Mincho Pr6N">\n <Font Self="diaaFon ...
#> [4] <FontFamily Self="di222" Name="Courier New">\n <Font Self="di222FontnCou ...
#> [5] <CompositeFont Self="CompositeFont/$ID/[No composite font]" Name="$ID/[No ...