4

i have extracted the PDF using itextsharp then converted to html for comparison of two PDF for their stlye. in this i added left and top position for alignment of text. But as soon as i receive superscript the position of text changes. But when i check through firebug the position of left and right position is same as i checked using adobe illustrator. can anyone tel me. Why its happening.In the example i have posted the 7 number should come below "was" but it is away from "was"enter image description hereel away from was.

Vector curBaseline = renderInfo.GetBaseline().GetStartPoint();
Vector topRight = renderInfo.GetAscentLine().GetEndPoint();
y_direction_source = Form1.Pagesize_source +( height_extract_source_page - curBaseline[Vector.I2]);
this.result.AppendFormat("<p style=\"left:{0}pt;top:{1}pt;\">" curBaseline[Vector.I1], y_direction_source);

result:

<p style="font-family:TimesNewRoman;font-size:12.2618001271429pt;font-weight:;font-style:;left:42pt;top:120.2399pt;position:absolute;">
<p style="background: cyan">training</p>
<p style="background: cyan">camps</p>
<pp style="background: cyan">in</p>
<pp style="background: cyan">Afghanistan</p>
<pp style="background: cyan">.</p>
</p>
<pp style="font-family:TimesNewRoman;font-size:10.2386067682737pt;font-weight:;font-style:;left:441.48pt;top:114.72pt;position:absolute;">
<pp style="background: cyan">7</p>
</p>
4

1 回答 1

1

我拿了你的代码并在 Chrome 中打开它。42 的绝对偏移量导致点和数字 7 之间的差距更大。此外,我不得不重新排列一些 P 和 PP 以获得类似的结果。

浏览器需要 182 px 才能写出“阿富汗训练营”。但在样本中位置差异大约为 302 至多。看起来像 302-42 父有 260 偏移量?

根据我在这里看到的代码,我的猜测是“阿富汗训练营”这一行。被定位在另一个元素中,而 7 不是。这不是问题,但是额外的差距使得提供解决方案变得更加困难。

另一方面,它也解释了为什么会发生这种情况。没有上标或下标之类的东西。为了表现得像我们缩放字体并用偏移量打印它们。这对于您翻译的 PDF 没有什么不同。

因此,7 的位置不同,并且使用与其余文本不同的字体大小书写。现在我不知道您的原始 PDF 如何计算出细节,但您看到的效果很可能是边距不同。

在 PDF 中,您可以为字体设置许多不同的选项,例如字间距,或指定缩进级别。我会说你的法线偏移量有一个左边的页边距,而 7 是绝对放置的,或者使用的字体有一些特殊的设置,使句子更长。

由于您已经拥有 Illustrator,您可以检查不是 7,而是 . 放置在同一位置。我的猜测是它不是,并且 7 的位置是正确的。它只是看起来很奇怪,但实际上所有其余的纯文本在您的 html 中的位置都不同。

您可以做的是让每个单词都定位为绝对位置,而不仅仅是线条。这将补偿字体、类型设置、浏览器行为或其他影响方面的任何差异。

于 2013-05-14T13:32:31.530 回答