libriciel / file-converters
Permet la conversion via callback du type de fichier
Package info
gitlab.adullact.net/Libriciel/archivage/file-converters.git
pkg:composer/libriciel/file-converters
Requires
- php: >=7.2 || ^8.1
- ext-fileinfo: *
- ext-json: *
Requires (Dev)
- libriciel/file-converters-tests: dev-master
- libriciel/file-validator: ^1.1
- phpunit/phpunit: ~8.5.0
Suggests
- libriciel/file-converters-tests: Pour les tests unitaires
Provides
None
Conflicts
None
Replaces
None
README
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
| Projet | Build | Coverage |
|---|---|---|
| asalae | ||
| asalae-core |
Prérequis
- PHP
>=7.2 || ^8.1avec les extensionsfileinfo,json - Outils système utilisés selon la conversion :
- documents :
libreofficeetunoconv - images :
convert(paquetimagemagick) - vidéo :
ffmpegouHandBrakeCLI(paquethandbrake-cli) - audio :
ffmpeg - PDF/A :
gs(paquetghostscript), viasrc/Lib/pdf2archive.sh - détection du format :
ffprobe(paquetffmpeg) etsf(siegfried, via file-validator)
- documents :
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$mvest 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