我使用iTextSharp在PDF页面中绘制文字,我有两个要求: 1)文本需要由Adobe Reader等搜索 2)我需要字符级控制文本的绘制位置。
我可以使用PdfContentByte.ShowText()逐字逐句绘制文本,但我无法控制每个字符的绘制位置。 我可以使用PdfContentByte.ShowText()逐个字符地绘制文本但是它不可搜索。 我现在正在尝试创建一个PdfTextArray,它似乎满足了我的两个要求,但是我在计算正确的偏移时遇到了麻烦。
所以我的第一个问题是:你是否同意PdfTextArray是我需要做的,以满足我的两个原始要求?
如果是这样,我让PdfTextArray正常工作(因为它输出文本)但我无法弄清楚如何准确计算每对字符之间需要放置的定位偏移(现在我只是使用固定值-200只是为了证明函数有效)。
我认为定位偏移是从前一个字符的右边缘到新字符的左边缘的距离,以“文本空间单位的千分之一”表示。这给我留下了两个问题:
1)前一个字符(以磅为单位)的宽度,如指定的字体和&中所示。高度? (我知道它的左边缘在哪里,因为我画了它)
2)如何将点转换为“文本空间单位”?
我没有做任何花哨的缩放或旋转,所以我的转换矩阵都应该是标识矩阵,这应该简化计算......
谢谢, 克里斯