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

How to "Place as linked file" (not "import") a multipage PDF file on a single Artboard ?

New Here ,
Oct 11, 2014 Oct 11, 2014

ILLUSTRATOR CS4

Hello,

I often use the import multiPDF script from Carlos Canto and it works great.

But i sometimes get multipage PDFs from customers only with text, and the fonts are so rarely embedded.

As you may know, the solution to have this fonts "vectorised" even if you don't have it in your Font collection is to place your pdf as linked file (menu File-> Place with the "link" box checked) in an open document (or to drag and drop it), and then, via the Menu Object->Flatten Transparency, i check the box "Embed text" to have it done.

So to automate it with a multipage PDF, and inspired by Carlos' script, I tried this :

/////////////////////////////////////////////////

var doc = app.activeDocument;

app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

var pdfOptions = app.preferences.PDFFileOptions;

var firstPage = 1;

var lastPage = 10;

pdfFile = File.openDialog("Open Multi-page PDF", "*.pdf", false);

for (i= firstPage;i<lastPage;i++)

     {

         pdfOptions.pageToOpen = i;

         var  thisPlacedItem = doc.placedItems.add();

         thisPlacedItem.file = pdfFile;

     };

/////////////////////////////////////////////////

It doesn't work ! I end up with 10 placedItems of the page number 1 of the pdf file. Maybe that the pageToOpen option only works when i use the Open method ? In fact no, cause if i launch only the following 2 lines and then i drag and drop the pdf file, the page specified (page 8 in the example) is right placed.

//////////////////

var pdfOptions = app.preferences.PDFFileOptions;

pdfOptions.pageToOpen = 8;

/////////////////

I don't know how to do to fix it. I have 2 solutions but it only makes it "semi automatic" :

- Create a palette dialog with a button than increases one by one the pageToOpen option and then drag and drop my file one time for every pages (easy)

- Without the palette and the button, but with an event listener with a function that increases the pageToOpen value each time i drag and drop a new file (maybe by listening to changes in document.placedItems.length), but is it possible ?

Any suggestions ?

Thank you for your help!

TOPICS
Scripting
1.0K
Translate
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 12, 2014 Oct 12, 2014

I end up with 10 placedItems of the page number 1 of the pdf file. Maybe that the pageToOpenoption only works when i use the Open method ?

I had the same problem, my first option was to place the pdf pages, I couldn't make it work so I had no choice but to open the file instead.

going with your first option, besides dragging, Actions can also place the correct page, based on the pageToOpen property...so there's hope, record an Action to place your pdf and...

1. run your script to increase the pag

...
Translate
Adobe
Community Expert ,
Oct 12, 2014 Oct 12, 2014

I end up with 10 placedItems of the page number 1 of the pdf file. Maybe that the pageToOpenoption only works when i use the Open method ?

I had the same problem, my first option was to place the pdf pages, I couldn't make it work so I had no choice but to open the file instead.

going with your first option, besides dragging, Actions can also place the correct page, based on the pageToOpen property...so there's hope, record an Action to place your pdf and...

1. run your script to increase the pageToOpen property

2. play your action

3. repeat for each page

actions can also run scripts, so you can do that too.

if you had CS6, it'd be easier, CS6 can play Actions with Javascript

Translate
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
New Here ,
Oct 12, 2014 Oct 12, 2014

Ok,

So I just have to record an action to place the file, and then insert my script. Thats a good solution and it's very

timesaving to use it !

The script increases the pagetoopen option, but i also added a palette with a button to reset the counter and another button to increase it by yourself, in case if i just wanted to place page 3, page 8 for example.

Thank you for your help !

//////////////////////////////

#target illustrator

#targetengine session

var doc = app.activeDocument;

var pdfOptions = app.preferences.PDFFileOptions;

var win = new Window ("palette");

win.location = [50, 500];

var btnReset = win.add("button",undefined,"reset");

var btnInc = win.add("button",undefined,"+1");

var txtcpt = win.add("statictext",undefined,"Page number : " + pdfOptions.pageToOpen);

btnInc.onClick = function()

{

    pdfOptions.pageToOpen++;

    txtcpt.text = "Page number : " + pdfOptions.pageToOpen;

}

btnReset.onClick = function()

{

    pdfOptions.pageToOpen = 1;

    txtcpt.text = "Page number : " + pdfOptions.pageToOpen;

}

win.show();

pdfOptions.pageToOpen++;

///////////////////////////////////////////////////

Translate
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 ,
Oct 12, 2014 Oct 12, 2014
LATEST

that worked out well, thanks for sharing

Translate
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