Recent Posts

Pages: [1] 2 3 ... 10
General / Re: date format
« Last post by RTT on June 02, 2024, 04:34:43 PM »
You need to create a custom grid layout, and add to it a dynamic calculated column with a formula such as:
This will create a grid column where the PDF creation date is shown with the format defined in that formula. Because there is no format reference to the time, only the date part will be visible.
General / date format
« Last post by Roberto Marson on June 02, 2024, 09:57:16 AM »
 wanted to display only the date without the times in the creation date column. It's possible?
General / New Version
« Last post by dohnjoe on May 11, 2024, 05:12:49 PM »
Will there ever be a new version?
If yes, can you share the list of new features?
Bug reports / Re: Extract Images (no append option?)
« Last post by RTT on April 18, 2024, 01:56:20 AM »
These options are only about the filenames. The image is always extracted, even if the skip name option is selected. If a file with the same name exists, the newly extracted image gets the next available name. Internally to the PDF, the image objects have no names. The names are generated by the tool by appending a number to the name prefix specified, and that number is sequential.
Bug reports / Extract Images (no append option?)
« Last post by nightslayer23 on April 17, 2024, 05:43:45 AM »
Hey, when using the extract images function, the only options to handle duplicate filenames or images is to:

  • Replace It
  • Skip Name

There however should be an option to save the duplicates? Append filename?
Ideas/Suggestions / Re: optimize PDFs for machine learning / AI model training
« Last post by RTT on February 26, 2024, 02:48:50 AM »
There are functionalities to extract text, with the possibility to get font information (name, size,...), but not to edit it.

Take note it's not easy to segment a PDF in order to isolate these parts you want to remove. Internally, for the worst-case scenarios, you may have a "goto xy" and "print command" for each of the characters, without any specific order. There is no indication of what is a word, paragraph, etc. You need functionality like the used in OCR tools, that are able to provide that type of feature extraction in a useful format like hOCR.
My company trains and grounds Large Language Model (LLM) with PDF files. The problem is the valuable part of a
PDF is the body text, while the Table of contents, footnotes, index, and headers/footers create problems (especially with semantic search).

Do any of your utilities allow for batch processing of files that will:
- delete all text below a point size (ie delete text =<9 points will remove foot notes and index)
- remove Table of Contents
- remove all text in margins 

There is a lot of demand for a user-friendly tool that preps PDFs for machine learning.

General / Re: function parameters
« Last post by RTT on February 01, 2024, 03:03:34 AM »
You have to escape the backslash characters in a JavaScript string.
var PDFShellToolsExePath = "C:\\Program Files (x86)\\PDF-ShellTools\\PDFShellTools.exe";

Take note that you can use the scripts API from an external script directly. No need to call an internal script from an external one. You just need to register the pdfe root object (check the attached screenshot), and then initiate it as usually with any other ActiveX object.
var pdfe = new ActiveXObject("MyScripts.PDFEObject");

General / Re: function parameters
« Last post by Nick Riviera on January 31, 2024, 11:01:04 AM »
Thanks. cool. parameters works...
I would  ask, how I can run a custom script rename files with a shortcut
I tried with this script but it doesn't work for me

CallShellTools.js shortcut: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PDF-ShellTools
Target:  C:\Temp\CallShellTools.js Script  RunScript "ScriptName=test"

Code: [Select]
var PDFShellToolsExePath = "C:\Program Files (x86)\PDF-ShellTools\PDFShellTools.exe";

var ShellApp = new ActiveXObject("Shell.Application");
var SelectedFiles = [];
var Windows = ShellApp.Windows();
for (var i = 0; i < Windows.count; i++) {
    var Window = Windows(i);
    if (Window.FullName.toLowerCase().indexOf("iexplore.exe") == -1) {
        var SelectedItems = Window.Document.SelectedItems();
        for (var n = 0; n < SelectedItems.count; n++) {
            var SelectedItem = SelectedItems.Item(n);
if (SelectedFiles.length > 0) {
    var SelectedFilesList = SelectedFiles.join(';')
    var ArgumentsList = '';
    for (i = 1; i < WScript.Arguments.length; i++) {
        ArgumentsList += '"' + WScript.Arguments(i) + '" ';
    ShellApp.ShellExecute(PDFShellToolsExePath, WScript.Arguments(0) + ' ' + ArgumentsList + ' "' + SelectedFilesList + '"', '', '', 0);
} else {
    var sapi = new ActiveXObject("sapi.spvoice");
    sapi.Speak("No files selected");
General / Re: function parameters
« Last post by RTT on January 28, 2024, 03:38:29 AM »
You can pass one parameter to the script using this notation:


and access it from the script, as a string type, with CurrentField.value

Using your example, the expression needs to be:

And the script:
Code: [Select]
function test() {
    var dt = new Date();
    var dx = dt.getDate() + CurrentField.value;
    return dx

The parameter can be the result of another expression:

Because in this case it contains a separator, you can emulate passing multiple parameters:
var parameters=CurrentField.value.split(',');
Pages: [1] 2 3 ... 10