This is my first time using Actions in Adobe Pro. I would like to..
- Remove all pages in a PDF that contain any of the following strings (Total, Word Document, Excel Spreadsheet) for a PDF in Adobe Pro.
- Remove common strings (CSI, Export, Import) from all pages throughout the PDF.
The following code was found online and addresses #1 but extracts pages based on 1 string, I was not able to get it to work and I would also prefer to run through multiple strings and delete the pages.
// Iterates over all pages and find a given string and extracts all // pages on which that string is found to a new file. var pageArray = []; var stringToSearchFor = "Total"; for (var p = 0; p < this.numPages; p++) { // iterate over all words for (var n = 0; n < this.getPageNumWords(p); n++) { if (this.getPageNthWord(p, n) == stringToSearchFor) { pageArray.push(p); break; } } } if (pageArray.length > 0) { // extract all pages that contain the string into a new document var d = app.newDoc(); // this will add a blank page - we need to remove that once we are done for (var n = 0; n < pageArray.length; n++) { d.insertPages( { nPage: d.numPages-1, cPath: this.path, nStart: pageArray[n], nEnd: pageArray[n], } ); } // remove the first page d.deletePages(0); }
Advertisement
Answer
- One word and two word phrase options.
one-word:
for (var p=this.numPages-1; p>=0; p--) { if (this.numPages==1) break; for (var n=0; n<this.getPageNumWords(p)-1; n++) { if (this.getPageNthWord(p, n) == "one-word") { this.deletePages(p); break; } } }
two-word:
for (var p=this.numPages-1; p>=0; p--) { if (this.numPages==1) break; for (var n=0; n<this.getPageNumWords(p)-1; n++) { if (this.getPageNthWord(p, n) == "1st-word" && this.getPageNthWord(p, n+1) == "2nd-word") { this.deletePages(p); break; } } }
- Within Adobe XI Pro, Tools–> Protection–>Search & Remove Text