PostScript - это язык только для записи: -)
Серьезно, это язык программирования.Чтобы понять, что происходит, вам нужно понять программу, которая в случае вывода с устройства Ghostscript ps2write явно нетривиальна.
Синтаксис в основном PDF, с прологовой программой, котораяинтерпретирует его в терминах PostScript.
Программа будет использовать showpage, она делает это при выполнении процедуры EndStream, то есть (в основном), когда ключевое слово endobj находится в потоке страницы.Вы увидите, что это выглядит так:
ET
Q
Q
Q
endstream
endobj
%%Page: 2 2
Вы можете поместить все что угодно между конечным потоком и конечным узлом, но вы должны знать, что графическое состояние в этой точке определяется тем, какие операции имеютуже состоялось.Это может включать в себя масштабирование, рутирование, создание каркаса, переворот по вертикальной оси и т. Д. Поэтому просто вставить туда немного PostScript вряд ли удастся.Вы можете создать initgraphics, которая, по крайней мере, сбросит графическое состояние до известной настройки.
В качестве теста я запустил устройство Ghostscript'sd ps2write следующим образом:
gs -sDEVICE = pdfwrite -oout.ps -c "showpage" -f
, которая создает программу PostScript, в которой (эффективное) содержимое имеет вид:
%%EndResource
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 595 842
%%BeginPageSetup
4 0 obj
<</Type/Page/MediaBox [0 0 595 842]
/Parent 3 0 R
/Resources<</ProcSet[/PDF]
>>
/Contents 5 0 R
>>
endobj
%%EndPageSetup
5 0 obj
<</Length 23>>stream
q 0.1 0 0 0.1 0 0 cm
Q
endstream
endobj
%%Trailer
end
%%EOF
Затем я изменил это более или менее, как вы предложили:
%%EndPageSetup
0 setgray 0 0 moveto 595 842 lineto stroke
5 0 obj
<</Length 23>>stream
q 0.1 0 0 0.1 0 0 cm
Q
endstream
endobj
%%Trailer
Для меня это привело к ожидаемому удару снизу слева вверху справа.Очевидно, что без файла PostScript, который вы изначально создали, я не могу сказать, почему ваш опыт отличается.(нет, я не в состоянии запустить латекс, чтобы произвести такую вещь, и даже если бы я это сделал, у меня нет возможности узнать, какую версию Ghostscript и другие инструменты вы использовали).
Я думаю, чтобудь то «что-то» в вашем файле PDF перезаписало всю страницу, это не редкость.