【问题标题】:iText7 html to pdf cannot break long wordsiText7 html 到 pdf 不能打断长词
【发布时间】:2020-06-11 20:14:11
【问题描述】:

我正在使用 iText7 将 html 转换为 pdf。我有打断长词的问题。 (仅在不合适的情况下拆分单词)。

<td>The labrado is jumping over the fence tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt</td>

我试图重写 IsSplitCharacter 以始终返回 true,但这会导致它在不需要的位置(如下图所示)中断单词(中断单词“jump-ing”)。

public class CustomSplitCharacters : DefaultSplitCharacters
{
    public override bool IsSplitCharacter(GlyphLine text, int glyphPos)
    {
        return true;
    }
}

如果这个问题与其他帖子相似,我深表歉意。但我似乎无法找到正确的解决方案。而且我没有足够的声誉来跟进 cmets 的这些帖子。

提前感谢您的帮助。

【问题讨论】:

    标签: word-wrap itext7 html2pdf


    【解决方案1】:

    我已经创建了一个临时解决方案

    public class CustomSplitCharacters : DefaultSplitCharacters
    {
        public override bool IsSplitCharacter(GlyphLine text, int glyphPos)
        {
            bool baseResult = base.IsSplitCharacter(text, glyphPos);
            bool myResult = IsSpecialCharacter((char)text.Get(glyphPos).GetUnicode());
    
            return baseResult || myResult;
        }
    
        private bool IsSpecialCharacter(char c)
        {
            Regex regexItem = new Regex("[a-zA-Z0-9]");
    
            return !regexItem.IsMatch(c.ToString());
        }
    }
    

    这适用于大多数情况。但它仍然不能打破一个长字。我仍然希望得到极端情况的答案。非常感谢您的回复。

    【讨论】:

    • 我也面临同样的问题。即使指定了列宽,长字也不会换行。您是如何解决这个问题的?
    • 遗憾的是我仍然有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2022-09-23
    • 2019-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多