Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 为生成的PDF提供自定义标题_Php_Shell_Pdf_Header_Ghostscript - Fatal编程技术网

Php 为生成的PDF提供自定义标题

Php 为生成的PDF提供自定义标题,php,shell,pdf,header,ghostscript,Php,Shell,Pdf,Header,Ghostscript,我使用命令$cmd=“gs-q-dNOPAUSE-dBATCH-sDEVICE=pdfwrite-sOutputFile=$outputName”合并了两个PDF文件; $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName "; 这对我有用。但问题是,新生成的PDF的标题没有按照我在标题中设置的那样设置(“Content-Disposition:inline;filename=“Test.PDF”)

我使用命令$cmd=“gs-q-dNOPAUSE-dBATCH-sDEVICE=pdfwrite-sOutputFile=$outputName”合并了两个PDF文件; $cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName "; 这对我有用。但问题是,新生成的PDF的标题没有按照我在
标题中设置的那样设置(“Content-Disposition:inline;filename=“Test.PDF”)

我希望标题是Test.pdf,但标题仍然是合并pdf中最后一个pdf的标题。

听起来您需要在pdf文件的文档/信息字典中设置标题。您可以通过发送DOCINFO pdfmark来实现这一点

你可以通过谷歌搜索pdfmark参考手册。它在Adobe网站上,但是他们经常搬家,所以没有必要引用今天的URL

您可以找到Acrobat 9参考资料第28页上描述的DOCINFO pdfmark(我不知道是否有更新的),您将需要以下内容:

[ /Title (My Title goes here) /DOCINFO pdfmark
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName -c "[ /Title (My Title goes here) /DOCINFO pdfmark" -f
这就是PostScript,因此您需要将其作为PostScript提供给Ghostscript,这意味着您需要
-c
-f
开关。比如:

[ /Title (My Title goes here) /DOCINFO pdfmark
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName -c "[ /Title (My Title goes here) /DOCINFO pdfmark" -f

你很幸运我发现了这一点,因为你没有用Ghostscript标记它。

header
只是告诉浏览器应该使用什么文件名(根据浏览器的不同,它可能会忽略你的定义),而不是服务器上实际的物理文件名。完成此操作后,您需要使用此操作更改服务器上的文件名。@令人难以置信的是,重命名所做的只是更改现有文件的名称。我想做的是给一个随机的名字,比如说“Generated Pdf.Pdf”,作为我的Pdf的标题,并在屏幕上呈现。完美的解决方案如何使用横向合并Pdf,因为我有横向Pdf,当我合并它剪切Pdf,请帮助!!