smtws/google-font-downloader

php google fonts downloader with local css creation

1.0.0 2020-01-17 13:11 UTC

This package is auto-updated.

Last update: 2025-04-17 15:59:50 UTC


README

Latest Stable Version Total Downloads

gFontDownloader is a PHP tool that allows you to download Google Fonts and create local CSS files for them.

Features

  • Download Google Fonts to a local directory
  • Create local CSS files for the downloaded fonts
  • PSR-3 compatible logging

Configuration

You can configure gFontDownloader using one of the following methods:

  1. Set configuration in config.json and call ->setConfig()
  2. Set configuration via ->setConfig([array of configuration key-value pairs])
  3. Set configuration via ->setConfig($key, $value)

Combinations of these methods are possible.

Configuration Options

  • output: Directory where fonts are downloaded to (each font family will have its own subdirectory). Defaults to ./
  • formats: Optional array of font formats to be downloaded. Defaults to all valid values. Valid values are: eot, woff, woff2, svg, ttf
  • onRecoverableError: How to handle recoverable errors. Valid values are: stop (default), recover

Adding Fonts to Download List

You can add fonts to the download list using one of the following methods:

  • ->addFont(string $fontFamily, string $fontStyle, array $fontWeights)

or

  • ->addFontByUrl(string $urlOfFont)

Examples:

  • "https://fonts.google.com/?selection.family=Gelasio:500i,700|Open+Sans|Roboto"
  • "https://fonts.googleapis.com/css?family=Gelasio:500i,700|Open+Sans|Roboto&display=swap"

Running the Downloader

To start the download process, call ->download(). This method:

  • Returns an array of all downloaded fonts
  • Accepts a callback function that is passed information on each font individually

Error Handling

In case of unrecoverable errors, you can run ->createFamilyCssFiles() to create Font Family CSS files for fonts that were successfully downloaded before the error occurred (see example.php).

Logging

You can use PSR-3 compatible loggers with gFontDownloader:

->setLogger(new \PSRCompatibleLogger());

Example Usage

Here is an example of how to use gFontDownloader:

<?php

require 'vendor/autoload.php';

use smtws\gFontDownloader;

// Create a new instance of the downloader
$downloader = new gFontDownloader();

// Set configuration
$downloader->setConfig([
    'output' => 'fonts/',
    'formats' => ['woff2', 'ttf'],
    'onRecoverableError' => 'recover'
]);

// Add fonts to the download list
$downloader->addFont('Gelasio', 'italic', [500, 700]);
$downloader->addFontByUrl('https://fonts.googleapis.com/css?family=Open+Sans|Roboto&display=swap');

// Set a logger (optional)
$downloader->setLogger(new \MyLogger());

// Run the downloader
$downloadedFonts = $downloader->download();

// Handle downloaded fonts
foreach ($downloadedFonts as $font) {
    echo "Downloaded font: " . $font['family'] . "\n";
}

For more details, refer to the example.php file.

License

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