Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add annotation capabilities #109

Closed
baimafeima opened this issue Aug 4, 2017 · 11 comments
Closed

Add annotation capabilities #109

baimafeima opened this issue Aug 4, 2017 · 11 comments
Assignees
Milestone

Comments

@baimafeima
Copy link

I know bookworm is primarily meant as a simple e-book reader. However, I intend to use it more for reading scientific articles. Would it be possible to add PDF annotation tools and generally improve PDF rendering capabilities or do you think this is rather something for a separate project? Currently, there are not many PDF annotation tools available for Linux-based operating systems.

@babluboy
Copy link
Owner

babluboy commented Aug 4, 2017

@baimafeima Thanks for raising this - annotation is definitely a good capability and I will like to add it to bookworm at some point. I can use this issue to keep track and hopefully I will get to it at some point.

Yes, PDF rendering improvement is on my TO-DO list...I am trying to see what can be a better PDF to HTML conversion as the pdftohtml utility is pretty basic and does not render the pages well. I'm tracking this on #82

@baimafeima
Copy link
Author

baimafeima commented Aug 19, 2017

Thanks a lot for considering this. I will help track down annotation options and everyone could help by adding to this list:

@babluboy
Copy link
Owner

babluboy commented Sep 5, 2017

Cross referencing #102 with this - the annotation and highlight can be put in the same context as menu options after the user selects some text on a page...Annotation can be on a tab in the Info section to start with...but can also be made available on a collapsible sidebar as well...

@babluboy
Copy link
Owner

Initial design idea is :

  1. Show a right click context menu option to add annotations after selecting text on a page
  2. Show a modal dialogue to enter annotation
  3. Once Annotated the selected text is shown in green highlight and hyperlinked
  4. On click the annotation is shown in a modal dialogue where it can be edited or deleted
  5. All annotations in the book are listed on a tab in the Info section arranged by page numbers. On click of any annotation the corresponding page of the book will be opened with the annotated text scrolled to view

Thoughts?

@ckrzen
Copy link

ckrzen commented Sep 30, 2017 via email

@baimafeima
Copy link
Author

Would there be an option to switch between an annotation overlay and non-overlay mode? The first would save annotations separate from an actual PDF (the advantage being that the original PDF is not modified, disadvantage is that annotations are not visible in another programme) whereas the latter would include them in the PDF itself.

@babluboy
Copy link
Owner

babluboy commented Oct 1, 2017

@baimafeima At the moment I'm keeping the annotation data separate from the book (in the Bookworm database) and it is over-layed at view time. Since all books are viewed in HTML format, it makes it easy to apply annotations uniformly for all formats like PDF, ePUB, Mobi, etc.

I like your thought about adding the annotation data into the book itself - but there are two challenges:
1- At the present time, Bookworm does not update/change the actual eBook
2- I have not seen any standards for annotations and it will surely vary across different eBook formats

So the best I can think of for later design is to have a function to export or embed all meta data for a book (i.e. annotation, bookmarks, ratings, etc) to a format which is standardized and supported by other eBook software and can be imported. But don't think that will happen soon and will be restricted only specific software and format like eVince/PDF.

@babluboy
Copy link
Owner

babluboy commented Oct 4, 2017

Pushed an initial version to GH and the daily PPA for annotations.
Creating Annotations (multiple), Persisting the Annotation and displaying it back and Editing Annotations are all working. The following needs to be done:

  • Disable creation of annotation in right click context menu when no text is selected
  • Remove the annotation when the annotation is updated by deleting the annotated text
  • Show all annotations in the Annotation tab under Info and hyperlink them to allow jumping to the page containing the annotation

Some screen shots of the current implementation. Will be great if anyone can test from the daily PPA or build from source on master.

0-select text for annotation
1-add annotation
2-edit annotation
3-multiple annotations on page

@babluboy babluboy changed the title Add PDF annotation capabilities Add annotation capabilities Oct 4, 2017
@baimafeima
Copy link
Author

Just came across TagNotate: http://www.tagnotate.com/ which unfortunately is neither open-source nor available cross-platform but it has a unique feature set: the ability to tag annotations to quickly find information within and across documents. Is there a possibility to implement something like this?

@babluboy
Copy link
Owner

babluboy commented Oct 9, 2017

@baimafeima Thanks for this - very interesting. I have already implemented annotation list within a book to jump to a page containing that annotation quickly - screen shot below. will push this out shortly.

The taging of annotation is a nice idea to allow searching across the library. Initial thought is to add a text box within the annotation dialog to add tags to a specific annotation and then use the search bar in the library view (which currently filters books on title, authors, tags) to also filter by annotation tags....

screenshot from 2017-10-10 18 29 26

@babluboy
Copy link
Owner

babluboy commented Oct 15, 2017

Added the final updates to annotations:
1- Removing the annotation text will remove the annotation highlight
2- Tags can be set for a annotated text and these tags can be used to filter books in the library (using the header search in the library view)

Will wrap up the annotation feature with this update and do testing to improve the functionality.

screenshot from 2017-10-15 22 19 16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants