2017-02-22 19 views
0

У меня есть editText, и у меня есть кнопка, которая меняет цвет, размер и шрифт, поэтому при сохранении файла в формате pdf или txt, как я могу получить эти 3 вещи с текстом, я получаю только текст с обычным черным стиль это мой код.Как сохранить editText цвет, размер, шрифт?

size.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      txtSpeechInput.setTextSize(25); 
      txtSpeechInput.setTextColor(Color.rgb(150,0,0)); 
      txtSpeechInput.setTypeface(null, Typeface.BOLD); 

код сохранения:

final File externalStorageDir = new File(
        Environment 
          .getExternalStorageDirectory(), "MyVoiceText"); 

      boolean success = true; 
      if (!externalStorageDir.exists()) { 
       success = externalStorageDir.mkdirs(); 
      } 

      if (success) { 
       final Dialog dialog2 = new Dialog(MainActivity.this); 
       dialog2.setContentView(R.layout.dialog_save); 
       dialog2.show(); 
       editsave = (EditText) dialog2.findViewById(R.id.edit_save); 
       pdf = (Button) dialog2.findViewById(R.id.pdf_save); 
       pdf.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         pdf.setEnabled(false); 
         txt.setEnabled(true); 

        } 
       }); 

       txt = (Button) dialog2.findViewById(R.id.txt_save); 
       txt.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         txt.setEnabled(false); 
         pdf.setEnabled(true); 

        } 
       }); 
       dia_save = (Button) dialog2.findViewById(R.id.dia_save); 
       dia_save.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         String savename = editsave.getText().toString(); 

         if(!txt.isEnabled()) { 
          File myFile = new File(externalStorageDir + "/" + savename + ".txt"); 

           File myFile = new File(externalStorageDir + "/" + savename + ".txt"); 

          try { 
           StringBuffer string = new StringBuffer(); 

           string.append(txtSpeechInput.getText().toString()); 
           Properties properties = new Properties(); 
           // set the properties value 
           properties.put("text",string.append(txtSpeechInput.getText().toString()));         properties.put("textstyle","bold"); 
           properties.put("typeface",txtstyle); 
           properties.put("etxtColor",txtcolor); 

           FileOutputStream fOut = new FileOutputStream(myFile); 
           OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
           myOutWriter.append(string); 

           myOutWriter.close(); 
           fOut.flush(); 
           fOut.close(); 
          } catch (Exception e) { 

          } 


          try { 
           myFile.createNewFile(); 
          } catch (IOException e) { 
           e.printStackTrace(); 
          } 
          dialog2.dismiss(); 
         }else if(!pdf.isEnabled()){ 
          try 
          { 

           String savename2 = editsave.getText().toString(); 

           String takeit = txtSpeechInput.getText().toString(); 

            Document document = new Document(PageSize.A4); 
           Paragraph p = new Paragraph(); 
           PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(Environment.getExternalStorageDirectory() + "/MyVoiceText/" +savename2+".pdf")); 
           document.open(); 
           writer.getDirectContent(); 
           p.add(new Phrase(takeit)); 



           document.add(p); 

           document.close(); 
           Log.d("OK", "done"); 

         } catch (Exception e) { 
          //LOGGER.error(e.getMessage()); 
         } 

перезагрузить текстовый файл

