PDF tools for reMarkable tablets

rm-pdf-tools - PDF tools for reMarkable

Disclaimer: rm-pdf-tools is currently in a very early version, bugs are to be expected. Furthermore, the intended use case for this tool is to be run 24/7 on a computer, and your tablet needs to be connected to the cloud.

Right now, this tool might require more technical knowledge than hacks, however you do not run any risk of voiding your warranty or bricking your device.

Please open an issue if you find a bug or unexpected behavior!

Features

rm-pdf-tools adds the following features to your reMarkable tablet (with an active internet connection):

  • Add blank pages to annotated PDFs
  • Remove pages from annotated PDFs
  • Merge any number of annotated PDFs and/or notebooks (this removes the templates at the moment)

Demo

See here for a demo.

Installation

reMarkable

In the root (top-level) directory of your reMarkable cloud, create the following directories:

/pdf-tools/
/pdf-tools/work/
/pdf-tools/merge/
/pdf-tools/original/
/pdf-tools/processed/

Server

To clone the repository and build the binary, run

git clone https://github.com/skius/rm-pdf-tools
cd rm-pdf-tools
go build .

Then start the service using ./start.sh and follow the instructions to authenticate rm-pdf-tools with your reMarkable cloud (courtesy of rmapi).

Usage

Merge documents

To merge documents (currently supported are: annotated PDFs and notebooks), rename the documents in such a manner that their alphabetical order corresponds to the desired merge order. Then move them all to the /pdf-tools/merge/ directory and wait for them to be synchronized. Then rename the merge/ directory to merge!/ (add a ! to the end) and wait for the tool to take over. Once the tool finishes, the merged document will appear in /pdf-tools/processed/ and the original documents will be in /pdf-tools/original/. Furthermore, the merge!/ directory should be named merge/ automatically again.

You can merge PDFs with PDFs, PDFs with notebooks, and notebooks with notebooks. Note that currently the resulting document will be an annotated PDF, with the usual limitations. Additionally, the template background of your notebooks will be replaced by a blank PDF page in the merged document.

A demo can be found here. (This was from before you had to rename the merge folder to merge! - other than that, everything works the same)

Example

You wish to append your notebook Homework Notes to the end of the PDF My Uni Assignment. First, you rename the files to 1 My Uni Assignment and 2 Homework Notes, because you want the assignment to appear before your notes in the merged document. Then select both files (long press on the first file, short press on the second file) and select "Move" and move them to /pdf-tools/merge/. When you don't see any more cloud notifications, rename that folder to merge!/.

If everything worked correctly, your merged PDF should appear in /pdf-tools/processed/.

Edit PDFs

To add/delete pages of a PDF, simply create a folder in /pdf-tools/work/ with a name following the actions format corresponding to what you want to change about the PDF.

Then move your PDF into that folder and wait for a few seconds. If everything worked correctly, you should now find the processed PDF with your changes in the folder /pdf-tools/processed/.
If you accidentally deleted too much, or still need the original for other reasons, you can find it in /pdf-tools/original/.

See the demo for an example workflow.

Actions format

The title of the folder you're creating in work/ should be a comma-separated list of action's.
An action can be:

  • XaY: insert X pages after page Y
  • XbY: insert X pages before page Y
  • -Y: delete page Y

Note that your title may not contain multiple references to the same page Y, e.g., -3,1a3 is not allowed.
Also note that the page numbers always refer to the pages of the original document, i.e. 1a1,-2 deletes the original 2nd page, not the freshly inserted page 2.

Examples

  • 2a1,-3: insert 2 pages after page 1, and delete page 3
  • -10,1a1,1b2: delete page 10, insert 1 page after page 1, and insert 1 page before page 2
  • -1: delete page 1

Limitations

Currently, this project uses pdfcpu, which only supports PDFs up to version 1.7. This means that certain PDFs, such as those generated by ReCalendar, are not able to be edited.
Feel free to open an issue or pull request if you know an alternative.

License

This project's source is licensed under the MIT License.
The pre-built bundles available on the releases page are licensed under the AGPL License.

Similar Resources

create PDF from ASCII File for Cable labels

CableLable create PDF from ASCII File for Cable labels file format is one label per line, a line containing up to 3 words, each word is a line on the

Nov 8, 2021

Convert document to pdf with golang

