图片缩略图

append_pdfs

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

39下载

更新08年7月2014年

视图版本历史

查看许可协议

编者按:该文件被选为MATLAB Central本周精选

此函数将多个PDF文件追加到现有PDF文件,如果输出文件还不存在,则将它们连接到PDF文件。这比一次只追加一个pdf文件要快得多。
此功能要求在系统上安装ghostscript。Ghostscript可从以下网站下载:http://www.ghostscript.com

它还包括来自export_fig包的与Ghostcript接口的代码。

这个函数现在包含在export_fig包中:
//www.tatmou.com/matlabcentral/fileexchange/23629
这里的版本将不会被维护。

引用作为

奥利弗·伍德福德(2021)。append_pdfs(//www.tatmou.com/matlabcentral/fileexchange/31215-append_pdfs), MATLAB中央文件交换。检索

评论和评级(44

科里·博伦

是广告。

罗伯特•特纳

是否有人使用了带有变量的append_pdf作为PDF文件名?我需要建立一个文件名。
此示例适用于:
附录_pdf bob.pdf file1.pdf file2.pdf
我得到一个名为bob。pdf的文件

在这方面有问题:
PDF_FILENAME = bob.pdf
附加PDF文件名file1.PDF文件2.PDF
我得到一个名为PDF_FILENAME的文件

罗伯特•特纳

是否有人使用了带有变量的appends_pdfs作为PDF文件名?我需要建立一个文件名。
此示例适用于:
附加bob.pdf file1.pdf file2.pdf
在这方面有问题:
PDF_FILENAME = bob.pdf

append_p

罗伯特•特纳

你好,我得到以下错误;
未定义函数或变量'ghostscript'。

附录_pdf错误(第76行)
[状态,errMsg]=ghostscript(['@''cmdfile'']

我已经在我的电脑上加载了ghostscrip。

约翰·B。

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

奇亚拉Pivetta

嗨,我得到以下错误:
错误:/undefinedfilename(图1.pdf)
操作数堆栈:

执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
--第983/1684(ro)(G)条——第1/20(G)条——第78/200(L)条--
当前分配模式为“local”
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.25:不可恢复错误,退出代码1

你知道怎么解决吗?

谢谢!

亚当·布赫里拉

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

Ozge Gizem Esenbuga

梅里姆·穆辛

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

韦斯利Dossett

可以阿克查

Almut喜力啤酒

莫莉Mulhern

像Christa(下图)一样,我也得到了一个空白的第一页插入到我的合并pdf。有人有解决这个问题的办法吗?

程长

茴香艾哈迈德

我得到以下错误:
> > append_pdfs (pdf_filename列表{:})
Error: /undefinedfilename in (river_flow.pdf)
操作数堆栈:

执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
——dict: 1202/1684 (ro) (G)——dict类型:0/20 (G)——dict类型:78/200 (L)
当前分配模式为“local”
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.20:不可恢复的错误,退出代码1

Pradeep基于

圣地亚哥福特斯酒店

奥利弗·伍德福德

SCADA Miner:请注意,这个版本没有维护。我建议你使用export_fig中的版本,如果这对你不起作用,在GitHub上提出一个问题。

监控与数据采集矿工

你好奥利弗。另一个优秀的功能。但我有一个问题-我正在创建多页pdf报告,右上角有一个logo (.png)。在首页上一切都很好,但在所有后续页面(所有实际上是附加到第一个页面)的标志是扭曲的。我以前使用的是Bullzip pdf打印机,它很好。我宁愿保持pdf打印内部的matlab,因为它更容易控制输出文件名,位置等。有什么建议吗?

仕进托马斯

你好奥利弗,
当我运行这个函数时,它显示了一个错误
错误:/undefinedfilename in (Location S2 20 km Brake Data B3_0)
操作数堆栈:

执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
——dict: 1191/1684 (ro) (G)——dict类型:0/20 (G)——dict类型:77/200 (L)
当前分配模式为“local”
最后一个操作系统错误:没有这样的文件或目录
GPL Ghostscript 9.15:不可恢复错误,退出代码1
你能帮忙吗?

大卫

德环

我修改了这个脚本,以跳过不存在的文件,而不是错误和退出。我的工作是自动生成报告和源pdf不能保证成功生成,所以这个功能是有用的。

埃拉德·阿西娅

你好奥利弗,
这个功能对我不起作用。
我正在使用一台连接到网络的计算机,我不知道Matlab是安装在这台计算机上还是网络上的另一台计算机上。
每次我使用这个函数,它都会创建一个pdf文件,文件名是我想要的,但文件是空的。每次我收到这样的消息:“gs: /usr/local/ matlab / r2013 /bin/glnxa64/ libtiffso .so.”5:没有版本信息(需要/lib64/libgs.so.9)
错误:/undefinedfilename in (out1)
操作数堆栈:

执行堆栈:
%interp_exit.runexec2--nostringval--nostringval--2%停止推送--nostringval--nostringval--false 1%停止推送
字典堆栈:
——dict: 1175/1684 (ro) (G)——dict类型:0/20 (G)——dict类型:77/200 (L)
当前分配模式为“local”
最后一个操作系统错误:没有这样的文件或目录
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被转换为位图时,合并,并得到像素化。有办法解决这个问题吗?

克劳迪亚

本Noffke

Christoph大卫

Christoph大卫

非常感谢!你是对的。我创建了一个单元格数组,现在它工作了。

很抱歉这么贵。
这是我在mathworks上的第一篇文章。当我点击“提交”按钮时,什么也没发生,所以我想我必须给它打分。没有思考(也没有阅读),我得了4颗星。然后我意识到我只需要重新加载页面就可以看到我的帖子。
对不起。

谢谢你的这个工具!

奥利弗·伍德福德

Christoph:这是使用MATLAB语法的问题,而不是其他任何问题。创建输入文件名的单元格数组string1,然后调用
append_pdfs (output.pdf, string1 {:});
目前还不清楚为什么给这个功能4星。有什么建议吗?

Christoph大卫

当我在扩展名为.pdf的“”中写入输出input1和input2时,它会工作。
+如果我将循环期间的所有输入存储在字符串中(该字符串包括撇号和逗号),则无法使其工作
例如string1 = ' input1”、“input2”
append_pdfs(“输出”,string1)不起作用。
有人知道怎么做吗?
太多了!

哈坎Cakan

奥利弗,
非常感谢。我解决了这个问题,但在“帮助”部分中写道:

%例如:
% append_pdfs(output, input1, input2,…)

当我在扩展名为.pdf的“”中写入输出、input1、input2时,它会起作用。如果您相应地更新帮助文件,它会更好。

再次感谢。

奥利弗·伍德福德

迈克尔:修好了。谢谢你报告这个问题。

迈克尔张志贤

我试图在1个pdf文件中添加200多个pdf文件。这导致了“命令行太长”的消息。

请告知,谢谢。

谢谢你,大卫。下一个版本中会有。

大卫Chorlian

有关内容。m,在Linux中/usr/bin/gs更可能是gs的路径。

MATLAB版本兼容性
创建R2010b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!