在php中,在调用webservice之后,我在变量中有一些PDF内容。
我需要将pdf内容合并到一个变量中以生成一个PDF,然后将其发布到另一个Web服务。
我找到了一些基于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示例)
答案 0 :(得分:1)
您可以使用stream wrapper表示变量(例如this)来解决此问题。
答案 1 :(得分:0)
由于这个问题:
未捕获的例外'例外'有消息'本文件 (VarStream:// 0)可能使用的压缩技术不是 由FPDI附带的免费解析器支持。
我尝试在与GhostscriptConverter合并之前将PDF转换为1.4:
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致命错误:未捕获异常&#39; RuntimeException&#39;消息&#G; Ghostscript 9.06:不可恢复 错误,退出代码1 \ n&#39;在 /var/www/html/tests/soap_autre/vendor/xthiago/pdf-version-converter/src/Converter/GhostscriptConverterCommand.php:39\nStack 追踪:\ n#0 /var/www/html/tests/soap_autre/vendor/xthiago/pdf-version-converter/src/Converter/GhostscriptConverter.php(69): Xthiago \ PDFVersionConverter \转换\ GhostscriptConverterCommand-&gt;运行(&#39; VarStream:// 0&#39 ;, &#39; / tmp / pdf_versio ...&#39;,&#39; 1.4&#39;)\ n#1 /var/www/html/tests/soap_autre/test.php(234): Xthiago \ PDFVersionConverter \转换\ GhostscriptConverter-&GT;转换(&#39; VarStream:// 0&#39 ;, &#39; 1.4&#39;)\ n#2 /var/www/html/tests/soap_autre/test.php(263): ConcatPdf-&gt; concat()\ n#3 {main} \ n抛出 /var/www/html/tests/soap_autre/vendor/xthiago/pdf-version-converter/src/Converter/GhostscriptConverterCommand.php 第39行
我不知道该怎么做!