PrivatePdfConverter 1.3.1

dotnet tool install --global PrivatePdfConverter --version 1.3.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local PrivatePdfConverter --version 1.3.1
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=PrivatePdfConverter&version=1.3.1
                    
nuke :add-package PrivatePdfConverter --version 1.3.1
                    

πŸ”Ž PrivatePdfConverter

Build NuGet version (PrivatePdfConverter) License: MIT Quality Gate Linkedin 100 - CommitΓ³w

Buy Me a Coffee

⭐ - The star motivates me a lot

Logo

βœ’οΈ 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

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.exe or PrivatePdfConverter-win-arm64.exe
  • Linux (x64/ARM64): PrivatePdfConverter-linux-x64 or PrivatePdfConverter-linux-arm64
  • macOS (x64/ARM64): PrivatePdfConverter-osx-x64 or PrivatePdfConverter-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

Quality Gate Bugs Code Smells Duplicated Lines (%) Lines of Code Reliability Rating Security Rating Technical Debt Maintainability Rating Vulnerabilities

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.3.1 138 3/30/2026
1.3.0 139 1/24/2026
1.2.1 117 1/24/2026
1.2.0 105 1/16/2026
1.1.1 222 10/8/2025
1.1.0 209 10/8/2025
1.0.2 202 10/6/2025
1.0.1 217 6/7/2025
1.0.0 492 6/15/2024