jimmejardine / qiqqa-open-source

The open-sourced version of the award-winning Qiqqa research management tool for Windows
GNU General Public License v3.0
366 stars 60 forks source link

PDF Standards Compliance #372

Open Wryting opened 2 years ago

Wryting commented 2 years ago

Hi,

Seems like Qiqqa's features are GREAT! I have read online the following online:

"To my knowledge, PDF software that closely follows PDF standards do not offer this ability to handle multiple topics at once and one annotation at a time, and software that offer such a possibility, such as Qiqqa, do not follow PDF standards. "

and

"Qiqqa is the closest thing I saw which can be called a full fledge PDF Annotator. ... the main features are not PFD compliant. Annotations and tags (“subject” property) do not comply with ISO standards for PDF format. So, it's impossible to work on a device that does not have Qiqqa installed, which means you can not collaborate with colleagues who do not use Qiqqa. "

What is true in these statements?

Is qiqqa PDF compliant?

Thanks!

Wry Ting

GerHobbelt commented 1 year ago

The short answer is: Qiqqa is currently not using PDF-embedded annotations like that.

"PDF Compliant" is a big shooting maze which starts with the PDF specs amounting to a couple of 1000s pages of documentation, so there's a bright future there 😉


Re your first part, there's work being done by others who use Qiqqa to process PDF-embedded annotations -- work that's not published yet. If you're purely looking for tools that do PDF annotations, there's FoxIt Reader (IIRC) and PDFAnnotator at least, though both are commercial products and don't do "team work".

Using it to augment/manage an on-site library is a whole 'nother kettle of fish and I don't believe anyone is really gunning for that market space, at least not with on-premise / OSS software like Qiqqa. Surely Springer et al have some great (*ahem*) propositions for you if you are willing to chop & share your gold leaf tree 😉 but that's about it; the rest is focusing on referencing (a.k.a. attribution) only as far as I can tell.

klmckinney commented 1 year ago

I have been doing some work around the issue of integrating my "qiqqa PDF workflow" and my "non-qiqqa PDF workflow".

As is noted above, Qiqqa annotations are a totally different animal than PDF annotations. Qiqqa annotations "live" within the qiqqa database and don't even exist within the .PDF files.

At first I wanted to modify the Qiqqa codebase to address this issue. After a little exploration I realized this was a much bigger task than I was ready for. So instead I have been focusing on "external" tools. I have been exploring using Qiqqa's SQLite database for storing annotations and then developing tools which can read the annotations stored in the SQLite database and add these annotations to the .PDF file. MuPDF is very useful here. Additionally, I have been developing another external tool which can read the annotations with a .PDF and store them into Qiqqa's SQLite database. MuPDF is also very useful for this.

At this time these are "quick and dirty" tools to make my life easier. Mostly command line. Mostly Python. Mostly not checking for errors. Kind of idiosyncratic. Mostly not ready for the general public.

GerHobbelt commented 1 year ago

:+1: @kenelm!

Your work and our discussions have shown me that is the way forward with qiqqa anyhow.

I.e.: I want to get qiqqa to a point where it can extract\use pdf-embedded annotations, and put them back into pdfs as well, so people can take their annotations anywhere, bundled with their pdfs.

FYI: I track bleeding edge mupdf (and fiddle with it myself) and I've seen Artifex adding recent work\commits for annotation processing (write into pdf, mostly, as that was lacking or incomplete from what i could tell from their code), so your tactic is fully in line with others' work.

Unfortunately I've been very slow to proceed on this. I am very happy to hear you've been going forward: your experience with this is highly valuable as I've seen quite a few caveats & pitfalls at the technical level. (It's not just that qiqqa makes annotation exchange tough by using c# specific serialization for storing this data in the database (IIRC, YMMV), but while I was taking an extended dandelion break of several months, I've tried a few (Oss & commercial) pdf editors and i noticed that rendering annotations is not, ahhh, very consistent across tools: even when they support many (all?) annotation types, what you get to see on screen is quite different (quotes f.e. - ugh!) so there's a challenge there on both sides of the fence.

I intend to code this part of the process in C \ C++ (the language mupdf is written in), but it helps enormously when the process has already been tried and tested in a scripted language (python) -- besides, I've been pondering whether this should be a userhadaptable and thus -scriptable process forever. (So one can tweak the data processing for one's own purposes.)

On Sun, Sep 4, 2022, 15:39 klmckinney @.***> wrote:

I have been doing some work around the issue of integrating my "qiqqa PDF workflow" and my "non-qiqqa PDF workflow".

As is noted above, Qiqqa annotations are a totally different animal than PDF annotations. Qiqqa annotations "live" within the qiqqa database and don't even exist within the .PDF files.

At first I wanted to modify the Qiqqa codebase to address this issue. After a little exploration I realized this was a much bigger task than I was ready for. So instead I have been focusing on "external" tools. I have been exploring using Qiqqa's SQLite database for storing annotations and then developing tools which can read the annotations stored in the SQLite database and add these annotations to the .PDF file. MuPDF is very useful here. Additionally, I have been developing another external tool which can read the annotations with a .PDF and store them into Qiqqa's SQLite database. MuPDF is also very useful for this.

At this time these are "quick and dirty" tools to make my life easier. Mostly command line. Mostly Python. Mostly not checking for errors. Kind of idiosyncratic. Mostly not ready for the general public.

— Reply to this email directly, view it on GitHub https://github.com/jimmejardine/qiqqa-open-source/issues/372#issuecomment-1236344400, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADCIHVEE4JEZ3KEOABQHVTV4SRB3ANCNFSM5KPTPD2Q . You are receiving this because you commented.Message ID: @.***>

grfaith commented 1 year ago

Has anyone made/heard/seen any movement on this?