package for output – single pages, from a multi page document

Learn / Forums / General InDesign Topics / package for output – single pages, from a multi page document

Viewing 23 reply threads
  • Author
    Posts
    • #84909

      I’ve been given a multiple page document – it’s actually a book chapter. Each page in the chapter is a self contained unit of images and text.

      I want to collect for output each page individually. – so each page from the chapter has it’s own folder with all images and text/indesign file

      Has anyone been able to do this directly from package?

      I’ve come up with a number of rather convoluted ways of duplicating and re saving each page individually – but can’t help thinking there must be an easier way

      thanks julie

    • #84932
      Ari Singer
      Member

      This can definitely be done with a script. If I’ll have some extra time on my hands I’ll try to create something.

    • #84937
      Ari Singer
      Member

      Here you go, I’ve written this script for you. With the document that you want to package individually open, run this script. If it’s a large file it might take a few minutes because it basically makes a new document from every page, packages it, and deletes the temporary document. When done you’ll find a folder on your desktop with the name of your file, in it every page will have its own subfolder, with its files, images and fonts.

      If you don’t know how to save and run this script, look here: https://creativepro.com/how-to-install-a-script-in-indesign-that-you-found-in-a-forum-or-blog-post.php

      Following is the script:

      //created by Ari S. --  [email protected]
      // Package every page individually
      
      app.scriptPreferences.enableRedraw = false;
      var myDoc = app.activeDocument;
      var sourceTitle = myDoc.name;
      var myPages = myDoc.pages;
      for (i=0; i <myPages.length; i++){
          var currentSourcePage = myPages[i];
          if (currentSourcePage.pageItems.length==0) continue;
          var pageName = currentSourcePage.name;
          var sourceWidth = myDoc.documentPreferences.pageWidth;
          var sourceHeight = myDoc.documentPreferences.pageHeight;
          var sourceMaster = currentSourcePage.appliedMaster;
          var myNewDoc = app.documents.add();
          myNewDoc.documentPreferences.pageWidth = sourceWidth;
          myNewDoc.documentPreferences.pageHeight = sourceHeight;
          var myNewPage = myNewDoc.pages[0];
          currentSourcePage.duplicate(undefined, myNewPage);
          var newMaster = sourceMaster.duplicate(undefined, myNewDoc);
          var myNewPagesArray = myNewDoc.pages;
          for (j=myNewPagesArray.length - 1; j >=0; j--){
              if (myNewPagesArray[j].pageItems.length==0){
              myNewPagesArray[j].remove();
              }
          }
              myNewDoc.pages[0].appliedMaster = newMaster;
          if (currentSourcePage.side == PageSideOptions.leftHand){
              myNewDoc.documentPreferences.startPageNumber = 2;
              }
          createPackage(myNewDoc);
          }
      
      function createPackage(myNewDoc) {
          var targetFolder = new File("~/Desktop/" + sourceTitle +"/Page " + pageName + "/");
          var flag = Folder(targetFolder).create();
          
          // ------- HERE YOU CAN CHANGE ANY PACKAGING SETTING THAT YOU WANT. TRUE means 'ON', and FALSE means 'OFF': ---------
          var copyingFonts = true;
          var copyingLinkedGraphics = true;
          var copyingProfiles = true;
          var updatingGraphics = true;
          var includingHiddenLayers = true;
          var ignorePreflightErrors = true;
          var creatingReport = true;
          var includeIDML = true;
          var includePDF = false;
          var pdfStyle = "";
          var forceSave = true;
          var versionComments = sourceTitle + " " + "page " + pageName ;
      
          
          if ( flag === true){
              myName = "Page " + pageName;
              var garbageFolder = new File("~/Desktop/" + sourceTitle +"/Delete This Folder/");
              Folder(garbageFolder).create();
              myNewDoc.save(new File("~/Desktop/" + sourceTitle + "/Delete This Folder/" + myName + ".indd"))
              myNewDoc.packageForPrint (
              targetFolder, 
              copyingFonts, 
              copyingLinkedGraphics, 
              copyingProfiles, 
              updatingGraphics, 
              includingHiddenLayers,
              ignorePreflightErrors,
              creatingReport,
              includeIDML,
              includePDF,
              pdfStyle,
              versionComments,
              forceSave       
              );
              myNewDoc.close(SaveOptions.no);
              var myTempFiles = Folder(garbageFolder).getFiles();
              for (k=myTempFiles.length-1; k >=0; k--)
              myTempFiles[k].remove();
              Folder(garbageFolder).remove();
              }
          }
      

      Please let me know if it works.

      P.S. If you want to change any packaging settings (for ex. if you want to export an .idml as well) go to the lines below the line that says “Here you can change any packaging settings…”, and turn on or off any setting by setting it to true (on) or false (off) respectively.

    • #84946

      Thanks Chap – will have a look at running the script and let you know how it works. :)

    • #86193
      Wil Buchanan
      Member

      Hey Ari, that script is brilliant!

      Is there a way to customize the script for different page ranges? So instead of packaging just one page at a time, maybe package 2 pages…or 8 pages?

      Thanks

    • #86194
      Ari Singer
      Member

      It can be done, but is it bit more complicated, I think. I’ll try to write something if I have a chance.

    • #86218

      hey Ari, thanks for your efforts – its amazing!!

    • #86225
      Ari Singer
      Member
      //created by Ari S. --  [email protected]
      // Package entire document individually by the amount of pages at a time that you want
      
      app.scriptPreferences.enableRedraw = false;
      var srcDoc = app.activeDocument;
      var srcTitle = srcDoc.name;
      var srcPages = srcDoc.pages;
      var pgLength = srcPages.length;
      var srcW = srcDoc.documentPreferences.pageWidth;
      var srcH = srcDoc.documentPreferences.pageHeight;
      var srcPgLength = srcPages.length;
      var start = 0;
      var range, end, newDocName, isEnd, fileName;
      
      // ------- HERE YOU CAN CHANGE ANY PACKAGING SETTING THAT YOU WANT. TRUE means 'ON', and FALSE means 'OFF': ---------
      
      var copyingFonts = true;
      var copyingLinkedGraphics = true;
      var copyingProfiles = true;
      var updatingGraphics = true;
      var includingHiddenLayers = true;
      var ignorePreflightErrors = true;
      var creatingReport = true;
      var includeIDML = true;
      var includePDF = false;
      var pdfStyle = "";
      var forceSave = true;
      
      var myDialog = app.dialogs.add({name:"Package Export Range", canCancel:true});
      with (myDialog) {
          with(dialogColumns.add()) {
              with(dialogRows.add()) {
                  staticTexts.add ({staticLabel:"Enter the amount of pages you want to package at a time"});
                  with(dialogRows.add()) {
                      var myRangeBox = integerEditboxes.add({editValue:1});
                      }
                  }
              }
          }
      
      if (myDialog.show() == true) {
          range = myRangeBox.editValue;
          if (range == 0) {
              alert("0 is not a range!...");
              myDialog.destroy();
              exit();
              }
          else if (range > pgLength) {
              alert("Range can't be more than the amount of pages");
              myDialog.destroy();
              exit();
              }
          run();
          }
      else {
          myDialog.destroy();
          exit();
          }
              
      function run() {
          while (!isEnd) {
              var newDoc = app.documents.add({pageWidth: srcW, pageHeight: srcH});
              newDoc.masterSpreads[0].baseName = "garbage_master";
              end = start + range;
              if (end >= srcPages.length) {
                  end = srcPages.length;
                  isEnd = true;
                  }
              var firstPage = srcPages[start];
              var lastPage = srcPages[end - 1];
              for (var j = start; j < end; j++) {
                  var srcPage = srcPages[j];
                  if (srcPage.pageItems.length == 0)
                      continue;
                  var newPage = newDoc.pages.add();
                  srcPage.duplicate(undefined, newPage);
                  srcMaster = srcPage.appliedMaster;
                  var newMaster;
                  try {
                      newMaster = newDoc.masterSpreads.item(srcMaster.name);
                      newMaster.name;
                      }
                  catch (myError) {
                      newMaster = srcMaster.duplicate(undefined, newDoc);
                      }
                  newPage.appliedMaster = newMaster;
                  }
              for (var k = newDoc.pages.length -1; k >=0; k--) {
                  if (newDoc.pages[k].pageItems.length == 0){
                      try {
                          newDoc.pages[k].remove();
                          } catch (myError){};
                      }
                  }
              newDoc.masterSpreads[0].remove();
              if (firstPage.side === PageSideOptions.LEFT_HAND) {
                  newDoc.documentPreferences.startPageNumber = 2
                  }
              if (newDoc.pages.length == 1) {
                  fileName = "Page " + firstPage.name;
                  }
              else {
                  fileName = "Pages " + firstPage.name + " - " + lastPage.name;
                  }
              createPackage(newDoc);
              start += range;
              if (start == srcPages.length) {
                  isEnd = true;
                  }
              }
          }
              
      
      
      function createPackage(myNewDoc) {
          var targetFolder = new File("~/Desktop/" + srcTitle +"/" + fileName + "/");
          var flag = Folder(targetFolder).create();
          var versionComments = srcTitle + " " + fileName;
            if ( flag === true){
              var garbageFolder = new File("~/Desktop/" + srcTitle +"/Delete This Folder/");
              Folder(garbageFolder).create();
              myNewDoc.save(new File("~/Desktop/" + srcTitle + "/Delete This Folder/" + fileName + ".indd"))
              myNewDoc.packageForPrint (
              targetFolder, 
              copyingFonts, 
              copyingLinkedGraphics, 
              copyingProfiles, 
              updatingGraphics, 
              includingHiddenLayers,
              ignorePreflightErrors,
              creatingReport,
              includeIDML,
              includePDF,
              pdfStyle,
              versionComments,
              forceSave);
              myNewDoc.close(SaveOptions.no);
              var myTempFiles = Folder(garbageFolder).getFiles();
              for (l = myTempFiles.length - 1; l >= 0; l--) {
                  myTempFiles[l].remove();
                  Folder(garbageFolder).remove();
                  }
              }
          }
      
    • #86231
      Ari Singer
      Member

      The script has one drawback, though: empty pages do not get packaged. To some this might be a deal-breaker, but I hope to find a solution sometime soon.

      –Ari

      P.S. Thanks, Julie…

    • #86230
      Ari Singer
      Member

      NOTES:
      When you run the script you’re prompted with a dialog to enter the amount of pages that you want packaged at a time. Of course, the script does not accept any amount that is less than one, or more than the amount of pages in the document

      If you want to package each and every page individually (as Julie originally requested) just enter an amount of “1”.

      NOTE: The script has one drawback: Any empty pages don’t get packaged. This might be a deal-breaker for some. I hope to find a solution to this problem sometime soon.

    • #86258
      Ari Singer
      Member

      Sorry for making you crazy with these extra-long scripts, but I finally fixed it, and I recommend you use the new code.
      Now the script honors blank pages and packages it along (so books and the like don’t get messed up).

      //created by Ari S. --  [email protected]
      // Package entire document individually by the amount of pages at a time that you want
      
      app.scriptPreferences.enableRedraw = false;
      var srcDoc = app.activeDocument;
      var srcTitle = srcDoc.name;
      var srcPages = srcDoc.pages;
      var pgLength = srcPages.length;
      var srcW = srcDoc.documentPreferences.pageWidth;
      var srcH = srcDoc.documentPreferences.pageHeight;
      var srcPgLength = srcPages.length;
      var start = 0;
      var range, end, newDocName, isEnd, fileName;
      
      // ------- HERE YOU CAN CHANGE ANY PACKAGING SETTING THAT YOU WANT. TRUE means 'ON', and FALSE means 'OFF': ---------
      
      var copyingFonts = true;
      var copyingLinkedGraphics = true;
      var copyingProfiles = true;
      var updatingGraphics = true;
      var includingHiddenLayers = true;
      var ignorePreflightErrors = true;
      var creatingReport = true;
      var includeIDML = true;
      var includePDF = false;
      var pdfStyle = "";
      var forceSave = true;
      
      var myDialog = app.dialogs.add({name:"Package Export Range", canCancel:true});
      with (myDialog) {
          with(dialogColumns.add()) {
              with(dialogRows.add()) {
                  staticTexts.add ({staticLabel:"Enter the amount of pages you want to package at a time"});
                  with(dialogRows.add()) {
                      var myRangeBox = integerEditboxes.add({editValue:1});
                      }
                  }
              }
          }
      
      if (myDialog.show() == true) {
          range = myRangeBox.editValue;
          if (range == 0) {
              alert("0 is not a range!...");
              myDialog.destroy();
              exit();
              }
          else if (range > pgLength) {
              alert("Range can't be more than the amount of pages");
              myDialog.destroy();
              exit();
              }
          run();
          }
      else {
          myDialog.destroy();
          exit();
          }
              
      function run() {
          while (!isEnd) {
              var newDoc = app.documents.add({pageWidth: srcW, pageHeight: srcH});
              newDoc.masterSpreads[0].baseName = "garbage_master";
              end = start + range;
              if (end >= srcPages.length) {
                  end = srcPages.length;
                  isEnd = true;
                  }
              var firstPage = srcPages[start];
              var lastPage = srcPages[end - 1];
              for (var j = start; j < end; j++) {
                  var srcPage = srcPages[j];
                  var newPage;
                  if (j == start) {
                      newPage = srcPage.duplicate(LocationOptions.BEFORE, newDoc.pages[0]);
                      for (var k = newDoc.pages.length - 1; k > 0; k--) {
                          newDoc.pages[k].remove();
                          }
                      }
                  else {
                      newPage = srcPage.duplicate(LocationOptions.AFTER, newDoc.pages[-1])
                      }
                  srcMaster = srcPage.appliedMaster;
                  var newMaster;
                  try {
                      newMaster = newDoc.masterSpreads.item(srcMaster.name);
                      newMaster.name;
                      }
                  catch (myError) {
                      newMaster = srcMaster.duplicate(undefined, newDoc);
                      }
                  newPage.appliedMaster = newMaster;
                  }
              newDoc.masterSpreads[0].remove();
              if (firstPage.side === PageSideOptions.LEFT_HAND) {
                  newDoc.documentPreferences.startPageNumber = 2
                  }
              if (newDoc.pages.length == 1) {
                  fileName = "Page " + firstPage.name;
                  }
              else {
                  fileName = "Pages " + firstPage.name + " - " + lastPage.name;
                  }
              createPackage(newDoc);
              start += range;
              if (start == srcPages.length) {
                  isEnd = true;
                  }
              }
          }
              
      
      
      function createPackage(myNewDoc) {
          var targetFolder = new File("~/Desktop/" + srcTitle +"/" + fileName + "/");
          var flag = Folder(targetFolder).create();
          var versionComments = srcTitle + " " + fileName;
            if ( flag === true){
              var garbageFolder = new File("~/Desktop/" + srcTitle +"/Delete This Folder/");
              Folder(garbageFolder).create();
              myNewDoc.save(new File("~/Desktop/" + srcTitle + "/Delete This Folder/" + fileName + ".indd"))
              myNewDoc.packageForPrint (
              targetFolder, 
              copyingFonts, 
              copyingLinkedGraphics, 
              copyingProfiles, 
              updatingGraphics, 
              includingHiddenLayers,
              ignorePreflightErrors,
              creatingReport,
              includeIDML,
              includePDF,
              pdfStyle,
              versionComments,
              forceSave);
              myNewDoc.close(SaveOptions.no);
              var myTempFiles = Folder(garbageFolder).getFiles();
              for (l = myTempFiles.length - 1; l >= 0; l--) {
                  myTempFiles[l].remove();
                  Folder(garbageFolder).remove();
                  }
              }
          }
      
    • #88699
      Will Homan
      Member

      Hi Ari,
      I keep getting an error message in InDesign when I try and run this script. I checked the “How to install” link you posted above. I am trying to trouble shoot what the problem may be. I have very little context for these errors, I do not have much experience with scripts in this capacity.
      I did see a note from David in this post about the CMS changing the quotes when you copy and paste, could that be a concern?
      https://creativepro.com/creating-batch-pdfs.php

      Any help is appreciated.
      thanks!

    • #88702
      Ari Singer
      Member

      Hi, Will.

      It’s possible that the quotes is the problem. Download the original script from here: https://drive.google.com/open?id=0B1RRTxzKmM9oWDJMRjBDNUhUZGc

    • #89946
      Mark Welsh
      Member

      Hi Ari,

      I have just downloaded and installed your script into InDesign CS6. When I double click on the script to run it I get the following JavaScript Error message:

      Error Number: 30477
      Error String: Invalid value parameter
      ‘versionComments’ of method ‘packageForPrint’.
      Expected String, but received TRUE.

      Engine: main
      File: /Users/markw/Library/Preferences/Adobe InDesign/Version 8.0/en_GB/Scripts Panel/AutoPackage.jsx
      Line: 122
      Source: myNewDoc.packageForPrint (

      Please can you tell me if I’m doing something wrong, my document consists of 59 pages.

      Kind regards
      Mark

      • #89948
        Ari Singer
        Member

        Hi Mark. Have you tried downloading the script that I attached (as opposed to copying and pasting the text)?

    • #89984
      Mark Welsh
      Member

      Hi Ari,

      Yes I downloaded the file not copy/paste. It was called AutoPackage.jsx.txt, once I placed it in my User folder I deleted the .txt but when I double click on the script I get the error message and it only creates a separate InDesign file of the the first page, not all the pages.

      When I open the .jsx file in TextEdit it shows:

      //created by Ari S. — [email protected]
      // Package entire document individually by the amount of pages at a time that you want

      app.scriptPreferences.enableRedraw = false;
      var srcDoc = app.activeDocument;
      var srcTitle = srcDoc.name;
      var srcPages = srcDoc.pages;
      var pgLength = srcPages.length;
      var srcW = srcDoc.documentPreferences.pageWidth;
      var srcH = srcDoc.documentPreferences.pageHeight;
      var srcPgLength = srcPages.length;
      var start = 0;
      var range, end, newDocName, isEnd, fileName;

      // ——- HERE YOU CAN CHANGE ANY PACKAGING SETTING THAT YOU WANT. TRUE means ‘ON’, and FALSE means ‘OFF’: ———

      var copyingFonts = true;
      var copyingLinkedGraphics = true;
      var copyingProfiles = true;
      var updatingGraphics = true;
      var includingHiddenLayers = true;
      var ignorePreflightErrors = true;
      var creatingReport = true;
      var includeIDML = true;
      var includePDF = false;
      var pdfStyle = “”;
      var forceSave = true;

      var myDialog = app.dialogs.add({name:”Package Export Range”, canCancel:true});
      with (myDialog) {
      with(dialogColumns.add()) {
      with(dialogRows.add()) {
      staticTexts.add ({staticLabel:”Enter the amount of pages you want to package at a time”});
      with(dialogRows.add()) {
      var myRangeBox = integerEditboxes.add({editValue:1});
      }
      }
      }
      }

      if (myDialog.show() == true) {
      range = myRangeBox.editValue;
      if (range == 0) {
      alert(“0 is not a range!…”);
      myDialog.destroy();
      exit();
      }
      else if (range > pgLength) {
      alert(“Range can’t be more than the amount of pages”);
      myDialog.destroy();
      exit();
      }
      run();
      }
      else {
      myDialog.destroy();
      exit();
      }

      function run() {
      while (!isEnd) {
      var newDoc = app.documents.add({pageWidth: srcW, pageHeight: srcH});
      newDoc.masterSpreads[0].baseName = “garbage_master”;
      end = start + range;
      if (end >= srcPages.length) {
      end = srcPages.length;
      isEnd = true;
      }
      var firstPage = srcPages[start];
      var lastPage = srcPages[end – 1];
      for (var j = start; j < end; j++) {
      var srcPage = srcPages[j];
      var newPage;
      if (j == start) {
      newPage = srcPage.duplicate(LocationOptions.BEFORE, newDoc.pages[0]);
      for (var k = newDoc.pages.length – 1; k > 0; k–) {
      newDoc.pages[k].remove();
      }
      }
      else {
      newPage = srcPage.duplicate(LocationOptions.AFTER, newDoc.pages[-1])
      }
      srcMaster = srcPage.appliedMaster;
      var newMaster;
      try {
      newMaster = newDoc.masterSpreads.item(srcMaster.name);
      newMaster.name;
      }
      catch (myError) {
      newMaster = srcMaster.duplicate(undefined, newDoc);
      }
      newPage.appliedMaster = newMaster;
      }
      newDoc.masterSpreads[0].remove();
      if (firstPage.side === PageSideOptions.LEFT_HAND) {
      newDoc.documentPreferences.startPageNumber = 2
      }
      if (newDoc.pages.length == 1) {
      fileName = “Page ” + firstPage.name;
      }
      else {
      fileName = “Pages ” + firstPage.name + ” – ” + lastPage.name;
      }
      createPackage(newDoc);
      start += range;
      if (start == srcPages.length) {
      isEnd = true;
      }
      }
      }

      function createPackage(myNewDoc) {
      var targetFolder = new File(“~/Desktop/” + srcTitle +”/” + fileName + “/”);
      var flag = Folder(targetFolder).create();
      var versionComments = srcTitle + ” ” + fileName;
      if ( flag === true){
      var garbageFolder = new File(“~/Desktop/” + srcTitle +”/Delete This Folder/”);
      Folder(garbageFolder).create();
      myNewDoc.save(new File(“~/Desktop/” + srcTitle + “/Delete This Folder/” + fileName + “.indd”))
      myNewDoc.packageForPrint (
      targetFolder,
      copyingFonts,
      copyingLinkedGraphics,
      copyingProfiles,
      updatingGraphics,
      includingHiddenLayers,
      ignorePreflightErrors,
      creatingReport,
      includeIDML,
      includePDF,
      pdfStyle,
      versionComments,
      forceSave);
      myNewDoc.close(SaveOptions.no);
      var myTempFiles = Folder(garbageFolder).getFiles();
      for (l = myTempFiles.length – 1; l >= 0; l–) {
      myTempFiles[l].remove();
      Folder(garbageFolder).remove();
      }
      }
      }

    • #91755

      Ari
      I have installed and run your script but I get this error message:

      Error Number:21
      Error String : null is not an object

      Engine: main
      File: /users/jodie/Library/Preferences/Adobe Indesign/Version 11.0/
      en_GB/Scripts/Scripts Panel/AutoPackage.jsx
      Line: 90
      Source: newMaster = srcMaster.duplicate(undefined,
      newDoc);

      Have other people had this? how can I resolve?
      Many thanks!
      Heather

    • #92749

      I just installed your script and it works beautifully. I really want to thank you in particular for including the information about which elements to change to tweak the options–I copied the script and installed a tweaked version which creates a PDF and saves each individual page without packaging the fonts or links. That is really what I need to do, so this is a double thumbs up from me.

      • #92750
        Ari Singer
        Member

        Thanks for the kind words, Melise.

    • #93330
      Evgenyi R.
      Member

      Many thanks Ari!
      Your script works perfectly.
      But could you make option of this script for export of pages according to page numbers?
      Example: Page 2 or Page from 4 to 12

    • #98321
      Mo Mo
      Member

      Ari,

      This is SUCH a useful script so thank you very much!! Couple things I can’t figure out…

      1. When the packages are collected, it saves all the folders into what looks like an .indd file, which is ok really because when you double click to open you see it’s actually a folder with all the packaged folders inside it. Is there a way to have it package into a “regular” folder? Maybe the main folder name as an .indd extension so thats why it looks like an .indd file on my desktop?

      2. Not all the layers are collected properly, often it’s missing a background image. I tried unlocking all layers or making sure all images are CMYK instead of RGB but that doesnt seem to help, as it seems pretty random but most often doesnt package a background image. I then have to go back and recollect the spread.

      3. Is there a way to remove the “layer 1” layer that is created in the new packaged InDesign file?

      Thank you for your insight and help!!

    • #14323171

      I submitted a question the other day and it doesn’t seem like it’s showing up here. Does it need approval first?

      Thanks
      Sol

    • #14323170

      I’m resubmitting:

      I’m getting the error:

      Error Number:21
      Error String : null is not an object

      Engine: main
      File: /users/jodie/Library/Preferences/Adobe Indesign/Version 11.0/
      en_GB/Scripts/Scripts Panel/AutoPackage.jsx
      Line: 90
      Source: newMaster = srcMaster.duplicate(undefined,
      newDoc);

      I’m using the newest InDesign 2020 v15

      Are there ways to fix this?

      Thanks,
      Sol

    • #14323169
      David Blatner
      Keymaster

      Sorry about that, Solomon… I think something in the code forced it into our moderation queue. It’s up now.

    • #14323167

      Thank you.

      Anyone, have any solutions?

      Thanks,
      Sol

    • #1237634
      Ken Mcguire
      Member

      Hi Ari Is there a final file.

      I pulled the version posted: July 4, 2016 at 5:55 pm by Ari but I get an error:

      Error Number: 30477
      Error String: invalid value. for parameter
      ?useDocumentHyphenationExceptionsOnly? of method package for print?. Expeceted Boolean, but received “filename.indd Page 1”.

Viewing 23 reply threads
  • You must be logged in to reply to this topic.
>