Command line tool for converting to/from remarkable .rm version 6 (software
version 3) files.
If you want nice font rendering, you will need to install chrome/chromium (used
to create svg/pdf with embedded fonts). Otherwise, rendering will fall back to
using cairo. Chrome based rendering can also be turned off with --no-chrome.
To install in your current Python environment:
pip install rmc
Or use pipx to install in an isolated environment (recommended):
pipx install rmc
To embed custom reMarkable fonts in the output, you will need to download them first:
cd ./src/rmc/assets/fonts/
./download_remarkable_fonts.sh
Convert rm to pdf:
$ rmc file.rm -o file.pdf
Convert rm to svg:
$ rmc file.rm -o file.svg
Convert a remarkable v6 file to other formats, specified by -t FORMAT:
$ rmc -t markdown file.rm -o file.md
Create a .rm file containing the text in text.md:
$ rmc -t rm text.md -o text.rm
$ rmc --help
Usage: rmc [OPTIONS] [INPUT]...
Convert to/from reMarkable v6 files.
Available FORMATs are: `rm` (reMarkable file), `markdown`, `svg`, `pdf`,
`blocks`, `blocks-data`.
Formats `blocks` and `blocks-data` dump the internal structure of the `rm`
file, with and without detailed data values respectively.
Options:
--version Show the version and exit.
-v, --verbose
-f, --from FORMAT Format to convert from (default: guess from filename)
-t, --to FORMAT Format to convert to (default: guess from filename)
-o, --output PATH Output filename (default: write to standard out)
--no-chrome Use Cairo instead of Chrome for PDF conversion
--chrome-loc PATH Path to Chrome/Chromium binary
--device [RM2|RMPP] Device type (overrides auto-detection)
--help Show this message and exit.
rmc uses rmscene to read the .rm files, for which https://github.com/ddvk/reader helped a lot in figuring out the structure and meaning of the files.
@chemag added initial support for converting to svg and pdf.
@Seb-sti1 made lots of improvements to svg export and updating to newer rmscene versions.
@ChenghaoMou added support for new pen types/colours.
@EelcovanVeldhuizen for code updates/fixes.
@p4xel for code fixes.