🚀 راهنمای جامع نصب و عیب‌یابی اسکریپت در Adobe InDesign؛ از JSX و JSXBIN تا IDJS و UXP

اگر با Adobe InDesign کار می‌کنید، احتمالاً برای انجام کارهای تکراری و زمان‌بر به سراغ Scriptها رفته‌اید. اسکریپت‌ها می‌توانند بسیاری از عملیات مربوط به صفحه‌آرایی، ویرایش متن، مدیریت آبجکت‌ها، شماره‌گذاری، ساخت کاتالوگ، پردازش فایل‌ها و حتی عملیات پیچیده روی اسناد چندصدصفحه‌ای را به‌صورت خودکار انجام دهند.

اما نصب و اجرای Script همیشه به سادگی کپی کردن یک فایل نیست.

ممکن است با مشکلاتی مانند این موارد مواجه شوید:

  • ❌ اسکریپت در پنل Scripts دیده نمی‌شود.
  • ❌ فایل JSX اجرا نمی‌شود.
  • ❌ فایل JSXBIN یا JSBIN کار نمی‌کند.
  • ❌ فایل IDJS در نسخه قدیمی InDesign اجرا نمی‌شود.
  • ❌ اسکریپت بعد از نصب نسخه جدید InDesign ناپدید شده است.
  • ❌ Script روی یک نسخه InDesign کار می‌کند ولی روی نسخه دیگر خطا می‌دهد.
  • ❌ با اجرای Script خطای Object، Method یا Property دریافت می‌کنید.
  • ❌ اسکریپت فارسی یا راست‌به‌چپ درست عمل نمی‌کند.
  • ❌ Script باعث بسته شدن یا Crash شدن InDesign می‌شود.

در این مقاله، نصب اسکریپت InDesign در ویندوز، تفاوت JSX، JSXBIN، JSBIN و IDJS، مشکلات نصب، خطاهای اجرای Script و مسائل سازگاری نسخه‌های مختلف InDesign را مرحله‌به‌مرحله بررسی می‌کنیم.

🎯 هدف این راهنما: پاسخ کامل به رایج‌ترین جست‌وجوهای کاربران درباره «آموزش نصب اسکریپت در InDesign»، «نصب JSXBIN در InDesign»، «JSBIN چیست؟»، «رفع خطای Script در InDesign» و «سازگاری اسکریپت با نسخه‌های مختلف InDesign».


📌 اسکریپت InDesign چیست؟

Script در Adobe InDesign یک برنامه کوچک است که با استفاده از امکانات برنامه‌نویسی InDesign می‌تواند بخشی از کارهای دستی را به‌صورت خودکار انجام دهد.

خود Adobe نیز Scripts را ابزاری برای اتوماسیون کارهای تکراری معرفی می‌کند و پنل Scripts را برای اجرای این فایل‌ها در اختیار کاربران قرار داده است. (Adobe Help Center)

برای مثال، یک Script می‌تواند:

  • صفحات جدید ایجاد کند.
  • Text Frame بسازد.
  • متن را تغییر دهد.
  • فونت یا استایل را اصلاح کند.
  • آبجکت‌ها را جابه‌جا کند.
  • تصاویر را وارد یا مدیریت کند.
  • شماره صفحات یا آیتم‌ها را کنترل کند.
  • عملیات Find/Change انجام دهد.
  • فایل‌های متعدد را پردازش کند.
  • خروجی PDF بگیرد.
  • ساختار یک کتاب یا کاتالوگ را مدیریت کند.

به همین دلیل Scriptها برای طراحان گرافیک، صفحه‌آراها، ناشران، اپراتورهای چاپ و تولیدکنندگان محتوای حجیم بسیار ارزشمند هستند.


⚡ چرا استفاده از Script در InDesign اهمیت دارد؟

فرض کنید باید در یک فایل ۵۰۰ صفحه‌ای، روی صدها Text Frame عملیات مشابه انجام دهید.

روش دستی:

انتخاب → تغییر تنظیمات → تکرار → بررسی → اصلاح

اما Script می‌تواند همین عملیات را به شکل خودکار انجام دهد.

در نتیجه استفاده از Script می‌تواند باعث:

  • ⏱️ صرفه‌جویی قابل توجه در زمان
  • 🎯 کاهش خطای انسانی
  • 🔄 اجرای عملیات تکراری با یک کلیک
  • 📚 پردازش اسناد حجیم
  • 📐 استانداردسازی صفحه‌آرایی
  • 🤖 اتوماسیون فرآیندهای تولید محتوا

شود.

Adobe نیز Scripts را یکی از روش‌های اصلی خودکارسازی Workflow در InDesign معرفی می‌کند. (Adobe Help Center)


🧩 انواع اسکریپت در InDesign

یکی از مهم‌ترین نکات برای نصب و عیب‌یابی Script این است که بدانیم با چه نوع اسکریپتی روبه‌رو هستیم.

