top of page

Just a brief note tonight about how to write the script for PDF Splitter discussed in the Tip of the Night for January 28, 2018. For some reason when the names for the files are designated to begin with a number instead of a letter, PDF Splitter truncates the names at the beginning by one digit. Be sure to add a letter prefix to the names of extracted PDF files that you create using this software. So for example instead of a line of script like this:

"C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "1-8" -cp 8 -t "888172001"

. . . write the script like this:

"C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "1-8" -cp 8 -t "x888172001"

PDF Splitter should create a file which includes the x in front and the full sequence of digits. Naturally you can remove the x after the script has been run using Bulk Rename Utility.


 
 

I've posted about PDF Splitter before, the last time on June 17, 2015 , when I discussed how to use the -fo (file overwrite) command to circumvent the program's prompting you to auto-rename new PDFs each time they are extracted from the same source file. PDF Splitter has a number of functions, but it's particularly useful in running a script to extract specified pages ranges from multiple PDF source files. See the Tip of the Night for May 27, 2015.

Tonight I devised a new way to use a script with PDF Splitter to specify the file names of the extracted PDFs. Adding the operator -t to the end of a line of script, followed by the name you want to the extracted file to have (don't include the extension .pdf) will rename the file as specified after it is extracted.

So we want to have a line of script like this:

"C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "1-8" -cp 8 -t "Exhibit 001"

So first we enter the line to the application itself:

"C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe"

Next is the path to the source file:

"C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf"

This is followed by the path to the destination folder for the extracted files:

"C:\O'Shea Documents\Litigation Support\PDF Splitter\process\"

Then the operator -p is used to designated the range of pages to be extracted:

-p "1-8"

Then we use the -cp operator to combine the extracted pages. It must list the total number of pages in the new file"

-cp 8

Last we use -t to give the extracted file a name:

-t "Exhibit 001"

We can parse out multiple lines of script this way in an Excel file

Copy the columns into a text file, file and then find and replace the tabs with nothing, so we end up with this script:

"C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "1-8" -cp 8 -t "Exhibit 001" "C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\2016_Judges_Survey.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "12-15" -cp 4 -t "Exhibit 002" "C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\Alternate Forms of ESI.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "3-4" -cp 2 -t "Exhibit 003" "C:\Program Files (x86)\PDF Splitter\PDFSplitter.exe" "C:\O'Shea Documents\Litigation Support\PDF Splitter\Excel Print.pdf" "C:\O'Shea Documents\Litigation Support\PDF Splitter\process\" -p "10-15" -cp 6 -t "Exhibit 004"

Then change the extension of the text file to, '.bat' and we have a batch file that's ready to run. When it's clicked on it will extract pages from the PDFs in this folder:

. . . and working in Windows command prompt

. . . generate these new files:


 
 

Here's an update to the Tip of the Night for January 15, 2018. This version of the code allows for an online table to be sorted alphabetically from A to Z and back again, and numerically in the second column. The same basic rules apply with respect to adding new entries.

Ugh. Two nights in a row at work at the firm past midnight. Maybe the real tip tonight should be to go hang out at Mood Ring on Myrtle Avenue in Bushwick, Brooklyn.

<!DOCTYPE html> <html> <head> <title>Sort a HTML Table Alphabetically</title> <style> table { border-spacing: 0; width: 100%; border: 1px solid #ddd; }

th { cursor: pointer; }

th, td { text-align: left; padding: 16px; }

tr:nth-child(even) { background-color: #f2f2f2 } </style> </head> <body>

<p><strong>Click the headers to sort the table.</strong></p> <p>The first time you click, the sorting direction is ascending (A to Z).</p> <p>Click again, and the sorting direction will be descending (Z to A):</p>

<table id="myTable"> <tr> <!--When a header is clicked, run the sortTable function, with a parameter, 0 for sorting by names, 1 for sorting by country:--> <th onclick="sortTable(0)">Name</th> <th onclick="sortTable(1)">Stage</th> </tr> <tr> <td>Information Governance</td> <td>1</td> </tr> <tr> <td>Identification</td> <td>2</td> </tr> <tr> <td>Preservation</td> <td>3</td> </tr> <tr> <td>Collection</td> <td>4</td> </tr> <tr> <td>Processing</td> <td>5</td> </tr> <tr> <td>Review</td> <td>6</td> </tr> <tr> <td>Analysis</td> <td>7</td> </tr> <tr> <td>Production</td> <td>8</td> </tr> <tr> <td>Production</td> <td>9</td> </tr> </table>

<script> function sortTable(n) { var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; table = document.getElementById("myTable"); switching = true; //Set the sorting direction to ascending: dir = "asc"; /*Make a loop that will continue until no switching has been done:*/ while (switching) { //start by saying: no switching is done: switching = false; rows = table.getElementsByTagName("TR"); /*Loop through all table rows (except the first, which contains table headers):*/ for (i = 1; i < (rows.length - 1); i++) { //start by saying there should be no switching: shouldSwitch = false; /*Get the two elements you want to compare, one from current row and one from the next:*/ x = rows[i].getElementsByTagName("TD")[n]; y = rows[i + 1].getElementsByTagName("TD")[n]; /*check if the two rows should switch place, based on the direction, asc or desc:*/ if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { //if so, mark as a switch and break the loop: shouldSwitch= true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { //if so, mark as a switch and break the loop: shouldSwitch= true; break; } } } if (shouldSwitch) { /*If a switch has been marked, make the switch and mark that a switch has been done:*/ rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; //Each time a switch is done, increase this count by 1: switchcount ++; } else { /*If no switching has been done AND the direction is "asc", set the direction to "desc" and run the while loop again.*/ if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } } </script>

</body> </html>


 
 

Sean O'Shea has more than 20 years of experience in the litigation support field with major law firms in New York and San Francisco.   He is an ACEDS Certified eDiscovery Specialist and a Relativity Certified Administrator.

The views expressed in this blog are those of the owner and do not reflect the views or opinions of the owner’s employer.

If you have a question or comment about this blog, please make a submission using the form to the right. 

Your details were sent successfully!

© 2015 by Sean O'Shea . Proudly created with Wix.com

bottom of page