pdf的Ghostscript合并导致方向翻转

Posted

技术标签:

【中文标题】pdf的Ghostscript合并导致方向翻转【英文标题】:Ghostscript merge of pdf's is causing orientation to flip 【发布时间】:2011-05-10 00:18:26 【问题描述】:

pdf 的 Ghostscript 合并导致方向翻转

我正在使用与此 SO 问题类似的方法: How to merge two postscript files together?

在合并后的 PDF 中,每几页都会上下翻转。我还没有看到它在其他任何地方提到过这种症状。合并单个麻烦的 pdf 仍然会颠倒方向。

@echo off
REM FILE: merge.bat

call :merge 1 155 out.pdf
pause
goto :eof

REM MERGE PDFs
REM @param # of first file in sequence
REM @param # of last file in sequence
REM @param new file of merged pdf
goto :eof
:merge
SET START=%1
SET END=%2
SET OUT=%3
echo START=%START%
echo END=%END%
echo OUT=%OUT%
echo.
SET CMD="c:\Program Files\gs\gs9.01\bin\gswin32c.exe"
SET INPUT_DIR=c:\input
SET CMD_ARGS=args.bat
echo Generating args file...
(echo.|set /p="-dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=%OUT% ") > %CMD_ARGS%
for /L %%G IN (%START%,1,%END%) do (
  (echo.|set /p=" "%INPUT_DIR%\%%G.pdf" ") >> %CMD_ARGS%
)
echo. >> %CMD_ARGS%
del %OUT%
if exist %OUT% goto :error
echo Executing command...
%CMD% @%CMD_ARGS%
del %CMD_ARGS%
echo Done.
if not exist %OUT% goto :error
goto :eof

:error
echo Error processing command.
goto :eof

【问题讨论】:

您的“args.bat”文件中有什么? @Mark Storer:我假设您确实看到 TJR 的主批处理文件确实(尝试)动态创建了 args.bat 的内容。您想知道(echo.|set /p=... 部分的实际结果是什么? 【参考方案1】:

TJR,您可以尝试在 Ghostscript 调用中添加以下命令行参数之一:

-dAutoRotatePages=/None
-dAutoRotatePages=/All 
-dAutoRotatePages=/PageByPage

如果这不会改变结果,试试这个:

gswin32c.exe ^
 -o c:/path/to/output.pdf ^
 -sDEVICE=pdfwrite ^
 -dPDFSettings=/prepress ^
 -dAutoRotatePages=/None ^
 -c "<</Orientation 0>> setpagedevice" ^
 -f /path/to/first.pdf ^
    /path/to/second.pdf ^
    /path/to/third.pdf 

带有/Orientation 0 的部分应将所有页面变为纵向。使用3 应该使它成为风景(1 用于海景,2 用于倒置)。

但是,这不会可靠地工作,因为您的(某些)源文件可能包含自己奇怪的页面方向和旋转设置。在这种情况下,只有对源文件进行“修复”才能解决此问题....

【讨论】:

单独查看,源 pdf 的所有方向都相同。源 pdf 是通过应用程序 Scribus 生成的。 @TJR:您使用的是哪个查看器?哪些查看器设置?请注意,根据页面上文本字符串的主要流动方向(或查看者认为“主要”的任何方向),查看者可能会被设置为自动旋转页面以进行查看。此外,页面上可能嵌入了一种“旋转查看”标志... @TJR:您能否提供几个示例 PDF 文件来显示您描述的行为?然后我会仔细研究它们并告诉你我的结果...... @TJR:您使用的是哪个版本的 Ghostscript? (最新的是v9.02)。 AutoRotatePages=/None 成功了。不过,我没有的想法,为什么这不是默认值。

以上是关于pdf的Ghostscript合并导致方向翻转的主要内容,如果未能解决你的问题,请参考以下文章

Ghostscript 在合并 PDF 时跳过字符

如何使用 ghostscript 从 S3 合并 PDF

Ghostscript.net 打印 pdf 页面方向

Ghostscript将pdf转换为方向错误的pcl

Ghostscript:如何在 Windows 上将 PDF 与通配符合并

Ghostscript将ps与pdf文件合并并添加第一行(标题)