В php, после вызова веб-службы, у меня есть некоторый PDF-контент в переменных.
Мне нужно объединить содержимое PDF в одной переменной, чтобы сделать один PDF-файл, а затем отправить его в другой веб-сервис.
Я нашел несколько решений на основе GS exec или FPDI, но эти решения обязывают меня сохранять файлы на диске перед слиянием.
Есть ли способ объединить его в переменную без записи на диск?
Код в Php (мне нужно объединить результат foreach):
foreach($LogContent->DocumentsAnnexes->DocAnnexe as $parametre=>$value){ $content_brut=$value->fichier; } $content_maj=base64_decode($content_brut); $OKMDocument->checkin(array('token' => $token, 'docPath' => $uuid, 'content' => $content_maj, 'comment' => 'Facture validée depuis le parapheur'));
(Я не могу добавить пример PDF из-за ограничения размера сообщения)
Для устранения этой проблемы можно использовать оболочку потока для переменных (например, это ).
Из-за этой проблемы:
Исключить исключение «Исключение» с сообщением «Этот документ (VarStream: // 0), вероятно, использует метод сжатия, который не поддерживается свободным парсером, поставляемым с FPDI.
Я попытался преобразовать PDF в 1.4 перед слиянием с GhostscriptConverter:
class ConcatPdf extends FPDI { public $files = array(); public function setFiles($file) { $this->files = $file; } public function concat() { foreach($this->files AS $file) { $command = new GhostscriptConverterCommand(); $filesystem = new Filesystem(); $converter = new GhostscriptConverter($command, $filesystem); $converter->convert(VarStream::createReference($file), '1.4'); // $pageCount = $this->setSourceFile($file); $pageCount = $this->setSourceFile(VarStream::createReference($file)); for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) { $tplIdx = $this->ImportPage($pageNo); $s = $this->getTemplatesize($tplIdx); $this->AddPage($s['w'] > $s['h'] ? 'L' : 'P', array($s['w'], $s['h'])); $this->useTemplate($tplIdx); } } } }
Но новый вопрос:
[Mon Nov 21 17: 31: 32.103668 2016] [: error] [pid 400] [клиент 192.168.21.2:53396] PHP Неустранимая ошибка: исключить исключение «RuntimeException» с сообщением «GPL Ghostscript 9.06: неустранимая ошибка, код выхода 1 \ n 'в /var/www/html/tests/soap_autre/vendor/xthiago/pdf-version-converter/src/Converter/GhostscriptConverterCommand.php:39\nStack trace: \ n # 0 / var / www / html / tests / Мы стараемся сделать так, ',' 1.4 ') \ n # 1 /var/www/html/tests/soap_autre/test.php(234): Xthiago \ PDFVersionConverter \ Converter \ GhostscriptConverter-> convert (' VarStream: // 0 ',' 1.4 ' ) \ n # 2 /var/www/html/tests/soap_autre/test.php(263): ConcatPdf-> concat () \ n # 3 {main} \ n выбрано in / var / www / html / tests / soap_autre /vendor/xthiago/pdf-version-converter/src/Converter/GhostscriptConverterCommand.php в строке 39
Я не знаю что делать !