简体   繁体   English

Adobe PDF Javascript 提取名称,保存文件

[英]Adobe PDF Javascript to Extract Name, save file

Looking for some help with Javascript in Adobe Acrobat Pro XI.在 Adob​​e Acrobat Pro XI 中寻找有关 Javascript 的帮助。

Here's what I have so far:这是我到目前为止所拥有的:

   /* Extract pages to file */
   // Regular expression used to acquire the base name of file

   var re = /\.pdf$/i;
   // filename is the base name of the file Acrobat is working on

   var filename = this.documentFileName.replace(re,"");

   try {for (var i = 0; i < this.numPages; i+=4)
         this.extractPages({
            nStart: i,
            nEnd: i+3,
         });         
   } catch (e) { console.println("Aborted: " + e) }

What happens now is that it extracts the page range and creates a series of open files that I can then rename.现在发生的是它提取页面范围并创建一系列打开的文件,然后我可以重命名这些文件。

What I'd like to do is add a loop to extract a name from the bill, then use that as the file name to create a new file in a folder.我想要做的是添加一个循环来从账单中提取一个名称,然后使用它作为文件名在文件夹中创建一个新文件。

I found this:我找到了这个:

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;
        }
    }
}

which I think will get me part of the way there, but I'm not sure how to include that in my loop.我认为这将使我成为那里的一部分,但我不确定如何将其包含在我的循环中。

I think I need to search the document a static string (in this case "Student Name") and then return the next two words.我想我需要在文档中搜索一个静态字符串(在本例中为“学生姓名”),然后返回接下来的两个单词。

Worked up a file to do this sort of thing using copy-pasted code (and some help from Thom Parker on the Adobe Forums, see: https://community.adobe.com/t5/acrobat/step-by-step-instructions-for-saving-a-pdf-in-acrobat-dc-using-a-javascript/mp/10893916?page=1#M238905 )使用复制粘贴的代码编写了一个文件来执行此类操作(以及来自 Adob​​e 论坛上的 Thom Parker 的一些帮助,请参阅: https : //community.adobe.com/t5/acrobat/step-by-step-instructions -for-saving-a-pdf-in-acrobat-dc-using-a-javascript/mp/10893916?page=1#M238905 )

 // https://community.adobe.com/t5/acrobat/how-to-set-up-a-default-value-in-execdialog/td-p/9343585?page=1 var dialogTitle = "Please specify "; var defaultAnswer = ""; var stringToSearchFor = app.response("Client ID", dialogTitle, defaultAnswer); //https://acrobatusers.com/tutorials/print/how-save-pdf-acrobat-javascript/ /* Put script title here */ // 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 = "64718"; 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); // https://community.adobe.com/t5/acrobat/how-to-save-as-pdf-form-using-script/td-p/9848947?page=1 // Split Path into an array so it is easy to work with var aMyPath = this.path.split("/"); // Remove old file name aMyPath.pop(); // Add new file name aMyPath.push(stringToSearchFor); // Put path back together and save d.saveAs(aMyPath.join("/")+".pdf"); }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM