文件交换

图像缩略图

附加PDF

版本1.6.0.0(4.55 KB)由 奥利弗·伍德福德
使用Ghostscript将多个PDF文件追加/连接到单个文件中。
4.9
20级

39下载

更新2014年7月8日

查看版本历史记录

查看许可证

编者按:该文件被选为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中心文件交换.

评论和评级(44)

科里博伦

正如广告所宣传的那样。

罗伯特特纳

有没有人用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。

约翰B。

非常有用!!谢谢你的努力。

基亚拉皮维塔酒店

您好,我发现以下错误:
错误:/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

你知道怎么解决吗?

谢谢!

亚当·布赫里拉

太棒了!真是太感谢你了。

Özge Gizem Esenbuga

梅里姆·穆辛

你好,奥利弗,
我收到此警告:无法保存ghostscript安装路径。请在ghostscript.txt中手动输入。
我尝试手动执行,但每次执行时文本文件都会被删除。

韦斯利·多塞特

Agca可以吗

阿尔穆特·海因肯

莫莉·穆尔赫恩

像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的路径。

MATLAB版本兼容性
使用R2010b创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux
致谢

灵感来自:出口无花果

受到启发的:用于代号棋盘游戏的卡片生成器

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!