{"id":4,"date":"2008-10-15T16:45:20","date_gmt":"2008-10-15T23:45:20","guid":{"rendered":"http:\/\/www.rorohiko.com\/wordpress\/?p=4"},"modified":"2025-09-30T12:39:42","modified_gmt":"2025-09-30T19:39:42","slug":"how-to-add-indesign-page-item-adornments-using-scripting","status":"publish","type":"post","link":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/","title":{"rendered":"How to add InDesign page item adornments using scripting"},"content":{"rendered":"<h3 style=\"text-align: left;\">Ingredients<\/h3>\n<p style=\"text-align: left;\">&#8211; Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows).<\/p>\n<p style=\"text-align: left;\">&#8211; A licensed copy or a demo version of APIDToolAssistant 1.0.46 or higher. It also works with unlicensed versions, but then the word &#8216;DEMO&#8217; will be prefixed to or superimposed on all page adornments. More info and download links at <a title=\"https:\/\/www.rorohiko.com\/apidtoolassistant.html\" href=\"https:\/\/www.rorohiko.com\/apidtoolassistant.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.rorohiko.com\/apidtoolassistant.html<\/a>. Essentially, it&#8217;ll cost you US$25 to unlock the potential of APIDToolAssistant.<\/p>\n<p style=\"text-align: left;\">&#8211; One or more PNG files if you want graphical adornments. Higher-resolution PNG files will result in &#8216;smoother&#8217; adornments when the InDesign layout window is zoomed in.<\/p>\n<p style=\"text-align: left;\"><!--more--><\/p>\n<h3 style=\"text-align: left;\">What&#8217;s cookin&#8217;<\/h3>\n<p style=\"text-align: left;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-23 aligncenter\" title=\"picture-171\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png\" alt=\"\" width=\"500\" height=\"462\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png 900w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171-300x277.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p style=\"text-align: left;\">You can use the adornment features of APIDToolAssistant from ExtendScript, VBScript and AppleScript, and it works with InDesign CS, CS2, CS3 and CS4.<\/p>\n<p style=\"text-align: left;\">To show how it works, we have to &#8216;pick&#8217; one environment &#8211; I&#8217;ve picked InDesign CS3 with ExtendScript on Mac.\u00a0Below, I&#8217;ll be using Macintosh screen captures, but the exact same procedure also works on Windows.<\/p>\n<p style=\"text-align: left;\">So, in this recipe, we&#8217;ll build an InDesign CS3 ExtendScript script that will &#8216;mark&#8217; any page items that meet certain criteria. You should be able to easily write similar scripts in VBScript or AppleScript, or adjust the scripts for InDesign CS, CS2 or CS4 if you&#8217;re so inclined &#8211; APIDToolAssistant&#8217;s adornments are equally usable from VBScript or AppleScript.<\/p>\n<p style=\"text-align: left;\">As an example, we want to find and visually mark all page items that are either too tall or too thin to our liking. Additionally, we would like to see the word count for each individual text frame.<\/p>\n<p style=\"text-align: left;\">Of course, the resulting script can easily be adjusted to work with different selection criteria &#8211; feel free to grab the script and transmogrify it into something else.<\/p>\n<p style=\"text-align: left;\">If you simply want to see the script, you can scroll down to the end.<\/p>\n<h3 style=\"text-align: left;\">How to do it<\/h3>\n<h4 style=\"text-align: left;\">A PNG file<\/h4>\n<p style=\"text-align: left;\">First we need a PNG file to mark the items with.\u00a0In this sample, I went into Photoshop and created the following marker with transparent background, and saved it out as a PNG file:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-6 aligncenter\" title=\"picture-4\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-4.png\" alt=\"\" width=\"186\" height=\"102\" \/><\/a><\/p>\n<p style=\"text-align: left;\">The image has the following dimensions:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-7 aligncenter\" title=\"picture-3\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-3-300x233.png\" alt=\"\" width=\"300\" height=\"233\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-3-300x233.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-3.png 456w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">It&#8217;s 300 dpi &#8211; which means that it&#8217;ll be fairly small when the InDesign layout is displayed at 100%.<\/p>\n<p style=\"text-align: left;\">We must save the PNG file somewhere below the InDesign application folder, and use a globally unique name &#8211; i.e. a filename that is nearly certain to not exist anywhere else on the computer.<\/p>\n<p style=\"text-align: left;\">Because domain names are officially registered, the easiest way to create a unique filename is to reverse the order of the parts of your or your company official domain, and then tag on some more elements separated by periods.<\/p>\n<p style=\"text-align: left;\">For the sake of argument, I&#8217;ll be using<br \/>\n<em> com.rorohiko.apid.cookbook.demomarker1.png<br \/>\n<\/em>as the file name. <em>rorohiko.com<\/em> is our official domain name, so I can be fairly certain no-one else in the world will create any file name like <em>com.rorohiko.yadiyadi&#8230; <\/em><\/p>\n<p style=\"text-align: left;\">Here you can see where I&#8217;ve copied the file &#8211; I made a folder called <em>Rorohiko<\/em> underneath the <em>Scripts<\/em> folder. It does not really matter much where you copy the file &#8211; it can be stored anywhere &#8216;below&#8217; the InDesign application folder &#8211; but storing it inside this folder keeps things neat and tidy.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-9 aligncenter\" title=\"picture-6\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-6-289x300.png\" alt=\"\" width=\"289\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-6-289x300.png 289w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-6.png 368w\" sizes=\"auto, (max-width: 289px) 100vw, 289px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Feel free to make different choices &#8211; as long as you abide by the basic rules (a PNG file with a globally unique file name, stored somewhere in a subfolder of the InDesign application folder), you should be fine.<\/p>\n<h4 style=\"text-align: left;\">The APIDToolAssistant<\/h4>\n<p style=\"text-align: left;\">Next, you need to install a copy of APIDToolAssistant version 1.0.46 or higher.<\/p>\n<p style=\"text-align: left;\">Store the plug-in anywhere below the InDesign Plug-Ins folder.<\/p>\n<p style=\"text-align: left;\">Again, to keep things tidy, I&#8217;ve created a Rorohiko subfolder in the plug-ins folder, and plunked the correct plug-in file into it.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-10 aligncenter\" title=\"picture-7\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-7-228x300.png\" alt=\"\" width=\"228\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-7-228x300.png 228w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-7.png 327w\" sizes=\"auto, (max-width: 228px) 100vw, 228px\" \/><\/a><\/p>\n<h4 style=\"text-align: left;\">The script &#8211; experimenting<\/h4>\n<p style=\"text-align: left;\">We&#8217;ll be building the script interactively. That will allow us to show some of the available features along the way.<\/p>\n<p style=\"text-align: left;\">Use your favorite text editor to create a new, empty text file called\u00a0<em>RecipeAdornments.jsx<\/em> inside the <em>Scripts Panel<\/em> folder inside the <em>Scripts<\/em> folder inside the InDesign application folder.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-12 aligncenter\" title=\"picture-8\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-8-290x300.png\" alt=\"\" width=\"290\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-8-290x300.png 290w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-8.png 389w\" sizes=\"auto, (max-width: 290px) 100vw, 290px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Launch InDesign CS3, create a new document, and create a frame on the first page. Make the Scripts Panel visible (in InDesign CS3, it&#8217;s under <em>Window &#8211; Automation &#8211; Scripts<\/em>). Your <em>RecipeAdornments.jsx<\/em> file should be visible under the <em>Application<\/em> script group.<\/p>\n<p style=\"text-align: left;\">We&#8217;ll first create a quick-and-dirty bit of play-code. Context-click the RecipeAdornments.jsx and select <em>Edit Script.<\/em><\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-13\" title=\"picture-10\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-10-300x159.png\" alt=\"\" width=\"300\" height=\"159\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-10-300x159.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-10.png 363w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">In most cases, that will open the (still empty) file in the ExtendScript Toolkit 2.<\/p>\n<p style=\"text-align: left;\">If it does not, you might need to switch to the Finder, right-click <em>RecipeAdornments.jsx<\/em>, and do a <em>Get Info&#8230;<\/em>. Then tell the Finder that .jsx files should all be opened with the ExtendScript Toolkit 2.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-14 aligncenter\" title=\"picture-12\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-12-222x300.png\" alt=\"\" width=\"222\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-12-222x300.png 222w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-12.png 268w\" sizes=\"auto, (max-width: 222px) 100vw, 222px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">If all is well, ExtendScript Toolkit 2 will come up and show our empty script file.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-15 aligncenter\" title=\"picture-11\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-11-300x196.png\" alt=\"\" width=\"300\" height=\"196\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-11-300x196.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-11.png 626w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">We need to tell ExtendScript Toolkit 2 that we&#8217;re talking to InDesign &#8211; change the target application in the popup menu.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-16\" title=\"screensnapz2\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz2-300x195.png\" alt=\"\" width=\"300\" height=\"195\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz2-300x195.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz2.png 626w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Now, we type a little script. This script assumes that a single page item is currently selected.<\/p>\n<pre style=\"text-align: left;\">var theItem = app.selection[0];\r\ntheItem.setDataStore(\"$ADORNMENT_com.rorohiko.apid.cookbook.showingoff$\",\"test\");<\/pre>\n<p style=\"text-align: left;\">This is a pretty bad script &#8211; it&#8217;s making assumptions about the state of things, and if any of these assumptions are not met, it&#8217;ll simply throw up error messages. But for now, that&#8217;s OK &#8211; we&#8217;re experimenting.<\/p>\n<p style=\"text-align: left;\">First, we get a reference to the currently selected page item in\u00a0<code>theItem<\/code> and then we call one of the new events that are provided by the APIDToolAssistant plug-in &#8211; <code>setDataStore<\/code>.<\/p>\n<p style=\"text-align: left;\">The <code>setDataStore<\/code> event is a catch-all, used for all kinds of things, but in this case, we&#8217;re using it to set an adornment.<\/p>\n<p style=\"text-align: left;\">In order to let APIDToolAssistant know this is an adormnent, we use a special &#8216;data store key&#8217;. This key is a string between two dollar signs, which starts with <code>$ADORNMENT<\/code><\/p>\n<p style=\"text-align: left;\">After that initial prefix, you can add any string you like &#8211; but again, like with the PNG file, that string must be globally unique. So you&#8217;d again use the &#8216;domain name&#8217; trick and concoct a unique key &#8211; I&#8217;ve arbitrarily chosen<br \/>\n<code> _com.rorohiko.apid.cookbook.showingoff<\/code><br \/>\nas the suffix.<\/p>\n<p style=\"text-align: left;\">Finally, a closing dollar sign is also added.<\/p>\n<p style=\"text-align: left;\">This way, adornments have unique identifiers, and if multiple independent software developers use APIDToolAssistant to add adornments, we can be fairly certain they won&#8217;t interfere with each other.<\/p>\n<p style=\"text-align: left;\">The second parameter to <code>setDataStore<\/code> is a string &#8211; <code>\"test\"<\/code>.<\/p>\n<p style=\"text-align: left;\">Save the script. Careful when saving with ExtendScript Toolkit 2 &#8211; it has a bug that inserts letters &#8216;s&#8217; if you try to save an unmodified script. After hitting Command-S, double-check that you&#8217;ve not inserted an unwanted letter &#8216;s&#8217;. If so, delete it, and re-save.<\/p>\n<p style=\"text-align: left;\">Switch back to InDesign.\u00a0Make sure the frame you created is selected. Double-click the\u00a0<em>RecipeAdornments.jsx<\/em> script in the scripts palette. This should be the result:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18 aligncenter\" title=\"picture-13\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-13-219x300.png\" alt=\"\" width=\"219\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-13-219x300.png 219w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-13.png 380w\" sizes=\"auto, (max-width: 219px) 100vw, 219px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Your page item now has a tiny label attached to it. This label is not printed, but it is &#8216;stuck&#8217; to the page item at all times, until you clear the adornment&#8217;s data store &#8211; to clear the label, you&#8217;d do:<\/p>\n<pre style=\"text-align: left;\">var theItem = app.selection[0];\r\ntheItem.setDataStore(\"$ADORNMENT_com.rorohiko.apid.cookbook.showingoff$\",null);<\/pre>\n<p style=\"text-align: left;\">You can run the script from the ExtendScript Toolkit 2 if you want &#8211; that makes it easier to experiment. Keep the page item selected, switch to the ExtendScript Toolkit 2, adjust the script, and click the &#8216;run&#8217; button.<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-19 aligncenter\" title=\"screensnapz3\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz3-283x300.png\" alt=\"\" width=\"283\" height=\"300\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz3-283x300.png 283w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/screensnapz3.png 738w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">The label should disappear.<\/p>\n<p style=\"text-align: left;\">The second parameter to the <code>setDataStore<\/code> event can be more complex &#8211; instead of passing a mere string like\u00a0<code>\"test\"<\/code> we can also pass an array with multiple elements.<\/p>\n<p style=\"text-align: left;\">Instead of <code>\"test\"<\/code> we could have passed have passed an array &#8211; <code>[\u00a0\"test\"\u00a0]<\/code> or <code>[\u00a0\"test\",\u00a0null\u00a0]<\/code> or <code>[\u00a0\"test\",\u00a0null,\u00a01\u00a0]<\/code> &#8211; passing any of these three arrays would be functionally equivalent to passing the string.<\/p>\n<p style=\"text-align: left;\">The last sample, <code>[\u00a0\"test\",\u00a0null,\u00a01\u00a0]<\/code> is of most interest &#8211; we can replace the <code>null<\/code> by a string with the name of a PNG file, and we could drop the <code>\"test\"<\/code> string and replace it by <code>null<\/code>.<\/p>\n<p style=\"text-align: left;\">Try that &#8211; my PNG file was called<br \/>\n<code> com.rorohiko.apid.cookbook.demomarker1.png<\/code><br \/>\nso that&#8217;s what I&#8217;ll use.<\/p>\n<p style=\"text-align: left;\">Note: we only use the PNG file name &#8211; we don&#8217;t use any full file path names; no slashes or backslashes or colons in the name.<\/p>\n<p style=\"text-align: left;\">APIDToolAssistant will find the PNG file as long as it is somewhere &#8216;below&#8217; the InDesign application folder.<\/p>\n<pre style=\"text-align: left;\">var theItem = app.selection[0];\r\ntheItem.setDataStore(\r\n  \"$ADORNMENT_com.rorohiko.apid.cookbook.showingoff$\",\r\n  [null,\"com.rorohiko.apid.cookbook.demomarker1.png\", 1]);<\/pre>\n<p style=\"text-align: left;\">Run the script and observe the result in InDesign<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-20 aligncenter\" title=\"picture-16\" src=\"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-16-300x232.png\" alt=\"\" width=\"300\" height=\"232\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-16-300x232.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-16.png 616w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">The last entry in the array can be 1, 2, 3 or 4 (for top, left, right, bottom). Change the script to read:<\/p>\n<pre style=\"text-align: left;\">var theItem = app.selection[0];\r\ntheItem.setDataStore(\r\n  \"$ADORNMENT_com.rorohiko.apid.cookbook.showingoff$\",\r\n  [null,\"com.rorohiko.apid.cookbook.demomarker1.png\", 2 ]);<\/pre>\n<p style=\"text-align: left;\">and run it again &#8211; the adornment should now appear on the left side instead of on top.<\/p>\n<h4 style=\"text-align: left;\">The script &#8211; utility functions<\/h4>\n<p style=\"text-align: left;\">To make the script more readable, we&#8217;ll introduce a few utility functions &#8211; instead of sprinkling the script code with unintelligible calls to <code>setDataStore<\/code>, we&#8217;ll instead use these functions.<\/p>\n<p style=\"text-align: left;\">We start with a clean slate &#8211; switch to InDesign and remove the page item you created earlier, and create a new one.<\/p>\n<p style=\"text-align: left;\">Select it, so our script can find it.<\/p>\n<p style=\"text-align: left;\">Then switch to ExtendScript Toolkit 2<\/p>\n<p style=\"text-align: left;\">Change the script as follows:<\/p>\n<pre style=\"text-align: left;\">const kAdornmentTopKey = \"$ADORNMENT_com.rorohiko.apid.cookbook.atTheTop$\";\r\nconst kAdornmentLeftKey = \"$ADORNMENT_com.rorohiko.apid.cookbook.atTheLeft$\";\r\nconst kPNGName = \"com.rorohiko.apid.cookbook.demomarker1.png\";\r\n\r\nfunction SetTopLabelAdornment(pageItem,label)\r\n{\r\n  pageItem.setDataStore(kAdornmentTopKey,label);\r\n}\r\n\r\nfunction SetLeftPNGAdornment(pageItem,pngName)\r\n{\r\n  pageItem.setDataStore(kAdornmentLeftKey,[ null, pngName, 2 ]);\r\n}\r\n\r\nvar theItem = app.selection[0];\r\nSetTopLabelAdornment(theItem,\"Hello\");\r\nSetLeftPNGAdornment(theItem,kPNGName);<\/pre>\n<p style=\"text-align: left;\">This script has two new functions: SetTopLabelAdornment and SetLeftPNGAdornment &#8211; the last three lines show how these functions are used.<\/p>\n<p style=\"text-align: left;\">We use two different adornment keys because we want up to two separate adornments per page item. For readability&#8217;s sake the adornment keys are defined as constants at the top of the script, and so is the name of the PNG file.<\/p>\n<p style=\"text-align: left;\">Run the script to see what it does.<\/p>\n<h4 style=\"text-align: left;\">The script &#8211; adding the markers<\/h4>\n<p style=\"text-align: left;\">Ok, now we&#8217;ll create some real script code. This script does test its assumptions before diving into the meat of the code &#8211; it&#8217;s more robust and it will give the user some meaningful feedback in case something goes wrong.<\/p>\n<p style=\"text-align: left;\">The following script will visit all page items in the document, and it will add a PNG marker adornment each time the ratio between width and height or between height and width surpasses 1.6 &#8211; i.e. any page item that is too thin or too tall to my liking.<\/p>\n<p style=\"text-align: left;\">It will also calculate the word count in every text frame it encounters, and add the word count to the top page item adornment.<\/p>\n<pre style=\"text-align: left;\">const kAdornmentTopKey = \"$ADORNMENT_com.rorohiko.apid.cookbook.atTheTop$\";\r\nconst kAdornmentLeftKey = \"$ADORNMENT_com.rorohiko.apid.cookbook.atTheLeft$\";\r\nconst kPNGName = \"com.rorohiko.apid.cookbook.demomarker1.png\";\r\nconst kMaxWidthHeightRatio = 1.6;\r\n\r\n\/\/ Fake loop - ends in 'while (false)' - meaning 'don't loop'. Allows us to use 'break' to bail out\r\n\/\/ if we don't like the situation.\r\ndo\r\n{\r\n  if (app.documents.length == 0)\r\n  {\r\n    alert(\"No documents are open\");\r\n    break; \/\/ Bail out\r\n  }\r\n\r\n  var document = app.activeDocument;\r\n  if (! (document instanceof Document))\r\n  {\r\n    alert(\"No document active\");\r\n    break;\r\n  }\r\n\r\n  for (var pageItemIdx = 0; pageItemIdx &lt; document.allPageItems.length; pageItemIdx++)\r\n  {\r\n    var pageItem = document.allPageItems[pageItemIdx];\r\n\r\n    SetTopLabelAdornment(pageItem,null);\r\n    SetLeftPNGAdornment(pageItem,null);\r\n\r\n    if (pageItem instanceof TextFrame)\r\n    {\r\n      SetTopLabelAdornment(pageItem,\"Word count: \" + pageItem.words.length);\r\n    }\r\n\r\n    if (\"geometricBounds\" in pageItem)\r\n    {\r\n      var width = pageItem.geometricBounds[3] - pageItem.geometricBounds[1];\r\n      var height = pageItem.geometricBounds[2] - pageItem.geometricBounds[0];\r\n      if\r\n      (\r\n        width \/ height &gt; kMaxWidthHeightRatio\r\n       ||\r\n        height \/ width &gt; kMaxWidthHeightRatio\r\n      )\r\n      {\r\n        SetLeftPNGAdornment(pageItem,kPNGName);\r\n      }\r\n    }\r\n    var width = pageItem\r\n  }\r\n\r\n}\r\nwhile (false);\r\n\r\nfunction SetLeftPNGAdornment(pageItem,pngName)\r\n{\r\n  if (pngName == null)\r\n  {\r\n    \/\/ Clear adornment if no PNG file name provided\r\n    pageItem.setDataStore(kAdornmentLeftKey,null);\r\n  }\r\n  else\r\n  {\r\n    pageItem.setDataStore(kAdornmentLeftKey,[ null, pngName, 2 ]);\r\n  }\r\n}\r\n\r\nfunction SetTopLabelAdornment(pageItem,label)\r\n{\r\n  pageItem.setDataStore(kAdornmentTopKey,label);\r\n}<\/pre>\n<p style=\"text-align: left;\">Neat, huh?<\/p>\n<p style=\"text-align: left;\">Cheers,<\/p>\n<p style=\"text-align: left;\">Kris<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ingredients &#8211; Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). &#8211; A licensed copy or a demo version of APIDToolAssistant 1.0.46 or higher. It also works with unlicensed versions, but &hellip; <a href=\"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":143,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5,4,18],"tags":[],"class_list":["post-4","post","type-post","status-publish","format-standard","hentry","category-apidtoolassistant","category-indesign","category-recipes","category-developer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources<\/title>\n<meta name=\"description\" content=\"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources\" \/>\n<meta property=\"og:description\" content=\"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/\" \/>\n<meta property=\"og:site_name\" content=\"Rorohiko Workflow Resources\" \/>\n<meta property=\"article:published_time\" content=\"2008-10-15T23:45:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-30T19:39:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"832\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"kris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/\"},\"author\":{\"name\":\"kris\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/8d934f602a8481cff7532f99dc92cb25\"},\"headline\":\"How to add InDesign page item adornments using scripting\",\"datePublished\":\"2008-10-15T23:45:20+00:00\",\"dateModified\":\"2025-09-30T19:39:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/\"},\"wordCount\":1695,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/picture-171.png\",\"articleSection\":[\"APIDToolAssistant\",\"InDesign\",\"Recipes\",\"Scripters &amp; Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/\",\"name\":\"How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/picture-171.png\",\"datePublished\":\"2008-10-15T23:45:20+00:00\",\"dateModified\":\"2025-09-30T19:39:42+00:00\",\"description\":\"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/picture-171.png\",\"contentUrl\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2008\\\/10\\\/picture-171.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2008\\\/10\\\/15\\\/how-to-add-indesign-page-item-adornments-using-scripting\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to add InDesign page item adornments using scripting\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\",\"name\":\"Rorohiko Workflow Resources\",\"description\":\"Custom InDesign Development\",\"publisher\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\",\"name\":\"Rorohiko Ltd.\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/roro-logo-3d-v2.png\",\"contentUrl\":\"https:\\\/\\\/www.rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/roro-logo-3d-v2.png\",\"width\":207,\"height\":200,\"caption\":\"Rorohiko Ltd.\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/zwettemaan\",\"https:\\\/\\\/www.instagram.com\\\/kriscoppieters\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kristiaan\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/8d934f602a8481cff7532f99dc92cb25\",\"name\":\"kris\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g\",\"caption\":\"kris\"},\"sameAs\":[\"http:\\\/\\\/www.rorohiko.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources","description":"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/","og_locale":"en_US","og_type":"article","og_title":"How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources","og_description":"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy","og_url":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/","og_site_name":"Rorohiko Workflow Resources","article_published_time":"2008-10-15T23:45:20+00:00","article_modified_time":"2025-09-30T19:39:42+00:00","og_image":[{"width":900,"height":832,"url":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png","type":"image\/png"}],"author":"kris","twitter_misc":{"Written by":"kris","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#article","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/"},"author":{"name":"kris","@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/person\/8d934f602a8481cff7532f99dc92cb25"},"headline":"How to add InDesign page item adornments using scripting","datePublished":"2008-10-15T23:45:20+00:00","dateModified":"2025-09-30T19:39:42+00:00","mainEntityOfPage":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/"},"wordCount":1695,"commentCount":0,"publisher":{"@id":"https:\/\/rorohiko.com\/wordpress\/#organization"},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png","articleSection":["APIDToolAssistant","InDesign","Recipes","Scripters &amp; Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/","url":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/","name":"How to add InDesign page item adornments using scripting - Rorohiko Workflow Resources","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#primaryimage"},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png","datePublished":"2008-10-15T23:45:20+00:00","dateModified":"2025-09-30T19:39:42+00:00","description":"Ingredients - Adobe\u00ae InDesign\u00ae CS or higher (the APIDToolAssistant plug-in is available for InDesign CS, and higher, Mac and Windows). - A licensed copy","breadcrumb":{"@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#primaryimage","url":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png","contentUrl":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2008\/10\/picture-171.png"},{"@type":"BreadcrumbList","@id":"https:\/\/rorohiko.com\/wordpress\/2008\/10\/15\/how-to-add-indesign-page-item-adornments-using-scripting\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rorohiko.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"How to add InDesign page item adornments using scripting"}]},{"@type":"WebSite","@id":"https:\/\/rorohiko.com\/wordpress\/#website","url":"https:\/\/rorohiko.com\/wordpress\/","name":"Rorohiko Workflow Resources","description":"Custom InDesign Development","publisher":{"@id":"https:\/\/rorohiko.com\/wordpress\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rorohiko.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/rorohiko.com\/wordpress\/#organization","name":"Rorohiko Ltd.","url":"https:\/\/rorohiko.com\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2018\/03\/roro-logo-3d-v2.png","contentUrl":"https:\/\/www.rorohiko.com\/wordpress\/wp-content\/uploads\/2018\/03\/roro-logo-3d-v2.png","width":207,"height":200,"caption":"Rorohiko Ltd."},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/zwettemaan","https:\/\/www.instagram.com\/kriscoppieters\/","https:\/\/www.linkedin.com\/in\/kristiaan"]},{"@type":"Person","@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/person\/8d934f602a8481cff7532f99dc92cb25","name":"kris","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a61e0fcf927c661c61b993eb357a1f2a4040658bc7b45e73af969cdda197f094?s=96&d=mm&r=g","caption":"kris"},"sameAs":["http:\/\/www.rorohiko.com"]}]}},"_links":{"self":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/users\/143"}],"replies":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":33,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":6999,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts\/4\/revisions\/6999"}],"wp:attachment":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}