PrivatePdfConverter 1.3.1
dotnet tool install --global PrivatePdfConverter --version 1.3.1
dotnet new tool-manifest
dotnet tool install --local PrivatePdfConverter --version 1.3.1
#tool dotnet:?package=PrivatePdfConverter&version=1.3.1
nuke :add-package PrivatePdfConverter --version 1.3.1
π PrivatePdfConverter
β - The star motivates me a lot

βοΈ Description
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.
π¬ Real Life Scenario
- 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:
β¨ Small, offline, and convenient!
β‘ Install
Option 1: .NET Tool (Recommended)
Just type to install:
dotnet tool install --global PrivatePdfConverter
Option 2: Standalone Executable
Download 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
π» Usage
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 --version
Example of logo command:
ppc logo --path "D:\1.pdf" --logo-path "D:\logo.png" --position "bottom-left" --scale 25 --opacity 50 --output "newpdf"
π Arguments
| 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.
π Supported file extensions
Type ext argument to list all the valid image extensions:
- .jpg
- .jpeg
- .bmp
- .gif
- .png
- .tif
- .tiff
- .webp
πΊοΈ Features roadmap
- 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
π― Others
- 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
π Competition 100commitow
The project is part of the competition 100 commitow.
β¨οΈ Development
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.
Local
Build and run using .NET 10.0:
dotnet build
.\PrivatePdfConverter.exe dir --path "D:\dir-with-images"
π Dependencies
Based on CLI framework ConsoleAppFramework. Zero external dependencies, zero reflection, high performance and fastest startup time.
π Sonar statistics
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
See https://github.com/jurczewski/private-pdf-converter/blob/master/CHANGELOG.md for full changelog.