Convert document to pdf Build docker: docker build --pull --rm -f "Dockerfile" -t convertdocument:latest "." docker run -p 3000:3000 registry.gitlab.

Nov 29, 2021

Ghostinthepdf - This is a small tool that helps to embed a PostScript file into a PDF

This is a small tool that helps to embed a PostScript file into a PDF in a way that GhostScript will run the PostScript code during the

Dec 20, 2022

Read data from rss, convert in pdf and send to kindle. Amazon automatically convert them in azw3.

Kindle-RSS-PDF-AZW3 The Kindle RSS PDF AZW3 is a personal project. The Kindle RSS PDF AZW3 is a personal project. I received a Kindle for Christmas, a

Jan 10, 2022

Go-wk - PDF Generation API with wkhtmltopdf

Simple PDF Generation API with wkhtmltopdf Quick start Clone the repo locally an

Jan 25, 2022

Newser is a simple utility to generate a pdf with you favorite news articles

Newser is a simple utility to generate a pdf with you favorite news articles

Newser A simple utility to crawl some news sites or other resources and download content into a pdf Building Make sure you have config.yaml setup and

Nov 9, 2022

PDF Annotator of Nightmares 🎃

PDF Annotator of Nightmares 🎃

PDFrankenstein is a GUI tool that intends to fill the gap on Linux where a good capable PDF annotator like Adobe Acrobat does not exist. What can you

Dec 8, 2022

🍱 yet another collection of go utilities & tools

gut 🍱 Yet another collection of Go utilities & tools. A simple one. Just go with your gut feeling. Shortcuts Symbol 🍱 弁当 Document License Build Stat

Sep 26, 2022

Remarkable css - Remarkable Changing Suspend Screen Service

Remarkable css - Remarkable Changing Suspend Screen Service

Remarkable Changing Suspend Screen Service reMarkable service to automatically d

Jan 30, 2022

Automatically map wacom tablets area to your primary X output.

xsetwacom-auto Simple CLI tool that uses xsetwacom and xrandr to: map the to one monitor set the tablet area to match the aspect ratio of the monitor

Dec 7, 2021

A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.

A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.

one-file-pdf - A minimalist PDF generator in 2K lines and 1 file The main idea behind this project was: "How small can I make a PDF generator for it

Dec 11, 2022

Convert scanned image PDF file to text annotated PDF file

Convert scanned image PDF file to text annotated PDF file

Jisui (自炊) This tool is PoC (Proof of Concept). Jisui is a helper tool to create e-book. Ordinary the scanned book have not text information, so you c

Dec 11, 2022

Golang PDF library for creating and processing PDF files (pure go)

UniPDF - PDF for Go UniDoc UniPDF is a PDF library for Go (golang) with capabilities for creating and reading, processing PDF files. The library is wr

Dec 28, 2022

goldmark-pdf is a renderer for goldmark that allows rendering to PDF.

goldmark-pdf is a renderer for goldmark that allows rendering to PDF.

A PDF renderer for the goldmark markdown parser.

Dec 27, 2022

golang 在线预览word,excel,pdf,MarkDown(Online Preview Word,Excel,PPT,PDF,Image by Golang)

golang 在线预览word,excel,pdf,MarkDown(Online Preview Word,Excel,PPT,PDF,Image by Golang)

Go View File 在线体验地址 http://39.97.98.75:8082/view/upload (不会经常更新,保留最基本的预览功能。服务器配置较低,如果出现链接超时请等待几秒刷新重试,或者换Chrome) 目前已经完成 docker部署 (不用为运行环境烦恼) Wor

Dec 26, 2022

Go library to parse and render Remarkable lines files

Go library to parse and render Remarkable lines files

go-remarkable2pdf Go library to parse and render Remarkable lines files as PDF.

Nov 7, 2022

A document encryption solution for the reMarkable 2 ePaper tablet.

Remarkable 2 Encryption This repository contains multiple tools to encrypt the home folder of the reMarkable 2 epaper tablet using gocryptfs. Detailed

Nov 7, 2022

Digital planner for Supernote and ReMarkable

Digital planner for Supernote and ReMarkable

latex-yearly-planner PDF planner designed for e-ink devices. Download latest PDF with newest features and best bugs from the latest release. Visit the

Jan 9, 2023

