Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save markbosky/a1ab050e9caacd61414d8c62a883d96e to your computer and use it in GitHub Desktop.
Save markbosky/a1ab050e9caacd61414d8c62a883d96e to your computer and use it in GitHub Desktop.
Adobe Acrobat Action Wizard: Takes a pdf with filename (mmddyy), clears document properties, then fills meta from parsed filename
<?xml version="1.0" encoding="UTF-8"?>
<Workflow xmlns="http://ns.adobe.com/acrobat/workflow/2012" title="Date as Filename to Document Properties (mmddyy)" description="Takes a pdf with filename (mmddyy), clears document properties, then fills meta from parsed filename." majorVersion="1" minorVersion="0">
<Sources>
<Folder path="/C/documents"/>
</Sources>
<Group label="Untitled">
<Command name="GeneralInfo" pauseBefore="false" promptUser="false">
<Items>
<Item name="Author" type="text" value=""/>
<Item name="Keywords" type="text" value=""/>
<Items name="LeaveAsIs">
<Item name="Author" type="boolean" value="false"/>
<Item name="Keywords" type="boolean" value="false"/>
<Item name="Subject" type="boolean" value="false"/>
<Item name="Title" type="boolean" value="false"/>
</Items>
<Item name="Subject" type="text" value=""/>
<Item name="Title" type="text" value=""/>
</Items>
</Command>
<Command name="JavaScript" pauseBefore="false" promptUser="false">
<Items>
<Item name="ScriptCode" type="text" value="var filename = this.documentFileName.replace(/.pdf/,&quot;&quot;);&#xD;&#xA;this.info.filename = filename;&#xD;&#xA;this.info.title = filename;&#xD;&#xA;var serial_date_str = filename.split(&quot;_&quot;);&#xD;&#xA;this.info.serial = serial_date_str[0];&#xD;&#xA;if(typeof serial_date_str[1] !== &apos;undefined&apos;){&#xD;&#xA; var dateString = serial_date_str[1];&#xD;&#xA; var dateLen = dateString.length;&#xD;&#xA; var res = /^\d{1,2}\d{1,2}\d{2}$/.test(dateString);&#xD;&#xA;}&#xD;&#xA;&#xD;&#xA;if(typeof dateString !== &apos;undefined&apos;){&#xD;&#xA; if(dateLen == 6 &amp;&amp; res == true){&#xD;&#xA; this.info.date = dateString;&#xD;&#xA; var dateStringParse = dateString.match(/.{1,2}/g);&#xD;&#xA; this.info.month = dateStringParse[0];&#xD;&#xA; this.info.day = dateStringParse[1];&#xD;&#xA; this.info.year = &quot;20&quot;+dateString.substr(4, 2);&#xD;&#xA; }&#xD;&#xA; else if(dateLen != 6){&#xD;&#xA; var lastTwo = dateString.slice(-2);&#xD;&#xA; var yearTest = /^\d{1,2}$/.test(lastTwo);&#xD;&#xA; &#xD;&#xA; if(yearTest == true){&#xD;&#xA; this.info.year = &quot;20&quot;+lastTwo;&#xD;&#xA; } &#xD;&#xA; }&#xD;&#xA;}"/>
<Item name="ScriptName" type="text" value=""/>
</Items>
</Command>
<Command name="WorkflowPlaybackSaveFiles" pauseBefore="false" promptUser="false">
<Items>
<Item name="AddToBaseName" type="boolean" value="true"/>
<Item name="DocSaveDestType" type="string" value="WorkflowPlaybackSaveInAFolder"/>
<Item name="DontOverwrite" type="boolean" value="true"/>
<Item name="EmbedIndex" type="boolean" value="false"/>
<Item name="FS" type="atom" value="DOS"/>
<Item name="FileVariation" type="integer" value="0"/>
<Item name="HandleOutput" type="boolean" value="true"/>
<Item name="InsertAfterBaseName" type="text" value="processed"/>
<Item name="InsertBeforeBaseName" type="text" value=""/>
<Item name="NumbericNaming" type="boolean" value="false"/>
<Item name="OptimizePDF" type="boolean" value="true"/>
<Item name="PreselectedFolderPath" type="text" value="/C/documents"/>
<Item name="PresetName" type="text" value="Standard"/>
<Item name="RunPDFOptimizer" type="boolean" value="true"/>
</Items>
</Command>
</Group>
</Workflow>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment