1

さて、私は今、あとがきを「知っています」。すべてがより理にかなっています。

色を変更すると、他の領域の背景に影響を与えますが、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

一読の価値あり!あとがき仕様!

4

0 に答える 0