Android保存docx文件

时间:2014-03-18 22:37:41

标签: android file-io fonts

我想从我的应用程序中保存可以从各种设备(手机,平板电脑,计算机等)打开的文本,在进行研究后,我认为docx将是最佳选择。我需要让文本是等宽的,这样一个简单的.txt文件就行不通了。我注意到,当我保存此文件并尝试使用QuickOffice或POLARIS或我手机或平板电脑上的任何其他办公类型应用程序打开它时,我收到一条消息"不支持的文件"。我可以使用我的电脑在办公室打开它,但我收到一条消息说我需要选择编码。我的程序中有没有办法设置fontFamily或类似的东西来解决这个问题?

我假设它使用Android的默认字体进行保存,并且该字体在这些其他应用程序中不存在,因此它无法识别它。但我可能是错的。任何帮助,将不胜感激!这是我保存的代码:(我应该注意string1(2)(3)来自TextView

private void saveResults() {

    SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss", Locale.getDefault());
    String timeStamp = format.format(new Date());
    String filename = timeStamp + "_Results.docx";
    CharSequence fileOutput = "Results:\n" + string1 + "\n" + string2 + "\n\n" +
                        string3;

    if(isExternalStorageWritable()){

        try{
            File file = new File(Environment.getExternalStorageDirectory(), filename);
            file.createNewFile();
            FileOutputStream fileOut = new FileOutputStream(file);
            OutputStreamWriter myOutWriter = 
                                    new OutputStreamWriter(fileOut);
            myOutWriter.append(fileOutput);
            myOutWriter.close();
            fileOut.close();
            Toast.makeText(getBaseContext(),
                    "Saved " + filename + " to " + Environment.getExternalStorageDirectory(),
                    Toast.LENGTH_SHORT).show();
        } 
        catch (Exception e) {
            Toast.makeText(getBaseContext(), e.getMessage(),
                    Toast.LENGTH_SHORT).show();
        }
    }

    else{
        Toast.makeText(getBaseContext(), "Cannot write to external storage", Toast.LENGTH_SHORT).show();
    }

}

0 个答案:

没有答案