我有一个文字," Versicherungs-Lebenslagen "应该只在连字符处打破。这有效,但如果有足够的空间,世界 Lebenslagen 应该保持在同一条线上。
在我的图片中,有一个词在下一行。
我在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:
任何人都知道这个问题吗?
答案 0 :(得分:1)
我想,这与您使用的特殊引号有关。 “(Unicode U+201C)被定义为开场/左侧角色。因此,文本流换行算法不会在之后直接中断。
当您重新定义此字符的字符类时,可以解决此问题。
tf = p.create_textflow("haben wir Services für alle
<avoidbreak=true>„Versicherungs<avoidbreak=false>-
<avoidbreak=true>Lebenslagen“<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和#34;控制标准的换行算法&#34;有关此问题的进一步详情。