Have a list of open documents, then select  SOLVED

Forum for the PDF-XChange Editor - Free and Licensed Versions

Moderators: Daniel - PDF-XChange, PDF-XChange Support, Vasyl - PDF-XChange, Chris - PDF-XChange, Sean - PDF-XChange, Paul - PDF-XChange, Ivan - Tracker Software, Stefan - PDF-XChange

Post Reply
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Have a list of open documents, then select

Post by dwg11 »

I've asked this before but wanted to see if there's a way around it.
The query is when you have many Tabs open.

Is there a menu function where you can view all the open tabs, in a non-sorted sequence, similar to PDF Xchange Viewer.
Believe this is a much better way to show.

Would there be another way that you could see all open tabs, in a non alphabetical order, just in order of tabs as opened.

For information, I find PDF Xchange Viewer much better and more intuitive to deal with many documents, also the menu item "Window" is much easier to locate and find. By comparison the small hamburger symbol on the left of the Editor is more difficult to reach (could it be on the right by the way?), just my thoughts. Overall though your software is much more capable, faster and easier to use than others.

Thanks.

Snapshot from PDF Xchange Viewer
image.png
Willy Van Nuffel
User
Posts: 2734
Joined: Wed Jan 18, 2006 12:10 pm

Re: Have a list of open documents, then select

Post by Willy Van Nuffel »

Maybe not quite exactly what you are looking for, but do you know about the "History"-pane (View-ribbon > Panes > History) ?
Via the Options-button in the toolbar of the History-pane, you can Sort By > Opened Time (instead of Alphabetical).

An other possibility, is click the File-menu > Open > Recent Files.
Below the "Unpinned Recents" you will find your documents in the order that you opened them.

Does that help ?
User avatar
Stefan - PDF-XChange
Site Admin
Posts: 19826
Joined: Mon Jan 12, 2009 8:07 am
Contact:

Re: Have a list of open documents, then select

Post by Stefan - PDF-XChange »

Hello Willy Van Nuffel,

Thanks for your suggestions!

Kind regards,
Stefan
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Thanks, this is what I was using actually. However the documents are in reverse order in the History.

Is it then possible to write a script which takes all the documents in the last 24 hours, or similar and arranges them so the oldest is first?

Thanks
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Trust me, the majority do not want to see alphabetical order, please at least give the option
User avatar
Dimitar - PDF-XChange
Site Admin
Posts: 2199
Joined: Mon Jan 15, 2018 9:01 am

Re: Have a list of open documents, then select

Post by Dimitar - PDF-XChange »

Hello dwg11,

There are a few other sorting criteria planned for this menu, as this has been requested before by other people.

Unfortunately I can't tell you exactly when they will be implemented.
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

OK thanks, this would be a great outcome.

Personal preferences I understand, but my thoughts were:
- The way you have it in PDF-XChange Viewer is almost ideal, see notes below ... there is a "Window" menu item which when selected shows open tabs (non alphabetical) with a thumbnail preview. The other functions, "Show All Tabs Thumbnails" and "Show All Tabs" are also really useful.

Thanks.
image.png
User avatar
Dimitar - PDF-XChange
Site Admin
Posts: 2199
Joined: Mon Jan 15, 2018 9:01 am

Re: Have a list of open documents, then select

Post by Dimitar - PDF-XChange »

Hello dwg11,

I forwarded your suggestions to our developers for consideration.

We will keep you posted on any progress.

Regards.
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Ok thanks
User avatar
Daniel - PDF-XChange
Site Admin
Posts: 10963
Joined: Wed Jan 03, 2018 6:52 pm

Re: Have a list of open documents, then select

Post by Daniel - PDF-XChange »

Hello, dwg11
dwg11 wrote: Tue Jan 21, 2025 12:15 am The way you have it in PDF-XChange Viewer is almost ideal, see notes below ... there is a "Window" menu item which when selected shows open tabs (non alphabetical) with a thumbnail preview. The other functions, "Show All Tabs Thumbnails" and "Show All Tabs" are also really useful.
The "window" menu in the viewer is only 4 primary buttons, which were used to control a very unique system, the ability to have each document open in "overlapping/manipulatable", as you see here (which are only operable if you enabled some historically unpopular options):
image.png
This function does not exist in the Editor, and as such, these buttons serve no purpose, however, the equivalent arrangement buttons are present in the Editor, and located on the View tab at this moment
image(1).png
its even still in a "window" category ^
image(2).png
As for the "Tab thumbnail" view, this was intentionally removed when we developed the Editor, and I can confirm will not be returning for the foreseeable future.

