elipousson / idmlr

A R package to read InDesign Markup Language (IDML) files
https://elipousson.github.io/idmlr/
Other
3 stars 0 forks source link

idmlr

Lifecycle:
experimental License:
MIT

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

library(idmlr)

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 ...