2017-02-22 9 views
0

Ich habe einen editText und ich habe eine Schaltfläche, die die Farbe, Größe und Schrift ändert, also beim Speichern der Datei als pdf oder txt Datei wie bekomme ich die 3 Dinge mit dem Text Ich bekomme nur den Text mit normalem Schwarz Stil das ist mein Code.Wie man editText Farbe, Größe, Typeface speichern?

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); 

der Code speichern:

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()); 
         } 

laden Sie die Textdatei

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

Ändern der Größe, Schriftart und Farbe von Textview andere Sache ist und die Änderung der Größe, Schrift und Farbe des Textes in pdf. – nnn

+0

okay, das ist meine Frage, wie kann ich die Datei mit benutzerdefinierter Farbe speichern, ..., .. – Eazyz

+0

für diese können Sie alle portieres von Ihnen Text wie Farbe, Text, Text, Schriftart in eine Klasse wie TextPojo und behalten Sie es im Server- oder lokalen Datenbank- oder Anwendungskontext. –

Antwort

0

von Code, so scheint es, wie Sie iTextPDF Bibliothek werden mit dem PDF zu erzeugen. Einsatz Font-Klasse von iTextPDF eine neue Schriftart erstellen und wie unten verwenden:

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

Ich möchte nichts bearbeiten, wenn ich die Datei, die ich möchte, abholen möchteColor oder ..., ..... des Edit - Textes dann speichere es wie es auf meinem editTexxt anzeigt – Eazyz

+0

Verwenden Sie iTextPDF, um das zu generieren PDF? – nnn

+0

ja es ist ItextPdf Version 5 – Eazyz

0

Wir Properties hinzufügen können, dass enthält Einträge in Schlüssel-Wert-Format in Datei.

Und wir können unsere eigenen Properties in File auch abrufen.

wie unten Code:

schreiben auf Dateieigenschaften:

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(); 
     } 
    } 

Eigenschaften Abrufen von Datei:

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

, wenn ich die Anwendung schließen und öffnen Sie dann meine Datei die Schriftart zurück zu normalen schwarz natürlich habe ich meine benutzerdefinierte Int für Farbe hinzugefügt, Schriftart und -größe – Eazyz

+0

wenn ich properties.store hinzugefügt habe (myOutWriter, null); Ich kann den Text nicht bekommen – Eazyz

+0

Tatsächlich Eigenschaften sind zusätzliche Informationen Ihrer Datei .So ist es nicht auf Ihren Text angewendet nur seine Informationen erhalten Sie diese Informationen und wieder auf Ihren Text manuell –

Verwandte Themen