-
iText 引入importRtfDocument错误0
Document document = new Document(PageSize.A4);
RtfWriter2 rtf = RtfWriter2.getInstance(document, new FileOutputStream("path"));
document.open();
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
rtf.importRtfDocument(new FileInputStream("oldPath"));
document.add(new Paragraph("Hello World"));
document.close();
请问这么引入rtf文件为什么会报如下错误:
java.lang.NullPointerException
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.importSystemFonts(Unknown Source)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.init(Unknown Source)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationFontTable.setParser(Unknown Source)
at com.lowagie.text.rtf.parser.destinations.RtfDestinationMgr.addDestination(Unknown Source)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordHandler.<init>(Unknown Source)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordMap.<init>(Unknown Source)
at com.lowagie.text.rtf.parser.ctrlwords.RtfCtrlWordMgr.<init>(Unknown Source)
at com.lowagie.text.rtf.parser.RtfParser.init(Unknown Source)
at com.lowagie.text.rtf.parser.RtfParser.importRtfDocument(Unknown Source)
at com.lowagie.text.rtf.RtfWriter2.importRtfDocument(Unknown Source)
at com.lowagie.text.rtf.RtfWriter2.importRtfDocument(Unknown Source)2014年5月30日 16:06
1个答案 按时间排序 按投票排序
-
因为它找font只支持到windows vista,你要补充个windows7或8的条件在源码里,然后编译打包替换。
private Properties getEnvironmentVariables() throws Throwable {
Properties environmentVariables = new Properties();
String operatingSystem = System.getProperty("os.name").toLowerCase();
Runtime runtime = Runtime.getRuntime();
Process process = null;
if (operatingSystem.indexOf("windows 95") > -1
|| operatingSystem.indexOf("windows 98") > -1
|| operatingSystem.indexOf("me") > -1) {
process = runtime.exec("command.com /c set");
} else if ((operatingSystem.indexOf("nt") > -1)
|| (operatingSystem.indexOf("windows 2000") > -1)
|| (operatingSystem.indexOf("windows xp") > -1)
|| (operatingSystem.indexOf("windows 2003") > -1)
|| (operatingSystem.indexOf("windows 7") > -1)
|| (operatingSystem.indexOf("windows vista") > -1)) {
process = runtime.exec("cmd.exe /c set");
} else {
process = runtime.exec("env");
}
BufferedReader environmentStream = new BufferedReader(new InputStreamReader(process.getInputStream()));
String inputLine = "";
int idx = -1;
while ((inputLine = environmentStream.readLine()) != null) {
idx = inputLine.indexOf('=');
environmentVariables.setProperty(inputLine.substring(0, idx),
inputLine.substring(idx + 1));
}
return environmentVariables;
}2014年10月31日 16:34
相关推荐
IText和iTextAsian是两个在Java和.NET平台上广泛使用的PDF处理库,它们主要用于创建、编辑和处理PDF文档。IText是主要的核心库,而iTextAsian则是一个扩展,专门针对亚洲字符集的支持,如中文、日文和韩文。 IText...
总的来说,iText 5.1.0通过引入iTextAsian组件,成功地解决了中文支持问题,为Java开发者提供了更全面的PDF处理解决方案。无论是在企业级应用还是个人项目中,它都是生成和处理中文PDF文档的理想选择。配合详细的...
2. **版面布局**:IText7引入了布局模块,允许开发者精确控制文档的版面设计,包括段落、列表、表格和图像的布局。例如,你可以设置字体、字号、行距、对齐方式等样式属性。 3. **表单处理**:对于交互式PDF表单,...
4. **对象模型**:iText7引入了全新的对象模型,如`PdfDocument`、`Document`和`PdfCanvas`,这些类提供了更强大的功能和更丰富的API。 5. **表单处理**:iText7改进了表单处理,支持AcroForms和XFA(XML Forms ...
在项目中引入这两个库后,可以大大提升处理PDF文档,尤其是包含亚洲语言的文档的能力。 总之,iText和iTextAsian是Java开发中处理PDF文档的强大工具,它们的组合使用为亚洲语言的PDF处理提供了全面的支持,让开发者...
为了克服这个问题,我们引入了iTextAsian.jar,这是一个扩展了iText功能的特殊版本,特别是针对亚洲语言,包括中文。 iText 2.1.7是该库的一个较旧版本,但仍然非常实用,尤其对于那些对性能和兼容性有特定需求的...
在项目中直接引入IText7.jar,可以大大简化PDF相关的开发工作。 **1. IText7核心功能** IText7的主要功能包括: - **创建PDF文档**:可以从头创建PDF文档,设置页面大小、边距,添加文本、图像、表格等元素。 - *...
5.0.6是一个较新的版本,可能包含了一些修复和增强,对比2.1.7版本,它提供了一些重要的功能更新和错误修复。 iText库的主要知识点包括: 1. **PDF操作**:iText提供了丰富的API,可以创建全新的PDF文档,也可以在...
iText是一款广泛使用的开源Java库,专门用于生成和编辑PDF文档。这个中文帮助文档提供了详细的指导,帮助开发者理解和使用iText来创建包含丰富内容的PDF文件。以下是对iText库和文档中涉及的关键知识点的详细解释: ...
在实际使用中,开发者首先需要将iText和iTextAsian的JAR文件加入到项目的类路径中,然后通过import语句引入相关的包。例如,导入`com.itextpdf.text.Document`和`com.itextpdf.text.Paragraph`可以创建一个新的PDF...
3. **对象模型**:iText7引入了一个全新的对象模型,允许开发者以更直观的方式创建和操作PDF元素,如文本、图像、表格和表单字段。 4. **布局组件**:iText7提供了一套强大的布局组件,如Paragraph、Chunk、...
在使用iText5.5中文包时,开发者需要确保引入了iText主库和iText-asian扩展库。在Java项目中,这通常通过Maven或Gradle依赖管理来完成。然后,可以通过实例化PdfWriter、Document对象并调用相关方法来创建PDF文档,...
首先,我们需要在Android项目中引入iText库。由于Android Studio默认使用Gradle作为构建工具,我们可以在`build.gradle`文件的dependencies块中添加iText的依赖。由于Android对大型库的支持有限,建议使用iText的...
11. **Maven依赖**:如果你使用Maven构建项目,可以通过在pom.xml文件中添加对应的依赖来引入iText库。例如,对于iText 5.x: ```xml <groupId>com.itextpdf</groupId> <artifactId>itextpdf <version>5.5.13 ...
在实际应用中,开发者通常会将这两个库一起引入项目,通过`itextpdf`来处理基本的PDF操作,并依赖`itext-asian`来确保亚洲字符的正确显示和处理。 在编程时,首先需要将这两个JAR包添加到项目的类路径中,然后就...
**IText最新jar包及textAsian无错误版本详解** IText是一款广泛使用的开源Java库,专为PDF文档处理设计,包括创建、修改、合并以及解析PDF文档。在处理中文字符时,用户可能会遇到字体识别问题,例如“Font 'STSong...
首先,你需要在项目中引入`iText-2.0.7.jar`和`iTextAsian.jar`。在Java中,你可以将它们添加到项目的类路径(classpath)中,或者在Maven或Gradle等构建工具的依赖管理中配置。 然后,你需要导入必要的包: ```...
2、用mvn命令安装jar到本地maven仓库在pom文件引入依赖即可 mvn install:install-file -Dfile=D:\itext-asiancmaps-2.7.1.jar -DgroupId=...
在5.x系列中,iText引入了更强大的表单处理能力,支持AcroForms和XFA(XML Forms Architecture)表单,使得用户可以方便地创建、填写和导出PDF表单。同时,这个版本加强了安全性,提高了对PDF标准的遵循度,确保生成...
1. **依赖引入**:在Android项目中,需要将Itext-asian jar包添加到项目的类路径中,确保编译和运行时能够正确加载。 2. **字符编码**:确保输入的文本采用正确的字符编码,如UTF-8,以避免字符乱码。 3. **内存管理...