java - 无法使用自定义字体读取阿拉伯 PDF 文件
问题描述
我有一个包含自定义字体的阿拉伯 PDF 文件,所以当我尝试阅读该文件时,我遇到了一些不可读的单词和被另一个字符或符号替换的字符。
public class TikaAnalysis {
public static String extractContentUsingFacade(InputStream stream) throws IOException, TikaException {
Tika tika = new Tika();
String content = tika.parseToString(stream);
try {
WriteOnWordDoc(str);
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
public static void WriteOnWordDoc(String fileContent) throws Exception {
XWPFDocument document = new XWPFDocument();
XWPFParagraph tmpParagraph = document.createParagraph();
XWPFRun tmpRun = tmpParagraph.createRun();
tmpRun.setText(fileContent);
tmpRun.setFontSize(10);
FileOutputStream fos = new FileOutputStream(new File("extractedContent.docx"));
document.write(fos);
fos.close();
}
public static void main(String[] args) {
FileInputStream inputStream = null;
String path ="File.pdf";
try {
File file=new File(path);
inputStream = new FileInputStream(file);
InputStream input = new BufferedInputStream(inputStream);
TikaAnalysis.extractContentUsingFacade(inputStream);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
System.out.println("close the file ");
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
解决方案
推荐阅读
- mysql - 触发时出现 sql 错误语法
- google-chrome - Chrome 84+:一个网站想要打开这个应用程序:处理程序
- hyperledger-fabric - 配置超级账本结构时出现问题
- ios - 应用程序终止时iOS Swift处理通知单击
- python - 如何在用户的帖子上设置关注/取消关注按钮
- typescript - 在 Vuetify 和 Vue.js 中选择自动完成数字和更改数据表数据
- html - 确保 Flex 容器内部 Div 在窗口调整大小时保持其尺寸 - CSS
- spring-boot - 为什么我可以从端点框架中排除 servlet-api,但不能从端点管理控制应用程序引擎全部中排除?
- java - 努力将文本拆分为数组的逻辑
- c++ - 用参数推断 lambda 的返回类型