java - 使用 PDFBox 从字符串中删除非法字符

标签 java pdfbox

当我尝试将非法字符写入 PDF 时,我显然得到了一个异常。例如。

contentStream.showText("some illegal characters");    
...
java.lang.IllegalArgumentException: U+000A ('controlLF') is not available in this font Helvetica (generic: ArialMT) encoding: WinAnsiEncoding...

如何找出不支持的字符并将其从字符串中删除?

最佳答案

这是我的解决方案……至少它能满足我的需要。我使用了 PDFBox 的 WinAnsiEncoding 类并调用了 contains 方法来检查是否支持该字符。

import org.apache.pdfbox.pdmodel.font.encoding.WinAnsiEncoding;

public class Test extends WinAnsiEncoding {

    public static String remove(String test) {
        StringBuilder b = new StringBuilder();
        for (int i = 0; i < test.length(); i++) {
            if (WinAnsiEncoding.INSTANCE.contains(test.charAt(i))) {
                b.append(test.charAt(i));
            }
        }
        return b.toString();
    }

    public static void main(String[] args) {
        System.out.println(remove("abc\rcde"));
        // prints abccde
    }

}

关于java - 使用 PDFBox 从字符串中删除非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42228567/

相关文章:

java 相当于 python syslog.syslog()

java - 如何使 PDFTextStripper V2.0.* 向后兼容 V1.8.*

java - Swagger 文档中未显示嵌套对象

java - 在 Android 4 上设置 FrameLayout 背景时出错

apache - pdfbox Font TrueType 导致 stripper.getText() 错误

java - 使用 Apache Batik 将 SVG 转换为 PNG,然后使用 PDFBox 附加到 PDF,无需保存图像

image - PDFBox 添加图像时内存不足

java - pdf Java-PDFBox 中文本的占位符?

java - 从 Selenium Java 测试脚本到 MySQL 数据库的连接失败

java - TextWatcher.onTextChanged 被多次调用