Private PDF Converter is a secure, offline tool that quickly converts image files (like PNGs) into PDFs without needing an internet connection - keeping your data private on your device.
It supports converting single images or entire directories into single PDF files. You can also merge multiple PDFs from a folder into one file, add password encryption for security, and watermark PDFs with a logo image adjustable by size, position, and opacity. The terminal interface is simple and efficient, making complex tasks easy to handle with just a single command.
Check the roadmap below for upcoming features like PDF splitting.
- You receive an addendum from work on paper and scan it into separate files.
- You don't want to send your personal data to the cloud, nor do you want to install something big.
The solution is this CLI program - simply enter a command along with the path to the folder containing the scans, and after a moment, you'll have the combined images in a single PDF.
In three words:
Just type to install:
dotnet tool install --global PrivatePdfConverterDownload the latest release for your platform from the Releases page:
- Windows (x64/ARM64):
PrivatePdfConverter-win-x64.exeorPrivatePdfConverter-win-arm64.exe - Linux (x64/ARM64):
PrivatePdfConverter-linux-x64orPrivatePdfConverter-linux-arm64 - macOS (x64/ARM64):
PrivatePdfConverter-osx-x64orPrivatePdfConverter-osx-arm64
For .NET Tool (Option 1) - use ppc command:
ppc dir --path "D:\dir-with-images"For Standalone Executable (Option 2) - use .\executable-name in terminal:
.\PrivatePdfConverter-win-x64.exe dir --path "D:\dir-with-images"Check version:
ppc --versionExample of logo command:
ppc logo --path "D:\1.pdf" --logo-path "D:\logo.png" --position "bottom-left" --scale 25 --opacity 50 --output "newpdf"| Argument | Description | Options | Optional options |
|---|---|---|---|
dir |
Converts all images inside a directory to a single PDF file. | path - path to directory |
output - PDF output name |
| See below supported file extensions. | |||
img |
Converts a single image to a single PDF file. | path - path to image |
output - PDF output name |
| See below supported file extensions. | |||
merge |
Merges all PDF files inside a directory into a single PDF file. | path - path to directory |
output - PDF output name |
encrypt |
Encrypts PDF with a password. | path - path to a PDF file |
output - PDF output name |
password - encryption password |
|||
logo |
Add image (logo) as a watermark to every page of PDF. | path - path to a PDF file |
output - PDF output name |
logo-path - path to logo image |
scale - Specifies the scale of the image in percentage (e.g., 25 for 25%, 150 for 150%). Default value: 100. |
||
opacity - Specifies the opacity of the image in percentage (e.g., 25 for 25%, 0 for 0% - invisible) Default value: 100. |
|||
position - Positions of logo. One of four values are accepted: top-left, top-right, bottom-left, bottom-right. |
|||
ext |
Lists all valid image extensions. |
For all commands, default export .pdf file name is output.pdf.
Type ext argument to list all the valid image extensions:
- .jpg
- .jpeg
- .bmp
- .gif
- .png
- .tif
- .tiff
- .webp
- convert dir to pdf (
dir) - create a PDF file from a single image (
img) - multiple image extensions support
- merge pdf (
merge) - encrypt PDF with password (
encrypt) - list all valid image extensions (
ext) - add watermark/logo to your PDF (
logo) - auto-detect output filename from source file
- split PDF (
split) - convert PDF to multiple images (
???) - better TUI (menu)
- set default export dir
- readme
- features roadmap
- editorconfig
- logging
- license
- pipeline
- better readme
- cool dynamic labels (version, build, license, buymecoffe)
- integration tests
- manual CD pipeline for NuGet releases
- exe release
- winget/chocolatey
The project is part of the competition 100 commitow.
If you want to contribute, please take a look at the Roadmap or propose your own ideas.
Please create a Pull Request with a solution if you are eager to help. Keep in mind the structure of a solution. If you are going to create a new command, make sure to do it in the Commands directory.
Build and run using .NET 10.0:
dotnet build.\PrivatePdfConverter.exe dir --path "D:\dir-with-images"Based on CLI framework ConsoleAppFramework. Zero external dependencies, zero reflection, high performance and fastest startup time.
