fix port to 4.1 extract xmp:PageImage indesign

This commit is contained in:
aynsix
2019-07-17 17:16:29 +04:00
parent 5e2f8da2bb
commit fdb67c74d9
2 changed files with 25 additions and 13 deletions

12
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "64830cb4d53b32b47e02d4a19df9cef2", "content-hash": "6341722edcd5bfa22e933f5411225144",
"packages": [ "packages": [
{ {
"name": "alchemy-fr/tcpdf-clone", "name": "alchemy-fr/tcpdf-clone",
@@ -383,16 +383,16 @@
}, },
{ {
"name": "alchemy/phpexiftool", "name": "alchemy/phpexiftool",
"version": "0.7.0", "version": "0.7.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/alchemy-fr/PHPExiftool.git", "url": "https://github.com/alchemy-fr/PHPExiftool.git",
"reference": "7372ca4e43473328bf06bca810558fbad7bb2f95" "reference": "ba1cb51eceb6562d7996023478977a8739de188b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/alchemy-fr/PHPExiftool/zipball/7372ca4e43473328bf06bca810558fbad7bb2f95", "url": "https://api.github.com/repos/alchemy-fr/PHPExiftool/zipball/ba1cb51eceb6562d7996023478977a8739de188b",
"reference": "7372ca4e43473328bf06bca810558fbad7bb2f95", "reference": "ba1cb51eceb6562d7996023478977a8739de188b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -452,7 +452,7 @@
"exiftool", "exiftool",
"metadata" "metadata"
], ],
"time": "2017-05-18T19:04:04+00:00" "time": "2019-02-13T13:06:43+00:00"
}, },
{ {
"name": "alchemy/queue-bundle", "name": "alchemy/queue-bundle",

View File

@@ -61,7 +61,7 @@ class SubdefGenerator
public function generateSubdefs(\record_adapter $record, array $wanted_subdefs = null) public function generateSubdefs(\record_adapter $record, array $wanted_subdefs = null)
{ {
if ($record->get_hd_file() !== null) { if ($record->get_hd_file() !== null && $record->get_hd_file()->getMimeType() == "application/x-indesign") {
$mediaSource = $this->mediavorus->guess($record->get_hd_file()->getPathname()); $mediaSource = $this->mediavorus->guess($record->get_hd_file()->getPathname());
$metadatas = $mediaSource->getMetadatas(); $metadatas = $mediaSource->getMetadatas();
@@ -69,15 +69,27 @@ class SubdefGenerator
if(!isset($this->tmpFilesystem)){ if(!isset($this->tmpFilesystem)){
$this->tmpFilesystem = Manager::create(); $this->tmpFilesystem = Manager::create();
} }
$tmpDir = $this->tmpFilesystem->createTemporaryDirectory(); $tmpDir = $this->tmpFilesystem->createTemporaryDirectory(0777, 500);
try { $files = $this->app['exiftool.preview-extractor']->extract($record->get_hd_file()->getPathname(), $tmpDir);
$this->app['filesystem']->dumpFile($tmpDir.'/file.jpg', $metadatas->get('XMP-xmp:PageImage')->getValue()->asString());
$this->tmpFilePath = $tmpDir.'/file.jpg'; $selected = null;
} catch (\Exception $e) { $size = null;
$this->logger->error(sprintf('Unable to write temporary file : %s', $e->getMessage()));
foreach ($files as $file) {
if ($file->isDir() || $file->isDot()) {
continue;
}
if (is_null($selected) || $file->getSize() > $size) {
$selected = $file->getPathname();
$size = $file->getSize();
}
} }
if ($selected) {
$this->tmpFilePath = $selected;
}
} }
} }