As such, the only aspects of this request we can really consider is your suggestion to move the button to the right side of the tab bar, and to change the displayed order of the files in the left side menu.
  • Moving the button is extremely unlikely, as we have kept this button in this button in the top left for decades at this point, and far too many clients use it frequently in its current position. Perhaps if we undergo another UI overhaul in the future it could be considered then, but at this time, I am sorry to say it is not something we would consider without extreme user demand for such a change.
  • As for the alphabetical display order in this menu. It was intentionally made Alphabetical due to very large user demand to help organize and locate items when you have a multitude of documents opened. If you have a smaller number you should be able to operate in "open order" from the Tab-Bar without issue. As such, this is similarly unlikely to change at this time.
Kind regards,
Dan McIntyre - Support Technician
PDF-XChange Co. LTD

+++++++++++++++++++++++++++++++++++
Our Web site domain and email address has changed as of 26/10/2023.
https://www.pdf-xchange.com
Support@pdf-xchange.com
Mathew
User
Posts: 565
Joined: Thu Jun 19, 2014 7:30 pm

Re: Have a list of open documents, then select

Post by Mathew »

Here's a script that will add a button to the QuickLaunch bar in the top right (ribbon UI):
image(1).png
image(1).png (4.85 KiB) Viewed 1732 times
On the classic UI it adds near the top of the Window menu:
image.png
image.png (8.94 KiB) Viewed 1732 times
It opens a dialog that lists all the documents that are open, in the order they were opened.

Extract the zip and save in %APPDATA%\Tracker Software\PDFXEditor\3.0\Javascripts
You may need to create the "Javascripts" folder at that location
showActiveDocuments v1.1.zip
(2.01 KiB) Downloaded 36 times
Last edited by Mathew on Thu Jan 23, 2025 6:09 pm, edited 1 time in total.
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

OK thanks Daniel, understand but respond as below.
- Regarding equivalent function in the Editor, have seen the arrangement buttons in Document Tabs, but there is no equivalent
- Regarding the functions in the Viewer I wouldn't agree on the conclusion of it being historically unpopular (I think by this you mean two separate documents viewed at the same time, and not the criteria I was looking for which was Duplicate tabs in the Viewer ... asked on a separate thread). Hypothetically, even if there were survey questions they can be framed in any way so as to effectively get the response you want, at the end of the day it's your decision, fair enough it's your program and overall it's great anyway. Also if functions in the Viewer were not useful they would not have been in the Viewer in the first place, and would suggest in this day and age there is a lot more documents to work on for users. I certainly can't remember the name of most documents, but intuitively know where it would be by order of tabs

-

For Mathew, thanks for providing script but I don't know how to integrate as a menu items, tried this link but no good.
https://www.pdf-xchange.com/knowledgeba ... nge-Editor
Mathew
User
Posts: 565
Joined: Thu Jun 19, 2014 7:30 pm

Re: Have a list of open documents, then select

Post by Mathew »

dwg11 wrote: Thu Jan 23, 2025 1:28 am For Mathew, thanks for providing script but I don't know how to integrate as a menu items, tried this link but no good.
It's already a menu item. I made a couple of changes and uploaded a new version above, so if you're in the classic UI it's in the Window menu, in the ribbon UI it shows up at the top right of the screen as a small icon.

If you're using build 393 or later: One can go to Customize Toolbars… which allows one to move the menu item to anywhere you want, and assign a keyboard shortcut.
image.png
image.png (11.91 KiB) Viewed 1731 times
Last edited by Mathew on Mon Jan 27, 2025 10:31 pm, edited 1 time in total.
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

OK thanks, but I can't see it as a menu item, Build is 385 Jan 22 2024.
Also have no idea as how to run the script, is there a link with instructions?
Mathew
User
Posts: 565
Joined: Thu Jun 19, 2014 7:30 pm

Re: Have a list of open documents, then select

Post by Mathew »

dwg11 wrote: Fri Jan 24, 2025 2:21 am Also have no idea as how to run the script, is there a link with instructions?
I think your version will not allow scripts to be added to the ribbon UI. If you are using the classic UI though, it will add to the Window menu.

You could try pasting the following into the console, and it will add a tool button to the add-in tools:

Code: Select all

/** dialog with list of active docs
  *
  * @history<pre>
  * v1.1 2025-01-23 fix selection of documents, move to Window menu, check that dialog isn't bigger than screen (app.monitors doesn't return anything)
  * v1.0 2025-01-21
**/


