iTextSharp で利用可能なパーサー機能を使用して PDF ファイルを解析していると仮定しています。たとえば、iText/iTextSharpを使用して PDF ファイルからフォントの高さと回転を抽出するを参照して、他の人がこれをどのように行ったかを確認してください。より詳細な記事はこちら: Using Open Source PDF Technology to Solve the Unstructured Data Problem in Healthcare
あなたの質問は次のとおりです。どうすればリーディングを計算できますか? つまり、2 つの連続する線の基線間の距離を知るにはどうすればよいですか?
iTextSharp を使用して PDF を解析すると、各行が一連のTextRenderInfo
オブジェクトとして表示されます。これらのオブジェクトを使用すると、テキストのベース ラインを取得できます。
LineSegment baseline = renderInfo.GetBaseline();
Vector startpoint = baseline.GetStartPoint();
これVector
は、さまざまな要素で構成されています: Itextsharp で ITextExtractionStrategy と LocationTextExtractionStrategy を使用して文字列の座標を取得する
が必要startpoint[Vector.I2]
です。参照: iTextSharp を使用して PDF から改行を検出する方法
連続する 2 行の値の差は、現代的な意味での先頭の値を示します。昔の印刷では、すべての文字は固定サイズのブロックでした。プリンター (機械ではなく人) は、ブロックの行の間に鉛のストリップを入れて、行間に余分なスペースを作ります。現代のコンピューティングでは、この言葉は保存されていましたが、その意味は変化しました。「ブロック」はもうありませんが、フォントサイズを操作できます。フォント サイズは、フォント内のグリフの平均サイズです。グリフによって高さのスペースが大きくなったり、小さくなったりしますが、リーディング (ベースライン間の距離) とフォント サイズ (各グリフの平均の高さ) の両方を考慮に入れると、「間のスペース」についてかなりのアイデアを得ることができます。台詞"。