Create a note that linked to a specific paragraph in a pdf

Thanks @ryanjamurphy for your input and clarification. I am not a programmer. I will leave it to people like you who understand how things work under the cover. :slight_smile:

I would find Obsidian useful as a tool for my academic research if it you were able to highlight PDFs, make notes on the text (OCR?) from the highlights and have this text link back to where they were made in the PDF so that I can see the highlights in context.

In find most PDF editors/readers very frustrating to use because they have you making comments in bubble notes that are hidden the moment you move on to the next comment. I need to be able to have all my comments open because I refer to them when writing the current note. So having the PDF feature in Obsidian would be fantastic! :slight_smile:

6 Likes

Thanks @Slavomir for your detailed explanation. You may not be a programmer, but you are a power user. :slight_smile:

Is there any detailed “how-to” description of the steps you use for absolute beginners?

Ok, I have for some time been taking a very deep dive into PDF - summary : it is hard to believe such a fckd up format got so big, Adobe really have a lot to answer for.

However, there is a way to do what is asked, that is use of namedestinations, which can be created most easily by use of pdfmarks.

It is a long, long story, the info is available but it is like some family secret and very difficult to really distill down to these two key facts.

If you search those two terms you will find what you would need to know to add this feature programmatically. Msg me if you really need to know more but I only went as far as I needed for my particular use at the time - it took months to get to the final key details I needed.

3 Likes

Ok, I have for some time been taking a very deep dive into PDF - summary : it is hard to believe such a fckd up format got so big, Adobe really have a lit to answer for.

However, there is a way to do what is asked, that is use of named destinations. These are what you use to open a PDF at a specific section (as opposed to page #).

You add #nameddest= to your file/url when you open it. A named destinations will change as the PDF changed as it has an extra level of indirection allowing it to associate with a “section” instead of a page.

You can make a named destinations in some PDF editors, or convert a bookmark or link destination etc.
into a named destination. (eg using autobookmark or debeneu).

But, the hidden secret that is out in view, if you know to look, is the use of pdfmarks - this is the key and would easily allow this feature to be implemented and they are a “layer” that goes in at the distilling (ghostwriting) phase of pdf generation, turning PostScript into PDF.

Search and you will find.

1 Like

Use case or problem

Highlight keywords in PDF reader and a link is created in our note. Clicking on this link in the notes will then open the PDF at the correct page

Proposed solution

enable highlighting in PDF and right click menu will have both

  • paste text
  • paste link to reference

Current workaround (optional)

The only feature in Remnote that I miss

Video below of Remnote implementation (still buggy but works)
PDF highlight link to page (streamable.com)

1 Like

I like your proposed implementation. But, in case you were unaware, a similar feature was implemented in 0.10.8. Here’s a quote from the release notes:

  • You can now link to a page of a PDF file by adding #page=number at the end. For example [[My file.pdf#page=3]]. This also works for embedded PDFs. Typing #while auto-completing a PDF file will automatically add #page= for you.

Edit: Just realized your post was either merged or originally part of this thread. I’ll still leave the information here in case.

Anyways, good idea.

Thanks.

6 Likes

As the Upper mentioned, another electron based local PKM tool Logseq implement it recently(2021.08.06).

Hoping we could get this feature as well. :slight_smile:

3 Likes

+1 Vote for this!

1 Like

Maybe the obsidian team could develop a preliminary core plugin first to allow inserting pdf link “[[myfile.pdf#page=x]]” like what the plugin Media Extend did with the timestamps.
image

i think if the just make it work better with reference managers makes more sense. zotero already would let you to link to pdf pages inside it’s library. i think even Citation plugin can add a feature to link to a page. it already supports linking to pdf, just need to make linking more user friendly for pages. like just hitting a hot key and search for the book by some metadata, select it in the list and then prompted to enter the page number and hit Enter to make the note (with a predefined format) and the link to zotero in it.

when working with Zotero, you need to finish reading pdf and then export annotations by Zotfile plugin to export pdf to a markdown file in obsidian, and the exported markdown file got refreshed every time when you want to re-export anything in that paper.
the point is that the reading experience in reference managers method is divided and not at smooth as Logseq style when you could copy the source in pdf and comment on that snippet any time you wish during the pdf reading and not have to experience any "stop to export“ process。

1 Like

i understand that, it is annoying for me too, but i don’t think it is possible for obsidian to work as a reference manager. i don’t know about the logseq and how it handles it’s pdf files but keeping huge amount of files inside obsidian is not manageable right now and i don’t see any sign that it is going to change in the future, so it is a trade-off imo.

it is also seem possible to add an auto sync feature between zotfile+mdnote and obsidian. I know it is not easy/probable but that is an option to solve this issue too

For now, I just want a more convenient way to create a link format like [[myfile.pdf#page=x]]. The plugin media extended already have a function to create timestamps pretty fast, please check it out Create a note that linked to a specific paragraph in a pdf - #33 by Ocarinalover.

i have not played much with that plugin too. yes what you want is not hard to implement. you can also use the better pdf plugin to do do just that right now. if embeded pdf page annoys you you can fold it with by putting it under a bullet point or header or something. i wish admonition plugin could support code blocks so that we can hide code blocks in it

Yeah,obsidian is quite flexible ,we can do pdf linking in lots of different ways. but not the most convenient and efficient way. I raise this topic a year ago with the hope that obsidian could host a feature that almost like industry standard(already featured in liquidtext, marginnote, polar, bookxnote, Flexcil,Qiqqa,Citavi, Remnote, Logseq, Roamresearch), and it’s a proven way to help you better understand and analyse a pdf(book,paper,comic,etc.). I really hope obisian could go a step further.

3 Likes

yeah, it also would be nice if obsidian could handle local html files (as it already parses html tags). but i think they avoid that because it has some security issue and is more problematic than pdf

1 Like

Will it possible to make something like this:Create a note that linked to a specific paragraph in a pdf - #33 by Ocarinalover

1 Like

I’m looking forward to using the function. Are there any plan to develop it?

I hope that you are already know that most of the PDF reader app such as Foxit Reader, PDF-XChange or Adobe Acrobat will allow users to go to a specific page from outside. You can revoke it by command with parameters, for example:

  • With PDF-XChange:

[Installed folder]\pdfxedit.exe /A page=[page number] [path to the PDF file]

The command like:

pdfxedit.exe /A page=5 test.pdf

So, my idea is that:

  • There is a function like Media Extend which can choose the path to the PDF reader app and input its corresponding parameters like the above command syntax.
  • There is a middle to convert the link like: “test.pdf#page=5” into 2 parts, the first is the path to the pdf file and the second is the page number we want to anchor in the PDF file.
  • Once we click the link, Obsidian will call the command with the 2 parameters.
    Thanks,