Recent Posts

Pages: [1] 2 3 ... 10
1
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by RTT on May 23, 2020, 01:06:02 AM »
I hope it will be soon, but don't know yet.
Meanwhile, a script can be used to provide this "copies" functionality. How exactly will you be using it?
2
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by nightslayer23 on May 22, 2020, 02:40:54 AM »
do we have a time frame for when the latest version will be released?
3
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by nightslayer23 on May 15, 2020, 06:31:57 AM »
Yes. It's already implemented and working around here.

oh awesome! can't wait til its released   ;D
4
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by RTT on May 14, 2020, 08:32:35 PM »
Yes. It's already implemented and working around here.
5
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by nightslayer23 on May 14, 2020, 01:03:01 AM »
Hi again! will this be in he next update do you think?
6
General / Re: Displaying PDF Page Size in Windows Explorer
« Last post by RTT on April 01, 2020, 02:55:36 AM »
A modification of a previous script, that fills the PageSize property with the list of paper sizes, that now also calculates the PageOrientation property checking all the pages.
Code: [Select]
STDSizes=[
{'Size': 'A0','width':841,'height':1189},
{'Size': 'A1','width':594,'height':841},
{'Size': 'A2','width':420,'height':594},
{'Size': 'A3','width':297,'height':420},
{'Size': 'A4','width':210,'height':297},
{'Size': 'A5','width':148,'height':210},
{'Size': 'A6','width':105,'height':148},
{'Size': 'A7','width':74,'height':105},
{'Size': 'A8','width':52,'height':74},
{'Size': 'A9','width':37,'height':52},
{'Size': 'A10','width':26,'height':37},

{'Size': 'B0','width':1000,'height':1414},
{'Size': 'B1','width':707,'height':1000},
{'Size': 'B2','width':500,'height':707},
{'Size': 'B3','width':353,'height':500},
{'Size': 'B4','width':250,'height':353},
{'Size': 'B5','width':176,'height':250},
{'Size': 'B6','width':125,'height':176},
{'Size': 'B7','width':88,'height':125},
{'Size': 'B8','width':62,'height':88},
{'Size': 'B9','width':44,'height':62},
{'Size': 'B10','width':31,'height':44},

{'Size': 'C0','width':917,'height':1297},
{'Size': 'C1','width':648,'height':917},
{'Size': 'C2','width':458,'height':648},
{'Size': 'C3','width':324,'height':458},
{'Size': 'C4','width':229,'height':324},
{'Size': 'C5','width':162,'height':229},
{'Size': 'C6','width':114,'height':162},
{'Size': 'C7','width':81,'height':114},
{'Size': 'C8','width':57,'height':81},
{'Size': 'C9','width':40,'height':57},
{'Size': 'C10','width':28,'height':40},

{'Size': '4A0','width':1682,'height':2378},
{'Size': '2A0','width':1189,'height':1682},

{'Size': 'Letter','width':215.9,'height':279.4},
{'Size': 'Legal','width':215.9,'height':355.6},
{'Size': 'Junior Legal','width':203.2,'height':127},
//{'Size': 'Ledger','width':432,'height':279},
{'Size': 'Tabloid','width':279,'height':432},

{'Size': 'PA4','width':210,'height':280},

{'Size': 'Arch A','width':229,'height':305},
{'Size': 'Arch B','width':305,'height':457},
{'Size': 'Arch C','width':457,'height':610},                           
{'Size': 'Arch D','width':610,'height':914},
{'Size': 'Arch E','width':914,'height':1219},
{'Size': 'Arch E1','width':762,'height':1067},
{'Size': 'Arch E2','width':660,'height':965},
{'Size': 'Arch E3','width':686,'height':991},

{'Size': '2R','width':64,'height':89},
{'Size': 'LD,DSC','width':89,'height':119},
{'Size': '3R,L','width':89,'height':127},
{'Size': 'LW','width':89,'height':133},
{'Size': 'KGD','width':102,'height':136},
{'Size': '4R,KG','width':102,'height':152},
{'Size': '2LD,DSCW','width':127,'height':169},
{'Size': '5R,2L','width':127,'height':178},
{'Size': '2LW','width':127,'height':190},
{'Size': '6R','width':152,'height':203},
{'Size': '8R,6P','width':203,'height':254},
{'Size': 'S8R,6PW','width':203,'height':305},
{'Size': '11R','width':279,'height':356},
{'Size': 'A3+,Super B','width':330,'height':483}
];

STDSizes.sort(function(a, b) {
    return (a.height > b.height) ? -1 : ((b.height > a.height) ? 1 : 0);
});

var ProgressBar = pdfe.ProgressBar;
ProgressBar.max = pdfe.SelectedFiles.Count;

