4

ここに画像の説明を入力

上記のように、Z の文字の形でインク注釈を作成しましたが、Z の角は丸くなっています。なぜこれが起こるのですか?この追加の美化を回避して、角が鋭く保たれ、点が直線で結ばれるようにするにはどうすればよいですか?

PDF コード:

%PDF-1.6
%μῦ

1 0 obj
<</Type/Catalog/Pages 2 0 R>>
endobj

2 0 obj
<</Type/Pages/Kids[3 0 R]/Count 1>>
endobj

3 0 obj
<</Type/Page/Parent 2 0 R/Resources<<>>/MediaBox[0 0 500 800]/Annots[4 0 R]>>
endobj

4 0 obj
<</Type/Annot/Subtype/Ink/Contents(<enter description here>)/InkList[[150 300 250 300 150 200 250 200]]/Rect[200 250 300 150]/P 3 0 R/F 4/C[1 0 0]>>
endobj

xref
0 5
0000000000 65536 f 
0000000017 00000 n 
0000000063 00000 n 
0000000115 00000 n 
0000000209 00000 n 

trailer
<</Size 5/Root 1 0 R>>

startxref
374
%%EOF
4

2 に答える 2

5

ここで何が起こっているのかわかりません。今は調査する時間がありません。

しかし、追加のデータポイントとして、すぐに観察できることがいくつかあります。

  • Mac OS X の Preview.app は、シャープなエッジを持つ Z 字形を示しています。
  • Adobe Reader X および Adob​​e Acrobat X Pro (Mac OS X 上) では、エッジが丸いZ 字形が表示されます。
  • Ghostscript v9.05 は、丸いエッジを持つ Z 形状を示しています。
  • 今日の Git リポジトリから自己コンパイルされた Ghostscript は、丸いエッジを持つ Z 形状を示しています。

アップデート:

わかりました、PDF-1.7 の公式 ISO 仕様をざっと調べてみました。/Subtype /Ink注釈について次のように述べています/InkList

n 配列の配列で、それぞれがストローク パスを表します。各配列は、パスに沿ったポイントを指定して、デフォルトのユーザー空間で一連の水平座標と垂直座標を交互に並べたものです。描画される場合、点は実装に依存する方法で直線または曲線で接続されます。

(第12.5.6.13 章 Ink Annotationsから、私の強調)

したがって、一方の実装で直線を表示し、もう一方の実装で曲線を表示することは完全に「合法」です。:-(

はぁ...

更新 2:

したがって、すべての実装で Z 形状を強制的に直線として表示する場合は、それぞれが異なる配列で表される 3 つの異なる直線を描画し、これら 3 つの配列をコンテナー配列に配置する必要があります...

コードのこの部分を変更します。

/InkList
[
  [150 300 250 300 150 200 250 200]
]

これに:

/InkList
[
  [150 300 250 300]
  [250 300 150 200]
  [150 200 250 200]
]

Z-Shape は鋭い角を示します。

于 2012-07-31T19:28:56.230 に答える
2

解決策は、注釈の外観 (注釈辞書の /AP エントリ) も作成することです。直線を描画する注釈の外観が PDF ファイルに存在する場合、ファイルを表示するときにそれが使用され、どのビューアでも同じ結果が得られます。外観が存在しない場合、ビューアは注釈定義に基づいて外観を構築します。この場合、このビューアで構築された外観は実装に依存します。

于 2012-08-01T08:16:20.860 に答える