File sdcard = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/MyVoiceText/"); 
         //Get the text file 
        File file = new File(sdcard, String.valueOf(selected)); 
         InputStream input = null; 
         try { 
          input = new FileInputStream(file); 
          Properties prop = new Properties(); 
          // load a properties file 
          prop.load(input); 
         }catch (Exception e){ 
          e.printStackTrace(); 
         } 
         //Read text from file 
         StringBuilder text = new StringBuilder(); 

         try { 
          BufferedReader br = new BufferedReader(new FileReader(file)); 
          String line; 

          while ((line = br.readLine()) != null) { 
           text.append(line); 

          } 
          br.close(); 
         catch (IOException e) { 
          //You'll need to add proper error handling here 
         } 
+0

Изменения размера, шрифта и цвета TextView отличается вещь, и изменяя размер, шрифт и цвет текста в формате pdf. – nnn

+0

ОК, это мой вопрос, как я могу сохранить файл с пользовательским цветом, ..., .. – Eazyz

+0

для этого вы можете сохранить все порты текста, такие как цвет, текст, стиль текста, шрифт в один класс, например TextPojo, и сохранить его в Серверной или локальной базе данных или приложении Контекст. –

ответ

0

К вашему коду, кажется, что вы используете библиотеку iTextPDF для создания PDF. Использование шрифта класс iTextPDF, чтобы создать новый шрифт и использовать его, как показано ниже:

private static Font HelveticaBlue = new Font(Font.FontFamily.HELVETICA, 6, 
      Font.BOLD, BaseColor.BLUE); 
new Paragraph("Blue ColorText"), HelveticaBlue); 
+0

Я не хочу редактировать что-либо при сохранении файла. Я хочу, чтобы getColor или ..., ..... Редактировать текст, затем сохраните его, как показано на его editTexxt. – Eazyz

+0

. Используете iTextPDF для создания PDF? – nnn

+0

да это ItextPdf версия 5 – Eazyz

0

Мы можем добавить Properties в файл, который содержит записи в ключ и значение формата.

И мы можем написать наш собственный Properties в File также получить.

как ниже код:

Запись свойства в файле:

private void addPropertiesToFile(String mytext){ 
     try { 
      String root = Environment.getExternalStorageDirectory().toString(); 
      File myDir = new File(root + "/CHETAN"); 
      if (!myDir.exists()) 
      myDir.mkdirs(); 
      String fname = "mytext.txt"; 
      File myFile = new File (myDir, fname); 
      if (!myFile.exists()) 
      myFile.createNewFile(); 
      Properties properties = new Properties(); 
      // set the properties value 
      properties.put("text","dsf"); 
      properties.put("textstyle","bold"); 
      properties.put("typeface","arial"); 
      properties.put("etxtColor","green"); 

      FileOutputStream fOut = new FileOutputStream(myFile); 
      OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut); 
      myOutWriter.write(mytext); 
      // save properties to project root folder 
      properties.store(myOutWriter,null); 
      myOutWriter.close(); 
      fOut.flush(); 
      fOut.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Получить свойства из файла:

private void retrievePropertiesFromFile(){ 
     String root = Environment.getExternalStorageDirectory().toString(); 
     File myDir = new File(root + "/CHETAN"); 
     String fname = "mytext.txt"; 
     File myFile = new File (myDir, fname); 

     InputStream input = null; 
     try { 
     input = new FileInputStream(myFile); 
     Properties prop = new Properties(); 
     // load a properties file 
     prop.load(input); 
     // get the property value and print it out 
     Log.i(getClass().getSimpleName(),prop.getProperty("text")); 
     Log.i(getClass().getSimpleName(),prop.getProperty("textstyle")); 
     Log.i(getClass().getSimpleName(),prop.getProperty("typeface")); 
     Log.i(getClass().getSimpleName(),prop.getProperty("typeface")); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } finally { 
      if (input != null) { 
       try { 
        input.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 

    } 
+0

, когда я закрываю приложение, снова открываю его, а затем открываю свой файл шрифт обратно в нормальный черный, конечно, я добавил свой пользовательский int для цвета, шрифт и размер – Eazyz

+0

, когда я добавил properties.store (myOutWriter, null); Я не могу получить текст – Eazyz

+0

На самом деле Свойства - это дополнительная информация о вашем файле. Так что его текст не был применен в вашем тексте, его просто информация вы получите эту информацию и снова примените свой текст вручную. –

 Смежные вопросы

  • Нет связанных вопросов^_^