var myIcon = {count:0, width:48, height:48, read:function(nBytes=this.data.length/2){return this.data.slice(this.count,this.count+=2*nBytes);}, data:(a=>{let[b,c]=a.split(":");c=c?.match(/.{8}/g);let d=(a,b)=>a.replace(/./g,a=>parseInt(a,10+b)-b);return b.replace(/([g-p]+)([0-9a-f]+|[q-z]+)/gi,(a,b,e)=>(/[q-z]/.test(e)?c[d(e,26)]:e).repeat(d(b,16)));})("hgjshuhjqhrrhrsjhshuhkqhwhrthxjgsiqhjrhyhthzjgsiqhirhrujthrwipsiqhnrhrxiosiqkrhrvhjriosiqjrhrvhryhrqhjqhrrhrsilsiqkrhrqhkqhwhrthxiksiqirhrzhriqhjrhyhthziksiqkriqhirhrujthrwijsiqkriqhnrhrxiisiqkriqhoriisiqkriqkrhryhrqhjqhrrhrshpsiqkriqkrhrqhkqhwhrthxhosiqkriqirhrzhriqhjrhyhthzhosiqkriqkriqhirhrujthsqhnsiqkriqkriqhhrhrvhsrjthwhxhmsiqkriqkriqhhrhFFEDEDEDlthzhmsiqkriqkriqhirhylthsqhlsiqkriqkriqhirhFFA6A6A6lthwhlsiqkriqkriqhirhsshFFBABABAhsrkth80898989hksiqkriqkriqhkrhsshFFD0D0D0hFF8E8E8Ejthksiqkriqkriqkrovmriqhksiqkriqkriqkrovmriqhksiqkriqkriqhoriqhksiqkriqkriqhoriqhksiqkriqkriqhoriqhksiqkriqkriqhoriqhksiqkriqkriqkrhiviriqhksiqkriqkriqkrhiviriqhkshujqiriqkriqhoriqhlshuiqiriqkriqhoriqigsiqkriqhoriqigsiqkriqhoriqigsiqkriqkrhiviriqigsiqkriqkrhiviriqigshujqiriqhoriqihshuiqiriqhoriqimsiqhoriqimsiqhoriqimsiqhoriqimsiqhoriqimshuigqhuinshuhoqhuhgls:FF808080FFFFFFFF00000000FF61616180808080FF9E9E9EFF6C6C6C80E6E6E6FF646464FF898989FFB7B7B7FF79797980ACACACFF626262FFB6B6B6FFFFFEFE80B7B7B780FFFFFFFFFDFCFCFFFBFAFA80B5B5B5FF757575FFFEFDFD")};

app.addToolButton( {
    cName: "showActiveDocsBtn",
	cLabel: "List Documents",
	oIcon: myIcon,
	cTooltext: "Opens a dialog listing the currently open documents",
	cEnable: "event.rc = (event.target != null)",
	cExec: "showActiveDocs()" }
);
// Add menu item
app.addMenuItem( {
    cName: "showActiveDocs",
    cUser: "List Documents",
    oIcon: myIcon,
    cParent: "Window",
    nPos: 0,
    cRbParent: 'JS:QuickLaunch',
    nRbPos: -1,
    //bPrepend: false,
    cEnable: "event.rc = (event.target != null);",
    cExec: 'showActiveDocs()'}
);

