PHPackages                             martin3r/platform-printing - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. martin3r/platform-printing

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

martin3r/platform-printing
==========================

Printing Service for Platform

072PHP

Since Mar 7Pushed 2mo agoCompare

[ Source](https://github.com/martin3r-me/platforms-printing)[ Packagist](https://packagist.org/packages/martin3r/platform-printing)[ RSS](/packages/martin3r-platform-printing/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Printing Service
================

[](#printing-service)

Ein modulares Printing-System für die Platform mit CloudPRNT-Unterstützung.

Features
--------

[](#features)

- **Drucker-Management**: Verwaltung von Druckern mit Benutzername/Passwort-Authentifizierung
- **Drucker-Gruppen**: Gruppierung von Druckern für gemeinsame Print Jobs
- **Print Jobs**: Modulübergreifende Print Job-Verwaltung
- **CloudPRNT API**: Kompatible API für CloudPRNT-Drucker
- **Loose Coupling**: Keine direkten Abhängigkeiten zwischen Modulen

Installation
------------

[](#installation)

1. Service Provider in `composer.json` registrieren
2. Migrations ausführen: `php artisan migrate`
3. Config veröffentlichen: `php artisan vendor:publish --tag=printing-config`

Verwendung
----------

[](#verwendung)

### In anderen Modulen

[](#in-anderen-modulen)

```
use Platform\Printing\Traits\HasPrintJobs;

class SalesDeal extends Model
{
    use HasPrintJobs;

    // ...
}

// Print Job erstellen
$deal->createPrintJob('deal_details', ['show_pricing' => true]);

// Print Jobs für Gruppe erstellen
$deal->createPrintJobsForGroup(1, 'deal_details');
```

### CloudPRNT API

[](#cloudprnt-api)

Die API ist unter `/api/printing/` verfügbar:

- `POST /poll` - Drucker fragt nach Jobs
- `GET /job/{uuid}` - Job-Inhalt abrufen
- `DELETE /confirm/{uuid}` - Job als abgeschlossen markieren
- `POST /error/{uuid}` - Job-Fehler melden

Datenmodell
-----------

[](#datenmodell)

### Printers

[](#printers)

- `name`: Name des Druckers
- `location`: Standort
- `username`: CloudPRNT-Benutzername
- `password`: CloudPRNT-Passwort
- `is_active`: Aktiv/Inaktiv

### Printer Groups

[](#printer-groups)

- `name`: Name der Gruppe
- `description`: Beschreibung
- `is_active`: Aktiv/Inaktiv

### Print Jobs

[](#print-jobs)

- `printable_type`: Model-Klasse (polymorph)
- `printable_id`: Model-ID (polymorph)
- `template`: Template-Name
- `data`: Template-Daten (JSON)
- `status`: Job-Status
- `printer_id`: Spezifischer Drucker (optional)
- `printer_group_id`: Drucker-Gruppe (optional)

Templates
---------

[](#templates)

Templates werden in der Config definiert:

```
'templates' => [
    'default' => 'Standard',
    'deal_details' => 'Deal Details',
    'ticket_summary' => 'Ticket Zusammenfassung',
],
```

Workflow
--------

[](#workflow)

1. **User erstellt Print Job** für ein Model (z.B. SalesDeal)
2. **Service erstellt PrintJob** in der Datenbank
3. **Drucker fragt** via CloudPRNT API nach Jobs
4. **Service antwortet** mit Job-Details
5. **Drucker holt** Job-Inhalt ab
6. **Drucker druckt** und bestätigt
7. **Service markiert** Job als abgeschlossen

Sicherheit
----------

[](#sicherheit)

- Drucker-Authentifizierung via Username/Password
- Team-Isolation (Drucker sind team-spezifisch)
- UUID-basierte Job-Identifikation
- Logging aller API-Aufrufe

Erweiterung
-----------

[](#erweiterung)

### Neue Templates

[](#neue-templates)

1. Template in Config hinzufügen
2. `generateJobContent()` in `PrintingService` erweitern
3. Template-Logik implementieren

### Neue Printable Models

[](#neue-printable-models)

1. `HasPrintJobs` Trait hinzufügen
2. Template-Daten in `createPrintJob()` übergeben
3. Template-Logik in `PrintingService` erweitern

###  Health Score

22

—

LowBetter than 23% of packages

Maintenance61

Regular maintenance activity

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/624263472b888cbddf2459047c1ab71dafd2a5875da576e3675b9c3584dad922?d=identicon)[martin3r](/maintainers/martin3r)

---

Top Contributors

[![martin3r-me](https://avatars.githubusercontent.com/u/187852765?v=4)](https://github.com/martin3r-me "martin3r-me (1 commits)")

### Embed Badge

![Health badge](/badges/martin3r-platform-printing/health.svg)

```
[![Health](https://phpackages.com/badges/martin3r-platform-printing/health.svg)](https://phpackages.com/packages/martin3r-platform-printing)
```

###  Alternatives

[kkszymanowski/traitor

Add a trait use statement to existing PHP class

1305.2M16](/packages/kkszymanowski-traitor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
