有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

浏览器未呈现java Devanagari(印度)字体

我已经为报社开发了JavaSwing应用程序。当我通过从Netbeans运行我的项目来订购账单时,账单会保存为给定目录上的HTML文件,并且正确呈现devanagari字体。 如。 enter image description here

但当我将swing应用程序部署为EXE安装程序文件并尝试相同的方法时,我发现Devanagari字符被问号替换

例如。 enter image description here

简言之,当我试图通过在Netbeans中运行project来结帐时,浏览器会正确地呈现所有内容。将同一项目部署为EXE应用程序后,浏览器无法正确呈现bill字体

将数据从JTable写入Html文件的代码如下所示

CallableStatement cstmt;
    PreparedStatement pstmt;
    static DBConnect db;
    Object[][] rowdata;
    static String[] columnheads;
    static DefaultTableModel dtm;
    static ResultSet rs;
    static ResultSetMetaData rsmt;
    String curName,shop,address,owner,contact,sign,data,destPath;
    static int rows,columns,number;
    float total, discount;
    static TableRowSorter<DefaultTableModel> sorter;
    Vector curRow;
    ActionListener menuListener;
    Writer out;
    BufferedWriter bw;
    File file;
    JFileChooser chooser;

void printBill()
    {
        // bPrev.setValues(tBno.getText(), tDate.getText(), tCustomer.getText(), tTotal.getText(), tTotal2.getText(), tPrevBal.getText());

       try
       {
           rs=db.stmt.executeQuery("select value from SETTINGS where property='shop'");
           rs.next();
           shop=rs.getString(1);

           rs=db.stmt.executeQuery("select value from SETTINGS where property='address'");
           rs.next();
           address=rs.getString(1);

           rs=db.stmt.executeQuery("select value from SETTINGS where property='owner'");
           rs.next();
           owner=rs.getString(1);

           rs=db.stmt.executeQuery("select value from SETTINGS where property='contact'");
           rs.next();
           contact=rs.getString(1);

           rs=db.stmt.executeQuery("select value from SETTINGS where property='sign'");
           rs.next();
           sign=rs.getString(1);

           rs=db.stmt.executeQuery("select value from SETTINGS where property='savePath'");
           rs.next();
           destPath=rs.getString(1);

           dtm = (DefaultTableModel) BillTbl.getModel();
           file=new File(destPath+"Bill-"+tBno.getText()+".html");

           out=new FileWriter(file);
           bw=new BufferedWriter(out);

           bw.write("<header><title> Bill-No "+tBno.getText()+"</title></head><body><p align=center> <b> "+shop+" </b><br> <b> पत्ता : </b> "+address+" <br> <b> मालक : </b> "+owner+" <br> <b> भ्रमणध्वनी क्र. </b> "+contact+" <br>--------------------------------------------</br> <b> बिलक्रमांक : </b> "+tBno.getText()+"  &nbsp &nbsp &nbsp &nbsp <b> दिनांक : </b> "+new SimpleDateFormat("dd-MM-YYYY").format(new java.util.Date())+" <br> <b> ग्राहकाचे नाव : </b> "+tCustomer.getText()+" &nbsp &nbsp</p>");

           bw.write("<center><table border=1><tr>");
           for (int i=0;i<dtm.getColumnCount();i++)
           {
               if(i==0 || i==2 || i==4)
               {
                   bw.write("<th> &nbsp "+dtm.getColumnName(i)+" &nbsp </th>");
               }     
           }
           bw.write("</tr>");

           for (int i=0;i<dtm.getRowCount();i++)
           {
             bw.write("<tr>");
             for (int j=0;j<dtm.getColumnCount();j++)
             {
                if(j==0)
                {
                    bw.write("<td> &nbsp "+dtm.getValueAt(i,j).toString()+" &nbsp </td>");
                }
                else if(j==2 || j==4)
                {
                    bw.write("<td align=center>"+dtm.getValueAt(i,j).toString()+"</td>");
                }
             }
             bw.write("</tr>");
          }
          bw.write("</table><br><table border=0><tr><td rowspan=3><img src='"+sign+"' height=40 width=70></td><td align=right> रक्कम रू. "+tTotal.getText()+"/- </td></tr><tr><td align=right> देयक रक्कम रू. "+tPrevBal.getText()+"/- </td></tr><tr><td align=right> <b> एकूण रक्कम रू. "+tTotal2.getText()+"/- </b> </td></tr></table></center></body>");
          bw.close();

          Desktop.getDesktop().open(file);
       }
       catch(Exception ex)
       {
           ex.printStackTrace();
       }
    }

共 (0) 个答案