Hi, I'd like to open a PDF file to a specific page from a link, using the default PDF viewer in Windows (same as w32-shell-execute "open"), which opens a browser.
With a browser, I can open it with this HTML link: <a href="file:///c:/a/b/c/file.pdf#page=4">Page 4</a> This link as an Org mode link doesn't work: file:///c:/a/b/c/file.pdf#page=4 as "#page=4" is interpreted as part of the filename by w32-shell-execute. If I modify org-file-apps for PDF to: ("\\.pdf::\\([0-9]+\\)\\'" . "browser file:///%s#page=%1") and if the Org link is: file:///c:/a/b/c/file.pdf::4 it doesn't work because the argument passed to browser is: file:///"c:/a/b/c/file.pdf"#page=4 A quick workaround is to modify org-open-file by removing shell-quote-argument, from: (shell-quote-argument (convert-standard-filename file)) to (convert-standard-filename file) to get the following string, which correctly opens page 4. "file:///c:/a/b/c/file.pdf#page=4" If I export the file as HTML, it is output as: <a href="file:///c:/a/b/c/file.pdf#MissingReference">...</a> so I modified org-html-link from: (concat raw-path "#" (org-publish-resolve-external-link option path t)) to (concat raw-path "#" (let ((r (org-publish-resolve-external-link option path t))) (or (and (string= r "MissingReference") (string-match "\\.pdf\\'" path) (string-match "[0-9]+" option) (format "page=%s" option)) r))) which generates the wanted HTML link: <a href="file:///c:/a/b/c/file.pdf#page=4">...</a> Is there any way less quick & dirty to achieve this? Thanks!