3

ページにテキストを描画してその y 位置を確認する前に、テキストがページの下部に収まるかどうかを確認したいと考えています。

これがABCPDFで可能かどうか知っている人はいますか?

4

4 に答える 4

2

私がPDF関連の作業を行っていたとき(ABCPDFで6〜7年前など)から覚えている限り、私たちはGraphics.MeasureStringメソッドで多くの時間を使用していました。MSDN
でそれをのぞき見したいかもしれません。

于 2011-11-04T21:25:43.937 に答える
2

私の経験では、これに対処する最善の方法は、測定してフィットするかどうかを心配することではありません.

  1. 書き込んでいる長方形を、現在の位置からメディア ボックスの一番下までの範囲に設定します。
  2. テキストを四角形に書き込み、テキストが切り捨てられたかどうかを確認します。切り捨てられた場合は、書き込んだばかりのオブジェクトを削除します。そうでない場合は、すべて問題なく、自分が書いたテキストの範囲を見つけることができます。
  3. 収まらない場合は、次のページに移動/作成し、長方形をページ全体に設定して、テキストの書き込みを再試行します。
  4. それが切り捨てられた場合、問題が発生します。フォントサイズ、行間隔などを減らさない限り、テキストが 1 ページに収まらないからです。

ページ間でテキストを連結できるため、克服できないわけではありませんが、それは別の問題です。

于 2011-12-01T17:03:12.970 に答える
0

graphics.Measurestring がうまくいかない場合は、他のオプションとして、特定のフォントのサイズを文字通り測定して、1 行に収まる文字数を把握し、特定の四角形に含まれる行数とサイズを計算することができます。それに応じて、yVal = lineCount * 5 のようなものを使用して四角形を作成します。

私の記憶が正しければ、何らかの理由でメジャーストリング関数を使用できなかったため、厄介な方法で実行する必要がありましたが、さまざまなサイズのボックスが複数ある状況では非常にうまく機能しました。

于 2011-11-23T09:55:40.150 に答える
0

はい、ABCPDF はこの情報を教えてくれます: yourPdfDocInstance.AddHtml() は、現在の四角形にテキストを追加できなかった場合、0 を返します (テキストを追加しません)。

于 2011-12-16T15:55:30.580 に答える