3

1:1 以外の比率で拡大縮小したい PDF で線を描画しています。

問題は、カリグラフィ ペンで描かれたように見えるストロークが得られることです。

PDFでパスのサイズを変更し、グラフィックスの状態を復元してから、前のパスのストロークを描画することは何とか可能ですか?

これは、PDFでカリグラフィーの線画を取得する方法です。

5 w               // width of stroke
q                 // saves the current graphics state 
0 1 0 0.2 0 0 cm  // transformation matrix scaling with height reduced to 20%
0 10 m            // Start of line
10 10 l           // line to
20 100 l
30 100 l
40 10 l
S                 // draws stroke
Q                 // Restores graphics state

HTML5 キャンバスでは、パスが等幅の線で描画されるように、グラフィックス状態を復元した後にストロークを描画することができます。

http://www.html5canvastutorials.com/advanced/html5-canvas-ovals/

Q の後に S を置く PDF では機能しません。

ストローク自体ではなく、ラインパスのみがスケーリングされるPDFで同じ結果を得る方法はありますか?

4

1 に答える 1

4

PDF 仕様ISO 32000-1:2008の 113 ページにある Figure 9 - Graphics Objects - をご覧ください。これは、パスの構築を開始するとすぐに、パス構築、パス クリッピング、およびパス ペインティングの演算子のみが許可されることを示しています。特別なグラフィックス状態演算子であるQは、 Sなどのパス描画演算子の後にのみ許可されます。

これは、図のすぐ下の例にも示されています。

パス構築演算子mreは、パス オブジェクトの開始を示します。パス オブジェクト内では、クリッピング パス演算子Wおよび W*と同様に、追加のパス構築演算子が許可されますが、 wJなどの一般的なグラフィックス状態演算子は許可されません。Sfなどのパス描画演算子は、パス オブジェクトを終了し、ページ記述レベルに戻ります。

したがって、「ストローク自体ではなく、ラインパスのみがスケーリングされる PDF で同じ結果を得る方法はありますか?」に対する応答として: いいえ、より小さなストローク幅を明示的に選択して、変換マトリックス。

ISO 32000-1:2008 の 113 ページに図 9 - グラフィック オブジェクトが示されています。

于 2012-11-29T10:32:44.437 に答える