2011-11-04 68 views

回答

2

據我記得,當我做PDF的東西(比如... 6-7年前與ABCPDF),我們用Graphics.MeasureString方法的時間分配。
你可能想利用它一眼就MSDN

0

如果graphics.Measurestring不爲你工作的另一種選擇是從字面上測量某些字體的大小,讓你知道有多少字母適合在一條線,可以然後找出你將在給定的矩形中有多少行,並使用類似於yVal = lineCount * 5的大小相應地確定矩形的大小。

如果我沒記錯,我不能使用Measurestring函數出於某種原因而必須這樣做這是一種尷尬的方式,但在我擁有多個不同尺寸的盒子的情況下,它確實工作得很好。

2

根據我的經驗,處理這個問題的最好方法就是不用擔心它是否適合通過測量。

  1. 將您正在寫入的矩形設置爲從當前位置一直延伸到媒體框的底部。
  2. 將文本寫入矩形,然後檢查文本是否被截斷。如果它被截斷,那麼刪除剛寫入的對象。如果不是,那麼一切都很好,你可以找到你寫的文字的範圍。
  3. 如果不適合,移動到/創建下一頁,將矩形設置爲整頁並重新嘗試文本寫入。
  4. 如果被截斷,那麼你有一個問題,因爲你的文本永遠不會放在一個頁面上,而不會減小字體大小,行距或其他東西。

這不是無法克服的,因爲您可以跨頁面鏈接文本,但這是一個不同的問題。

0

沒錯,ABCPDF會告訴你這樣的信息:如果文字不能被添加到當前矩形yourPdfDocInstance.AddHtml()將返回0(不添加任何文本)

相關問題