tecnickcom/tc-lib-pdf-graph

PHP library containing PDF graphic and geometric methods

Maintainers

Package info

github.com/tecnickcom/tc-lib-pdf-graph

Homepage

pkg:composer/tecnickcom/tc-lib-pdf-graph

Statistics

Installs: 663 358

Dependents: 1

Suggesters: 0

Stars: 5

Open Issues: 1


README

Geometric drawing and transformation primitives for PDF content streams.

Latest Stable Version Build Coverage License Downloads

Donate via PayPal

If this library helps your rendering stack, please consider supporting development via PayPal.

Overview

tc-lib-pdf-graph implements low-level drawing operations used to build PDF graphic content.

It exposes the primitives needed to compose paths and painting operations while keeping the API close to PDF graphics operators. This makes it suitable as a foundation layer for charting, vector drawing, and custom layout engines.

Namespace \Com\Tecnick\Pdf\Graph
Author Nicola Asuni info@tecnick.com
License GNU LGPL v3 - see LICENSE
API docs https://tcpdf.org/docs/srcdoc/tc-lib-pdf-graph
Packagist https://packagist.org/packages/tecnickcom/tc-lib-pdf-graph

Features

Drawing Primitives

  • Paths, lines, curves, and clipping operations
  • Style handling for stroke/fill combinations
  • Gradient and shading support

Transformations

  • Matrix-based geometric transforms
  • Coordinate conversion helpers
  • PDF/A-aware behavior controls

Requirements

  • PHP 8.1 or later
  • Extension: zlib
  • Composer

Installation

composer require tecnickcom/tc-lib-pdf-graph

Quick Start

<?php

require_once __DIR__ . '/vendor/autoload.php';

$draw = new \Com\Tecnick\Pdf\Graph\Draw(
    1.0,
    210,
    297,
    new \Com\Tecnick\Color\Pdf(),
    new \Com\Tecnick\Pdf\Encrypt\Encrypt(),
    false
);

echo $draw->getClippingRect(10, 10, 50, 20);

Development

make deps
make help
make qa

Packaging

make rpm
make deb

For system packages, bootstrap with:

require_once '/usr/share/php/Com/Tecnick/Pdf/Graph/autoload.php';

Contributing

Contributions are welcome. Please review CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.

Contact

Nicola Asuni - info@tecnick.com