مهم‌ترین فرمت‌هایی که ممکن است با آنها مواجه شوید عبارت‌اند از:

1️⃣ JSX

اسکریپت‌های ExtendScript

2️⃣ JSXBIN

نسخه Binary/کامپایل‌شده اسکریپت ExtendScript

3️⃣ JSBIN

اصطلاحی که در بعضی Scriptهای قدیمی یا بسته‌های قدیمی با آن مواجه می‌شوید و ممکن است به فایل‌های باینری JavaScript/ExtendScript اشاره داشته باشد؛ بنابراین باید پسوند واقعی فایل و مستندات همان Script بررسی شود.

4️⃣ IDJS

اسکریپت‌های جدید مبتنی بر UXP در InDesign

این چهار مورد را نباید با یکدیگر یکسان دانست.


🔵 JSX چیست؟

JSX رایج‌ترین فرمتی است که در Scriptهای قدیمی و بسیاری از Scriptهای InDesign مشاهده می‌کنید.

برای مثال:

AutoPage.jsx

این فایل معمولاً یک اسکریپت ExtendScript است.

ExtendScript از نسل قدیمی‌تر JavaScript استفاده می‌کند و Adobe در راهنمای مهاجرت خود توضیح می‌دهد که ExtendScript بر مبنای JavaScript قدیمی ES3 قرار دارد، در حالی که UXP از موتور V8 و قابلیت‌های مدرن‌تر JavaScript استفاده می‌کند. (developer.adobe.com)

📌 نکته

وجود پسوند .jsx به این معنی نیست که Script حتماً با همه نسخه‌های InDesign سازگار است.

یک JSX ممکن است:

  • روی InDesign CS6 کار کند؛
  • روی InDesign 2020 کار کند؛
  • روی نسخه جدید نیز کار کند؛

اما ممکن است Script دیگری به API خاصی وابسته باشد و روی بعضی نسخه‌ها اجرا نشود.


🟣 JSXBIN چیست؟

اینجا به یکی از مهم‌ترین موضوعات مقاله می‌رسیم.

JSXBIN نسخه باینری‌شده یک اسکریپت ExtendScript است.

به‌جای اینکه کد Script را به شکل متنی و قابل مطالعه در فایل JSX ببینید، کد به فرم باینری/کامپایل‌شده ارائه می‌شود.

برای مثال:

MyScript.jsx

ممکن است به شکل:

MyScript.jsxbin

توزیع شود.

یکی از کاربردهای مهم JSXBIN این است که توسعه‌دهنده می‌تواند کد Script را به‌صورت مستقیم و خوانا در اختیار کاربر قرار ندهد.

به همین دلیل ممکن است Scriptهای تجاری یا Scriptهایی که توسعه‌دهنده نمی‌خواهد سورس آنها به‌راحتی قابل مشاهده باشد، به صورت JSXBIN توزیع شوند.

نمونه‌های مربوط به اکوسیستم ExtendScript نیز استفاده از JSXBIN را برای خروجی Scriptهای ExtendScript نشان می‌دهند. (GitHub)


🟠 JSBIN چیست؟

عبارت JSBIN یکی از مواردی است که در منابع و Scriptهای قدیمی ممکن است باعث سردرگمی شود.

اینجا باید یک نکته مهم را در نظر گرفت:

JSBIN و JSXBIN را نباید صرفاً بر اساس نامشان معادل IDJS یا UXP Script دانست.

در اکوسیستم قدیمی Adobe، فایل‌های Script می‌توانستند به شکل باینری یا کامپایل‌شده توزیع شوند و در برخی پروژه‌ها و ابزارهای قدیمی با اصطلاحات متفاوتی برای فایل‌های باینری JavaScript مواجه می‌شویم.

بنابراین اگر فایل شما مثلاً نامی مانند:

MyScript.jsbin

یا:

MyScript.jsxbin

دارد، قبل از تغییر نام فایل یا تبدیل آن به فرمت دیگری، باید مستندات Script را بررسی کنید.

⚠️ یک اشتباه بسیار رایج

این کار را انجام ندهید:

MyScript.jsbin
        ↓
MyScript.jsx

صرفاً با تغییر نام فایل، یک فایل Binary تبدیل به JSX نمی‌شود.

تغییر Extension مساوی با تبدیل فرمت نیست.


🆚 تفاوت JSX، JSXBIN، JSBIN و IDJS

فرمت فناوری اصلی نوع فایل قابل ویرایش مستقیم؟ نسل کلی
.jsx ExtendScript متن JavaScript ✅ معمولاً بله قدیمی/Legacy
.jsxbin ExtendScript Binary باینری ❌ به شکل معمول خیر Legacy
.jsbin بسته به Script/ابزار باینری/قدیمی ❌ معمولاً خیر Legacy
.idjs UXP JavaScript ✅ بله جدید

نکته مهم: IDJS جایگزین مستقیم JSXBIN نیست.