siusiu (suite-suite harmonics) a suite used to manage the suite, designed to free penetration testing engineers from learning and using various security tools, reducing the time and effort spent by penetration testing engineers on installing tools, remembering how to use tools.

siusiu (suite-suite harmonics) a suite used to manage the suite, designed to free penetration testing engineers from learning and using various security tools, reducing the time and effort spent by penetration testing engineers on installing tools, remembering how to use tools.

siusiu (suite-suite harmonics) a suite used to manage the suite, designed to free penetration testing engineers from learning and using various security tools, reducing the time and effort spent by penetration testing engineers on installing tools, remembering how to use tools.

Dec 12, 2022
Comments
  • Doesn't work on win10

    Doesn't work on win10

    Hi,

    I am trying to use your very interesting application. I am using the version for Windows, but it seems that it does not work. Here the error messages:

    Enter one-time code (go to https://my.remarkable.com/connect/desktop): ********
    panic: entry doesn't exist
    
    goroutine 1 [running]:
    github.com/skius/rm-pdf-tools/cloud.(*Cloud).FindNewFilesEdit(0xc000006140, {0xe9b555, 0x10})
            /github/workspace/cloud/cloud.go:76 +0x476
    main.main()
            /github/workspace/main.go:25 +0x3f
    
  • Template support for inserted PDFs

    Template support for inserted PDFs

    Allow users to select from a predefined set of templates that are used to fill the inserted pages.

    This could also be used to improve the merge functionality when merging notebooks: simply copy the existing templates (from .pagedata) into the merged document (by replacing the empty.pdf background PDF).

  • Convert (annotated) PDFs to notebooks

    Convert (annotated) PDFs to notebooks

    Convert PDFs back to notebooks using https://sourceforge.net/projects/drawj2d/ resp. https://github.com/JCN-9000/pdf2rmnotebook

    Will likely need deserialization and serialization of .rm files, to add existing annotations as different layers on top of the converted PDF layer. Use https://github.com/matomatical/reMarkable-kaitai ?

Golang PDF library for creating and processing PDF files (pure go)

UniPDF - PDF for Go UniDoc UniPDF is a PDF library for Go (golang) with capabilities for creating and reading, processing PDF files. The library is wr

Dec 28, 2022
goldmark-pdf is a renderer for goldmark that allows rendering to PDF.
goldmark-pdf is a renderer for goldmark that allows rendering to PDF.

A PDF renderer for the goldmark markdown parser.

Dec 27, 2022
Digital planner for Supernote and ReMarkable
Digital planner for Supernote and ReMarkable

latex-yearly-planner PDF planner designed for e-ink devices. Download latest PDF with newest features and best bugs from the latest release. Visit the

Jan 9, 2023
Golang wrapper for Exiftool : extract as much metadata as possible (EXIF, ...) from files (pictures, pdf, office documents, ...)

go-exiftool go-exiftool is a golang library that wraps ExifTool. ExifTool's purpose is to extract as much metadata as possible (EXIF, IPTC, XMP, GPS,

Dec 28, 2022
A PDF processor written in Go.
A PDF processor written in Go.

pdfcpu: a Go PDF processor pdfcpu is a PDF processing library written in Go supporting encryption. It provides both an API and a CLI. Supported are al

Jan 8, 2023
A simple library for generating PDF written in Go lang

gopdf gopdf is a simple library for generating PDF document written in Go lang. Features Unicode subfont embedding. (Chinese, Japanese, Korean, etc.)

Jan 3, 2023
A PDF document generator with high level support for text, drawing and images

GoFPDF document generator Package go-pdf/fpdf implements a PDF document generator with high level support for text, drawing and images. Features UTF-8

Jan 4, 2023
A command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format
A command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format

Logbook CLI This is a command line tool for mainly exporting logbook records from Google Spreadsheet to PDF file in EASA format. It also supports rend

Feb 6, 2022
A Docker-powered stateless API for PDF files.
A Docker-powered stateless API for PDF files.

Gotenberg provides a developer-friendly API to interact with powerful tools like Chromium and LibreOffice to convert many documents (HTML, Markdown, Word, Excel, etc.) to PDF, transform them, merge them, and more!

Dec 30, 2022
PDF file parser

#pdf A pdf document parsing and modifying library The libary provides functions to parse and show elements in PDF documents. It checks the validity

Nov 7, 2021