Skip to main content
Participant
December 17, 2024
Question

Javascript for bookmarks

  • December 17, 2024
  • 2 replies
  • 499 views

I ran into a problem-can someone please help me?

 

i'm trying to write a javascript for bookmark.

my desire outcom would be:

1- extract the desire pages when clicked on the bookmark

2. make no changes to my original doc.

 

here is my code:


var pageNumbers = [0,1,20];

var newDoc = this.extractPages({
nStart: pageNumbers[0],
nEnd: pageNumbers[pageNumbers.length - 1]
});

// Save the new document (optional)
newDoc.saveAs("/C/Users/YourUserName/Documents/ExtractedPages.pdf");

// Close the new document (optional, if you don't want to leave it open)
newDoc.closeDoc();

 

the expected outcome is to extract and shows pages 1,2 and 21

but the issue is, it shows pages 1 to 21, i mean all the pages.

 

can you please correct my code inorder to shows only the 3 pages i asked the code.

 

thanks.

 

This topic has been closed for replies.

2 replies

PDF Automation Station
Community Expert
Community Expert
December 17, 2024

nStart:pageNumbers[0] is 0, the first page.

nEnd: pageNumbers[pageNumbers.length-1] is 20

That means you are extracting pages 0-20 (or pages 1 through 21).  If you want to extract pages 1,2 and 21 you will have to either extract pages 1 and 2, then use insertPages on the new doc to get page 21, or extract pages 1 through 21 and delete pages 3 through 20 like this:

 

var newDoc = this.extractPages({
nStart: pageNumbers[0],
nEnd: pageNumbers[pageNumbers.length - 1]
});
newDoc.deletePages(2,19);

 

As @Thom Parker stated, you can't save silently unless you are calling SaveAs from a privileged context.

 

Participant
December 17, 2024

var pageNumbers = [0,1,20];

var newDoc = this.extractPages({

nStart: pageNumbers[0],

nEnd: pageNumbers[pageNumbers.length - 1]

});

newDoc.deletePages(2,19);

newDoc.saveAs("/C/Users/YourUserName/Documents/ExtractedPages.pdf");

newDoc.closeDoc();

this line worked. finally

thanks guys

Thom Parker
Community Expert
Community Expert
December 17, 2024

Take a look in the Console Window.  There will be a security error reported.

The SaveAs function can only be called from a privileged context.  

See this article:

https://www.pdfscripting.com/public/How-to-Save-a-PDF-2.cfm

 

Thom Parker - Software Developer at PDFScriptingUse the Acrobat JavaScript Reference early and often