Skip to content

jurczewski/private-pdf-converter

Repository files navigation

🔎 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

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.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

About

Private PDF Converter is a simple, secure offline tool for quickly turning your image files (like PNGs) into a single PDF - no internet required. Your files stay private on your device.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages