2017-10-11 22 views
0

나는 고스트 스크립트로 2 페이지 PDF에 텍스트를 추가하려고합니다. 유사한 질문 (https://stackoverflow.com/a/9783516/1581629https://stackoverflow.com/a/12596669/1581629 https://stackoverflow.com/a/18774237/1581629)을 사용하고 있었는데/EndPage를 사용하려고했지만 스택에 "페이지 카운터"가 생겨서 수정할 페이지를 선택할 때 사용하려고합니다./ENDPAGE (포스트 스크립트 언어 참조 pg.441)의 스택은 "이유는"0이면/끝 수가 증가하지 않습니다

단, "카운터"의 GS를 이용한 MWE 될 수 항상 0

(인 자식 REPO)에서 9.23 :

gs -o out.pdf -sDEVICE=pdfwrite a.ps in.pdf

가 a.ps이다 :

<< 
    /EndPage 
    { 
     (-----------------START\n) print 
     stack 
     true 
     (------------------END\n) print 
    } 
>> setpagedevice 

및 in.pdf가 pdflatex (texlive 2017)에 제출되었다 :

\documentclass{article} 
\begin{document} 
aaa 

\newpage 

bbb 
\end{document} 

내가 여기에없는 것에 대해 누군가가 나를 지적 할 수 있습니까?

답변

2

Ghostscript PDF 인터프리터는 PDF 파일의 각 페이지 시작 부분에서 setpagedevice를 실행합니다.

PDF 파일의 각 페이지가 다른 MediaBox를 가질 수 있기 때문에 MediaBox를 추출하고 MediaBox가 포함 된 PageSize 항목으로 사전을 구성하여 (잠재적으로) 새 용지 크기를 설정할 수 있습니다.

setpagedevice를 실행할 때마다 페이지 수가 재설정되므로 각 페이지가 실제로 첫 번째 페이지가됩니다.

페이지 수가 필요한 경우 개인 사전을 만들고 카운터를 0으로 초기화 한 다음 사전 테스트를 열어 EndPage 절차에서 현재 카운트 값을 테스트하고 필요에 따라 증가시킵니다.

관련 문제