Metadata-Version: 2.3
Name: kindle2pdf
Version: 0.7.2
Summary: 
Author: Robert Dargavel Smith
Author-email: teticio@gmail.com
Requires-Python: >=3.13,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: browser-cookie3 (>=0.20.1,<0.21.0)
Requires-Dist: cryptography (>=42.0.5,<43.0.0)
Requires-Dist: fonttools (>=4.59.1,<5.0.0)
Requires-Dist: numpy (>=2.3.2,<3.0.0)
Requires-Dist: pypdf (>=5.0.1,<6.0.0)
Requires-Dist: reportlab (>=4.1.0,<5.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: svglib (>=1.5.1,<2.0.0)
Requires-Dist: svgpathtools (>=1.7.1,<2.0.0)
Requires-Dist: tqdm (>=4.66.2,<5.0.0)
Description-Content-Type: text/markdown

# Kindle2PDF and PDF2Remarkable

## Introduction

A Python script to render your Kindle books as PDFs without needing a device. This is ideal if you want to read them on a reMarkable tablet or similar.

A script is also provided to upload the PDFs to the reMarkable Cloud, which is particularly useful on Linux as the official desktop application is not available.

## Installation

```bash
pip install kindle2pdf
```

## Usage

First you need to login to `https://read.amazon.com/`. The Python script will automatically retreive any cookies it needs. Then, assuming you own the book with the ASIN `B0182LFAIA`, you can run the following command:

```bash
kindle2pdf B0182LFAIA
```

If the book is only available in a specific country, use the `--region` flag to specify it:

```bash
kindle2pdf B0182LFAIA --region co.uk
```

To find out the ASIN of any book, you can either inspect the URL of the book in the Kindle Cloud Reader, or search for it in Amazon. You'll need to make sure that it corresponds to the edition that you own.

By default, the PDF includes selectable/searchable text as well as rendered glyphs. To omit the text layer (faster rendering but not searchable or copyable), pass `--exclude-text`. It is also possible to include only the text and not render the glyphs with `--exclude-glyphs`; this results in a smaller PDF file, but it may not display correctly in all viewers.

You can also download a free sample (approximately 5% of the book) without owning the book or being logged in by passing `--sample`.

```bash
kindle2pdf --sample B0182LFAIA
```

If you want to upload a PDF to the reMarkable Cloud you can add the switch `--remarkable` to `kindle2pdf` or simply

```bash
pdf2remarkable "The Cybergypsies.pdf"
```

The first time you run this, you will be asked to pair your device. Just follow the instructions and paste your OTC.

## Troubleshooting

* `Book <ASIN> is not available for download (ContentUnsupported)`. Some books can only be read on the Kindle web / desktop app; if you are unable to open the book on https://read.amazon.com, then you will not be able to download it. In principle, it should be possible to extend `kindle2pdf` to cater for these cases, but it would be quite involved. If you are interested in undertaking this challenge then please open a Pull Request or reach out to me.

* If you get a "Permission denied" error when running `kindle2pdf` on Windows, try closing any Chrome browsers.

* If you have any other problems with cookies in spite of having logged in to https://read.amazon.com, please check https://github.com/borisbabic/browser_cookie3/issues.

* If you have authentication problems with `pdf2remarkable` or want to re-pair your device, delete the `.pdf2remarkable` file in your home directory and run the script again.

* Otherwise, if you run into what looks to be a bug, you can run `kindle2pdf` with `--save-mock` and create an issue with a link to your `responses.jsonl` for debugging purposes. Any sensitive IDs or persistent tokens will have been removed. Please also give details of your Operating System.

