• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

What is the difference between InDesign Plugin, extension and script?

Community Beginner ,
Oct 31, 2019 Oct 31, 2019

Copy link to clipboard

Copied

Hi,

I am new to Indesign and I want to connect to the server of my organization by making a HTTP connection, maintaining login session, sending POST requests and displaying the HTTP response data in Indesign Page.

Also, I want to create a panel and show a pop-up window as well, so that user can login etc.

I went through the SDK tutorial, but I am getting confused whether plugin/script/extension would suit my purpose better?

And is JavaScript sufficient for developing my use case or should I go with c++ approach?

 

Also, in case I make an extension and share on Adobe exchange, then will people who download it see my source code and is there any way to hide it?

Any help would be appreciated. Thanks

TOPICS
Scripting , SDK

Views

1.3K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Oct 31, 2019 Oct 31, 2019

Hi,

 

There are multiple ways to automate and extend InDesign functionality as correctly identified by you viz, using the C++ sdk, Extendscript i.e. the JS, and creating HTML extensions. I will briefly summarize what can be done using these to help you take a decision on what to use

  • C++ sdk, this gives us complete control on extending InDesign functionality. This is the same interface the Adobe would be using to add in new functionality. There are some things that you can only do using this, li
...

Votes

Translate

Translate
Community Expert ,
Oct 31, 2019 Oct 31, 2019

Copy link to clipboard

Copied

Hi,

 

There are multiple ways to automate and extend InDesign functionality as correctly identified by you viz, using the C++ sdk, Extendscript i.e. the JS, and creating HTML extensions. I will briefly summarize what can be done using these to help you take a decision on what to use

  • C++ sdk, this gives us complete control on extending InDesign functionality. This is the same interface the Adobe would be using to add in new functionality. There are some things that you can only do using this, like for example if you want to add in a new spell service, add a new paragraph composer, add a new export format etc. Using this sdk you can also create native UI like preference panes etc. You can even extend an existing UI if you so desire. If you can't do anything using this sdk in InDesign, you can't presumably do it then except the Adobe engineering team. This also provides you all the capabilities that comes with C++, so anything you can do in C++ is also possible. This development is very time consuming and understanding the sdk is in itself a very time taking task
  • Extendscript(JS), this can be used to automated tasks within InDesign. Some use cases are placing objects on a document, exporting it as pdf according to some logic. Repetitive tasks can be automated using this approach, most of the functionality exposed to C++ sdk is also exposed to extendscript but not all. It can also be used to create UI using the scriptUI api. Remember this is not the latest JS flavour that you use on web but an older version. So if the task is not something that needs extending InDesign functionality like adding in a file export format, extendscript is a better choice it would provide rapid solution development
  • HTML extensions, this combines the extendscripts capability of interacting with InDesign and automating it alongwith the HTML's capability of creating complex UI's. So its basically Extendscript + HTML UI. Anything that you can do in web development and using extendscript is possible in HTML extensions.

For your use case i think HTML extension would be the best choice and then C++ plugin if needed.

 

Your other question regarding safeguarding the code in case of HTML extension, well you could use some code obfuscation tools and the extendscript can be converted into binary format, the code is also code signed for uploading to Adobe exchange, This is the only form of code safeguards for now

 

I hope this helps you take a decision

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 05, 2019 Nov 05, 2019

Copy link to clipboard

Copied

I want to connect to the https server to sending POST request via javascript. 

 

Can you please advice.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 05, 2019 Nov 05, 2019

Copy link to clipboard

Copied

LATEST

Can be done in a couple of ways

You could use the Socket object available to JS and create a TCP connection to the server. But this does not provide us the higher level protocol support, which would need to be added somehow. Kris has done an implementation around it for Get calls but mentions that POST is also easy to add on. I am no expert in Network programming, so better you read his blog on the subject

https://rorohiko.blogspot.com/2008_07_01_archive.html

 

Second way could be to create a library in C++ that exposes methods which can be loaded in JS, the POST call would be made by the C++ library and you just need to make a call to it from the JS. Basicexternalobject is the sample InDesign shipped for this approach

 

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines