さて、私は今、あとがきを「知っています」。すべてがより理にかなっています。
色を変更すると、他の領域の背景に影響を与えますが、sc、SC、cs、および CS がプロシージャであることがわかりました。
/cs { /pdfFillXform exch def dup /pdfFillCS exch def
setcolorspace } def
/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
setcolorspace } def
/sc { pdfLastFill not { pdfFillCS setcolorspace } if
dup /pdfFill exch def aload pop pdfFillXform setcolor
/pdfLastFill true def /pdfLastStroke false def } def
/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
/pdfLastStroke true def /pdfLastFill false def } def
しかし、その一部の色を塗り直すと、他の場所の背景に影響を与えるようです! ちなみに私の仕事は、すべてのフォントを黒に変更することです(何らかの理由で白があります...理由は本当にわかりません)。
このようなもの:
-0.925088 TJm
Q
/DeviceGray {} cs
[1] sc
q
[10 0 0 10 0 0] cm
[1 0 0 1 0 0] Tm
0 0 Td
[1 0 0 1 286.875 503.428] Tm
0 0 Td
/F11_0 11.9551 Tf
変えたいのはその1、それを0にしたい。
今何をすべきか本当にわからないアイデア
ソース ドキュメントは pdf でしたが、pdftops によって変更されました
ありがとう
追加:
/Tj {
fCol
1 index stringwidth pdfTextMat idtransform pop
sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll Tj1
} def
これにより、文字がレンダリングされます
(n) 7.471938 Tj
その手順で色を設定できれば、色をポップすればOKです。
どうすればこれを行うことができますか?
----未来の人々へ---------
/Tj {
/DeviceGray {} cs
[0] sc
fCol
1 index stringwidth pdfTextMat idtransform pop
sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse
pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32
4 3 roll pdfCharSpacing pdfHorizScaling mul add 0
pdfTextMat dtransform
6 5 roll Tj1
} def
それが私の修正です。私はデバイスの灰色の部分を一番下に置き、この Tj 手順が使用されるたびに黒に設定し (.... すべての文字!)、他のものには影響を与えません (ように見えます)。
白い文字の問題が解決しました! http://www.adobe.com/products/postscript/pdfs/PLRM.pdf
一読の価値あり!あとがき仕様!