PrivatePdfConverter 1.0.0

dotnet tool install --global PrivatePdfConverter --version 1.0.0                
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.0.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=PrivatePdfConverter&version=1.0.0                
nuke :add-package PrivatePdfConverter --version 1.0.0                

πŸ”Ž PrivatePdfConverter

100 - CommitΓ³w Build License: MIT Linkedin

"Buy Me A Coffee"

⭐ - The star motivates me a lot

<div align="center"> <img src="assets/logo.jpeg" width="200" height="200" alt="Logo"> </div>

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

πŸ“ 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.

Example of usage - build and run using .NET 8.0:

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

Example of logo command:

logo --path "D:\1.pdf" --logo-path "D:\logo.png" --position "bottom-left" --scale 25 --opacity 50 --output "newpdf"

πŸ“Œ 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.

πŸ”— 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

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. 
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.0.0 380 6/15/2024