java打印文件时,如何解决打出的乱码?

marswgj 2004-12-23 08:53:22
我在网上找到一个例子,在打印所选的文件时,如果文件中有中文字,打印出来是乱码,这个情况如何解决?
代码如下:
JFileChooser fileChooser = new JFileChooser(SystemProperties.USER_DIR);
int state = fileChooser.showOpenDialog(this);
if (state == fileChooser.APPROVE_OPTION)
{
File file = fileChooser.getSelectedFile();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
PrintService service = ServiceUI.printDialog(null, 200, 200, printService
, defaultService, flavor, pras);
if (service != null)
{
try
{
DocPrintJob job = service.createPrintJob();
FileInputStream fis = new FileInputStream(file);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
...全文
602 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
walksea 2005-02-22
  • 打赏
  • 举报
回复
应该是字符编码问题,试着在打印前,转化一下编码。
如果你是windows系统应该是用GB2312输出的。

看一下你本身文件的编码,再去转。
lecy 2005-02-22
  • 打赏
  • 举报
回复
打印乱码一般来说是字符集问题,你的代码不全,看不出来使用的是iso8859-1,还是utf-8,不过估计肯定不是gbk,或gb2312.
wenming168 2005-02-22
  • 打赏
  • 举报
回复
学习

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