diff options
Diffstat (limited to '')
-rw-r--r-- | vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php b/vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php new file mode 100644 index 0000000..d0c3436 --- /dev/null +++ b/vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php @@ -0,0 +1,47 @@ +<?php + +/** + * This file is part of FPDI + * + * @package setasign\Fpdi + * @copyright Copyright (c) 2020 Setasign GmbH & Co. KG (https://www.setasign.com) + * @license http://opensource.org/licenses/mit-license The MIT License + */ + +namespace setasign\Fpdi\PdfParser\Filter; + +/** + * Class for handling ASCII hexadecimal encoded data + */ +class AsciiHex implements FilterInterface +{ + /** + * Converts an ASCII hexadecimal encoded string into its binary representation. + * + * @param string $data The input string + * @return string + */ + public function decode($data) + { + $data = \preg_replace('/[^0-9A-Fa-f]/', '', \rtrim($data, '>')); + if ((\strlen($data) % 2) === 1) { + $data .= '0'; + } + + return \pack('H*', $data); + } + + /** + * Converts a string into ASCII hexadecimal representation. + * + * @param string $data The input string + * @param boolean $leaveEOD + * @return string + */ + public function encode($data, $leaveEOD = false) + { + $t = \unpack('H*', $data); + return \current($t) + . ($leaveEOD ? '' : '>'); + } +} |