编者按:该文件被选为MATLAB Central推荐商品
此函数用于将多个PDF文件附加到现有PDF文件,或者如果输出文件尚不存在,则将其连接到PDF文件中。这比一次添加一个PDF要快得多。
此功能要求在系统上安装ghostscript。Ghostscript可从以下网站下载:http://www.ghostscript.com
它还包括导出fig包中与GhostScript接口的代码。
此功能现在包含在export_fig软件包中:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/23629
此处的版本将不被维护。
奥利弗·伍德福德(2021年)。附加PDF(//www.tianjin-qmedu.com/matlabcentral/fileexchange/31215-append_pdfs),MATLAB中心文件交换.
正如广告所宣传的那样。
有没有人用append_PDF作为PDF文件名的变量?我需要建立一个文件名。
此示例适用于:
附加pdf文件bob.pdf文件1.pdf文件2.pdf
我得到一个名为bob.pdf的文件
对此有问题:
PDF\u FILENAME=bob.PDF
附加PDF文件名file1.PDF文件2.PDF
我得到一个名为PDF\u FILENAME的文件
有没有人用一个变量作为PDF文件名的后缀?我需要建立一个文件名。
此示例适用于:
附加bob.pdf文件1.pdf文件2.pdf
对此有问题:
PDF\u FILENAME=bob.PDF
附加
你好,我得到以下错误;
未定义的函数或变量“ghostscript”。
附加PDF中的错误(第76行)
[状态,errMsg]=ghostscript(['@''cmdfile'']
我已经在我的电脑上加载了ghostscrip。
非常有用!!谢谢你的努力。
您好,我发现以下错误:
错误:/undefinedfilename(图1.pdf)
操作数堆栈:
执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
--第983/1684(ro)(G)条——第1/20(G)条——第78/200(L)条--
当前的分配模式是本地的
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.25:不可恢复的错误,退出代码1
你知道怎么解决吗?
谢谢!
太棒了!真是太感谢你了。
你好,奥利弗,
我收到此警告:无法保存ghostscript安装路径。请在ghostscript.txt中手动输入。
我尝试手动执行,但每次执行时文本文件都会被删除。
像Christa(下图)一样,我也在合并的pdf中插入了一个空白的第一页。有人能解决这个问题吗?
我得到以下错误:
>>附加pdf文件(pdf文件名,列表{:})
错误:/undefinedfilename(river\u flow.pdf)
操作数堆栈:
执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
--法令:1202/1684(ro)(G)----法令:0/20(G)----法令:78/200(L)--
当前的分配模式是本地的
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.20:不可恢复的错误,退出代码1
SCADA Miner:请注意,此版本未维护。我建议您在export_fig中使用此版本,如果此版本不适用于您,请在GitHub上提出问题。
你好,奥利弗。另一个出色的功能。不过我有一个问题-我正在创建多页pdf报告,在右上角有一个徽标(.png)。在首页上,一切都很好,但在所有后续页面上(所有那些实际附加到第一页的页面)徽标被扭曲。我以前使用的是Bullzip pdf打印机,附带的很好。我更喜欢将pdf打印保留在matlab内部,因为它更容易控制输出文件名、位置等。有什么建议吗?
嗨,奥利弗,
当我运行函数时,它显示一个错误
错误:/UnfinedFileName位于(位置S2 20公里制动数据B3\U 0)
操作数堆栈:
执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
--第1191/1684(ro)(G)条——第0/20(G)条——第77/200(L)条--
当前的分配模式是本地的
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.15:不可恢复的错误,退出代码1
你能帮忙吗。
我修改了此脚本以跳过不存在的文件,而不是错误并退出。我正在进行自动报告生成,并且源PDF不能保证成功生成,因此此功能非常有用。
嗨,奥利弗,
这个函数不适合我。。。
我正在使用一台连接到网络的计算机,我不知道Matlab是安装在这台计算机上还是网络上的另一台计算机上。
每次我使用该函数时,它都会创建一个名为我想要的pdf文件,但该文件是空的。每次我收到以下消息:“gs:/usr/local/MATLAB/R2013a/bin/glnxa64/libtiff.so.5:没有可用的版本信息(需要/lib64/libgs.so.9)
错误:/undefinedfilename in(out1)
操作数堆栈:
执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
--第1175/1684(ro)(G)条——第0/20(G)条——第77/200(L)条--
当前的分配模式是本地的
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.14:不可恢复的错误,退出代码1“
你知道如何解决这个问题吗?
谢谢
安德里亚:你不能(当然,除非你编辑代码)。如果你想覆盖文件,解决办法是事先删除它。
这个软件真是太棒了。但是有一个小问题:我如何通过-f选项来覆盖已经存在的文件?
太漂亮了,谢谢你!
这是一个伟大的工具,工作非常好!
有没有人也有生成书签的例子?这似乎是一个相对简单的过程。下面是一个看起来非常有用的网站,所以我可以自己尝试一下。
http://blog.tremily.us/posts/PDF_bookmarks_with_Ghostscript/
嗨,奥利弗,
谢谢你的回复。
我确实在使用命令的函数形式。显然,这是一般使用GhostScript的一个限制。我只是好奇是否有一个隐蔽的解决办法来解决路径过长的问题。
http://ghostscript.com/doc/current/Language.htm
Christa:为了保存到一个特定的文件夹,只需在输出文件名中指定完整或相对路径。我还没有看到空白的第一页,所以无法帮助。
科里:我还没有看到128个字符的限制问题,所以我真的帮不了你。但是,你在使用命令的函数形式吗?例如:
输出='test.pdf';
输入={'long_name1.pdf','long_name2.pdf'};
附加PDF(输出,输入{:});
这太棒了。我想知道你是否知道一种绕过文件名大小128个字符限制的好方法?当你附加到太多的子文件夹时,路径可能太长,并导致函数失败。当然,可以缩短路径长度,但如果有一种巧妙的方法绕过128个字符的限制,那就是谢谢!
谢谢分享!这非常有帮助。不过我有几个问题。我想将合并后的pdf保存到一个特定的文件夹中,而不仅仅是我正在使用的通用matlab文件夹。此外,它还输出一张空白的白纸作为我的pdf的第一页。知道如何更正这些问题吗?提前感谢!
位图/矢量问题似乎已自行解决。不要理会我的问题。谢谢
嗨,奥利弗,
感谢您的图像导出功能套件。我遇到了一个问题,复杂(大,~15MB)的矢量渲染PDF在组合时被转换为位图,并且变得像素化。有什么办法解决这个问题吗?
非常感谢!你说得对。我创建了一个单元格数组,现在它可以工作了。
我为这个价格道歉。
这是我在mathworks上的第一篇文章。当我点击“提交”按钮时,什么也没发生,所以我想我必须给它打分。没有思考(也没有阅读),我得了4颗星。然后我意识到我只需要重新加载页面就可以看到我的帖子。
对不起。
谢谢你的这个工具!
克里斯托夫:这是你使用MATLAB语法的一个问题,而不是其他任何问题
append_pdfs('output.pdf',string1{:});
现在还不清楚为什么要给这个功能4颗星。有什么建议吗?
当我在扩展名为.pdf的“”中写入输出input1和input2时,它会工作。
+如果我将循环期间的所有输入存储在字符串中(该字符串包括撇号和逗号),则无法使其工作
e、 g.string1='input1','input2'
append_PDF('output',string1)不起作用。
有人知道如何使它工作吗?
太多了!
奥利弗
非常感谢。我解决了这个问题,但在“帮助”部分中写道:
%例如:
%附加PDF(输出、输入1、输入2等)
当我在扩展名为.pdf的“”中写入输出、input1、input2时,它会起作用。如果您相应地更新帮助文件,它会更好。
再次感谢。
迈克尔:修好了。谢谢你报告这个问题。
我试图在1个pdf文件中添加200多个pdf文件。这导致出现“命令行太长”消息。
请告知,谢谢。
谢谢,大卫。下一版本会有。
关于ghostscript.m,在Linux/usr/bin/gs中更可能是gs的路径。