JSX/JSXBIN در اکوسیستم ExtendScript قرار می‌گیرند، در حالی که IDJS مربوط به UXP است. Adobe برای UXP در InDesign پسوند .idjs را تعریف کرده است. (developer.adobe.com)


🆕 IDJS چیست؟

در نسخه‌های جدید InDesign، Adobe از UXP Scripting پشتیبانی می‌کند.

پسوند Scriptهای UXP در InDesign:

.idjs

است.

برای مثال:

AutoLayout.idjs

Adobe اعلام کرده است که InDesign از UXP Scripts از نسخه 18.0 به بعد پشتیبانی می‌کند. (developer.adobe.com)

بنابراین:

InDesign 18.0+
        ↓
پشتیبانی از UXP Scripts
        ↓
.idjs

🧠 ExtendScript و UXP چه تفاوتی دارند؟

دو محیط اصلی که باید بشناسید:

ExtendScript

.jsx
.jsxbin

UXP

.idjs

ExtendScript از JavaScript قدیمی‌تر استفاده می‌کند، در حالی که UXP بر پایه موتور V8 و قابلیت‌های مدرن‌تر JavaScript ساخته شده است. (developer.adobe.com)

بنابراین یک Script که برای UXP نوشته شده، لزوماً قابل تبدیل مستقیم به JSX نیست.


🖥️ پنل Scripts در InDesign کجاست؟

برای باز کردن پنل Scripts:

Window → Utilities → Scripts

را انتخاب کنید.

Adobe در مستندات فعلی نیز همین مسیر را برای باز کردن Scripts Panel معرفی می‌کند. (Adobe Help Center)

در این پنل معمولاً Scriptهای موجود در پوشه‌های مربوط به InDesign و Preferences نمایش داده می‌شوند.


📂 بهترین روش پیدا کردن پوشه نصب Script در Windows

به جای اینکه مسیر پوشه را حدس بزنید، بهترین روش این است که:

  1. InDesign را باز کنید.
  2. به Window → Utilities → Scripts بروید.
  3. روی یک Script موجود کلیک راست کنید.
  4. گزینه Reveal in Explorer را بزنید.
  5. پوشه Scripts Panel باز می‌شود.
  6. فایل Script خود را در همان محل قرار دهید.

Adobe نیز همین روش را به‌عنوان راه سریع پیدا کردن Scripts Panel در Windows توصیه می‌کند. (Adobe Help Center)


📁 مسیر پوشه Scripts در Windows

مسیر عمومی پوشه Scripts کاربر در Windows به شکل زیر است:

C:\Users\USERNAME\AppData\Roaming\Adobe\InDesign\VERSION\LANGUAGE\Scripts\Scripts Panel

Adobe مسیر Windows را نیز به همین ساختار معرفی می‌کند. (Adobe Help Center)

برای مثال:

C:\Users\Ali\AppData\Roaming\Adobe\InDesign\Version 20.0\en_US\Scripts\Scripts Panel

البته نام نسخه و زبان بسته به نصب شما متفاوت خواهد بود.


🚀 نصب JSX در InDesign

فرض کنیم فایل زیر را دارید:

AutoPage.jsx

مراحل نصب

مرحله ۱: InDesign را باز کنید.

مرحله ۲: به:

Window → Utilities → Scripts

بروید.

مرحله ۳: روی یک Script کلیک راست کنید.

مرحله ۴: گزینه:

Reveal in Explorer

را بزنید.

مرحله ۵: فایل:

AutoPage.jsx

را داخل پوشه Scripts Panel قرار دهید.

مرحله ۶: به InDesign برگردید.

مرحله ۷: Script را در پنل پیدا کنید.

مرحله ۸: روی آن دوبار کلیک کنید.


🚀 نصب JSXBIN در InDesign

اگر فایل شما:

AutoPage.jsxbin

است، آن را نیز باید به‌عنوان Script مربوط به اکوسیستم ExtendScript در نظر بگیرید.

در حالت معمول:

  1. InDesign را باز کنید.
  2. Scripts Panel را باز کنید.
  3. پوشه Scripts Panel را با Reveal in Explorer پیدا کنید.
  4. فایل .jsxbin را در آن قرار دهید.
  5. به پنل Scripts برگردید.
  6. Script را اجرا کنید.

⚠️ نکته بسیار مهم درباره JSXBIN

JSXBIN سورس قابل ویرایش معمولی نیست.

اگر یک Script با پسوند JSXBIN دریافت کرده‌اید و خطا می‌دهد، معمولاً نمی‌توانید مثل JSX آن را باز کنید و خط کد مشکل‌دار را به‌سادگی اصلاح کنید.

در این شرایط بهتر است:

  • نسخه InDesign را بررسی کنید.
  • نسخه Script را بررسی کنید.
  • مستندات Script را بخوانید.
  • نسخه جدید Script را از سازنده دریافت کنید.

🟠 نصب JSBIN؛ آیا باید آن را تغییر نام دهیم؟

خیر.

اگر فایل واقعاً:

