2016-08-14 5 views
0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pdftest); 
    Button Btgerar = (Button) findViewById(R.id.gerarpdf); 
    Btgerar.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      CriarPDF(); 
     } 
    }); 
} 
public void CriarPDF() { 
    String FILE = Environment.getExternalStorageDirectory().toString() + "/PDF/" + "Ficha.pdf"; 
    EditText txt = (EditText) findViewById(R.id.editText); 
    // Create New Blank Document 
    Document document = new Document(PageSize.A4); 

    // Create Directory in External Storage 
    String root = Environment.getExternalStorageDirectory().toString(); 
    File myDir = new File(root + "/PDF"); 
    myDir.mkdirs(); 

    // Create Pdf Writer for Writting into New Created Document 
    try { 
     PdfWriter.getInstance(document, new FileOutputStream(FILE)); 

    // Open Document for Writting into document 
     document.open(); 
     document.add(new Paragraph(txt.getText().toString())); 


    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (DocumentException e) { 
     e.printStackTrace(); 
    } 

    // Close Document after writting all content 
    document.close(); 
    Toast.makeText(this, "PDF File is Created. Location : " + FILE, 
      Toast.LENGTH_LONG).show(); 

    // Create new Page in PDF 
    document.newPage(); 


} 
} 

私は、AndroidマニフェストがメモリにPDFファイルを作成する方法

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE

とビルドGradleのバージョンで宣言したことは次のとおりです。

compileSdkVersion 24 
buildToolsVersion '24.0.0' 
minSdkVersion 8 
targetSdkVersion 24 

アプリケーションが正常に実行することができますが、することができます」 pdfファイルを作成しても見つかりません。

答えて

0

質問の件名を見ると、答えは簡単です。 FileOutputStreamを使用してファイルシステム上にPDFを作成しています。あなたは質問します: "メモリにPDFファイルを作成する方法は?"それは簡単です。 iTextはOutputStreamを受け入れますので、答えはFileOutputStreamの代わりにByteArrayOutputStreamを使用してください。

Using iText, generate on memory a PDF that is generated on disk instead

Document document = new Document(); 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
PdfWriter writer = PdfWriter.getInstance(documento, out); 
(...) 
byte[] pdf = out.getBytes(); 

を参照してくださいしかし、なぜあなたは、Androidデバイス上のメモリにPDFを作成したいのでしょうか?これらのバイトで何をするつもりですか? byte[]しかない場合は、PDFを表示できません。これは、この質問に対する私の答えで説明されています(応答がないため)Display PDF document stored in a ByteArrayOutputStream (not in a file)

はまた、次の質問が未回答のままであることに気づくでしょう:How to visualize a ByteArrayOutputStream as PDF on Android?

あなたの質問はあなたが書いた最後の方の件名に変更します。 "アプリケーションは正常に実行できますが、pdfファイルを作成することはできず、見つけられません。"これは、Android上のファイルシステムにPDFを書き込む方法がわからないかのように聞こえます。それはあなたが主題で言及するものとは異なる質問です。

:その質問は前に何度も回答されています
関連する問題