4

itextsharp を使用して PDF を抽出し、2 つの PDF をスタイルで比較するために html に変換しました。これで、テキストの配置のために左と上の位置を追加しました。しかし、上付き文字を受け取るとすぐに、テキストの位置が変わります。しかし、firebug を確認すると、Adobe Illustrator を使用して確認したときと左右の位置が同じです。誰でも私に電話できますか?なぜそれが起こっているのか.私が投稿した例では、7 の数字は "was" の下にあるはずですが、"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);

結果:

<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 ピクセルかかります。しかし、位置の違いは、サンプルで約 302 から大きくなっています。親が 260 のオフセットを持つ 302-42 のように見えますか?

ここに表示されているコードに基づく私の推測では、「トレーニング キャンプ in アフガニスタン」という行です。7はそうではありませんが、別の要素にインラインで配置されています。それは問題ではありませんが、余分なギャップにより、ソリューションの提供が難しくなります。

一方で、なぜこれが起こっているのかについても説明しています。上付きや下付きなどというものはありません。あるように振る舞うために、フォントを拡大縮小し、オフセットを付けて印刷します。これは、翻訳する PDF でも同じです。

その結果、7 は他のテキストとは異なる位置に配置され、異なるフォント サイズで書かれています。元の PDF が詳細をどのように処理するかはわかりませんが、表示される効果は余白の違いである可能性があります。

PDF では、単語の間隔など、さまざまなフォント オプションを設定したり、インデント レベルを指定したりできます。通常の行のオフセットには左ページの余白がありますが、7 は実際には絶対に配置されているか、使用されているフォントに特別な設定があり、文が長くなります。

すでに Illustrator を持っているので、7 ではなく . 同じ場所に置かれています。私の推測ではそうではなく、7 は正しく配置されています。奇妙なもののように見えますが、実際には残りのすべてのプレーン テキストが HTML 内で異なる位置に配置されています。

あなたができることは、行だけでなく、すべての単語を絶対的に配置することです。これにより、フォント、タイプ設定、ブラウザーの動作、またはその他の影響の違いが補正されます。

于 2013-05-14T13:32:31.530 に答える