MyScript.jsbin

است، صرفاً آن را به .jsx تغییر ندهید.

ابتدا باید مشخص شود این فایل توسط چه ابزار یا Scriptی تولید شده و برای چه محیطی طراحی شده است.

این نکته برای عیب‌یابی بسیار مهم است، زیرا Extension به‌تنهایی مشخص نمی‌کند که فایل متعلق به کدام نسل Script یا چه Workflow قدیمی است.


🆕 نصب IDJS در InDesign

اگر فایل شما:

MyScript.idjs

است، با یک UXP Script روبه‌رو هستید.

Adobe در راهنمای UXP توضیح می‌دهد که IDJS یک فایل JavaScript با Extension ویژه برای شناسایی آن به‌عنوان UXP Script در InDesign است. (developer.adobe.com)

مراحل

  1. InDesign 18.0 یا جدیدتر داشته باشید.
  2. Scripts Panel را باز کنید.
  3. پوشه Scripts را پیدا کنید.
  4. فایل .idjs را در محل مناسب قرار دهید.
  5. Script را از پنل اجرا کنید.

Adobe برای UXP Script نیز قرار دادن فایل در Scripts Panel را یکی از روش‌های اجرای Script معرفی می‌کند. (developer.adobe.com)


🪟 نصب Script در Windows 10

در Windows 10 بهترین روش استفاده از:

%APPDATA%

است.

در File Explorer وارد کنید:

%APPDATA%\Adobe\InDesign

سپس نسخه InDesign موردنظر را پیدا کنید.


🪟 نصب Script در Windows 11

روش Windows 11 نیز تقریباً همان است.

در File Explorer بنویسید:

%APPDATA%\Adobe\InDesign

و وارد پوشه نسخه موردنظر شوید.

⭐ پیشنهاد حرفه‌ای

در Windows 10 و 11، به جای جست‌وجوی دستی، از:

Reveal in Explorer

استفاده کنید.

این روش احتمال قرار دادن Script در پوشه اشتباه را بسیار کم می‌کند. (Adobe Help Center)


🪟 نصب Script در Windows 7 و نسخه‌های قدیمی‌تر

در نسخه‌های قدیمی‌تر Windows نیز ساختار Preferences و Scripts در AppData قرار داشته است.

مستندات قدیمی Adobe برای Windows Vista و Windows 7 نیز مسیر زیر را برای Scripts Panel نشان می‌دهند:

Users\[username]\AppData\Roaming\Adobe\InDesign\[version]\[language]\Scripts\Scripts Panel

(Adobe Help Center)

در نسخه‌های بسیار قدیمی Windows ممکن است مسیر دقیق متفاوت باشد؛ بنابراین برای نسخه‌های قدیمی نیز روش Reveal in Explorer بهترین گزینه است.


🔄 نصب Script در نسخه‌های مختلف InDesign

یکی از دلایل رایج گم شدن Script بعد از Update این است که نسخه‌های مختلف InDesign پوشه‌های Preferences جداگانه‌ای دارند.

برای مثال ممکن است روی سیستم شما این پوشه‌ها وجود داشته باشد:

Version 18.0
Version 19.0
Version 20.0
Version 21.0

اگر Script را در پوشه:

Version 19.0

قرار داده باشید، نباید فرض کنید که به‌طور خودکار در:

Version 20.0

هم ظاهر خواهد شد.

راه‌حل

در نسخه جدید InDesign:

Window → Utilities → Scripts

را باز کنید و Reveal in Explorer را بزنید.

سپس Script را در مسیر نسخه جدید قرار دهید.


🧩 چرا Script بعد از آپدیت InDesign ناپدید می‌شود؟

چند دلیل مهم وجود دارد:

دلیل اول: Preferences جدید

نسخه جدید ممکن است پوشه Preferences مخصوص خودش را داشته باشد.

دلیل دوم: تغییر فناوری

ممکن است Script قدیمی ExtendScript باشد و نسخه جدید محیط یا API متفاوتی داشته باشد.

دلیل سوم: Script از UXP استفاده می‌کند

اگر فایل .idjs باشد، نسخه InDesign باید UXP Scripts را پشتیبانی کند.

دلیل چهارم: Script داخل پوشه نسخه قبلی نصب شده است.


❌ مشکل اول: Script در پنل Scripts دیده نمی‌شود

دلایل احتمالی

  • فایل در پوشه اشتباه است.
  • Script در پوشه نسخه دیگری قرار دارد.
  • Extension اشتباه است.
  • فایل ZIP هنوز Extract نشده است.
  • فایل واقعی .jsx.txt است.
  • فایل فرمت ناشناخته‌ای دارد.
  • Script متعلق به محیط دیگری است.

راه‌حل

از داخل InDesign:

Reveal in Explorer

را انتخاب کنید و Script را در همان پوشه قرار دهید.


❌ مشکل دوم: فایل JSX به صورت TXT ذخیره شده

ممکن است Windows فایل را این‌گونه نمایش دهد:

