diff options
Diffstat (limited to 'vendor/iio/libmergepdf/src/Source/FileSource.php')
-rw-r--r-- | vendor/iio/libmergepdf/src/Source/FileSource.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/iio/libmergepdf/src/Source/FileSource.php b/vendor/iio/libmergepdf/src/Source/FileSource.php new file mode 100644 index 0000000..2802d80 --- /dev/null +++ b/vendor/iio/libmergepdf/src/Source/FileSource.php @@ -0,0 +1,50 @@ +<?php + +declare(strict_types = 1); + +namespace iio\libmergepdf\Source; + +use iio\libmergepdf\PagesInterface; +use iio\libmergepdf\Pages; +use iio\libmergepdf\Exception; + +/** + * Pdf source from file + */ +final class FileSource implements SourceInterface +{ + /** + * @var string + */ + private $filename; + + /** + * @var PagesInterface + */ + private $pages; + + public function __construct(string $filename, PagesInterface $pages = null) + { + if (!is_file($filename) || !is_readable($filename)) { + throw new Exception("Invalid file '$filename'"); + } + + $this->filename = $filename; + $this->pages = $pages ?: new Pages; + } + + public function getName(): string + { + return $this->filename; + } + + public function getContents(): string + { + return (string)file_get_contents($this->filename); + } + + public function getPages(): PagesInterface + { + return $this->pages; + } +} |