var eps = 1; //size compare tolerance [mm]
for (var i = 0; i < pdfe.SelectedFiles.Count; i++) {
    var PaperSizes = {};
    var File = pdfe.SelectedFiles(i);
    var Pages = File.Pages;
    var PortraitCount = 0;
    var LandscapeCount = 0;
    ProgressBar.position = i + 1;
    pdfe.echo(File.Filename);
    if (Pages.Count > 0) {
        for (var ii = 0; ii < Pages.Count; ii++) {
            var Page = Pages(ii);
            if (Page) {
                var w = Math.min(Page.Width, Page.Height);
                var h = Math.max(Page.Width, Page.Height);
                for (var n = 0; n < STDSizes.length; n++) {
                    hdif = h - STDSizes[n].height;
                    if (Math.abs(hdif) < eps && Math.abs(w - STDSizes[n].width) < eps) {
                        SizeID = STDSizes[n].Size;
                        if (!PaperSizes[SizeID]) {
                            var PaperSize = clone(STDSizes[n]);
                            PaperSize['count'] = 1;
                            PaperSizes[SizeID] = PaperSize;
                        } else {
                            PaperSizes[SizeID].count += 1;
                        }
                        break;
                    } else if (hdif > 0) { //stop search if page height>current stdSize height
                        var SizeID = w.toFixed() + 'x' + h.toFixed();
                        var PaperSize = {
                            'Size': SizeID,
                            'width': Math.floor(w * 10) / 10,
                            'height': Math.floor(h * 10) / 10,
                            'notStd': true
                        }

                        STDSizes.splice(n, 0, PaperSize);
                        PaperSize['count'] = 1;
                        PaperSizes[SizeID] = PaperSize;
                        break;
                    }
                }

                (Page.Height > Page.Width) ? PortraitCount++ : LandscapeCount++;
            }
        }

        //sort descending by page size count. Standard sizes and higher heights first
        PaperSizes = sortObj(PaperSizes, function(a, b) {
            if (a['notStd'] == b['notStd']) {
                return (a.count > b.count) ? -1 : ((b.count > a.count) ? 1 : (a.height > b.height) ? -1 : ((b.height > a.height) ? 1 : 0));
            } else if (!a['notStd']) return -1;
            return 1;
        });


        var FileMetadata = File.Metadata;
        var Changed = false;

        var sizesStr = '';
        for (var n = 0; n < PaperSizes.length; n++) {
            sizesStr = sizesStr + PaperSizes[n].Size + ',';
        }

        sizesStr = sizesStr.substr(0, sizesStr.length - 1);
        if (FileMetadata.PageSize !== sizesStr) {
            FileMetadata.PageSize = sizesStr;
            Changed = true;
        }

        var PageOrientationStr = 'Portrait';
        if (PortraitCount && LandscapeCount) PageOrientationStr = 'Mixed'
        else if (LandscapeCount) PageOrientationStr = 'Landscape';

        if (FileMetadata.PageOrientation !== PageOrientationStr) {
            FileMetadata.PageOrientation = PageOrientationStr;
            Changed = true;
        }

        if (Changed) {
            if (FileMetadata.CommitChanges()) {
                pdfe.echo('      (Paper sizes: ' + sizesStr + ' - Orientation: ' + PageOrientationStr + ') [OK]');
            } else {
                pdfe.echo('      [commit changes failed]', 0xFF0000);
            }
        } else {
            pdfe.echo('      (Paper sizes: ' + sizesStr + ' - Orientation: ' + PageOrientationStr + ') [properties already set]');
        }

    } else {
        pdfe.echo('      [not a PDF or has no pages]', 0xFF0000);
    }
}

pdfe.echo("Done");

//======================================================================
function clone(obj) {
    if (obj == null || typeof(obj) != 'object') return obj;
    var temp = new obj.constructor();
    for (var key in obj)
    temp[key] = clone(obj[key]);
    return temp;
}

function sortObj(object, sortFunc) {
    var rv = [];
    for (var k in object) {
        if (object.hasOwnProperty(k)) {
            rv.push(object[k]);
        }
    }
    rv.sort(sortFunc);
    return rv;
}
7
General / Re: Displaying PDF Page Size in Windows Explorer
« Last post by nightslayer23 on March 30, 2020, 05:43:03 AM »
So you have a PDF document with 50 pages, one of those pages is a portrait page but your print software requires everything be Landscape..

So instead of checking page one for orientation, it checks all pages.

If all come out to be landscape then landscape is the output. If all are portrait, portrait the output. If however the PDF has mixed orientation, MIXED could be the term.
8
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by nightslayer23 on March 30, 2020, 04:23:38 AM »
 ;D awesome! let me know if you get to this!

no other program out there that can do this.
9
General / Re: Displaying PDF Page Size in Windows Explorer
« Last post by RTT on March 17, 2020, 01:34:51 AM »
Please give me a practical example, with an attached PDF or by describing the PDF pages size and orientation, of what you expect to be the result PageSize and PageOrientation metadata properties.
10
Ideas/Suggestions / Re: More dynamic merge tool
« Last post by RTT on March 15, 2020, 03:58:10 PM »
That's a good idea! Keep the current duplicate entry functionality, for when there is the need to specify a different page selector, and add a number of copies for each of the entries, for when we just want to repeat the specific entry multiple times.
Now in the TODO list.
Pages: [1] 2 3 ... 10