{"id":7186,"date":"2026-10-20T14:30:58","date_gmt":"2026-10-20T21:30:58","guid":{"rendered":"https:\/\/rorohiko.com\/wordpress\/?p=7186"},"modified":"2026-10-20T14:30:58","modified_gmt":"2026-10-20T21:30:58","slug":"smartrelink-pl","status":"publish","type":"post","link":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/","title":{"rendered":"SmartRelink PL"},"content":{"rendered":"<div>\n<div>\n<p>for use with Adobe\u00ae InDesign\u00ae.<\/p>\n<p class=\"md-end-block md-p md-focus\"><span class=\"md-pair-s md-expand\"><strong><span class=\"md-plain\">Fix broken image links.<\/span><\/strong><\/span><span class=\"md-plain\"><em> SmartRelink PL<\/em> hunts down the missing files, shows you<\/span> <span class=\"md-plain\">what it found in a simple text report, and relinks only what you approve.<\/span> <span class=\"md-plain\">One Undo takes it all back.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\"><em>SmartRelink PL<\/em> is free and fully functional. Donations are welcomed: to donate,<\/span> click the <em>Donate<\/em> button in <em>PluginInstaller<\/em> after installing <em>SmartRelink PL<\/em><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">What It Does<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A job folder gets moved, a server gets renamed, a colleague sends you a<\/span> <span class=\"md-plain\">document and a zip of images, and InDesign&#8217;s Links panel turns into a column of<\/span> <span class=\"md-plain\">red question marks. InDesign&#8217;s own relinking tools need you to point them at<\/span> <span class=\"md-plain\">the right folder, and they do not show you which other files with the same name<\/span> <span class=\"md-plain\">are lying around.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">SmartRelink splits the job in two:<\/span><\/p>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\"> searches the folders around your document and around where<\/span> <span class=\"md-plain\">the images used to be, and writes a plain-text <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">link report<\/span><\/strong><\/span><span class=\"md-plain\"> next to the<\/span> <span class=\"md-plain\">document. For every image it lists where the document links to now, the best<\/span> <span class=\"md-plain\">replacement it found, and any other files with the same name. It changes<\/span> <span class=\"md-plain\">nothing in the document.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">You read the report in your text editor and change whatever you like: pick<\/span> <span class=\"md-plain\">another candidate, type in a path, use search-and-replace on the paths.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">ApplyReport<\/span><\/strong><\/span><span class=\"md-plain\"> relinks the document exactly as the report says, as a single<\/span> <span class=\"md-plain\">undoable step.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Because the report is just text, you see every decision before it is made, you<\/span> <span class=\"md-plain\">can keep it as a record of what was relinked, and you can fix a hundred paths<\/span> <span class=\"md-plain\">with one search-and-replace.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">SmartRelink is also useful when nothing is broken: the report lists other<\/span> <span class=\"md-plain\">copies of your linked images that it found nearby, so you can switch a link<\/span> <span class=\"md-plain\">from, say, a low-resolution placeholder to the final high-resolution file.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Requirements<\/span><\/h2>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Adobe InDesign 2024 or newer, on macOS or Windows.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The document must have been saved at least once: the report is stored next<\/span> <span class=\"md-plain\">to it, and the paths in the report are relative to the document&#8217;s folder.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A plain-text editor to review the report (TextEdit, Notepad, BBEdit,<\/span> <span class=\"md-plain\">Visual Studio Code, &#8230;).<\/span><\/p>\n<\/li>\n<\/ul>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Installing<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">SmartRelink is installed with <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">PluginInstaller<\/span><\/strong><\/span><span class=\"md-plain\">, Rorohiko&#8217;s free installer<\/span> <span class=\"md-plain\">and license manager.<\/span><\/p>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Download and install PluginInstaller from <\/span><span class=\"md-link md-pair-s\" spellcheck=\"false\"><a href=\"https:\/\/plugininstaller.com\/\">https:\/\/plugininstaller.com<\/a><\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Launch PluginInstaller and find <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">SmartRelink PL<\/span><\/strong><\/span><span class=\"md-plain\"> in the list of available<\/span> <span class=\"md-plain\">software (type <em>Smart <\/em>in the search field to search and find the script).<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Click to download and install it. You do not need to register an account<\/span> <span class=\"md-plain\">for <em>SmartRelink PL<\/em>.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">If InDesign was already running, restart it.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">SmartRelink then appears in InDesign&#8217;s Scripts panel<\/span> <span class=\"md-plain\">(<\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Window &gt; Utilities &gt; Scripts<\/span><\/strong><\/span><span class=\"md-plain\">), in a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>SmartRelink.&lt;version&gt;<\/code><\/span><span class=\"md-plain\"> folder under<\/span> <span class=\"md-pair-s \"><strong><span class=\"md-plain\">User<\/span><\/strong><\/span><span class=\"md-plain\">, with three entries:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 searches for the images and writes the link report.<\/span> <span class=\"md-plain\">Relinks nothing.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">ApplyReport<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 relinks the document according to the report.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Copy Sample Files to Desktop<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 copies a demo document with deliberately<\/span> <span class=\"md-plain\">broken links to your desktop and opens it, so you can try SmartRelink<\/span> <span class=\"md-plain\">without risking a real job.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">To check for updates to <em>SmartRelink PL<\/em> later, run PluginInstaller: it will show a red dot when updates for any installed additions are available.<\/span> <span class=\"md-plain\">To remove <em>SmartLink PL<\/em>, uninstall it from PluginInstaller.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Quick Start: the Demo<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The quickest way to learn <em>SmartRelink PL<\/em> is the demo.<\/span><\/p>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Double-click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Copy Sample Files to Desktop<\/span><\/strong><\/span><span class=\"md-plain\"> in the Scripts panel. It<\/span> <span class=\"md-plain\">creates a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>SmartRelinkDemo<\/code><\/span><span class=\"md-plain\"> folder on your desktop and opens<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>SmartRelinkDemo.indd<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The five images in this document were linked from<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>\/Volumes\/OldServer\/Jobs\/SmartRelinkDemo\/Links<\/code><\/span><span class=\"md-plain\">, a server that no longer<\/span> <span class=\"md-plain\">exists. The images themselves now live in subfolders of the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Photos<\/code><\/span><span class=\"md-plain\"> folder<\/span> <span class=\"md-plain\">next to the document:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"\" spellcheck=\"false\"><span role=\"presentation\">SmartRelinkDemo\/<\/span>\r\n<span role=\"presentation\"> \u00a0  SmartRelinkDemo.indd<\/span>\r\n<span role=\"presentation\"> \u00a0  Photos\/<\/span>\r\n<span role=\"presentation\"> \u00a0 \u00a0 \u00a0  Coast\/coast.jpg<\/span>\r\n<span role=\"presentation\"> \u00a0 \u00a0 \u00a0  Coast\/harbour.png<\/span>\r\n<span role=\"presentation\"> \u00a0 \u00a0 \u00a0  Forest\/forest.jpg<\/span>\r\n<span role=\"presentation\"> \u00a0 \u00a0 \u00a0  Teaser\/HighRes\/teaser.jpg<\/span>\r\n<span role=\"presentation\"> \u00a0 \u00a0 \u00a0  Teaser\/LowRes\/teaser.jpg<\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>gone.jpg<\/code><\/span><span class=\"md-plain\"> is not there at all.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Double-click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\">. It tells you that 5 images are missing and<\/span> <span class=\"md-plain\">asks whether to search. Click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Yes<\/span><\/strong><\/span><span class=\"md-plain\">. When it is done, it writes<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>SmartRelinkDemo_LinkReport.txt<\/code><\/span><span class=\"md-plain\"> next to the document and opens it in your<\/span> <span class=\"md-plain\">text editor.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Read the report. You will find:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>coast.jpg<\/code><\/span><span class=\"md-plain\">, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>harbour.png<\/code><\/span><span class=\"md-plain\"> and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>forest.jpg<\/code><\/span><span class=\"md-plain\">: found, with the replacement<\/span> <span class=\"md-plain\">already filled in.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>teaser.jpg<\/code><\/span><span class=\"md-plain\">: two candidates at the same distance, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>HighRes<\/code><\/span><span class=\"md-plain\"> and<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>LowRes<\/code><\/span><span class=\"md-plain\">. SmartRelink will not guess, so both are commented out. Remove<\/span> <span class=\"md-plain\">the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of the one you want.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>gone.jpg<\/code><\/span><span class=\"md-plain\">: not found anywhere. Leave it, or type a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line<\/span> <span class=\"md-plain\">yourself.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Save the report.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Double-click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">ApplyReport<\/span><\/strong><\/span><span class=\"md-plain\">. It shows how many links it will relink and<\/span> <span class=\"md-plain\">asks for confirmation. Click <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Yes<\/span><\/strong><\/span><span class=\"md-plain\">. The images appear.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Choose <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Edit &gt; Undo<\/span><\/strong><\/span><span class=\"md-plain\"> once: every relink is reverted in one step. Redo, or<\/span> <span class=\"md-plain\">run ApplyReport again.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\"> again. The links that are now fine are still listed,<\/span> <span class=\"md-plain\">together with the other copies of each image that SmartRelink found nearby.<\/span> <span class=\"md-plain\">Remove the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of one of those, run ApplyReport, and that link now<\/span> <span class=\"md-plain\">points to the other file. This is how you swap <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>teaser.jpg<\/code><\/span><span class=\"md-plain\"> between the<\/span> <span class=\"md-plain\">low- and high-resolution versions.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">To start the demo over, close the document, delete the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>SmartRelinkDemo<\/code><\/span><span class=\"md-plain\"> folder<\/span> <span class=\"md-plain\">from the desktop, and run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Copy Sample Files to Desktop<\/span><\/strong><\/span><span class=\"md-plain\"> again. If the folder<\/span> <span class=\"md-plain\">is already there, the script leaves it alone and just opens the document.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Everyday Use<\/span><\/h2>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Open and save your document.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\">. If any images are missing, confirm the search.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Review and edit <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>&lt;Document&gt;_LinkReport.txt<\/code><\/span><span class=\"md-plain\">, which opens automatically.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">ApplyReport<\/span><\/strong><\/span><span class=\"md-plain\"> and confirm.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Check the result. <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Edit &gt; Undo<\/span><\/strong><\/span><span class=\"md-plain\"> reverts the whole relink if needed.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Optionally run <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">LinkReport<\/span><\/strong><\/span><span class=\"md-plain\"> again to get a fresh report of the relinked<\/span> <span class=\"md-plain\">document.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">You can run LinkReport as often as you like. It never relinks anything, and it<\/span> <span class=\"md-plain\">keeps your own edits to the report (see<\/span> <span class=\"md-meta-i-c md-link\"><a class=\"md-inner-link\" href=\"#running-linkreport-again\"><span class=\"md-plain\">Running LinkReport Again<\/span><\/a><\/span><span class=\"md-plain\">).<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">The Link Report<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">For a document <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Job.indd<\/code><\/span><span class=\"md-plain\">, the report is <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Job_LinkReport.txt<\/code><\/span><span class=\"md-plain\"> in the same<\/span> <span class=\"md-plain\">folder. It is a plain text file in INI format: <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Section]<\/code><\/span><span class=\"md-plain\"> headers,<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>key = value<\/code><\/span><span class=\"md-plain\"> lines, and comment lines starting with <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\">. It is both the report<\/span> <span class=\"md-plain\">on the links and the settings file for <em>SmartRelink PL<\/em>.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The report starts with the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Link]<\/code><\/span><span class=\"md-plain\"> sections, so the part you need is at the<\/span> <span class=\"md-plain\">top. The full explanation follows under <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Documentation]<\/code><\/span><span class=\"md-plain\">, then the search<\/span> <span class=\"md-plain\">settings under <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Preferences]<\/code><\/span><span class=\"md-plain\">, and at the end <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[LinkReport]<\/code><\/span><span class=\"md-plain\"> records which<\/span> <span class=\"md-plain\">document and when.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A typical report looks like this:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-comment\"># SmartRelink link report for Job.indd: review and edit the [Link] sections below, <\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># then run ApplyReport. ...<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># photo.jpg: missing. Suggested replacement: name match at distance 2.<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Link]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">original <\/span>=<span class=\"cm-quote\"> \/Volumes\/Old\/Job\/Links\/photo.jpg<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">suggested <\/span>=<span class=\"cm-quote\"> Links\/photo.jpg<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">replacement <\/span>=<span class=\"cm-quote\"> Links\/photo.jpg<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># replacement = ..\/Archive\/photo.jpg<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># logo.eps: missing, 2 candidates. Uncomment one replacement to use it.<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Link]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">original <\/span>=<span class=\"cm-quote\"> \/Volumes\/Old\/Job\/Links\/logo.eps<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># replacement = A\/logo.eps<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># replacement = \/Volumes\/Other\/logo.eps<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># gone.tif: missing, no candidate found. Add a replacement line to relink it.<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Link]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">original <\/span>=<span class=\"cm-quote\"> \/Volumes\/Old\/Job\/Links\/gone.tif<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># banner.psd: ok. Uncomment a replacement to relink to another file.<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Link]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">original <\/span>=<span class=\"cm-quote\"> \/Users\/me\/Job\/Links\/banner.psd<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># replacement = ..\/Other\/banner.psd<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Documentation]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># ...<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[Preferences]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxSearchDistance <\/span>=<span class=\"cm-quote\"> 6<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxAlternateDistance <\/span>=<span class=\"cm-quote\"> 3<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxFoldersScanned <\/span>=<span class=\"cm-quote\"> 5000<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxSearchSeconds <\/span>=<span class=\"cm-quote\"> 30<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxClimbLevels <\/span>=<span class=\"cm-quote\"> 3<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># resolutionPreference = high<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># searchRoot = \/Volumes\/Server\/Images<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-comment\"># excludeFolder = Archive<\/span><\/span>\r\n<span role=\"presentation\">\u200b<\/span>\r\n<span role=\"presentation\"><span class=\"cm-header\">[LinkReport]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">document <\/span>=<span class=\"cm-quote\"> Job.indd<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">timestamp <\/span>=<span class=\"cm-quote\"> 2026-10-16T10<\/span>:<span class=\"cm-quote\">15<\/span>:<span class=\"cm-quote\">00Z<\/span><\/span><\/pre>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">The [Link] Sections<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Each <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Link]<\/code><\/span><span class=\"md-plain\"> section is one linked file. If the same image is placed several<\/span> <span class=\"md-plain\">times in the document, it is one section, and relinking it relinks every<\/span> <span class=\"md-plain\">placement.<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-pair-s\" spellcheck=\"false\"><code>original<\/code><\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 where the document links to now, exactly as InDesign<\/span> <span class=\"md-plain\">reports it. This is how SmartRelink finds the link again; do not edit it.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 the file to relink to. A line with no <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of it<\/span> <span class=\"md-plain\">is <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">active<\/span><\/em><\/span><span class=\"md-plain\">. ApplyReport relinks a section only when it has exactly one<\/span> <span class=\"md-plain\">active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-pair-s\" spellcheck=\"false\"><code>suggested<\/code><\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 for a missing image, the best candidate SmartRelink found.<\/span> <span class=\"md-plain\">It is informational only: the active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line is what counts.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">What you will see, per kind of link:<\/span><\/p>\n<figure class=\"md-table-fig table-figure\">\n<table class=\"md-table\">\n<thead>\n<tr class=\"md-end-block\">\n<th><span class=\"td-span\"><span class=\"md-plain\">Situation<\/span><\/span><\/th>\n<th><span class=\"td-span\"><span class=\"md-plain\">What the report contains<\/span><\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-plain\">Missing, one best candidate<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>suggested<\/code><\/span><span class=\"md-plain\"> and an active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> with that candidate; other candidates commented out.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-plain\">Missing, several equally good candidates<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">All candidates as commented-out <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> lines. You choose.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-plain\">Missing, nothing found<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">Only <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>original<\/code><\/span><span class=\"md-plain\">. Add a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line if you know where the file is.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-plain\">Not missing<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">Only commented-out <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> lines for other copies found nearby. Uncomment one to switch to it.<\/span><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Paths in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> lines are relative to the document&#8217;s folder and use <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\/<\/code><\/span> <span class=\"md-plain\">on both Mac and Windows, e.g. <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Links\/photo.jpg<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>..\/Archive\/photo.jpg<\/code><\/span><span class=\"md-plain\">. A<\/span> <span class=\"md-plain\">file on another disk or volume is written as an absolute path. You can type<\/span> <span class=\"md-plain\">either kind yourself.<\/span><\/p>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">Editing the Report<\/span><\/h3>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Accept a suggestion:<\/span><\/strong><\/span><span class=\"md-plain\"> do nothing.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Reject a suggestion:<\/span><\/strong><\/span><span class=\"md-plain\"> put a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of the active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line.<\/span> <span class=\"md-plain\">That link is then left alone.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Choose another candidate:<\/span><\/strong><\/span><span class=\"md-plain\"> remove the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of the one you want,<\/span> <span class=\"md-plain\">and put a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>#<\/code><\/span><span class=\"md-plain\"> in front of the line that was active.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Type your own:<\/span><\/strong><\/span><span class=\"md-plain\"> add a line <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement = path\/to\/file.jpg<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Move a whole batch:<\/span><\/strong><\/span><span class=\"md-plain\"> search-and-replace on the paths in your text editor,<\/span> <span class=\"md-plain\">e.g. replace <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Links\/<\/code><\/span><span class=\"md-plain\"> by <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Links_Final\/<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Save the file before running ApplyReport.<\/span><\/p>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">How Candidates Are Found and Ranked<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">SmartRelink searches outward, folder by folder, starting from:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">the folder each image used to be in (or, when that folder no longer exists,<\/span> <span class=\"md-plain\">the nearest folder above it that does),<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">the document&#8217;s own folder,<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">any extra folders you list as <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span><span class=\"md-plain\"> in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Preferences]<\/code><\/span><span class=\"md-plain\">.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">From each of these it looks into subfolders and climbs up into parent folders,<\/span> <span class=\"md-plain\">one step at a time. The number of steps from a starting folder to where a file<\/span> <span class=\"md-plain\">was found is its <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">distance<\/span><\/strong><\/span><span class=\"md-plain\">: lower is better. Files are matched by name;<\/span> <span class=\"md-plain\">upper\/lower case and differently encoded accented characters (common on<\/span> <span class=\"md-plain\">macOS) do not prevent a match.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">When several files with the right name are at the same, lowest distance,<\/span> <span class=\"md-plain\">SmartRelink tries, in this order, to pick one:<\/span><\/p>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Folder moves.<\/span><\/strong><\/span><span class=\"md-plain\"> Images that lived in the same folder usually moved<\/span> <span class=\"md-plain\">together. If the other images from that old folder were all found in one<\/span> <span class=\"md-plain\">new folder, the candidate in that folder wins. This also finds images that<\/span> <span class=\"md-plain\">are further away than the search would otherwise reach.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">File size.<\/span><\/strong><\/span><span class=\"md-plain\"> InDesign remembers the size of each linked file. If exactly<\/span> <span class=\"md-plain\">one candidate has that size, it wins.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Resolution preference.<\/span><\/strong><\/span><span class=\"md-plain\"> If <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>resolutionPreference<\/code><\/span><span class=\"md-plain\"> is set to <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>high<\/code><\/span><span class=\"md-plain\"> or<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>low<\/code><\/span><span class=\"md-plain\"> in <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Preferences]<\/code><\/span><span class=\"md-plain\">, the candidate with the most or fewest pixels wins.<\/span> <span class=\"md-plain\">This works for PNG, JPEG, TIFF, PSD\/PSB and GIF; with vector files (PDF, AI,<\/span> <span class=\"md-plain\">EPS) or a tie, it does not decide.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Otherwise, <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">you decide<\/span><\/strong><\/span><span class=\"md-plain\">: all candidates are listed, commented out.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">To keep the search quick and safe, <em>SmartRelink PL<\/em>:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">does not climb more than <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxClimbLevels<\/code><\/span><span class=\"md-plain\"> folders above an image or document<\/span> <span class=\"md-plain\">folder, and never into the top of a disk, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\/Volumes<\/code><\/span><span class=\"md-plain\">, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>\/Users<\/code><\/span><span class=\"md-plain\">, or your<\/span> <span class=\"md-plain\">home folder itself (too large to search). For a document on the desktop,<\/span> <span class=\"md-plain\">it searches the desktop folder; add a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span><span class=\"md-plain\"> for anything else.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">skips hidden folders, application and package bundles, and folders named<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>node_modules<\/code><\/span><span class=\"md-plain\">, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>__MACOSX<\/code><\/span><span class=\"md-plain\">, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>$RECYCLE.BIN<\/code><\/span><span class=\"md-plain\"> and <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>System Volume Information<\/code><\/span><span class=\"md-plain\">,<\/span> <span class=\"md-plain\">plus any <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>excludeFolder<\/code><\/span><span class=\"md-plain\"> names you add.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">stops at the first of: <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchDistance<\/code><\/span><span class=\"md-plain\"> steps, <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxFoldersScanned<\/code><\/span> <span class=\"md-plain\">folders, or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchSeconds<\/code><\/span><span class=\"md-plain\"> seconds. The report lists whatever was found<\/span> <span class=\"md-plain\">up to that point, and the result dialog says when the folder or time limit<\/span> <span class=\"md-plain\">was hit.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">stops early once every missing image has a candidate and it has gone past<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>maxAlternateDistance<\/code><\/span><span class=\"md-plain\"> (it is then only looking for other copies of images<\/span> <span class=\"md-plain\">that are fine, which is not worth a long search).<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Placed text files and embedded images are not included.<\/span><\/p>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">Preferences<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">All settings live in the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Preferences]<\/code><\/span><span class=\"md-plain\"> section of the report. Change them,<\/span> <span class=\"md-plain\">save, and run LinkReport again. They are kept from one run to the next. The<\/span> <span class=\"md-plain\">first time you run LinkReport on a document, the defaults are used.<\/span><\/p>\n<figure class=\"md-table-fig table-figure\">\n<table class=\"md-table\">\n<thead>\n<tr class=\"md-end-block\">\n<th><span class=\"td-span\"><span class=\"md-plain\">Setting<\/span><\/span><\/th>\n<th><span class=\"td-span\"><span class=\"md-plain\">Default<\/span><\/span><\/th>\n<th><span class=\"td-span\"><span class=\"md-plain\">Meaning<\/span><\/span><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchDistance<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>6<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">How many folder steps to search outward from where the images used to be and from the document&#8217;s folder.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxAlternateDistance<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>3<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">How far to look for other copies of images that are <\/span><span class=\"md-pair-s \"><em><span class=\"md-plain\">not<\/span><\/em><\/span><span class=\"md-plain\"> missing. Missing images are searched for further out, up to <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchDistance<\/code><\/span><span class=\"md-plain\">.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxFoldersScanned<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>5000<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">Stop after this many folders.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchSeconds<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>30<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">Stop after this many seconds, however many folders are left. Network and cloud folders can be slow.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxClimbLevels<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>3<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">How many folder levels the search may climb above the image folders and the document folder.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>resolutionPreference<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">not set<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>high<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>low<\/code><\/span><span class=\"md-plain\">: when equally good candidates remain, prefer the one with the most or fewest pixels. Without it, you choose.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">none<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">An extra folder to search, e.g. an image archive on a server. Relative paths start from the document&#8217;s folder. Repeat the line for more folders.<\/span><\/span><\/td>\n<\/tr>\n<tr class=\"md-end-block\">\n<td><span class=\"td-span\"><span class=\"md-pair-s\" spellcheck=\"false\"><code>excludeFolder<\/code><\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">none<\/span><\/span><\/td>\n<td><span class=\"td-span\"><span class=\"md-plain\">A folder name to skip, e.g. <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Archive<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Old<\/code><\/span><span class=\"md-plain\">. Repeat the line for more names.<\/span><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Example: search an archive server too, skip <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>Rejects<\/code><\/span><span class=\"md-plain\"> folders, prefer<\/span> <span class=\"md-plain\">high-resolution images, and allow a minute for the search:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"ini\" spellcheck=\"false\"><span role=\"presentation\"><span class=\"cm-header\">[Preferences]<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">maxSearchSeconds <\/span>=<span class=\"cm-quote\"> 60<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">resolutionPreference <\/span>=<span class=\"cm-quote\"> high<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">searchRoot <\/span>=<span class=\"cm-quote\"> \/Volumes\/Server\/Images<\/span><\/span>\r\n<span role=\"presentation\"><span class=\"cm-def\">excludeFolder <\/span>=<span class=\"cm-quote\"> Rejects<\/span><\/span><\/pre>\n<h3 class=\"md-end-block md-heading\"><span class=\"md-plain\">Running LinkReport Again<\/span><\/h3>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">LinkReport rebuilds the report from the document every time, but keeps your<\/span> <span class=\"md-plain\">work:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Your <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Preferences]<\/code><\/span><span class=\"md-plain\"> are kept.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> you typed, edited, or uncommented is kept as it is.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A suggestion you commented out stays off, unless the search now comes up<\/span> <span class=\"md-plain\">with a different best candidate.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Suggestions you did not touch are recomputed with the current settings.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Sections for links that no longer have that <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>original<\/code><\/span><span class=\"md-plain\"> path are dropped.<\/span> <span class=\"md-plain\">This is normal after ApplyReport: those links now point to their<\/span> <span class=\"md-plain\">replacements.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Comments you add by hand are not kept.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">ApplyReport<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">ApplyReport reads the report, checks every <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Link]<\/code><\/span><span class=\"md-plain\"> section, and then shows a<\/span> <span class=\"md-plain\">summary and asks for confirmation before relinking anything.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">For each section:<\/span><\/p>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">No active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\">: left alone.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">An active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> on a link that is not missing: relinked. An active<\/span> <span class=\"md-plain\">replacement is always an instruction, so you can use it to swap a good link<\/span> <span class=\"md-plain\">for another file.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">The replacement is the file the link already points to: counted as already<\/span> <span class=\"md-plain\">linked.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">No link in the document has that <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>original<\/code><\/span><span class=\"md-plain\"> path any more (for example, a<\/span> <span class=\"md-plain\">report from before an earlier ApplyReport): counted and skipped.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Problems<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 more than one active <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\">, or a replacement file that<\/span> <span class=\"md-plain\">does not exist: not applied. ApplyReport marks each problem section in the<\/span> <span class=\"md-plain\">report with a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code># ApplyReport: ...<\/code><\/span><span class=\"md-plain\"> line above its <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>[Link]<\/code><\/span><span class=\"md-plain\"> header and opens<\/span> <span class=\"md-plain\">the report, so you can find and fix them. The marks disappear the next time<\/span> <span class=\"md-plain\">you run LinkReport.<\/span><\/p>\n<\/li>\n<\/ul>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">All relinks happen as <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">one undo step<\/span><\/strong><\/span><span class=\"md-plain\">: <\/span><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Edit &gt; Undo<\/span><\/strong><\/span><span class=\"md-plain\"> reverts them all.<\/span><\/p>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">After ApplyReport, the report is out of date. Run LinkReport again to refresh<\/span> <span class=\"md-plain\">it.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Which Text Editor Opens the Report<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">LinkReport opens the report in:<\/span><\/p>\n<ol class=\"ol-list\" start=\"\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">the editor set as &#8220;Editor program&#8221; in Rorohiko&#8217;s Scripts Panel OT, if you<\/span> <span class=\"md-plain\">use it; otherwise<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">the program your computer opens <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>.txt<\/code><\/span><span class=\"md-plain\"> files with.<\/span><\/p>\n<\/li>\n<\/ol>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">If the report cannot be opened automatically, the result dialog says so. You<\/span> <span class=\"md-plain\">will find it next to the document.<\/span><\/p>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Troubleshooting<\/span><\/h2>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">&#8220;save the document first&#8221;<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 SmartRelink needs a saved document, because<\/span> <span class=\"md-plain\">the report is stored next to it. Save, then run LinkReport again.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">&#8220;There is no report for this document&#8221;<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 run LinkReport before<\/span> <span class=\"md-plain\">ApplyReport. The report must be named <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>&lt;Document&gt;_LinkReport.txt<\/code><\/span><span class=\"md-plain\"> and be in<\/span> <span class=\"md-plain\">the same folder as the document.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">An image you know is there was not found.<\/span><\/strong><\/span><span class=\"md-plain\"> It may be beyond the search<\/span> <span class=\"md-plain\">limits. Add its folder as a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span><span class=\"md-plain\">, or raise <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchDistance<\/code><\/span><span class=\"md-plain\">,<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>maxClimbLevels<\/code><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchSeconds<\/code><\/span><span class=\"md-plain\">, and run LinkReport again. Or type the<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line yourself.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">The search takes too long.<\/span><\/strong><\/span><span class=\"md-plain\"> Network, cloud-synced and protected folders<\/span> <span class=\"md-plain\">can be slow to list. Lower <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>maxSearchSeconds<\/code><\/span><span class=\"md-plain\">, add <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>excludeFolder<\/code><\/span><span class=\"md-plain\"> lines for<\/span> <span class=\"md-plain\">large folders that will not contain the images, or point a <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span> <span class=\"md-plain\">straight at the right folder.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">The same file is listed twice under slightly different paths.<\/span><\/strong><\/span><span class=\"md-plain\"> This can<\/span> <span class=\"md-plain\">happen when a folder is reachable through a shortcut (alias or symbolic<\/span> <span class=\"md-plain\">link) as well as directly. Either path works.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">A link was not relinked.<\/span><\/strong><\/span><span class=\"md-plain\"> Check that its section has exactly one active<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line, and look for an <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code># ApplyReport:<\/code><\/span><span class=\"md-plain\"> problem mark above it.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">Links from a document made on the other platform<\/span><\/strong><\/span><span class=\"md-plain\"> (a Windows path on a<\/span> <span class=\"md-plain\">Mac, or vice versa) give the search no starting folder. SmartRelink still<\/span> <span class=\"md-plain\">searches around the document&#8217;s folder and any <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>searchRoot<\/code><\/span><span class=\"md-plain\">s.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-pair-s \"><strong><span class=\"md-plain\">&#8220;This is an unexpected internal error&#8221;<\/span><\/strong><\/span><span class=\"md-plain\"> \u2014 the message names a folder.<\/span> <span class=\"md-plain\">Create a file <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>prefs.json<\/code><\/span><span class=\"md-plain\"> in that folder with the following contents, run<\/span> <span class=\"md-plain\">the script again, and send the log file to <\/span><span class=\"md-link md-pair-s\" spellcheck=\"false\"><a href=\"mailto:sales@rorohiko.com\">sales@rorohiko.com<\/a><\/span><span class=\"md-plain\">:<\/span><\/p>\n<pre class=\"md-fences md-end-block ty-contain-cm modeLoaded\" lang=\"json\" spellcheck=\"false\"><span role=\"presentation\">{ <span class=\"cm-string cm-property\">\"logLevel\"<\/span>: <span class=\"cm-number\">4<\/span>, <span class=\"cm-string cm-property\">\"logEntryExit\"<\/span>: <span class=\"cm-atom\">true<\/span>, <span class=\"cm-string cm-property\">\"logFile\"<\/span>: <span class=\"cm-string\">\"\/Users\/me\/Desktop\/SmartRelink.log\"<\/span> }<\/span><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Change the <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>logFile<\/code><\/span><span class=\"md-plain\"> path to a location on your own computer (on Windows,<\/span> <span class=\"md-plain\">e.g. <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>C:\/Users\/me\/Desktop\/SmartRelink.log<\/code><\/span><span class=\"md-plain\">). Delete <\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>prefs.json<\/code><\/span><span class=\"md-plain\"> afterwards<\/span> <span class=\"md-plain\">to turn logging off again.<\/span><\/p>\n<\/li>\n<\/ul>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Known Limitations<\/span><\/h2>\n<ul class=\"ul-list\" data-mark=\"-\">\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Files are matched by name only. A renamed image is not found; type its<\/span> <span class=\"md-pair-s\" spellcheck=\"false\"><code>replacement<\/code><\/span><span class=\"md-plain\"> line yourself.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Placed text files and embedded images are ignored.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">A single very slow folder (for example on a disconnected network share)<\/span> <span class=\"md-plain\">cannot be interrupted; the time limit is checked between folders.<\/span><\/p>\n<\/li>\n<li class=\"md-list-item\">\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">Comments you add to the report are not kept when LinkReport rebuilds it.<\/span><\/p>\n<\/li>\n<\/ul>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">Contact<\/span><\/h2>\n<p class=\"md-end-block md-p md-focus\"><span class=\"md-plain\">SmartRelink PL is made by Rorohiko. Questions, bug reports and suggestions:<\/span> <span class=\"md-link md-pair-s md-expand\" spellcheck=\"false\"><a href=\"mailto:sales@rorohiko.com\">sales@rorohiko.com<\/a><\/span><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and relinks only what you approve. One Undo takes it all back. SmartRelink PL &hellip; <a href=\"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":143,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84,86],"tags":[],"class_list":["post-7186","post","type-post","status-publish","format-standard","hentry","category-84","category-smartrelink"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SmartRelink PL - Rorohiko Workflow Resources<\/title>\n<meta name=\"description\" content=\"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and\" \/>\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\/2026\/10\/20\/smartrelink-pl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SmartRelink PL - Rorohiko Workflow Resources\" \/>\n<meta property=\"og:description\" content=\"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/\" \/>\n<meta property=\"og:site_name\" content=\"Rorohiko Workflow Resources\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-20T21:30:58+00:00\" \/>\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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/\"},\"author\":{\"name\":\"kris\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/8d934f602a8481cff7532f99dc92cb25\"},\"headline\":\"SmartRelink PL\",\"datePublished\":\"2026-10-20T21:30:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/\"},\"wordCount\":2489,\"publisher\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#organization\"},\"articleSection\":[\"2026\",\"SmartRelink\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/\",\"name\":\"SmartRelink PL - Rorohiko Workflow Resources\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\"},\"datePublished\":\"2026-10-20T21:30:58+00:00\",\"description\":\"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/2026\\\/10\\\/20\\\/smartrelink-pl\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SmartRelink PL\"}]},{\"@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":"SmartRelink PL - Rorohiko Workflow Resources","description":"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and","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\/2026\/10\/20\/smartrelink-pl\/","og_locale":"en_US","og_type":"article","og_title":"SmartRelink PL - Rorohiko Workflow Resources","og_description":"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and","og_url":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/","og_site_name":"Rorohiko Workflow Resources","article_published_time":"2026-10-20T21:30:58+00:00","author":"kris","twitter_misc":{"Written by":"kris","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/#article","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/"},"author":{"name":"kris","@id":"https:\/\/rorohiko.com\/wordpress\/#\/schema\/person\/8d934f602a8481cff7532f99dc92cb25"},"headline":"SmartRelink PL","datePublished":"2026-10-20T21:30:58+00:00","mainEntityOfPage":{"@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/"},"wordCount":2489,"publisher":{"@id":"https:\/\/rorohiko.com\/wordpress\/#organization"},"articleSection":["2026","SmartRelink"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/","url":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/","name":"SmartRelink PL - Rorohiko Workflow Resources","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/#website"},"datePublished":"2026-10-20T21:30:58+00:00","description":"for use with Adobe\u00ae InDesign\u00ae. Fix broken image links. SmartRelink PL hunts down the missing files, shows you what it found in a simple text report, and","breadcrumb":{"@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rorohiko.com\/wordpress\/2026\/10\/20\/smartrelink-pl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rorohiko.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"SmartRelink PL"}]},{"@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\/7186","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=7186"}],"version-history":[{"count":1,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts\/7186\/revisions"}],"predecessor-version":[{"id":7187,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/posts\/7186\/revisions\/7187"}],"wp:attachment":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/media?parent=7186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/categories?post=7186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/tags?post=7186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}