0

我正在使用 iTextSharp 在 PDF 页面中绘制文本,我有两个要求:1) 文本需要可由 Adob​​e Reader 搜索等 2) 我需要对文本绘制位置进行字符级控制。

我可以使用 PdfContentByte.ShowText() 逐字绘制文本,但我无法控制每个字符的绘制位置。我可以使用 PdfContentByte.ShowText() 逐个字符地绘制文本,但它是不可搜索的。我现在正在尝试创建一个 PdfTextArray,它似乎可以满足我的两个要求,但是我在计算正确的偏移量时遇到了麻烦。

所以我的第一个问题是:您是否同意 PdfTextArray 是我需要做的,以满足我最初的两个要求?

如果是这样,我的 PdfTextArray 工作正常(因为它正在输出文本)但我无法弄清楚如何准确计算需要放在每对字符之间的定位偏移量(现在我只是使用固定的值 -200 只是为了证明该功能有效)。

我相信定位偏移量是前一个字符的右边缘到新字符的左边缘的距离,用“文本空间的千分之一单位”表示。这给我留下了两个问题:

1) 前一个字符有多宽(以磅为单位),以指定的字体和高度绘制?(我知道它的左边缘在哪里,因为我在那里画了它)

2)如何从点转换为“文本空间单位”?

我没有做任何花哨的缩放或旋转,所以我的变换矩阵应该都是单位矩阵,这应该简化计算......

谢谢,克里斯

4

0 回答 0