/private-pdf-converter

Private PDF Converter is a secure offline tool designed to effortlessly convert PNG files stored locally into a comprehensive PDF document.

Primary LanguageC#MIT LicenseMIT

πŸ”Ž PrivatePdfConverter

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

"Buy Me A Coffee"

⭐ - The star motivates me a lot

Logo

βœ’οΈ Description

Private PDF Converter is a secure offline tool designed to effortlessly convert PNG files stored locally into a comprehensive PDF document. With a user-friendly terminal interface, this tool prioritizes privacy by ensuring all conversion processes occur offline, eliminating any reliance on cloud services. Stay in control of your sensitive data as you seamlessly transform images into PDFs without compromising confidentiality. Future updates will introduce additional features, such as PDF splitting, to further enhance functionality (see roadmap below).

🎬 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

and then just run it!

ppc dir --path "D:\dir-with-images"

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 commends, default export .pdf file name is output.pdf.

πŸ“Œ Supported file extensions

Type ext argument to list all of 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)
  • convert PDF to multiple images (???)
  • split pdf (split)
  • better TUI (menu)
  • set default export dir

🎯 Other

  • readme
  • features roadmap
  • editorconfig
  • logging
  • license
  • pipeline
  • better readme
  • cool labels (version, build, license, buymecoffe)
  • integration tests
  • auto release from master LINK
  • 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 8.0:

dotnet build
.\PrivatePdfConverter.exe dir --path "D:\dir-with-images"

πŸ”— Dependencies

Based on micro-framework Cocona.

πŸ“ˆ Sonar statistics

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