generatepdfs/php-sdk

PHP SDK for GeneratePDFs.com API

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/generatepdfs/php-sdk

dev-main 2025-12-07 23:11 UTC

This package is auto-updated.

Last update: 2025-12-07 23:12:00 UTC


README

PHP SDK for the GeneratePDFs.com API. Easily generate PDFs from HTML files or URLs.

Installation

composer require generatepdfs/php-sdk

Usage

Basic Setup

use GeneratePDFs\GeneratePDFs;

$client = GeneratePDFs::connect('YOUR_API_TOKEN');

Generate PDF from HTML File

use GeneratePDFs\GeneratePDFs;
use GeneratePDFs\Pdf;

// Simple HTML file
$pdf = $client->generateFromHtml('/path/to/file.html');

// HTML file with CSS
$pdf = $client->generateFromHtml(
    '/path/to/file.html',
    '/path/to/file.css'
);

// HTML file with CSS and images
$pdf = $client->generateFromHtml(
    '/path/to/file.html',
    '/path/to/file.css',
    [
        [
            'name' => 'logo.png',
            'path' => '/path/to/logo.png',
            'mime_type' => 'image/png' // Optional, will be auto-detected
        ],
        [
            'name' => 'photo.jpg',
            'path' => '/path/to/photo.jpg'
        ]
    ]
);

Generate PDF from URL

$pdf = $client->generateFromUrl('https://example.com');

Working with PDF Objects

The SDK returns Pdf objects that provide easy access to PDF information and downloading:

// Access PDF properties
$pdfId = $pdf->getId();
$pdfName = $pdf->getName();
$status = $pdf->getStatus();
$downloadUrl = $pdf->getDownloadUrl();
$createdAt = $pdf->getCreatedAt();

// Check if PDF is ready
if ($pdf->isReady()) {
    // Download PDF content as string
    $pdfContent = $pdf->download();
    
    // Or save directly to file
    $pdf->downloadToFile('/path/to/save/output.pdf');
}

PDF Object Methods

  • getId(): int - Get the PDF ID
  • getName(): string - Get the PDF filename
  • getStatus(): string - Get the current status (pending, processing, completed, failed)
  • getDownloadUrl(): string - Get the download URL
  • getCreatedAt(): DateTimeImmutable - Get the creation date
  • isReady(): bool - Check if the PDF is ready for download
  • download(): string - Download and return PDF binary content
  • downloadToFile(string $filePath): bool - Download and save PDF to a file

Requirements

  • PHP 8.1 or higher
  • Guzzle HTTP Client 7.0 or higher

Testing

To run the test suite and code style checker, execute:

composer test

This will run both PHP CodeSniffer (PSR-2 standard) and Pest tests.

Contributing

Contributions and suggestions are welcome and will be fully credited.

We accept contributions via Pull Requests on GitHub.

Pull Requests

  • PSR-12 Extended Coding Standard - The easiest way to apply the conventions is to install PHP Code Sniffer.
  • Add tests! - Your patch won't be accepted if it doesn't have tests.
  • Document any change in behaviour - Make sure the README / CHANGELOG and any other relevant documentation are kept up-to-date.
  • Consider our release cycle - We try to follow semver. Randomly breaking public APIs is not an option.
  • Create topic branches - Don't ask us to pull from your master branch.
  • One pull request per feature - If you want to do more than one thing, send multiple pull requests.
  • Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.

Changelog

See CHANGELOG.md for a history of changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.