Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-IPP打印机类不打印特定的PDF文件_Php_File_Pdf_Printing - Fatal编程技术网

PHP-IPP打印机类不打印特定的PDF文件

PHP-IPP打印机类不打印特定的PDF文件,php,file,pdf,printing,Php,File,Pdf,Printing,IPP类正在正确打印PDF,但它没有打印PDF格式的SWIFT特定文件。我尝试了IPP类中所有可能的属性,但没有结果 运行此应用程序的主要目的是扫描SWIFT文件夹中的PDF文件,然后在特定打印机中打印每个PDF文件,并将文件移动到备份文件夹 require_once('php_classes/PrintIPP.php'); $clientPath=“../swiftapp/public/_assets/getfile/”; $pdffiles=array(); $valid_files=数组(

IPP类正在正确打印PDF,但它没有打印PDF格式的SWIFT特定文件。我尝试了IPP类中所有可能的属性,但没有结果

运行此应用程序的主要目的是扫描SWIFT文件夹中的PDF文件,然后在特定打印机中打印每个PDF文件,并将文件移动到备份文件夹

require_once('php_classes/PrintIPP.php');
$clientPath=“../swiftapp/public/_assets/getfile/”;
$pdffiles=array();
$valid_files=数组('pdf');
$ipp=新的PrintIPP();
if(is_dir($clientPath)){
foreach(scandir($clientPath)作为$file){
$ext=pathinfo($file,pathinfo_扩展名);
if(在数组中($ext,$valid\u文件)){
数组推送($pdffiles,$file);
$filePath=$clientPath.$file;
//IPP打印机配置
$ipp->setHost('172.18.0.98');
$ipp->设置端口(631);
$ipp->setPrinterURI('./printers/NPIAB29B2(HP LaserJet M402dn)');
//IPP文件配置
$ipp->setDocumentName($file);
$ipp->setMimeMediaType('application/pdf');
$ipp->unset fidelity();
$ipp->setCharset('utf-8');
//设置要打印的PDF数据
$ipp->setData($getInsideFile);
//发送文件以供打印
$getPrintObj=$ipp->printJob();
如果($getPrintObj=='successfull ok'){
$destinationFilePath='../swiftapp/public/_assets/copyfile/'.$file;
if(重命名($filePath,$destinationFilePath)){
echo“

$文件已被移动。

”; }否则{ echo“

文件无法移动!

”; } } } } }

该链接是IPP无法打印的真实PDF文件之一。首先,该文件据称是由Ghostscript 9.27创建的,如果这是SWIFT银行网络,我会感到震惊,因为该版本的Ghostscript存在大量公开的安全漏洞

也就是说,在我看来,要么生产者字段不正确,要么有人在创建文件后编辑了它。或者,很有可能,创造者使用了一个损坏的鬼脚本构建,这会引发一个问题,即他们从哪里得到它

在任何情况下,文件都会被破坏。非常糟糕。文件末尾有startxref标记,该标记应该是指向可以找到外部参照标记的文件的偏移量,如下所示:

startxref
%ld
%%EOF
显然%ld看起来非常像sprintf的一个参数。此外,外部参照表本身无效:

xref
0 %ld
0000000000 65535 f 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
我从来没有见过任何版本的Ghostscript会产生这样的文件破坏

您可以通过Ghostscript将该文件运行回pdfwrite设备,该设备将为您修复该文件,生成一个PDF文件,然后您可以打印,但我并不建议将其作为标准做法

如果您在Acrobat中打开文件,然后将其关闭,Acrobat将提供“保存更改”(相当好的迹象表明文件已损坏)并为您生成一个固定文件


除此之外,你需要回到创建这些文件的人那里,告诉他们他们在制造垃圾。

我遵循你的所有指示。并根据您所说的发现我们的文件已损坏(如果您在Acrobat中打开文件,然后将其关闭,Acrobat将提供“保存更改”(文件已损坏的一个相当好的迹象),并为您生成一个固定文件)。现在,我们可以从SWIFT方面改变任何事情。我们需要在我们这边找到解决这个问题的办法。有没有可能拍摄损坏的文件进行打印?我真的认为你应该让制作这些文件的人知道有问题,你提供的文件真的,真的很坏。我在回答中提出了两个建议,允许您创建文件的修复版本;打开文件并从Acrobat保存,或者使用Ghostscript的pdfwrite设备从旧文件生成新的PDF文件,并在过程中修复。请注意,如果您从损坏的PDF文件开始,则无法保证可以修复该文件或修复的文件是正确的。
xref
0 %ld
0000000000 65535 f 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n 
        %ld 00000 n