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

Create one report from multiple pdf files

Explorer ,
Jan 14, 2018 Jan 14, 2018

Copy link to clipboard

Copied

I have an action script to create a report listing the document file names from multiple pdf files.

The script is creating multiple reports for each pdf file, instead of appending each document file name in the single report.

If anyone can help to amend the script so that a single report is created will be most appreciated

// Begin job

var docfile = this.documentFileName;

if ( typeof global.counter == "undefined" )

{

global.counter = 0;

}

// Main code to process each of the selected files

try {

global.counter++

global.report = new Report()

global.report.writeText("Report on File \#"+global.counter + docfile + "\r\n");

global.report.open("job report")

} catch(e) {

console.println("Batch aborted on run #" + global.counter);

delete global.counter; // Try again, and avoid End Job code

event.rc = false; // Abort batch

}

// End job

if ( global.counter == global.FileCnt ) {

console.println("End Job Code"); /

/ Insert endJob code here

// Remove any global variables used in case user wants to run

// another batch sequence using the same variables

delete global.counter;

}

TOPICS
Acrobat SDK and JavaScript

Views

619

Translate

Translate

Report

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 , Jan 15, 2018 Jan 15, 2018

This is what I used for most of the Action scripts I created on this page:

https://acrobatusers.com/actions-exchange

Rick Borstein hired me to create them, so look at all the ones with his name.

try{global.oBkmkSumDoc.path;}

catch(e)

{

    global.oBkmkSumDoc = new report();

.. Build report doc.

}

Usually there is also a custom dialog that is displayed at the same time the new report is created. The important bit here is that accessing the properties of a dead object will throw an exception. So if the rep

...

Votes

Translate

Translate
Community Expert ,
Jan 14, 2018 Jan 14, 2018

Copy link to clipboard

Copied

Try this:

if (global.counter == 1) global.report = new Report();

Votes

Translate

Translate

Report

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 ,
Jan 15, 2018 Jan 15, 2018

Copy link to clipboard

Copied

This is what I used for most of the Action scripts I created on this page:

https://acrobatusers.com/actions-exchange

Rick Borstein hired me to create them, so look at all the ones with his name.

try{global.oBkmkSumDoc.path;}

catch(e)

{

    global.oBkmkSumDoc = new report();

.. Build report doc.

}

Usually there is also a custom dialog that is displayed at the same time the new report is created. The important bit here is that accessing the properties of a dead object will throw an exception. So if the report file does not exist, it will be created and the initial setup params dialog will be displayed. If it does exist, then anything new that happens will be added to it.

Keeping parameters like a report count are unreliable. There is no way to know if something outside your Action is affecting parameters like a global.counter, so it is unreliable. But a pointer to the report document is very direct and reliable. It either exists or is doesn't.

In my setup the report document is completely built and then the dynamic data from the batch process is collected into form fields.  I think it's a bad idea to leave a report object hanging between batch operations. There is literally no way to know when the Batch process is finished, unless you require the use to hit some kind of finish button.

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

Votes

Translate

Translate

Report

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
Explorer ,
Jan 15, 2018 Jan 15, 2018

Copy link to clipboard

Copied

LATEST

Thank you very much Thom.

Downloaded the Create Comment Summary script from Actions exchange.

I have adapted the part of this action that creates a new document and lists all document file names from multiple pdf files.

This is a very impressive action with a detailed amount of scripting, well done.

Votes

Translate

Translate

Report

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