Search by

libriciel / file-converters

ludeusepommateaupviver

Permet la conversion via callback du type de fichier

1.2.4 2023-04-24 10:15 UTC

This package is auto-updated.

Last update: 2026-10-29 13:26:13 UTC


README

License build status coverage report

Conversion de fichiers (documents bureautiques, PDF/A, images, audio, vidéo) à l'aide d'outils système, et détection du format d'un fichier (catégorie, PUID, codecs, conformité au RGI).

Dépendance de

ProjetBuildCoverage
asalaebuild statuscoverage report
asalae-corebuild statuscoverage report

Prérequis

  • PHP >=7.2 || ^8.1 avec les extensions fileinfo, json
  • Outils système utilisés selon la conversion :
    • documents : libreoffice et unoconv
    • images : convert (paquet imagemagick)
    • vidéo : ffmpeg ou HandBrakeCLI (paquet handbrake-cli)
    • audio : ffmpeg
    • PDF/A : gs (paquet ghostscript), via src/Lib/pdf2archive.sh
    • détection du format : ffprobe (paquet ffmpeg) et sf (siegfried, via file-validator)

Installation

composer require libriciel/file-converters:dev-master

Utilisation

Utility

FileConverters\Utility\FileConverters :

  • convert($filename, $convertTo, $mv = null, array $params = []) : convertit un fichier et renvoie le binaire obtenu, ou le chemin du fichier écrit si $mv est fourni
  • formats de sortie : pdf (PDF/A), odt, ods, odp, html, jpg, png, mp4, mkv, flac, ogg, wav
  • canConvert(), matchFormats() : formats de sortie possibles pour un fichier
  • $logs : commandes exécutées, sorties et codes de retour

src/Worker/FileConvertorWorker.php (asalae-core)

        $success = FileConverters::convert($entity->path, $data['to'], $newPath);
        $last = end(FileConverters::$logs);
        $this->io->out(__("Commande utilisée : ") . PHP_EOL . $last['cmd']);

FileConverters\Utility\DetectFileFormat : catégorie (texte, PDF, tableur, présentation, image, audio, vidéo), PUID, codecs et compatibilité RGI d'un fichier.

src/Model/Entity/TechnicalArchiveUnit.php (asalae)

            $detector = new DetectFileFormat($fileupload->get('path'));
            $puid = $detector->getPuid();
            $format = $puid && !empty($puid['id']) ? $puid['id'] : null;
            // ...
                    'in_rgi' => $detector->rgiCompatible(),

Tests

Les fichiers d'exemple viennent de file-converters-tests (require-dev).

vendor/bin/phpunit