Metadata-Version: 2.1
Name: printfactory
Version: 0.1.0a0
Summary: Print PDF files to a local installed printer
Home-page: https://github.com/dl6nm/printfactory
Author: dl6nm
Author-email: mail@dl6nm.de
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: pydantic (>=1.7.3,<2.0.0)
Project-URL: Repository, https://github.com/dl6nm/printfactory
Description-Content-Type: text/markdown

[![License?][shield-license]](LICENSE)

# printfactory

`printfactory` is a package, primarily for printing PDF files to a physical printer.

## Table of Contents

- [Why?](#why)
- [Changelog](#changelog)

## Why?

The motivation for this project was to have a simple Python interface for printing PDF files to a physical printer.
Only public available and free software should be used on the client or server using this package. 


## printfactory package

    printfactory
        .list_printers()        # list/get available printers in system

        Printer()               # Generic Printer class for printing a file with a PrintTool
            .send()             # send a file to a printer using a PrintTool

        AcroPrinter(Printer)    # Subclass of Printer() for Adobe Acrobat
        AcroRdPrinter(Printer)  # Subclass of AcroPrinter() for Adobe Reader
       [FoxitPrinter(Printer)]  # Subclass of Printer() for Foxit Reader
       [LPRPrinter(Printer)]    # Subclass of Printer() for LPR printing on Linux like systems

        PrintTools()            # List/Enum of implemented tools for printing a file
            .find()             # Find a PrintTool in system

        PrintTool()             # List/Enum of implemented tools for printing a file
            Adobe Acrobat
            Adobe Reader
            Foxit Reader
            LPR


    printer = printfactory.Printer('PrinterName')   # return Printer class
    printer.tool => AdobeReader                     # autodetect path
    printed = printer.send('PathToPDFDocument')     # return True or False



## Changelog

All notable changes to this project will be documented in the [CHANGELOG.md](CHANGELOG.md).



[shield-license]:  https://img.shields.io/badge/license-MIT-blue.svg

