We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Txt文件转换成pdf出现乱码

你们好,

我在使用Aspose pdf for java 做txt文件转换成pdf文件时,pdf显示文字乱码.该文件是一个含有简体中文的txt文档,请查阅附件.同时附上相关代码.

希望能得到帮助, 谢谢!
你好Rafeek,

感谢您联系支持。

看来自己输入的TXT文件有内容乱码,似乎不包含中文。 请查看显示内容预览的附件图像文件。 你可以再次检查并重新附加输入文件,以便我们进一步了解这个问题。

很抱歉给您带来不便。
你好Rafeek,

谢谢你的耐心。

我进一步调查了这种情况,并观察到,将输入文本文件的编码更改为UTF-8时,中文文本会在源文件中正确显示,因为使用以下代码片段生成的PDF。为了您的参考,我还附上了我的结尾生成的输出。

[Java]

// Source PDF file

java.io.File file = new java.io.File("C:\\pdftest\\古文观止.txt");

java.io.FileInputStream fis = new java.io.FileInputStream(file);

// System.out.println(file.exists() + "!!");

// InputStream in = resource.openStream();

java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();

byte[] buf = new byte[1024];

try {

for (int readNum; (readNum = fis.read(buf)) != -1;) {

bos.write(buf, 0, readNum); // no doubt here is 0

// Writes len bytes from the specified byte array starting at offset off to this byte array output stream.

System.out.println("read " + readNum + " bytes,");

}

} catch (java.io.IOException ex) {

}

byte[] bytes = bos.toByteArray();

java.io.ByteArrayInputStream srcStream = new java.io.ByteArrayInputStream(bytes);

java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(srcStream));

String line;

StringBuilder builder = new StringBuilder(5024);

try {

while ((line = reader.readLine()) != null) {

builder.append(line);

}

} catch (java.io.IOException e) {

} finally {

try {

reader.close();

} catch (java.io.IOException e) {

}

}

// Instantiate a Document object by calling its empty constructor

Document doc = new Document();

// Add a new page in Pages collection of Document

Page page = doc.getPages().add();

// Create an instance of TextFragmet and pass the text from reader object to its constructor as argument

TextFragment text = new TextFragment(builder.toString());

// text.TextState.Font = FontRepository.FindFont("Arial Unicode MS");

// Add a new text paragraph in paragraphs collection and pass the TextFragment object

page.getParagraphs().add(text);

// Save resultant PDF file

doc.save("C:\\Pdftest\\TExtFile_TexttoPDF100.pdf");