summaryrefslogtreecommitdiffstats
path: root/vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php')
-rw-r--r--vendor/setasign/fpdi/src/PdfParser/Filter/AsciiHex.php47
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 ? '' : '>');
+ }
+}