PdfParser PHP-CS-Fixer updates

This commit is contained in:
Brian Huisman 2023-06-23 12:23:20 -04:00
parent 3307baac4d
commit 5a39280858
3 changed files with 27 additions and 31 deletions

View file

@ -25,6 +25,8 @@ $config
'ordered_imports' => true, 'ordered_imports' => true,
'phpdoc_summary' => false, 'phpdoc_summary' => false,
'protected_to_private' => 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)
]) ])
; ;

View file

@ -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 = 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)) { if (xml_parse_into_struct($xml, $content, $values, $index)) {
$detail = ''; $detail = '';
foreach ($values as $val) { foreach ($values as $val) {
switch ($val['tag']) { switch ($val['tag']) {
case 'DC:CREATOR': case 'DC:CREATOR':
$detail = ($val['type'] == 'open') ? 'Author' : ''; $detail = ('open' == $val['type']) ? 'Author' : '';
break; break;
case 'DC:DESCRIPTION': case 'DC:DESCRIPTION':
$detail = ($val['type'] == 'open') ? 'Description' : ''; $detail = ('open' == $val['type']) ? 'Description' : '';
break; break;
case 'DC:TITLE': case 'DC:TITLE':
$detail = ($val['type'] == 'open') ? 'Title' : ''; $detail = ('open' == $val['type']) ? 'Title' : '';
break; break;
case 'DC:SUBJECT': case 'DC:SUBJECT':
$detail = ($val['type'] == 'open') ? 'Subject' : ''; $detail = ('open' == $val['type']) ? 'Subject' : '';
break; break;
case 'RDF:LI': case 'RDF:LI':
if ($detail && $val['type'] == 'complete' && isset($val['value'])) { if ($detail && 'complete' == $val['type'] && isset($val['value'])) {
$this->metadata[$detail] = $val['value']; $this->metadata[$detail] = $val['value'];
} }
break; break;
case 'DC:FORMAT': case 'DC:FORMAT':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['Format'] = $val['value']; $this->metadata['Format'] = $val['value'];
} }
break; break;
case 'PDF:KEYWORDS': case 'PDF:KEYWORDS':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['Keywords'] = $val['value']; $this->metadata['Keywords'] = $val['value'];
} }
break; break;
case 'PDF:PRODUCER': case 'PDF:PRODUCER':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['Producer'] = $val['value']; $this->metadata['Producer'] = $val['value'];
} }
break; break;
case 'PDFX:SOURCEMODIFIED': case 'PDFX:SOURCEMODIFIED':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['SourceModified'] = $val['value']; $this->metadata['SourceModified'] = $val['value'];
} }
break; break;
case 'PDFX:COMPANY': case 'PDFX:COMPANY':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['Company'] = $val['value']; $this->metadata['Company'] = $val['value'];
} }
break; break;
case 'XMP:CREATEDATE': case 'XMP:CREATEDATE':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['CreationDate'] = $val['value']; $this->metadata['CreationDate'] = $val['value'];
} }
break; break;
case 'XMP:CREATORTOOL': case 'XMP:CREATORTOOL':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['Creator'] = $val['value']; $this->metadata['Creator'] = $val['value'];
} }
break; break;
case 'XMP:MODIFYDATE': case 'XMP:MODIFYDATE':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['ModifyDate'] = $val['value']; $this->metadata['ModDate'] = $val['value'];
} }
break; break;
case 'XMP:METADATADATE': case 'XMP:METADATADATE':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['MetadataDate'] = $val['value']; $this->metadata['MetadataDate'] = $val['value'];
} }
break; break;
case 'XMPMM:DOCUMENTID': case 'XMPMM:DOCUMENTID':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['DocumentUUID'] = $val['value']; $this->metadata['DocumentUUID'] = $val['value'];
} }
break; break;
case 'XMPMM:INSTANCEID': case 'XMPMM:INSTANCEID':
if ($val['type'] == 'complete' && isset($val['value'])) { if ('complete' == $val['type'] && isset($val['value'])) {
$this->metadata['InstanceUUID'] = $val['value']; $this->metadata['InstanceUUID'] = $val['value'];
} }
break; break;
} }
} }
} }
} }
public function getDictionary(): array public function getDictionary(): array
{ {
return $this->dictionary; return $this->dictionary;

View file

@ -214,12 +214,9 @@ class Parser
// It is not necessary to store this content. // It is not necessary to store this content.
return; return;
} elseif ($header->get('Type')->equals('Metadata')) {
} else if ($header->get('Type')->equals('Metadata')) {
// Attempt to parse XMP XML Metadata // Attempt to parse XMP XML Metadata
$document->getXMPMetadata($content); $document->extractXMPMetadata($content);
} }
break; break;