dst_doc.appendDocument(src_doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dst_doc.save(dst_path);
使用这种方式保存文档,发现目标文档的字体和源文档不一致,而且中文在目标文档中显示乱码
#源文档,字体为宋体,中文显示正常
#目标文档,字体为Courier New,中文显示乱码
dst_doc.appendDocument(src_doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dst_doc.save(dst_path);
使用这种方式保存文档,发现目标文档的字体和源文档不一致,而且中文在目标文档中显示乱码
#源文档,字体为宋体,中文显示正常
#目标文档,字体为Courier New,中文显示乱码
@aspose1111 看起来像是编码问题。 正如我所看到的,“35.doc”是一个带有“.doc”扩展名的简单 TXT 文档。
您能否提供用于生成有问题的“35_new.doc”文档的代码和源文档?
源码如下:
public class word_handle {
public static void main(String[] args) throws Exception {
System.out.println("处理消息逻辑:");
String src_path = "D:\\35.doc";
String dst_path = "D:\\35_new.doc";
// 文件重构
System.setOut(new PrintStream(System.out, true, "UTF-8"));
com.aspose.words.License word_License = new com.aspose.words.License();
word_License.setLicense("D:\\Aspose.license.lic");
long startTime = System.nanoTime();
Document src_doc = new Document(src_path);
long endTime = System.nanoTime();
long duration = endTime - startTime;
System.out.println("打开源文件的时间t1:" + duration / 1000000 + " 毫秒");
startTime = System.nanoTime();
Document dst_doc = new Document();//新建文本
endTime = System.nanoTime();
duration = endTime - startTime;
System.out.println("创建文本时间t2:" + duration / 1000000 + " 毫秒");
startTime = System.nanoTime();
dst_doc.appendDocument(src_doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dst_doc.getSections().removeAt(0);
dst_doc.save(dst_path);
endTime = System.nanoTime();
duration = endTime - startTime;
System.out.println("保存文件时间t3:" + duration / 1000000 + " 毫秒");
System.out.println("OK");
}
}
源文档在上面发的压缩包中(文件.zip)
是什么原因导致的?能解决吗?
源文档在(文件.zip)压缩包中
文件.zip (630.9 KB)
代码如下
import com.aspose.words.*;
public class word_handle {
public static void main(String[] args) throws Exception {
System.out.println("处理消息逻辑:");
String src_path = "D:\\无害共享传输\\C#环境\\35.doc";
String dst_path = "D:\\无害共享传输\\C#环境\\35_new.doc";
// 文件重构
System.setOut(new PrintStream(System.out, true, "UTF-8"));
com.aspose.words.License word_License = new com.aspose.words.License();
word_License.setLicense("D:\\无害共享传输\\JAVA\\Aspose.license.lic");
long startTime = System.nanoTime();
Document src_doc = new Document(src_path);
long endTime = System.nanoTime();
long duration = endTime - startTime;
System.out.println("打开源文件的时间t1:" + duration / 1000000 + " 毫秒");
startTime = System.nanoTime();
Document dst_doc = new Document();//新建文本
endTime = System.nanoTime();
duration = endTime - startTime;
System.out.println("创建文本时间t2:" + duration / 1000000 + " 毫秒");
startTime = System.nanoTime();
dst_doc.appendDocument(src_doc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dst_doc.getSections().removeAt(0);
dst_doc.save(dst_path);
endTime = System.nanoTime();
duration = endTime - startTime;
System.out.println("保存文件时间t3:" + duration / 1000000 + " 毫秒");
System.out.println("OK");
}
}
@aspose1111 不幸的是,我无法重现该问题。 我使用以下简单代码进行测试:
Document src = new Document("C:\\Temp\\35.doc");
Document dst = new Document();
dst.appendDocument(src, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dst.save("C:\\Temp\\out.doc");
这是生成的输出:
out.zip (1.1 MB)
请问你用的aspose库版本是多少?
我用的是20.3版本的jar包,会不会是版本太低了?
好的,非常感谢!!!!!!