Merge 将PDF与Ghostscipt合并忽略大纲并改用pdfmark

Merge 将PDF与Ghostscipt合并忽略大纲并改用pdfmark,merge,ghostscript,tableofcontents,Merge,Ghostscript,Tableofcontents,我正在使用批处理脚本将不同的PDF合并到一个完整的文件中 %gsc% -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dEPSFitPage -o %dsk%%zus%%ext% %mfd% %pth%tmp\pdfmarks %dsk%%zus%%ext%: Path and name of final (complete) document %mfd%: Path and name of docs to be merged (c:\te

我正在使用批处理脚本将不同的PDF合并到一个完整的文件中

 %gsc% -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dEPSFitPage -o  %dsk%%zus%%ext% %mfd% %pth%tmp\pdfmarks

 %dsk%%zus%%ext%: Path and name of final (complete) document

 %mfd%: Path and name of docs to be merged (c:\test\1.pdf c:\test\2.pdf ...)

 %pth%tmp = path to the pdfmarks file
此外,我正在脚本中创建一个pdfmark文档,gs使用该脚本创建书签。但不幸的是,我正在合并的一些文档已经有了自己的书签,我还没有找到一个方法来忽略这些书签。GS应仅使用pdfmarks文件中的书签


如何做到这一点?

首先;使用Ghotscript的pdfwrite设备时,您没有“合并”PDF文件。详细描述了该过程

重要的一点是,输入文件的构造方式与输出文件的构造方式无关。如果您使用的任何其他软件依赖于以特定方式构造的文件,则它可能无法在输出PDF文件上工作

-dEPSFitPage
开关只有在输入为EPS文件时才起作用。如果要“适应”PostScript或PDF文件,则需要使用
-dPDFFitPage
-dPSFitPage
或仅使用
-dFitPage
。但是,所有这些都取决于您首先选择媒体大小,然后通过设置
-dFIXEDMEDIA
来防止媒体大小被更改。对于EPS文件,您通常会使用
-dEPSCrop
,它将媒体大小设置为EPS声明的边界框


您可以使用
-dNO_pdfmark_Outlines
开关阻止PDF解释器读取大纲树(您称之为书签),然后从中创建一个pdfmark传递到pdfwrite设备,该开关奇怪地没有记录,可能是一种疏忽。

如果您有两个问题,你应该问两个问题,不要把它附加到原来的问题上。对不起,我刚在打字结束时想到了这个问题。因为它不太重要,所以我添加了它。我不知道,这是论坛上的一个nogo hre。请接受我诚挚的歉意。我把它拿走了。你有没有可能帮我解决我的问题?@Kami-Kaze:我刚刚试着发布第二个问题。但我只允许每90分钟发布一次……没问题,只是问题(标题好)和答案是一个单元。通过问另一个问题,你会从标题提出的预期内容中转移注意力。是的,这些限制有点麻烦,但如果你写的内容好的话,这些限制很快就会消失。我会尽我最大的努力:-)谢谢KenS的提示:神奇的单词是
-dNO_PDFMARK_OUTLINES
它对书签很有效,但忽略了诸如标题、作者等首选项。不确定“首选项”是什么意思,这些是文档信息目录中的条目。它们(我认为)是由PDF解释器通过从创建DOCINFO pdfmark来保存的。但我还没有检查过这个。我不相信-dNO_PDFMARK_大纲会以任何方式影响这一点。我说的“首选项”是指我可以看到作者和标题的部分。我的pdfmark如下所示:
[/Title(来自公司名称的文档)[/Author(公司名称)[/Subject(用于校准的文档)[/Creator(PPT-Paul的PDF工具)
但在“首选项”中,它仍然以Title的形式显示“合并”中第一个PDF的Indesign文件名是最初生成的,我们的active directory中的用户名是谁做的…它不会用上面的值覆盖它。也许我需要搜索是否有选项可以删除PDF中的所有条目…明天需要检查。您需要向我显示完整的pdfmark(这不是,或者至少不是一个有效的pdfmark)和一个命令行,这样我就可以看到你是如何使用它的。没有它,我就帮不了你。最好的办法是编辑你的问题并添加它。