2012-05-15 4 views
1

Я попытался преобразовать текст в PDF в Android, используя iText (here), но он дает исключение «Файл не найден». Вот код:Преобразование текста в PDF в Android, используя iText

try 
     { 

      PdfWriter.getInstance(document, new FileOutputStream("hello.pdf")); 
      document.open(); 
      document.add(new Paragraph("Hello World")); 
      document.close(); 
      Log.d("OK", "done"); 
     } 
     catch (FileNotFoundException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     catch (DocumentException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

Не могли бы вы мне помочь? Благодаря

+0

где есть ваш файл (местоположение файла)? находится в папке проекта или на системном диске? –

+0

На самом деле я использовал именно этот код. Итак, я думаю, что ОС должна создать новый файл в папке программы. –

+0

Я рекомендую вам использовать https://code.google.com/p/droidtext/. Это лучше для Android. – Rusfearuth

ответ

6

Это отлично работает в моем случае,

try 
    { 
     Document document = new Document(); 
     PdfWriter.getInstance(document, new FileOutputStream(Environment.getExternalStorageDirectory() + "/hello.pdf")); 
     document.open(); 
     document.add(new Paragraph("Hello World")); 
     document.close(); 
     Log.d("OK", "done"); 
    } 
    catch (FileNotFoundException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    catch (DocumentException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

И в файле манифеста,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

Местоположение hello.pdf: «/mnt/sdcard/hello.pdf». – user370305

+0

Спасибо, но как насчет случая, когда нет SD-карты? –

+0

Перед тем, как создать файл, просто установите флажок Environment.getExternalStorageState(), он вернет путь к внутренней точке монтирования SD, например, «/ mnt/sdcard» – user370305

1

Этот код работа для меня ... Попробуйте

попробовать {

 String path = Environment.getExternalStorageDirectory()+"/hello/"; 
     File file = new File(path+"hello.pdf"); 
     if(!file.exists()){ 
      file.getParentFile().mkdirs(); 
      try { 
       file.createNewFile(); 

      } 
      catch (IOException e) 
      { 
       // TODO Auto-generated catch block e.printStackTrace(); } 
      } 
     } 

     Document document = new Document(); 
     PdfWriter.getInstance(document, new FileOutputStream(Environment.getExternalStorageDirectory() 
       +File.separator 
       +"hello" //folder name 
       +File.separator 
       +"hello.pdf")); 
     document.open(); 
     document.add(new Paragraph("Hello World "+txt.getText())); 
     document.add(new Paragraph("Hello World" +txt.getText())); 
     document.add(new Paragraph("Hello World" +txt.getText())); 
     document.add(new Paragraph("Hello World "+txt.getText())); 
     document.close(); 
     Log.d("OK", "done"); 
Смежные вопросы