解决itextpdf下,html转pdf后,首字符为标点符号问题

问题描述

  • 通过富文本框取到的HTML转成PDF后,PDF出现行首存在标点符号的情况。(存在Html标签属性失效的问题。)
  • 正常情况下,PDF文本内容,行首不能有标点符号
  • 网上找了很多答案,但是局限于各种版本,发现使用起来都是各种报错,以下为测试通过的可用版本。

itextpdf版本

  • 5.5.11

解决办法

写一个类继承SplitCharacter

package com.itextpdf.text;

import com.itextpdf.text.pdf.PdfChunk;
/**
 * <T>User:TODO</T>
 * <T>Description:中文字符编码</T>
 * <T>Create time:2020/7/23 3:41</T>
 * <T>Company: dolph</T>
 * <T>Update record(who,time,message):</T>
 */
public class ChineseSplitCharater implements SplitCharacter {
    /**
     * An instance of the default SplitCharacter.
     */
    public static final SplitCharacter DEFAULT = new ChineseSplitCharater();

    // line of text cannot start or end with this character
    static final char u2060 = '\u2060'; // - ZERO WIDTH NO BREAK SPACE

    // a line of text cannot start with any following characters in
    // NOT_BEGIN_CHARACTERS[]
    static final char u30fb = '\u30fb'; // ・ - KATAKANA MIDDLE DOT
    static final char u2022 = '\u2022'; // • - BLACK SMALL CIRCLE (BULLET)
    static final char uff65 = '\uff65'; // ・ - HALFWIDTH KATAKANA MIDDLE DOT
    static final char u300d = '\u300d'; // 」 - RIGHT CORNER BRACKET
    static final char uff09 = '\uff09'; // ) - FULLWIDTH RIGHT PARENTHESIS
    static final char u0021 = '\u0021'; // ! - EXCLAMATION MARK
    static final char u0025 = '\u0025'; // % - PERCENT SIGN
    static final char u0029 = '\u0029'; // ) - RIGHT PARENTHESIS
    static final char u002c = '\u002c'; // , - COMMA
    static final char u002e = '\u002e'; // . - FULL STOP
    static final char u003f = '\u003f'; // ? - QUESTION MARK
    static final char u005d = '\u005d'; // ] - RIGHT SQUARE BRACKET
    static final char u007d = '\u007d'; // } - RIGHT CURLY 
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值