khalid_hussain

GUI getting in the way of processing...

May 7th, 2023 (edited)
1,228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.92 KB | Source Code | 0 0
  1. main();
  2.  
  3. function main() {
  4.   if (app.documents.length > 1) {
  5.     mWindow();
  6.   } else {
  7.     alert("Open at least two documents!");
  8.   }
  9. }
  10.  
  11. function mWindow() {
  12.   var w = new Window("dialog");
  13.   w.alignment = "left";
  14.   w.text = "Import text frames from file";
  15.  
  16.   var st_targetFileName = w.add("statictext");
  17.   st_targetFileName.text = "TARGET file: " + app.activeDocument.name;
  18.   st_targetFileName.alignment = "left";
  19.  
  20.   var st_filePathTitle = w.add("statictext");
  21.   st_filePathTitle.text = "Select SOURCE file:";
  22.   st_filePathTitle.alignment = "left";
  23.  
  24.   var dd_openDocuments = w.add("dropdownlist");
  25.   dd_openDocuments.alignment = "fill";
  26.   buildOpenDocumentsList(dd_openDocuments);
  27.  
  28.   dd_openDocuments.onChange = function () {
  29.     st_SourceFileNoPages.text =
  30.       "SOURCE file: " +
  31.       app.documents.itemByID(dd_openDocuments.selection.id).pages.length;
  32.     btn_import.enabled = 1;
  33.   };
  34.  
  35.   var divider = w.add("panel");
  36.   divider.alignment = "fill";
  37.  
  38.   // PAGES PANEL
  39.   var pnl_Pages = w.add("panel");
  40.   pnl_Pages.text = "Pages";
  41.   pnl_Pages.alignChildren = ["left", "top"];
  42.   pnl_Pages.alignment = "fill";
  43.   pnl_Pages.spacing = "12";
  44.  
  45.   var st_SourceFileNoPages = pnl_Pages.add("statictext");
  46.   st_SourceFileNoPages.text = "SOURCE file: <Unselected>";
  47.  
  48.   var st_TargetFileNoPages = pnl_Pages.add("statictext");
  49.   st_TargetFileNoPages.text = "TARGET file: " + app.activeDocument.pages.length;
  50.  
  51.   var btn_import = w.add("button");
  52.   btn_import.text = "IMPORT!";
  53.   btn_import.enabled = 0;
  54.  
  55.   btn_import.onClick = function () {
  56.     $.writeln("Import button clicked...");
  57.     var mSource = app.documents.itemByID(dd_openDocuments.selection.id);
  58.     var mTarget = app.activeDocument;
  59.  
  60.     copyTextFrames(mSource, mTarget);
  61.     w.destroy();
  62.   };
  63.  
  64.   w.show();
  65. }
  66.  
  67. function buildOpenDocumentsList(list) {
  68.   mDocuments = app.documents.everyItem().getElements();
  69.   for (var i = 0; i < mDocuments.length; i++) {
  70.     if (mDocuments[i].name != app.activeDocument.name) {
  71.       temp = list.add("item", mDocuments[i].name);
  72.       temp.id = mDocuments[i].id; // Add property so we can easily get a handle on the document later
  73.     }
  74.   }
  75. }
  76.  
  77. function copyTextFrames(source, target) {
  78.   $.writeln("Copy function...");
  79.   var sourceAllTextFrames = source.textFrames;
  80.   var targetAllPages = target.pages;
  81.  
  82.   var LPageObjectStyle = target.objectStyles.itemByName("QuranScriptLeft");
  83.   var RPageObjectStyle = target.objectStyles.itemByName("QuranScriptRight");
  84.  
  85.   for (var i = 0, len = sourceAllTextFrames.length; i < len; i++) {
  86.     mCurrentPage = sourceAllTextFrames[i].parentPage.name;
  87.     targetFrame = sourceAllTextFrames[i].duplicate(
  88.       targetAllPages.itemByName(mCurrentPage)
  89.     );
  90.  
  91.     var leftPage = Number(mCurrentPage) % 2 == 0 ? 0 : 1;
  92.  
  93.     if (leftPage == 1) {
  94.       targetFrame.applyObjectStyle(LPageObjectStyle);
  95.     } else {
  96.       targetFrame.applyObjectStyle(RPageObjectStyle);
  97.     }
  98.   }
  99. }
  100.  
Tags: InDesign
Advertisement
Add Comment
Please, Sign In to add comment