我需要使用.net中的pdftron从 FreeText
注释中获取字体信息(字体family,color e.t.c(。而且我只看到FreeText.GetFontSize
方法。我如何获取FreeText
注释的字体信息?
如果存在外观流,则使用elementReader接口来解析外观流将返回实际用于外观的字体。因此,从某种意义上说,这是最准确的检查。
检查外观呼叫Annot.GetAppearance() != null
如果没有外观,则可以生成外观并检查然后检查,尽管这会修改并非总是需要的PDF。
如果没有外观流,则首先检查DS
条目,即CSS字符串。例如:
font: 'Comic Sans MS',sans-serif 12.0pt; text-align:left; color:#E52237
如果不存在DS
,则需要DA
。
0 G 0.898 0.1333 0.2157 rg 0 Tc 0 Tw 100 Tz 0 TL 0 Ts 0 Tr /ComicSansMS 12 Tf
这些是PDF图形操作员,从本质上讲,您可以解析字符串并查找Tf
,而前两个操作数是字体和字体大小。
例如
SDF.Obj ds = Annot.GetSDFOjb().FindObj("DS");
if(ds != null) string ds_str = ds.GetAsPDFText();