2012-03-20 2 views
0

포스트 스크립트 파일이 100 줄 있습니다. 나는 고스트 스크립트 (ghostscript)의 도움으로 두 개의 pdfs를 하나로 합치려고한다.포스트 스크립트 파일을 특정 페이지 번호로 어떻게 실행합니까?

1) 포스트 스크립트 파일의 처음 50 개 라인이 생성 된 PDF의 1 페이지에 적용되어야

: 내가하고 싶은 일에 모두 PDF 파일을 병합에 비해 다음과 같은 방법으로 내 포스트 스크립트 코드를 적용한다 2) 생성 된 pdf의 두 번째 페이지에 적용될 나머지 50 줄.

나는 그렇게하려면 다음 코드를 사용했습니다 :

gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf test.ps pdf_1.pdf pdf_2.pdf; 

내가 포스트 스크립트의 showpage 옵션을 시도하지만 생성 된 출력 PDF 파일에 빈 페이지를 삽입하고 내 요구 사항이 아니다.

나는 어떻게 할 수 있습니까?

답변

0

여러 반복에있는 PS 코드를 분해 할 수 . PS 코드의 한 부분으로 하나의 pdf를 만든 다음 PS의 나머지 부분으로 다른 pdf를 생성하십시오. 그렇게하면 유령 스크립트의 도움으로 PDF를 병합하고 원하는 출력을 얻을 수 있습니다.

저는 이것이 현명한 해결책이 아니라는 것을 알고 있습니다. 그러나 앞으로 나아갈 수는 있습니다.

감사

+0

좋은 아이디어는 아니지만 잠시 동안 나를 도와줍니다. – Smit

3

showpage는 PostScript 연산자 인 Ghostscript '옵션'이 아닙니다.

입력 파일이 PDF이기 때문에 이것은 사소한 작업입니다. PDF 인터프리터는 입력 PDF 파일의 모든 페이지에 대해 showpage의 시스템 정의를 실행하여 PostScript에 넣은 모든 것을 덮어 씁니다.

시도하지 않고 페이지 수에 따라 다른 동작을 수행하는 EndPage 프로 시저를 만드는 것이 좋습니다 (포스트 스크립트 프로그래밍 기술).

예 :

/DoPage1 { 
    %% Your code goes in here 
} def 
/DoPage2 { 
    %% Your code goes in here 
} 
<< 
/EndPage { 
    2 lt{ 
     1 eq { 
      DoPage1 
     }{ 
      DoPage2 
     } ifelse 
    }{ 
     pop 
    } ifelse 
} 
>> setpagedevice 

당신은 전에이 개 PDF 파일을이 코드 를 실행해야합니다 예 :

gs .... setup.ps file1.pdf file2.pdf

+0

좋아요, 주어진 예제에서 작동하는 것처럼 보입니다. 이제 동적으로 생성 된 pdfs와 다른 페이지 번호가 있다고 가정 해보십시오. 이 경우 포스트 스크립트의 코드는 무엇이되어야합니까? 저는 포스트 스크립트에 초보자이고 그 생각이 매우 적습니다. – Smit

+2

잘 모르겠습니다. 다양한 페이지가있는 경우 어떤 페이지에 어떤 PostScript 세트를 첨부해야하는지 어떻게 알 수 있습니까? 포스트 스크립트는 프로그래밍 언어이므로 원하는 것을 알면 프로그래밍 할 수 있습니다. – KenS

2

당신은 바로 옆에 각각의 PDF 출력 파일 이름, 하나의 명령으로 모든 PS 파일 이름을 제공 할 수 있습니다. 그러면 PS 코드 출력이 필요한 PDF가 생성되고 PDF 라이브러리를 사용하여 요구 사항에 따라 병합 할 수 있습니다.

+0

그게 저에게는 효과가 있습니다.하지만 pdf 블록은 어떻게 될까요? – Smit

관련 문제