我以字母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
答案 0 :(得分:5)
我不确定这里发生了什么,现在没时间调查了。
但是这里有一些立即观察作为额外的数据点:
<强>更新强>
好的,我快速浏览了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形将显示尖角。
答案 1 :(得分:2)
解决方案是创建注释外观(注释字典中的/ AP条目)。如果绘制直线的注释外观存在于PDF文件中,则在显示文件时将使用它,您将在任何查看器中获得相同的结果。如果外观不存在,则查看器将根据注释定义构造外观,在您的情况下,此查看器内置外观取决于实现。