var showActiveDocs = app.trustedFunction(()=>{
    app.beginPriv();
    const currDocs = app.activeDocs;
    app.endPriv();
    
    const fName = (doc) => (doc.documentFileName || "Untitled").replace('.pdf','');
    const docList = currDocs.map( fName );
    // get index to currently active document
    let curIx = currDocs.indexOf( app.doc );
    // height of list box
    let listBoxHt = docList.length * 21 + 20;
    // don't make it too big to fit into window app.media methods may be more accurate
    let maxHt = app.doc.outerAppWindowRect[3] - app.doc.outerAppWindowRect[1] - 200;
    if ( listBoxHt > maxHt ) listBoxHt = maxHt;
    
    const fDia = {
        initialize (dialog) {
            dialog.load({dLst: this.getListboxArray(docList, curIx)});
        },
        commit (dialog) {
            curIx = this.getIndex(dialog.store()['dLst']);
        },
        // get selected index from list box object
        getIndex(elements) {
            for(let i in elements) {
                if ( elements[i] > 0 ) {
                    return elements[i]-1 ; // 0 based index
                }
            }
        },
        // create object array suitable for the listbox. selItem is index
        // returned array is {"Displayed option":-order,...}
        getListboxArray(vals, selItem=0) {
            let sub = {};
            for (let i=0; i<vals.length; i++) {
                // if multiple duplicate names, add counter
                let counter = '';
                if (sub[vals[i]]) {
                   let j=0;
                   while (sub[vals[i] + '_' + (++j) ]);
                   counter = '_' + j ;
                }
                // positive number if selected
                sub[vals[i] + counter] = ((selItem === i)?1:-1)*(i+1);
            }
            return sub;
        },
        description: {
            name: "Current open documents", // Title of the dialog box
            width: 400,
            elements: // Child element array
            [{  type: 'static_text', name: 'Select document to bring to front:', bold: true
            },{ type: 'list_box', item_id: 'dLst', height: listBoxHt, width: 400
            },{ type: 'ok_cancel'
            }]
        }
    };
    
    if ('ok' === app.execDialog(fDia)) currDocs[curIx].bringToFront();
    
    /* or a much simpler listing
    app.alert({
        cMsg: docList.join('\n'),
        nIcon: 3,
        nType: 0,
        cTitle: "Current open documents" });
    */
});
To use the script get the most recent version of PDF XChange and:
1. Go to %APPDATA%\Tracker Software\PDFXEditor\3.0\ by pasting that into file explorer. It should take to you to the preferences folder for pdf xchange and the path will be something like C:\Users\[yourUserName]\AppData\Roaming\Tracker Software\PDFXEditor\3.0
2. If there's no Javascripts folder, make a folder and name it Javascripts.
3. Extract the zip file in the post above, and copy the file 'showActiveDocuments.js' into the Javascripts folder.
4. Restart pdf xchange.
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Thanks Mathew, this now works in Classic menu, much appreciate it

Edit: I saw the stuff about console later ... tried but maybe I didn't run it properly
I assume this is for the the Ribbon UI

Apologies, it looks like the same script, and suitable with Classic menu, thanks again
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Mathew, in the portbale version of the app, the script is gone next time the program is used.

I go to Show Javascript Console, then paste the script from Fri Jan 24, 2025 11:41 am.
It works in that instance but is then lost next time.
Mathew
User
Posts: 565
Joined: Thu Jun 19, 2014 7:30 pm

Re: Have a list of open documents, then select  SOLVED

Post by Mathew »

dwg11 wrote: Sun May 04, 2025 8:05 am Mathew, in the portbale version of the app, the script is gone next time the program is used.

I go to Show Javascript Console, then paste the script from Fri Jan 24, 2025 11:41 am.
It works in that instance but is then lost next time.
For the portable version, to get it to show every time, you'll need to make a JavaScripts folder inside the PDF XChange application folder, and save the script into that folder.

If you use the file I posted viewtopic.php?p=189161#p189161 you can extract the zip file and save the .js file into that newly created JavaScripts folder, or if you want to use the script from viewtopic.php?p=189223#p189223 paste it into an empty text file and save that file as 'showActiveDocuments.js'
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

Thanks again Mathew, this worked.

Just out of interest, if I change the position of tabs, the order of documents is not changed, believe there would be a lot of complexity to get it to update, bust if it's easy to resolve please let me know.
Mathew
User
Posts: 565
Joined: Thu Jun 19, 2014 7:30 pm

Re: Have a list of open documents, then select

Post by Mathew »

dwg11 wrote: Mon May 05, 2025 4:22 am Just out of interest, if I change the position of tabs, the order of documents is not changed, believe there would be a lot of complexity to get it to update, bust if it's easy to resolve please let me know.
I don't think I can do it: The application doesn't give the tab order - I think I'm showing the files in the order that the application gives to javascript - which is maybe the order the files were opened (?)
dwg11
User
Posts: 102
Joined: Fri Jan 06, 2017 5:27 am

Re: Have a list of open documents, then select

Post by dwg11 »

OK no worries, all good, still a good outcome
User avatar
Daniel - PDF-XChange
Site Admin
Posts: 10963
Joined: Wed Jan 03, 2018 6:52 pm

Have a list of open documents, then select

Post by Daniel - PDF-XChange »

:)
Dan McIntyre - Support Technician
PDF-XChange Co. LTD

+++++++++++++++++++++++++++++++++++
Our Web site domain and email address has changed as of 26/10/2023.
https://www.pdf-xchange.com
Support@pdf-xchange.com
Post Reply