2015-05-07 236 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