2011-05-10 57 views
4

PDF文件的Ghostscript的合并导致方向翻转Ghostscript的合并导致方向翻转

我使用类似的方法,因为这太问题: 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 
+0

什么是在你的“args.bat”文件? – 2011-05-10 17:24:36

+0

@Mark Storer:我假设你确实看到TJR的主批处理文件确实(尝试)动态地创建args.bat的内容。你想知道'(echo。| set/p = ...'部分的实际结果是什么? – 2011-05-11 13:34:43

回答

6

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颠倒)。

但是,这将无法可靠地工作,因为(一些)您的源文件可能包含奇怪的页面方向和自己的旋转设置。在这种情况下,只有修复源文件一个接一个将能够解决这个问题....

+0

单独查看,源pdf的所有方向都是相同的。源pdf是通过应用程序Scribus生成的。 – TJR 2011-05-12 14:18:58

+0

@TJR:您使用的是哪个查看器?哪些查看器设置?请注意,根据页面上文本字符串的主要流向(或观众认为的“主要”),可以将查看器设置为自动旋转页面进行查看。 。另外,可能有一种嵌入页面的“旋转查看”标志... – 2011-05-12 15:08:01

+0

@TJR:你能否提供一些示例PDF文件来显示你描述的行为?然后我会仔细看看它们并告诉你我的结果... – 2011-05-12 16:57:25