PdfParser PHP-CS-Fixer updates
This commit is contained in:
parent
3307baac4d
commit
5a39280858
|
@ -25,6 +25,8 @@ $config
|
|||
'ordered_imports' => true,
|
||||
'phpdoc_summary' => false,
|
||||
'protected_to_private' => false,
|
||||
'get_class_to_class_keyword' => false, // override for PHP < 8.0 (because ::class usage is not allowed there)
|
||||
'modernize_strpos' => false, // override for PHP < 8.0 (because str_contains not available in PHP 7.x)
|
||||
])
|
||||
;
|
||||
|
||||
|
|
|
@ -155,113 +155,110 @@ class Document
|
|||
}
|
||||
|
||||
/**
|
||||
* Get XMP Metadata
|
||||
* Extract XMP Metadata
|
||||
*/
|
||||
public function getXMPMetadata(string $content)
|
||||
public function extractXMPMetadata(string $content): void
|
||||
{
|
||||
$xml = xml_parser_create();
|
||||
xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
|
||||
xml_parser_set_option($xml, \XML_OPTION_SKIP_WHITE, 1);
|
||||
|
||||
if (xml_parse_into_struct($xml, $content, $values, $index)) {
|
||||
|
||||
$detail = '';
|
||||
|
||||
foreach ($values as $val) {
|
||||
switch ($val['tag']) {
|
||||
case 'DC:CREATOR':
|
||||
$detail = ($val['type'] == 'open') ? 'Author' : '';
|
||||
$detail = ('open' == $val['type']) ? 'Author' : '';
|
||||
break;
|
||||
|
||||
case 'DC:DESCRIPTION':
|
||||
$detail = ($val['type'] == 'open') ? 'Description' : '';
|
||||
$detail = ('open' == $val['type']) ? 'Description' : '';
|
||||
break;
|
||||
|
||||
case 'DC:TITLE':
|
||||
$detail = ($val['type'] == 'open') ? 'Title' : '';
|
||||
$detail = ('open' == $val['type']) ? 'Title' : '';
|
||||
break;
|
||||
|
||||
case 'DC:SUBJECT':
|
||||
$detail = ($val['type'] == 'open') ? 'Subject' : '';
|
||||
$detail = ('open' == $val['type']) ? 'Subject' : '';
|
||||
break;
|
||||
|
||||
case 'RDF:LI':
|
||||
if ($detail && $val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ($detail && 'complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata[$detail] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'DC:FORMAT':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['Format'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'PDF:KEYWORDS':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['Keywords'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'PDF:PRODUCER':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['Producer'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'PDFX:SOURCEMODIFIED':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['SourceModified'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'PDFX:COMPANY':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['Company'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMP:CREATEDATE':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['CreationDate'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMP:CREATORTOOL':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['Creator'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMP:MODIFYDATE':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
$this->metadata['ModifyDate'] = $val['value'];
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['ModDate'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMP:METADATADATE':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['MetadataDate'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMPMM:DOCUMENTID':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['DocumentUUID'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'XMPMM:INSTANCEID':
|
||||
if ($val['type'] == 'complete' && isset($val['value'])) {
|
||||
if ('complete' == $val['type'] && isset($val['value'])) {
|
||||
$this->metadata['InstanceUUID'] = $val['value'];
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getDictionary(): array
|
||||
{
|
||||
return $this->dictionary;
|
||||
|
|
|
@ -214,12 +214,9 @@ class Parser
|
|||
// It is not necessary to store this content.
|
||||
|
||||
return;
|
||||
|
||||
} else if ($header->get('Type')->equals('Metadata')) {
|
||||
|
||||
} elseif ($header->get('Type')->equals('Metadata')) {
|
||||
// Attempt to parse XMP XML Metadata
|
||||
$document->getXMPMetadata($content);
|
||||
|
||||
$document->extractXMPMetadata($content);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in a new issue