{"id":6847,"date":"2024-12-05T20:38:52","date_gmt":"2024-12-06T03:38:52","guid":{"rendered":"https:\/\/rorohiko.com\/wordpress\/?page_id=6847"},"modified":"2025-12-14T01:53:05","modified_gmt":"2025-12-14T08:53:05","slug":"gryperlink-for-indesign","status":"publish","type":"page","link":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/","title":{"rendered":"GryperLink for InDesign"},"content":{"rendered":"<h1>What is <em>GryperLink<\/em>?<\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6848 alignnone\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png\" alt=\"\" width=\"193\" height=\"193\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink-300x300.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink-150x150.png 150w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink-768x768.png 768w\" sizes=\"auto, (max-width: 193px) 100vw, 193px\" \/><\/p>\n<p><em>GryperLink<\/em> is a script for Adobe InDesign.<\/p>\n<p>It can automatically assign interactive hyperlinks to InDesign text or images, based on find-and-insert pattern matching. These links are preserved when exporting to an interactive PDF.<\/p>\n<h1>An Example<\/h1>\n<p><em>GryperLink<\/em> comes bundled with a sample document &#8211; below some screenshots using that sample document to clarify what it does.<\/p>\n<p>Before:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7034\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-scaled.png\" alt=\"\" width=\"2560\" height=\"1743\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-scaled.png 2560w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-300x204.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-1024x697.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-768x523.png 768w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-1536x1046.png 1536w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-14-at-20.53.11-2048x1394.png 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p>We see some text, with product codes in blue (formatted with a character style <em>Partnumber). <\/em><\/p>\n<p>The goal is to attach hyperlinks to those product codes, so that when we export this document to PDF, the product codes can be clicked and the user&#8217;s browser will show a web page using that hyperlink.<\/p>\n<p>Double-click <em>GryperLink.jsx<\/em> on the Scripts panel and you will get this:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6867\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1.png\" alt=\"\" width=\"1974\" height=\"1208\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1.png 1974w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1-300x184.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1-1024x627.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1-768x470.png 768w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1-1536x940.png 1536w\" sizes=\"auto, (max-width: 1974px) 100vw, 1974px\" \/><\/p>\n<h2>GREP Flavors<\/h2>\n<p><em>GryperLink<\/em> uses a configuration text frame on the pasteboard of the targeted document.<\/p>\n<p>For the search-and-match process, it relies on GREP (Global Regular Expression Print) expressions.<\/p>\n<p>These are specially coded patterns that explain what <em>GryperLink<\/em> should look for &#8211; e.g. a pattern like \\d means: look for a digit (0 &#8211; 9).<\/p>\n<p>There are many flavors of GREP, all slightly different.<\/p>\n<p>The GREP expressions used by <em>GryperLink<\/em> are based on JavaScript GREP. For more info about JavaScript GREP, click <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Regular_expressions\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>Note that the InDesign Find\/Change function also supports a flavor of GREP.<\/p>\n<p>InDesign GREP is different to JavaScript GREP, but the basic concept remain the same. The main differences are in the meaning of some of the &#8216;magical&#8217; patterns like ~n or \\S.<\/p>\n<h2><em>GryperLink<\/em> Configuration<\/h2>\n<p>The sample document has this configuration frame on the pasteboard:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6859\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM.png\" alt=\"\" width=\"2538\" height=\"2296\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM.png 2538w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM-300x271.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM-1024x926.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM-768x695.png 768w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM-1536x1390.png 1536w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-3.40.48\u202fPM-2048x1853.png 2048w\" sizes=\"auto, (max-width: 2538px) 100vw, 2538px\" \/><\/p>\n<p>There is a lot of commenting there.<\/p>\n<p>Let me remove the comments, and whittle down the frame contents to just the relevant data.<\/p>\n<p>We&#8217;ll only look at the <code>[text link]<\/code> &#8211; the <code>[image link]<\/code> is treated in a similar fashion, but instead of matching on the text, we&#8217;re matching on the image file path.<\/p>\n<pre class=\"p1\">[gryperlink]\r\n\r\n[text link]\r\n    match text = \\b(\\d{6}-\\d{2})\\s\r\n    link = https:\/\/rorohiko.com?SAMPLE_PARAM=$1\r\n    apply char style name = HyperLinkStyle\r\n    case sensitive = no\r\n    match paragraph style =\r\n    match character style = ^(Partnumber|HyperLinkStyle)$\r\n    match font name =\r\n\r\n[image link]\r\n    match file path = ^\\b(\\d{6}-\\d{2}).tif$\r\n    link = https:\/\/rorohiko.com?SAMPLE_PARAM=$1\r\n    case sensitive = no\r\n<\/pre>\n<p>This tells <em>GryperLink<\/em> to search all text in the document, matching against a GREP expression <code>\\b(\\d{6}-\\d{2})\\s<\/code><\/p>\n<p>Taking all that apart, we can see<br \/>\n<code>\\d<\/code> = a digit<br \/>\n<code>\\d{6}<\/code> = six digits (0-9)<br \/>\n<code>\\d{2}<\/code> = two digits (0-9)<br \/>\n<code>\\d{6}-\\d{2}<\/code> = some product code structured like 123456-78<br \/>\n<code>(\\d{6}-\\d{2})<\/code> = parenthesis make this become the replacement value of the magical $1<br \/>\n<code>\\s<\/code> = some whitespace character<br \/>\n<code>\\b<\/code> = word boundary<\/p>\n<p>All in all this means: match any text that starts at a word boundary, then six digits, a dash, two digits, and a white space character.<\/p>\n<p>Each time <em>GryperLink<\/em> finds a match, it will also look at the character style. The character style needs to be either <em>Partnumber<\/em> or <em>HyperLinkStyle<\/em><\/p>\n<p>When a match is found, the hyperlink to be injected is calculated by replacing the <code>$1<\/code> in <code>https:\/\/rorohiko.com?SAMPLE_PARAM=$1<\/code> with whatever corresponded to <code>\\d{6}-\\d{2}<\/code> in the text.<\/p>\n<p>If the matched text was <code>123456-78<\/code>, then the calculated hyperlink will be <code>https:\/\/rorohiko.com?SAMPLE_PARAM=123456-78<\/code>, and this is what is assigned to the text.<\/p>\n<p>Furthermore, the text will be formatted in the character style <em>HyperLinkStyle (<\/em>apply char style name).<\/p>\n<p>Running <em>GryperLink<\/em> results in this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6860\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.05.38\u202fPM.png\" alt=\"\" width=\"302\" height=\"94\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.05.38\u202fPM.png 864w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.05.38\u202fPM-300x93.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.05.38\u202fPM-768x238.png 768w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6861\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM.png\" alt=\"\" width=\"1974\" height=\"1208\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM.png 1974w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-300x184.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1024x627.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-768x470.png 768w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.06.24\u202fPM-1536x940.png 1536w\" sizes=\"auto, (max-width: 1974px) 100vw, 1974px\" \/><\/p>\n<h1>Installing <em>GryperLink<\/em><\/h1>\n<ol>\n<li><strong>Download <em>PluginInstaller<\/em><\/strong>.<br \/>\nIf you\u2019ve not done this before, download and install the free <em>PluginInstaller <\/em>from <a href=\"https:\/\/plugininstaller.com\/\" target=\"_blank\" rel=\"noopener\">PluginInstaller.com<\/a>.<br \/>\nMake sure you have build #638 or higher installed (the build number is shown in the lower right-hand corner of the <em>PluginInstaller<\/em> windows).<\/li>\n<li><strong>Create an Account<\/strong>.<br \/>\nIf this is your first time using <em>PluginInstaller<\/em>, you\u2019ll need to create a new account and register it within <em>PluginInstaller<\/em>.<br \/>\nMake sure to check your email, and click the confirmation link in the registration email!<\/li>\n<li><strong>Add a <em>GryperLink<\/em> Bookmark<\/strong>.<br \/>\nAdd a bookmark for <em>GryperLink<\/em> into <em>PluginInstaller<\/em> by clicking the following link:<br \/>\n<a href=\"tightenercatalogentry:https%3A%2F%2Fstore.tgrg.net%2Fproducts%2FGryperLink.cate\">Add <em>GryperLink<\/em> Bookmark into <em>PluginInstaller<\/em><\/a><br \/>\nAlternatively, you can use the <em>Browse the Store for Software<\/em> window in <em>PluginInstaller, <\/em>then find and click the <em>GryperLink<\/em> product listing in the <em>Rorohiko Catalog<\/em>.<\/li>\n<li><strong>Download and Install<\/strong>.<br \/>\nOnce the bookmark is listed in the <em>Installing and Ordering<\/em> window, select it and click the <em>Download<\/em> button.<br \/>\nAfter the download, choose your InDesign version from the <em>Install Target<\/em> dropdown menu and click the <em>Install<\/em> button.<br \/>\nVersion 20.0 is InDesign 2025, Version 21.0 is InDesign 2026.<br \/>\n<em>GryperLink<\/em> will appear in the InDesign <em>Scripts<\/em> panel under the <em>User<\/em> section. If not, and you have multiple versions of InDesign on your computer, make sure you picked the correct <em>Install Target.<\/em><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6862\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM.png\" alt=\"\" width=\"2026\" height=\"1564\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM.png 2026w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM-300x232.png 300w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM-1024x790.png 1024w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM-768x593.png 768w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.30.37\u202fPM-1536x1186.png 1536w\" sizes=\"auto, (max-width: 2026px) 100vw, 2026px\" \/><\/li>\n<\/ol>\n<p><em>GryperLink<\/em> is now available on your InDesign <em>Scripts<\/em> Panel (<em>Window &#8211; Utilities &#8211; Scripts<\/em>):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6863\" src=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.32.35\u202fPM.png\" alt=\"\" width=\"335\" height=\"455\" srcset=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.32.35\u202fPM.png 868w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.32.35\u202fPM-221x300.png 221w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.32.35\u202fPM-753x1024.png 753w, https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-06-at-4.32.35\u202fPM-768x1044.png 768w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/p>\n<p>You can double click the <em>Copy Sample File&#8230; <\/em>to copy a sample file to your Desktop, and open it in InDesign.<\/p>\n<p>For your own documents, you can copy the configuration frame from this sample file onto the pasteboard of your own documents, and use it as a template\/starter.<\/p>\n<h1>Be Safe<\/h1>\n<p>When using <em>GryperLink<\/em>, make sure to save the original document in a safe location before using the script!<\/p>\n<p><em>GryperLink<\/em> makes massive changes to your document, and there is no &#8216;undo&#8217; &#8211; if you get the configuration wrong, you might end up with an unusable document.<\/p>\n<p>If you safeguard a copy of the original, that&#8217;ll allow you to go back and try again.<\/p>\n<p>It&#8217;s a good idea to compress the original into a .zip file &#8211; the odds are small that even with a wrong move you&#8217;ll actually overwrite the document inside the .zip.<\/p>\n<h1>Demo Version\/Purchasing<\/h1>\n<p><em>GryperLink<\/em> comes as a demo script: each time you run it, it will insert at most 50 hyperlinks at a time, and ask for confirmation. It is fully functional but for a large document, the process is tedious.<\/p>\n<p>It&#8217;s better to upgrade to a full version. For a mere US$ 9.00 per seat, per year, <em>GryperLink<\/em> will handle an unlimited amount of links in one go.<\/p>\n<p>Go to the <em>Installing and Ordering<\/em> window, select the <em>GryperLink<\/em> bookmark, and click <em>Purchase<\/em>.<\/p>\n<p>Activation may take some time to process; keep an eye on the <em>Licenses, Activations, and Pending Orders<\/em> window for updates.<\/p>\n<h1>Configuration<\/h1>\n<p>You define the behavior of the script by placing a text frame with configuration data on a document&#8217;s pasteboard.<\/p>\n<h2>INI configuration frame<\/h2>\n<p>The format is pretty self-explanatory; skip ahead to &#8216;Description of the Options&#8217; if you &#8216;grok&#8217; things already.<\/p>\n<p>Here is the detailed <a href=\"https:\/\/en.wikipedia.org\/wiki\/TL;DR\">TL;DR<\/a> information for the formatting rules:<\/p>\n<p>The text frame is formatted in a format similar to the old-style Windows INI format, with some additional flexibility built-in.<\/p>\n<p>The advantages of this approach is that each document can &#8216;carry&#8217; its own configuration and the configuration is plain for everyone to see, in a human-readable form, rather than being hidden away on some preferences dialog.<\/p>\n<ul>\n<li>The information is spread over multiple paragraphs or lines.<\/li>\n<li>There are two types of relevant lines: <code>[SECTION]<\/code> or <code>name=value<\/code>. Any lines that do not consist of either a name in square brackets or a name, an equal sign and a value are ignored.<\/li>\n<li>The information within the square brackets (the <code>SECTION<\/code>) or information to the left of the equal signs should not be edited (the <code>name<\/code>).<\/li>\n<li>The <code>name<\/code> to the left of the <code>=<\/code> are case-insensitive and only letters <code>a-z<\/code> and digits <code>0-9<\/code> are taken into account. Names like <code>abc<\/code>, <code>a B c<\/code>, or <code>A'b'c<\/code> are all interpreted as the same thing &#8211; <code>abc<\/code><\/li>\n<li>The information to the right of the equal signs can be freely edited<\/li>\n<li>By default, leading and trailing spaces are ignored.\n<pre>someData =some Value\r\nsomeData=       some Value\r\n      someData      =        some Value<\/pre>\n<p>are all equivalent &#8211; they all mean <code>someData=\"some Value\"<\/code><\/li>\n<li>Quotes can be used to express leading or trailing spaces. Curly quotes are seen as equivalent to regular quotes.\n<pre>someData = \"  some Value  \"\r\nsomeData= \u201c  some Value  \u201d<\/pre>\n<p>both indicate that <code>someData=\"  some Value  \"<\/code> including the leading and trailing spaces.<\/li>\n<li>Numeric values can have units and the script will auto-convert between units as needed. If the horizontal unit is <code>cm<\/code> and the label frame width is written as <code>1 inch<\/code>, the width will automatically be interpreted as <code>2.54 cm<\/code><\/li>\n<\/ul>\n<h1>Description of the options<\/h1>\n<p>The configuration frame contains a heading <code>[gryperlink]<\/code> section followed by one or more <code>[text link]<\/code> and\/or <code>[image link]<\/code> sections. Each <code>[... link]<\/code> section represents a pattern to look for.<\/p>\n<h2><code>[text link]<\/code><\/h2>\n<p>Within the <code>[text link]<\/code> we can have the following info<\/p>\n<h3><code>match text<\/code><\/h3>\n<p>a GREP expression. The text will be scanned for this pattern<\/p>\n<h3><code>link<\/code><\/h3>\n<p>a URL to assign to each match. This URL can use special codes $1, $2, $3&#8230; to reference matched subexpressions of the GREP expression<\/p>\n<h3><code>apply char style name<\/code><\/h3>\n<p>Leave this empty if not needed. Name of a character style to apply to each matched text. The character style must exist in the document for this to work.<\/p>\n<h3><code>case sensitive<\/code><\/h3>\n<p>Either <code>yes<\/code> or <code>no<\/code>. If this is missing, &#8216;no&#8217; is assumed. If this is &#8216;yes&#8217; then the GREP expression will be matched in a case-sensitive way.<\/p>\n<h3><code>match paragraph style<\/code><\/h3>\n<p>Leave this empty if not needed. A GREP expression for a paragraph style name: only text formatted in this paragraph style will be matched against the GREP expression. This GREP expression is always case-insensitive.<\/p>\n<h3><code>match character style<\/code><\/h3>\n<p>Leave this empty if not needed. A GREP expression for a character style name: only text formatted in this character style will be matched against the GREP expression. This GREP expression is always case-insensitive.<\/p>\n<h3><code>match font name<\/code><\/h3>\n<p>Leave this empty if not needed. A GREP expression for a font name: only text formatted in this font will be matched against the GREP expression. This GREP expression is always case-insensitive.<\/p>\n<h2><code>[image link]<\/code><\/h2>\n<p>Within the <code>[image link]<\/code> we can have the following info<\/p>\n<h3><code>match file path<\/code><\/h3>\n<p>a GREP expression. The file path of the image will be matched against this expression.<\/p>\n<h3><code>link<\/code><\/h3>\n<p>a URL to assign to each match. This URL can use special codes <code>$1, $2, $3...<\/code> to reference matched subexpressions of the GREP expression<\/p>\n<h3><code>case sensitive<\/code><\/h3>\n<p>Either <code>yes<\/code> or <code>no<\/code>. If this is missing, &#8216;no&#8217; is assumed. If this is &#8216;yes&#8217; then the GREP expression will be matched in a case-sensitive way.<\/p>\n<h1>Version history<\/h1>\n<p><a id=\"history\" style=\"font-size: 1.8em;\" name=\"history\"><\/a><br \/>\nVersion 1.1.0: December 14, 2025<br \/>\n&#8211; Fixes an issue with InDesign 2026 where GryperLink could not create multiple identical hyperlinks within a single doc.<br \/>\n&#8211; This version was backported from UXPScript back to ExtendScript, to make the installation process less cumbersome.<\/p>\n<p>Version 1.0.9: December 6, 2024<br \/>\n&#8211; This is a much-enhanced rewrite in <em>UXP Script<\/em> of an older <em>GryperLink<\/em> script that was originally written in <em>ExtendScript<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on find-and-insert pattern matching. These links are preserved when exporting to an interactive PDF. An Example GryperLink comes &hellip; <a href=\"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":143,"featured_media":0,"parent":295,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6847","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GryperLink for InDesign - Rorohiko Workflow Resources<\/title>\n<meta name=\"description\" content=\"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on\" \/>\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\/indesign-downloads\/gryperlink-for-indesign\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GryperLink for InDesign - Rorohiko Workflow Resources\" \/>\n<meta property=\"og:description\" content=\"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/\" \/>\n<meta property=\"og:site_name\" content=\"Rorohiko Workflow Resources\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-14T08:53:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/\",\"name\":\"GryperLink for InDesign - Rorohiko Workflow Resources\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/GryperLink.png\",\"datePublished\":\"2024-12-06T03:38:52+00:00\",\"dateModified\":\"2025-12-14T08:53:05+00:00\",\"description\":\"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/GryperLink.png\",\"contentUrl\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/GryperLink.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/gryperlink-for-indesign\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"InDesign Downloads\",\"item\":\"https:\\\/\\\/rorohiko.com\\\/wordpress\\\/indesign-downloads\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"GryperLink for InDesign\"}]},{\"@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\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GryperLink for InDesign - Rorohiko Workflow Resources","description":"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on","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\/indesign-downloads\/gryperlink-for-indesign\/","og_locale":"en_US","og_type":"article","og_title":"GryperLink for InDesign - Rorohiko Workflow Resources","og_description":"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on","og_url":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/","og_site_name":"Rorohiko Workflow Resources","article_modified_time":"2025-12-14T08:53:05+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png","type":"image\/png"}],"twitter_misc":{"Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/","url":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/","name":"GryperLink for InDesign - Rorohiko Workflow Resources","isPartOf":{"@id":"https:\/\/rorohiko.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/#primaryimage"},"image":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/#primaryimage"},"thumbnailUrl":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png","datePublished":"2024-12-06T03:38:52+00:00","dateModified":"2025-12-14T08:53:05+00:00","description":"What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on","breadcrumb":{"@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/#primaryimage","url":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png","contentUrl":"https:\/\/rorohiko.com\/wordpress\/wp-content\/uploads\/2024\/12\/GryperLink.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/gryperlink-for-indesign\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rorohiko.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"InDesign Downloads","item":"https:\/\/rorohiko.com\/wordpress\/indesign-downloads\/"},{"@type":"ListItem","position":3,"name":"GryperLink for InDesign"}]},{"@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"]}]}},"_links":{"self":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/6847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"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=6847"}],"version-history":[{"count":12,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/6847\/revisions"}],"predecessor-version":[{"id":7037,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/6847\/revisions\/7037"}],"up":[{"embeddable":true,"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/pages\/295"}],"wp:attachment":[{"href":"https:\/\/rorohiko.com\/wordpress\/wp-json\/wp\/v2\/media?parent=6847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}