MyScript.jsx

در حالی که نام واقعی آن:

MyScript.jsx.txt

باشد.

راه‌حل

در File Explorer گزینه نمایش Extensionها را فعال کنید:

View → Show → File name extensions

سپس نام واقعی فایل را بررسی کنید.


❌ مشکل سوم: JSXBIN در پنل نمایش داده نمی‌شود

ابتدا بررسی کنید:

  • پسوند واقعی .jsxbin باشد.
  • فایل ناقص نباشد.
  • فایل در Scripts Panel نسخه درست قرار گرفته باشد.
  • Script برای نسخه InDesign شما ساخته شده باشد.

نکته

اگر JSXBIN در نسخه‌ای اجرا نمی‌شود، تغییر نام آن به JSX راه‌حل نیست.


❌ مشکل چهارم: JSBIN اجرا نمی‌شود

این مورد نیازمند بررسی دقیق‌تر است.

اگر فایل:

something.jsbin

است، ابتدا باید مشخص شود که:

  • توسط چه نرم‌افزاری ساخته شده؟
  • برای چه نسخه‌ای از InDesign است؟
  • آیا واقعاً Script مخصوص InDesign است؟
  • آیا همراه آن فایل راهنما وجود دارد؟

JSBIN را صرفاً با تغییر Extension به JSX تبدیل نکنید.


❌ مشکل پنجم: IDJS در InDesign قدیمی اجرا نمی‌شود

اگر Script شما:

MyScript.idjs

است، نسخه InDesign را بررسی کنید.

UXP Scripts در InDesign از نسخه 18.0 پشتیبانی می‌شوند. (developer.adobe.com)

پس اگر نسخه شما قبل از 18.0 است، IDJS انتخاب مناسبی برای آن محیط نیست.


❌ مشکل ششم: Script دیده می‌شود اما اجرا نمی‌شود

این وضعیت نشان می‌دهد که احتمالاً مشکل صرفاً Path نیست.

ممکن است مشکل مربوط به:

  • API
  • نسخه InDesign
  • Document
  • Selection
  • Font
  • Dependency
  • Permission
  • Encoding
  • Syntax
  • Runtime

باشد.


💥 خطای Syntax چیست؟

Syntax Error یعنی ساختار کد برای موتور JavaScript قابل قبول نیست.

مثلاً:

