
org-pdftools
A custom org link type for pdf-tools
Updated link generation to correctly use the defined search string separator and fixed an issue where the link prefix was not properly concatenated. Additionally, updated the README to use a hook for the pdf-annot handler, ensuring better compatibility with org-noter. These changes resolve issues related to link storage and configuration, leading to a more reliable experience when annotating PDFs.
Resolved an issue in org-pdftools-complete-link where the link prefix was incorrectly formatted during file completion. This patch ensures proper handling of the org-pdftools-link-prefix by correctly wrapping the string concatenation. You should now see more reliable link generation when using file completion in org-pdftools.
Updated the README configuration example to replace add-hook with a direct setq for the pdf-annot-activate-handler-functions list. This change ensures the proper behavior of the handler by correctly setting the variable instead of appending to it incorrectly in some configurations. This clarifies recommended implementation for users integrating org-noter-pdftools.
The org-pdftools-get-link function now correctly uses regexp-quote when parsing search strings. This ensures that special characters in the search query don't break link generation, preventing potential errors when creating links from active searches. This makes link creation significantly more robust when dealing with complex search terms.
This patch fixes how org-noter-pdftools parses stored PDF links, including trimming Org link brackets and correcting the capture groups used for page, height, annotation ID, and search string extraction. The bug was affecting location resolution for org-noter-sync-next-note, org-noter-sync-previous-note, and org-noter-sync-current-note, so navigation could fail or jump incorrectly. With this change, note syncing against PDF positions should behave reliably again in the pdftools workflow.
This change makes stored org-pdftools links more flexible by introducing org-pdftools-get-desc-function, which lets users generate their own link descriptions from the file name, page, and selected text or search string. It also updates HTML export to append #page=n to PDF links, improving behavior in browsers like Chrome when opening exported documents. Together, these changes make PDF links more informative in notes and more reliable when shared or published. عمليًا, exported links should land on the intended page and link text can now match your workflow.
This change adds three new org-noter integration commands: one to copy the current annotation subtree into its matching PDF annotation, one to sync all annotation-backed notes at once, and one to embed the entire org-noter buffer into a note on the first page. It also simplifies jumping from a PDF annotation back to its Org heading and documents the required hook setup in the README so annotation activation can round-trip cleanly. The result is a much tighter Org↔PDF workflow, with notes that can now be written in Org and persisted directly inside the PDF itself.
This change fixes skeleton creation by replacing the hardcoded PDF path reconstruction logic with a configurable path generator, using the current buffer file path when building pdftools links. It also restores the org-noter require so the integration is loaded consistently instead of relying on commented-out behavior. In practice, create-skeleton should now produce more reliable links across different file layout preferences and custom path handling setups.
This change turns org-noter from a commented optional import into a required dependency in org-pdftools.el. That fixes a missing requirement path where the package could reference org-noter functionality without guaranteeing it had been loaded first. In practice, setups using the org-noter integration should behave more reliably instead of failing at runtime.
This change extracts org link registration into a dedicated org-pdftools-setup-link function and updates the README to use it via an org-load hook instead of requiring users to manually call org-link-set-parameters in their config. Making the setup function autoloadable reduces configuration boilerplate and makes package initialization more reliable, especially for MELPA/use-package users. In practice, enabling org-pdftools is now a one-line hook and link support comes up more cleanly.
This patch fixes the code path behind PR #25 in org-pdftools.el: links with an embedded PDF search string still go through pdf-occur-search, but plain links now correctly fall back to org-open-file. The change closes a control-flow gap where non-search links could fail instead of opening the target document as expected. In practice, org-pdftools links should now behave more reliably for both search-driven and regular PDF navigation.
This change addresses several rough edges in the pdftools/org-noter integration by making the link prefix configurable, switching the search string separator to ?? to avoid Org fontification issues, and adding customizable path generator/resolver functions for storing translated PDF paths. It also restores the core org-noter-pdftools flows—note insertion, skeleton creation, and sync scrolling—so the package works more consistently in real setups. The practical effect is that PDF-backed notes should now be much more reliable, especially for users with custom file path or linking needs.
This commit makes a small but real code fix in org-noter-pdftools.el while also updating the GPL license link to HTTPS. The functional change replaces (when (not ...)) with unless in the org-id guard, which is minor but aligns the code with conventional Emacs Lisp style and can help avoid MELPA complaints or lint issues. It’s a low-risk cleanup that improves package hygiene and keeps publishing smoother.
This change fixes a small but real compatibility issue in org-noter-pdftools.el by replacing (require 'image-tools) with (require 'image-mode). The old require target appears to be incorrect, which could break loading or runtime behavior for users working with PDF annotations and image handling. In practice, this makes the integration more robust and reduces setup friction for Emacs users.
