我需要使用.Net中的PDFTron从FreeText
注释中获取字体信息(字体系列,颜色e.t.c)。我只看到FreeText.GetFontSize
方法。如何获取FreeText
注释的字体信息?
答案 0 :(得分:1)
如果存在外观流,则使用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();