if (x > 10 {

یک ساختار ناقص است.

در JSX معمولاً باید کد توسط توسعه‌دهنده اصلاح شود.

اما اگر فایل JSXBIN باشد، امکان بررسی مستقیم سورس مانند JSX معمولی وجود ندارد.


💥 خطای Runtime چیست؟

در این حالت کد از نظر Syntax قابل قبول است، اما هنگام اجرا اتفاقی رخ می‌دهد که Script انتظار آن را نداشته است.

مثلاً Script انتظار دارد:

  • Document باز باشد.
  • Text Frame انتخاب شده باشد.
  • فونت مشخصی نصب باشد.
  • فایل خاصی وجود داشته باشد.

اما این شرایط برقرار نیست.


💥 خطای Object is invalid

این خطا معمولاً به Objectهای InDesign مربوط می‌شود.

مثلاً Script به یک Object اشاره می‌کند که:

  • حذف شده،
  • دیگر معتبر نیست،
  • Document مربوط به آن تغییر کرده،
  • یا Object در زمان اجرای دستور وجود ندارد.

💥 خطای undefined is not an object

این خطا معمولاً یعنی Script انتظار دارد Object یا Property خاصی وجود داشته باشد اما آن را پیدا نمی‌کند.

دلایل رایج:

  • نسخه InDesign ناسازگار است.
  • API موردنظر وجود ندارد.
  • Document یا Selection مناسب نیست.
  • کد برای محیط دیگری نوشته شده است.

💥 خطای Method یا Property ناشناخته

اگر Script از Method یا Propertyای استفاده کند که در نسخه موردنظر موجود نیست، ممکن است خطایی در همین زمینه مشاهده کنید.

این مورد یکی از نشانه‌های مهم API Compatibility است.

در UXP، Adobe صراحتاً درباره نسخه‌بندی APIها و تفاوت قابلیت‌های موجود در نسخه‌های مختلف Host توضیح داده است. (developer.adobe.com)


🧠 چرا Script روی InDesign قدیمی کار می‌کند ولی روی نسخه جدید نه؟

ممکن است برخلاف تصور، نسخه جدید همیشه با Script قدیمی سازگار نباشد.

علت می‌تواند:

  • تغییر API
  • تغییر رفتار DOM
  • تغییر موتور Script
  • تغییر نحوه مدیریت Objectها
  • تغییرات مربوط به متن
  • تغییرات مربوط به UXP

باشد.


🧠 چرا Script جدید روی InDesign قدیمی کار نمی‌کند؟

این حالت حتی واضح‌تر است.

ممکن است Script از قابلیتی استفاده کند که در نسخه قدیمی وجود ندارد.

این موضوع برای IDJS اهمیت ویژه‌ای دارد؛ چون UXP Script از InDesign 18.0 به بعد پشتیبانی می‌شود. (developer.adobe.com)


🔀 تفاوت خطای نصب با خطای Compatibility

این دو را از هم جدا کنید.

اگر Script اصلاً در پنل نیست:

احتمالاً مشکل:

Installation / Path

است.

اگر Script در پنل هست ولی اجرا نمی‌شود:

احتمالاً باید بررسی کنید:

Compatibility / API / Runtime / Dependency

اگر Script اجرا می‌شود ولی خروجی اشتباه است:

احتمالاً:

Logic / Data / Document Structure

را باید بررسی کرد.


🌍 مشکل Scriptهای فارسی و راست‌به‌چپ

برای پروژه‌های فارسی، Script ممکن است با موارد زیر درگیر باشد:

  • Unicode
  • RTL
  • فونت
  • Paragraph Direction
  • Character Direction
  • Composer
  • GREP
  • Encoding

در نسخه‌های جدید InDesign نیز تغییرات مرتبط با موتور شکل‌دهی متن می‌تواند در رفتار پروژه‌های فارسی و عربی مؤثر باشد.

Adobe اعلام کرده است که از InDesign 19.0، Harfbuzz موتور پیش‌فرض شکل‌دهی متن برای World-Ready Composer شده است. (Adobe Help Center)

بنابراین اگر Script قدیمی مربوط به متن فارسی در نسخه جدید رفتار متفاوتی دارد، فقط خود Script را بررسی نکنید؛ تنظیمات متن و موتور شکل‌دهی را نیز بررسی کنید.


🧯 اگر Script باعث Crash شدن InDesign شد

اگر InDesign بعد از اجرای یک Script بسته می‌شود:

ابتدا Script را دوباره اجرا نکنید.

سپس:

  1. از Document اصلی Backup بگیرید.
  2. یک Document خالی بسازید.
  3. Script را روی آن اجرا کنید.
  4. بررسی کنید Crash فقط در یک Document رخ می‌دهد یا همه Documents.
  5. نسخه InDesign را ثبت کنید.
  6. نسخه Script را بررسی کنید.
  7. اگر Script قدیمی است، نسخه جدید آن را از سازنده دریافت کنید.

📦 اگر Script به صورت ZIP دانلود شده باشد

اگر فایل این شکل است:

MyScript.zip

ابتدا آن را Extract کنید.

ممکن است داخل آن این ساختار وجود داشته باشد:

MyScript
│
├── MyScript.jsx
├── config.txt
├── data.json
└── lib

در این شرایط فقط فایل اصلی را بدون توجه به ساختار بسته کپی نکنید.

ممکن است Script به فایل‌های جانبی وابسته باشد.


🔗 Dependency چیست و چرا مهم است؟

Dependency یعنی Script برای اجرای کامل به فایل یا کتابخانه دیگری نیاز داشته باشد.

برای مثال:

MainScript.jsx
Library.jsx
Config.json

اگر فقط:

MainScript.jsx

را نصب کنید، ممکن است Script اجرا نشود.

این موضوع به‌خصوص در Scriptهای حرفه‌ای اهمیت دارد.


🔐 آیا Scriptهای JSXBIN را می‌توان ویرایش کرد؟

به شکل معمول، خیر.

یکی از تفاوت‌های مهم JSX و JSXBIN این است که JSX یک فایل متنی قابل مطالعه است، اما JSXBIN به شکل باینری توزیع می‌شود.

بنابراین اگر:

MyScript.jsx

خطا دهد، توسعه‌دهنده می‌تواند کد را بررسی و اصلاح کند.

اما اگر:

MyScript.jsxbin

خطا دهد، معمولاً کاربر باید از سازنده Script نسخه اصلاح‌شده دریافت کند.


🧪 بهترین روش تست یک Script ناشناس

اگر Script را از اینترنت دانلود کرده‌اید:

مرحله اول

یک Copy از Document اصلی بسازید.

مرحله دوم

یک Document خالی ایجاد کنید.

مرحله سوم

Script را اجرا کنید.

مرحله چهارم

نتیجه را بررسی کنید.

مرحله پنجم

اگر Script درست کار کرد، روی Copy فایل اصلی آزمایش کنید.

مرحله ششم

بعد از اطمینان، روی پروژه اصلی استفاده کنید.


🛡️ نکته امنیتی درباره Scriptهای ناشناس

Script فقط یک فایل بی‌خطر برای «تغییر چند تنظیم» نیست.

یک Script می‌تواند عملیات متعددی روی Document و Workflow انجام دهد.

بنابراین Scriptهای ناشناس را بدون بررسی روی فایل‌های مهم اجرا نکنید.

به‌خصوص در مورد فایل‌های:

.jsx
.jsxbin
.jsbin
.idjs

منبع Script و توضیحات سازنده اهمیت دارد.


🗃️ بهترین روش مدیریت Scriptهای InDesign

اگر تعداد زیادی Script دارید، یک پوشه اصلی خارج از Adobe ایجاد کنید:

D:\InDesign Scripts\

و آن را دسته‌بندی کنید:

D:\InDesign Scripts\
│
├── Text
├── Layout
├── FindChange
├── Images
├── Tables
├── Export
├── PDF
├── JSX
├── JSXBIN
└── UXP

این کار باعث می‌شود با حذف یا نصب نسخه جدید InDesign، نسخه اصلی Scriptهای شما حفظ شود.


📋 چک‌لیست کامل عیب‌یابی Script InDesign

اگر Script شما کار نمی‌کند، این موارد را به‌ترتیب بررسی کنید:

  • نسخه دقیق InDesign مشخص شده است.
  • نسخه Windows مشخص شده است.
  • Extension واقعی فایل بررسی شده است.
  • مشخص شده Script از نوع JSX است یا JSXBIN یا JSBIN یا IDJS.
  • فایل .jsx.txt نیست.
  • فایل ZIP Extract شده است.
  • Script در Scripts Panel نسخه درست قرار گرفته است.
  • از Reveal in Explorer برای پیدا کردن مسیر استفاده شده است.
  • Document موردنیاز باز است.
  • Selection موردنیاز انجام شده است.
  • فونت‌های موردنیاز نصب هستند.
  • Dependencyهای Script وجود دارند.
  • Script برای نسخه فعلی InDesign ساخته شده است.
  • اگر IDJS است، InDesign از UXP پشتیبانی می‌کند.
  • اگر JSXBIN است، انتظار ویرایش مستقیم سورس ندارید.
  • Script ابتدا روی یک فایل آزمایشی تست شده است.
  • از فایل اصلی Backup گرفته شده است.

📊 جدول جامع خطاهای Script در InDesign

مشکل احتمال اصلی اقدام پیشنهادی
Script دیده نمی‌شود مسیر اشتباه Reveal in Explorer
JSX اجرا نمی‌شود Syntax/Compatibility بررسی Script و نسخه
JSXBIN اجرا نمی‌شود Compatibility بررسی نسخه و دریافت نسخه جدید
JSBIN اجرا نمی‌شود فرمت/محیط نامشخص بررسی سازنده و مستندات
IDJS اجرا نمی‌شود UXP/نسخه InDesign بررسی InDesign 18+
.jsx.txt Extension مخفی نمایش File Extensions
Property ناشناخته API ناسازگار بررسی نسخه
Method ناشناخته API ناسازگار بررسی Documentation
Object invalid Object حذف/نامعتبر بررسی Document
Undefined Object/Property وجود ندارد بررسی Context
فارسی خراب Encoding/RTL بررسی Unicode و تنظیمات متن
فونت پیدا نمی‌شود Font Dependency نصب فونت
Crash Script/Compatibility تست روی Document خالی
بعد از Update ناپدید شده پوشه نسخه قبلی نصب در پوشه نسخه جدید
فقط روی یک فایل خراب است ساختار Document تست روی فایل جدید

🤖 کلیدواژه‌های مهم برای SEO و AI Search

برای اینکه این مقاله در پاسخ به جست‌وجوهای کاربران و موتورهای جست‌وجوی مبتنی بر هوش مصنوعی شانس خوبی داشته باشد، موضوعات زیر باید به شکل طبیعی پوشش داده شوند:

کلیدواژه‌های اصلی:

  • آموزش نصب اسکریپت InDesign
  • نصب اسکریپت در InDesign
  • نصب Script در Adobe InDesign
  • آموزش نصب JSX در InDesign
  • نصب JSXBIN در InDesign
  • نصب JSBIN در InDesign
  • JSBIN چیست؟
  • JSXBIN چیست؟
  • IDJS چیست؟
  • نصب IDJS در InDesign
  • نصب UXP Script در InDesign
  • نصب اسکریپت InDesign در Windows
  • نصب اسکریپت InDesign در Windows 10
  • نصب اسکریپت InDesign در Windows 11
  • نصب اسکریپت InDesign در Windows 7
  • پوشه Scripts InDesign
  • مسیر نصب Script InDesign
  • Scripts Panel InDesign
  • اسکریپت InDesign اجرا نمی‌شود
  • اسکریپت InDesign نمایش داده نمی‌شود
  • رفع خطای Script در InDesign
  • خطای JSX در InDesign
  • خطای JSXBIN در InDesign
  • خطای IDJS در InDesign
  • خطای UXP در InDesign
  • عیب‌یابی اسکریپت InDesign
  • سازگاری اسکریپت با نسخه InDesign
  • InDesign Script Compatibility
  • ExtendScript InDesign
  • UXP InDesign
  • تفاوت JSX و IDJS
  • تفاوت JSXBIN و IDJS
  • تفاوت ExtendScript و UXP
  • آموزش Script نویسی InDesign

❓ سوالات متداول درباره نصب اسکریپت InDesign

آیا JSX و JSXBIN یکی هستند؟

خیر.

هر دو در اکوسیستم ExtendScript قرار می‌گیرند، اما JSX یک فایل متنی Script است و JSXBIN نسخه باینری‌شده آن است.


آیا JSXBIN را می‌توان به JSX تبدیل کرد؟

به‌سادگی نمی‌توان آن را مانند یک فایل متنی باز و ویرایش کرد.

اگر به سورس نیاز دارید، بهترین راه دریافت فایل JSX اصلی از توسعه‌دهنده است.


JSBIN و JSXBIN چه تفاوتی دارند؟

این دو نام را نباید بدون بررسی زمینه Script معادل فرض کرد.

JSXBIN مشخصاً به فایل باینری‌شده ExtendScript اشاره دارد، اما JSBIN می‌تواند در پروژه‌ها و ابزارهای قدیمی با معانی یا فرمت‌های متفاوت دیده شود.

بنابراین Extension را تغییر ندهید و ابتدا مستندات همان Script را بررسی کنید.


آیا تغییر نام JSBIN به JSX مشکل را حل می‌کند؟

❌ خیر.

تغییر Extension باعث تبدیل فرمت فایل نمی‌شود.


آیا IDJS همان JSX جدید است؟

❌ خیر.

IDJS متعلق به UXP Scripting است و JSX معمولاً مربوط به ExtendScript است.

Adobe برای UXP Scriptهای InDesign پسوند .idjs را تعریف کرده است. (developer.adobe.com)


IDJS روی کدام نسخه InDesign اجرا می‌شود؟

UXP Scripts در InDesign از نسخه 18.0 به بعد پشتیبانی می‌شوند. (developer.adobe.com)


چرا Script من در InDesign دیده نمی‌شود؟

احتمالاً در Scripts Panel نسخه اشتباه قرار گرفته است.

از:

Window → Utilities → Scripts → Reveal in Explorer

استفاده کنید. (Adobe Help Center)


چرا Script بعد از نصب InDesign جدید ناپدید شده؟

احتمالاً Script در پوشه Preferences نسخه قدیمی قرار داشته است.

پوشه Scripts نسخه جدید را پیدا کنید و Script را در آن قرار دهید.


آیا Windows 10 و Windows 11 روش نصب متفاوتی دارند؟

در روش اصلی نصب Script تفاوت مهمی ندارند.

در هر دو می‌توانید از مسیر:

%APPDATA%\Adobe\InDesign

استفاده کنید یا بهتر از آن، از Reveal in Explorer کمک بگیرید.


چرا Script در پنل دیده می‌شود اما اجرا نمی‌شود؟

در این شرایط مشکل الزاماً نصب نیست.

موارد زیر را بررسی کنید:

Version → API → Document → Selection → Dependency → Font → Runtime


🏁 جمع‌بندی نهایی

نصب و عیب‌یابی Script در Adobe InDesign زمانی ساده می‌شود که ابتدا نوع فایل را درست تشخیص دهید.

اگر فایل شما:

.jsx

است، احتمالاً با ExtendScript روبه‌رو هستید.

اگر:

.jsxbin

است، با یک نسخه باینری‌شده از ExtendScript مواجه هستید.

اگر:

.jsbin

است، نباید بدون بررسی زمینه و مستندات Script درباره ماهیت آن نتیجه‌گیری کنید یا Extension را تغییر دهید.

و اگر:

.idjs

است، با UXP Script طرف هستید.

در حال حاضر Adobe برای InDesign از UXP Scripts پشتیبانی می‌کند و این قابلیت از نسخه 18.0 در دسترس است. (developer.adobe.com)

از طرف دیگر، مسیر نصب در Windows معمولاً در Preferences مربوط به همان نسخه InDesign قرار دارد و Adobe توصیه می‌کند برای پیدا کردن مسیر صحیح از گزینه Reveal in Explorer استفاده کنید. (Adobe Help Center)

بنابراین برای عیب‌یابی حرفه‌ای، این ترتیب را به خاطر بسپارید:

نوع فایل → نسخه InDesign → محل نصب → پیش‌نیازهای Script → API/Compatibility → خطای اجرا

اگر این پنج مرحله را درست بررسی کنید، بخش بزرگی از مشکلات مربوط به نصب اسکریپت InDesign، JSX، JSXBIN، JSBIN، IDJS و UXP قابل تشخیص خواهد بود.

و یک نکته مهم آخر:

اگر Script در پنل Scripts دیده نمی‌شود، اول دنبال مشکل نصب و مسیر بگردید؛ اگر دیده می‌شود ولی اجرا نمی‌شود، احتمال Compatibility یا خطای خود Script را بررسی کنید.

این تفکیک ساده، یکی از مهم‌ترین اصول عیب‌یابی Script در InDesign است.

نوشته های مرتبط

دیدگاهتان را بنویسید