Skip to main content
Mahesh_JW
Inspiring
July 30, 2010
Answered

Place all pages in pdf into indesign

  • July 30, 2010
  • 2 replies
  • 9150 views

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.

This topic has been closed for replies.
Correct answer arekh2792424

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!

2 replies

arekh2792424
arekh2792424Correct answer
Inspiring
March 3, 2017

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!

Peter Kahrel
Community Expert
Community Expert
July 30, 2010

Do a google on "pdf placer zanelli".

Peter

Mahesh_JW
Mahesh_JWAuthor
Inspiring
July 31, 2010

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.

Inspiring
July 31, 2010

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