7 Replies Latest reply on Mar 3, 2017 9:01 AM by arekh2792424

    Place all pages in pdf into indesign

    Mahesh_JW Level 1

      I want to place all pages in a pdf file into indesign, I mean need to load all pages in a pdf in single place method and place every pages individually on iterating through pages in indesign.

       

      Note: Manually this can be done by enable "Show import option",which opens preference window in which we can prefer to ALL option under PAGES menu under GENERAL tab while preforming Place pdf.

        • 1. Re: Place all pages in pdf into indesign
          Peter Kahrel Adobe Community Professional & MVP

          Do a google on "pdf placer zanelli".

           

          Peter

          • 2. Re: Place all pages in pdf into indesign
            Mahesh_JW Level 1

            Peter,

             

            I need to achieve this task through scripting not by means of plugin.

            If you provide an example script that would be more helpful.

             

            thanks in advance.

            • 3. Re: Place all pages in pdf into indesign
              Shonkyin Level 3

              You are finding PlaceMultipagePDF.jsx script and here is it for you

               

              //PlaceMultipagePDF.jsx
              //An InDesign CS3 JavaScript
              //
              //Places all of the pages of a multi-page PDF.
              //
              //For more on InDesign scripting, go to http://www.adobe.com/products/indesign/xml_scripting.html
              //or visit the InDesign Scripting User to User forum at http://www.adobeforums.com
              //
              //Display a standard Open File dialog box.
              var myPDFFile = File.openDialog("Choose a PDF File");
              if((myPDFFile != "")&&(myPDFFile != null)){
                   var myDocument, myPage;
                  if(app.documents.length != 0){
                      myDocument, myNewDocument = myChooseDocument();
                  }
                  else{
                        myDocument = app.documents.add();
                        myNewDocument = false;
                  }
                  if(myNewDocument == false){
                       myPage = myChoosePage(myDocument);
                  }
                  else{
                      myPage = myDocument.pages.item(0);
                  }
                  myPlacePDF(myDocument, myPage, myPDFFile);
              }
              function myChooseDocument(){
                  var myDocumentNames = new Array;
                  myDocumentNames.push("New Document");
                  //Get the names of the documents
                  for(var myDocumentCounter = 0;myDocumentCounter < app.documents.length; myDocumentCounter++){
                      myDocumentNames.push(app.documents.item(myDocumentCounter).name);
                  }
                  var myChooseDocumentDialog = app.dialogs.add({name:"Choose a Document", canCancel:false});
                  with(myChooseDocumentDialog.dialogColumns.add()){
                      with(dialogRows.add()){
                          with(dialogColumns.add()){
                              staticTexts.add({staticLabel:"Place PDF in:"});
                          }
                          with(dialogColumns.add()){
                              var myChooseDocumentDropdown = dropdowns.add({stringList:myDocumentNames, selectedIndex:0});
                          }
                      }
                  }
                   myChooseDocumentDialog.show();
                  if(myChooseDocumentDropdown.selectedIndex == 0){
                      myDocument = app.documents.add();
                      myNewDocument = true;
                  }
                  else{
                       myDocument = app.documents.item(myChooseDocumentDropdown.selectedIndex-1);
                      myNewDocument = false;
                  }
                  myChooseDocumentDialog.destroy();
                  return myDocument, myNewDocument;
              }
              function myChoosePage(myDocument){
                  var myPageNames = new Array;
                  //Get the names of the pages in the document
                  for(var myCounter = 0; myCounter < myDocument.pages.length;myCounter++){
                      myPageNames.push(myDocument.pages.item(myCounter).name);
                  }
                  var myChoosePageDialog = app.dialogs.add({name:"Choose a Page", canCancel:false});
                  with(myChoosePageDialog.dialogColumns.add()){
                      with(dialogRows.add()){
                          with(dialogColumns.add()){
                              staticTexts.add({staticLabel:"Place PDF on:"});
                          }
                          with(dialogColumns.add()){
                              var myChoosePageDropdown = dropdowns.add({stringList:myPageNames, selectedIndex:0});
                          }
                      }
                  }
                  myChoosePageDialog.show();
                  var myPage = myDocument.pages.item(myChoosePageDropdown.selectedIndex);
                  myChoosePageDialog.destroy();
                  return myPage;
              }
              function myPlacePDF(myDocument, myPage, myPDFFile){
                   var myPDFPage;
                   app.pdfPlacePreferences.pdfCrop = PDFCrop.cropMedia;
                   var myCounter = 1;
                   var myBreak = false;
                   while(myBreak == false){
                        if(myCounter > 1){
                             myPage = myDocument.pages.add(LocationOptions.after, myPage);
                        }
                        app.pdfPlacePreferences.pageNumber = myCounter;
                        myPDFPage = myPage.place(File(myPDFFile), [0,0])[0];
                        if(myCounter == 1){
                             var myFirstPage = myPDFPage.pdfAttributes.pageNumber;
                        }
                        else{
                             if(myPDFPage.pdfAttributes.pageNumber == myFirstPage){
                                  myPage.remove();
                                  myBreak = true;
                             }
                        }
                        myCounter = myCounter + 1;
                   }
              }
              

               

               

              Shonky

              • 4. Re: Place all pages in pdf into indesign
                Peter Kahrel Adobe Community Professional & MVP

                > I need to achieve this task through scripting not by means of plugin.

                 

                Zanelli's PDF placer is script.

                 

                > If you provide an example script that would be more helpful.

                 

                If you can be bothered to have a look you'll find you you're looking for.

                 

                Peter

                • 5. Re: Place all pages in pdf into indesign
                  Mahesh_JW Level 1

                  thanks Shonky

                   

                  script you provided is works fine. But my requirement is to place in a (trim sized) rectangle box in pages.

                   

                  while i change the code to my require it throws error.the code i tried out is:

                  myPDFPage = myPage.rectangles[0].place(File(myPDFFile));

                   

                  error occurs in the below line:

                  var myFirstPage = myPDFPage.pdfAttributes.pageNumber;

                   

                  it shows undefined is not a object.

                   

                  can you guide where i went wrong with this code.

                  thanks in advance.

                  • 6. Re: Place all pages in pdf into indesign
                    Shonkyin Level 3

                    if you want place your pdf trim size then change below code:

                     

                         app.pdfPlacePreferences.pdfCrop = PDFCrop.CROP_TRIM;

                     

                    and here is Zanelli's PDF placer which is suggested by Peter. It's really nice script.

                     

                    Shonky

                    • 7. Re: Place all pages in pdf into indesign
                      arekh2792424 Level 1

                      Hello! I encountered this problem myself and came up with a solution that worked for me.

                       

                      This is how I broke it down:

                       

                      1: Create a dialog with an edit box where you type the number of pages in the document you wish to import.

                      2: Prompt the user to select a file to place.

                      3: Create a for loop that iterates through as many times as there are pages in the placed PDF

                      4: Import the page number of the PDF on the matching page number on the indesign file by refering to the current value of the counter for both.

                       

                       

                       

                      Here are some segments of code from my script that may be of use to you:

                         

                      1: with(borderPanels.add()){

                                          staticTexts.add({staticLabel: "Page Count:"});

                                          var PageCount = integerEditboxes.add({minimumValue: 1, maximumValue: 9999, editValue: 1, minWidth: 50});

                                          }

                      var SelectedPageCount = parseInt(PageCount.editValue);

                       

                      2: var Art = File.openDialog

                       

                      3/4: function PlaceFile (Document, Art, SelectedPageCount) {

                          //Create a counter from the page count

                          var Counter = SelectedPageCount

                         

                              // Automated Placement

                                   for (Counter; Counter > 0; Counter --) {

                                          app.pdfPlacePreferences.pageNumber = Counter;

                                          var placeFile1 = Document.pages.item(Counter + "").place(Art, ["0.5in" ,"0.5in"])[0];

                                          //This resets the imported page default to 1 for next time a document is placed

                                          app.pdfPlacePreferences.pageNumber = 1;

                                       }

                                  }

                       

                       

                      I hope this is of use to you!