A tool to allow batch PDF export for free Notion users. You can export as HTML with subpages and then use this tool to convert those into PDFs.
Get the latest download for Windows and macOS from the releases page:
https://github.com/ganeshh123/notion-pdf-export/releases
- Download the tool and extract.
- In Notion, place all the pages you wish to export into one page and click Export, choose 'HTML' and ensure 'Include Subpages' is on.
- Extract the export to find a list of HTML files and folders for each page. Place the HTML files with folders containing images in the same folder as
notion-pdf-export.exe
(Windows) ornotion-pdf-export
(macOS).
- Double click
notion-pdf-export.exe
(Windows) ornotion-pdf-export
(macOS) and wait for the process to be completed.
If nothing happens, you may need to go to macOS security settings and click 'Open Anyway':
- All the individual pages can be found converted into PDF Documents inside the
pdfs
folder.
- Repository: ganeshh123/notion-pdf-export
- HTTPS Clone:
https://github.com/ganeshh123/notion-pdf-export.git
- SSH Clone:
git@github.com:ganeshh123/notion-pdf-export.git
- Clone/Download the project and run the command in the project root directory:
npm install
- Run this command to run the script:
node index.js
This is tricky. A lot of adjustments had to be made so that it can run without node.
Executables are compiled with a very specific version of nexe that allows access to the filesystem, which has a tricky setup procedure.
- Windows - Run
install_nexe_win.bat
as admin, will take about 5 minutes to install fully. - macOS - Run the
install_nexe_mac
shell script, will take about 5 minutes to install, and you will need to enter an admin password. This sometimes doesn't seem to work properly, so might be worth doing manual install if there's problems.
-
Firstly, install the general nexe package globally:
- Windows (in command prompt must be running as admin):
npm install -g nexe
- macOS (in the terminal):
sudo npm install -g nexe
- Windows (in command prompt must be running as admin):
-
In the project root folder build some executables with this version of nexe to download node binaries for Windows and macOS:
nexe . --target win32-x86-10.13.0 nexe . -t macos-10.13.0
This will download the binaries we need for later, delete the executables built with this for now.
-
Now we need to install a specific version of nexe that allows access to the filesystem:
- Windows (in command prompt must be running as admin):
npm install -g cspotcode/nexe#19a5046
- macOS (in the terminal):
sudo npm install -g cspotcode/nexe#19a5046
Now we should have the correct version of nexe for building. Confirm by running:
nexe -v
Check that the version is
4.0.0-beta.4
- Windows (in command prompt must be running as admin):
- Windows (on a Windows system):
Run the batch script
build_win32.bat
to build a Windows executable. This can be found in/dist/win32
and everything in that folder must be distributed together. - macOS (on a macOS system):
Run the shell script
build_macos
to build a macOS executable. This can be found in/dist/macos
and everything in that folder must be distributed together.
If you wish to compile for macOS on Windows or vice versa, you can do so using the manual method below.
-
To build a Windows executable, in the root directory of the project, run the command:
nexe . --target win32-x86-10.13.0 -o ./dist/win32/notion-pdf-export.exe
When distributing the executable
notion-pdf-export.exe
must be placed in a directory with the originalutils
folder from the source. -
To build a macOS executable, in the root directory of the project, run the command:
nexe . -t macos-10.13.0 -o ./dist/macos/npe
Note that this is built under the name
npe
due to an issue with accessing the current directory. When distributing, place thenpe
executable it in a directory with the following:- The original
utils
folder from the source code - An executable unix shell script with the following contents, with the file name of
notion-pdf-export
:
#/bin/bash cd "$0"/.. ./npe
This can be obtained from
mac_script.sh
or found inside/dist/macos
This script is needed to set the current directory before thenpe
executable is run. - The original
This project uses wkhtmltopdf for the conversions. This brilliant tool was created by Jakob Truelsen and is now maintained by Ashish Kulkarni. Version 0.12.6
has been used, and can be downloaded here.
wkhtmltopdf is released under the LGPL-3.0 License which can be found at utils/wkhtmltopdf/LICENSE
. The source code is available at the wkhtmltopdf repository.
Icon by Alex Martynov obtained from IconScout.