2015-05-07 234 views
0

我有一個文本,單詞「Versicherungs-Lebenslagen」應該只在連字符處打破。這個工程,但世界Lebenslagen應保持在同一行,如果有足夠的空間。
在我的照片中,下一行是word。avoidbreak在pdflib中不正確工作8

avoid linebreaking with pdflib

我在API DOC, page 86閱讀我的PDFlib代碼:

haben wir Services für alle <avoidbreak=true>„Versicherungs<avoidbreak=false>-<avoidbreak=true>Lebenslagen「<avoidbreak=false> eingerichtet: 

我還使用了標籤<avoidbreak><noavoidbreak>因爲我已經在java examples for pdflib 9

haben wir Services für alle <avoidbreak>„Versicherungs<noavoidbreak>-<avoidbreak>Lebenslagen「<noavoidbreak> eingerichtet: 

閱讀任何人知道這個問題?

回答

1

我想這與您使用的特殊引號有關。 「(Unicode U+201C)被定義爲開始/左側字符。結果,文本流水線換行算法不會在之後直接中斷。

當您重新定義此字符的字符類時,您可以解決此問題。

tf = p.create_textflow("haben wir Services f&uuml;r alle 
     <avoidbreak=true>&#x201E;Versicherungs<avoidbreak=false>- 
     <avoidbreak=true>Lebenslagen&#x201c;<avoidbreak=false> eingerichtet:", 
    "fontname Arial encoding=unicode fontsize=20 charref 
     charclass={ close U+201C open U+201E}"); 
p.fit_textflow(tf, 50, 500, 350, 700, "showborder"); 

(你應該hello.java樣本左右,直接使用此代碼)

請另見的PDFlib 8教程,章8.2.8「控制標準的斷行算法」關於此的進一步細節。

+0

作品完美!謝謝! – Joerg