首页 > 解决方案 > 如何在 android studio 中保存 PDF

问题描述

我创建了一个简单的 android 应用程序来将字符串文本转换为 pdf 文件。这是代码。在这里,我也使用了 iText 库。

public class MainActivity extends AppCompatActivity {

   private static final int STORAGE_CODE=100;
    private Button crBtn;
    private EditText edit;



        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            crBtn=findViewById(R.id.crBtn);
            edit=findViewById(R.id.edit);
    
    
             crBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(Build.VERSION.SDK_INT>Build.VERSION_CODES.M){
                        if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==PackageManager.PERMISSION_GRANTED){
                            String[] permissions={Manifest.permission.WRITE_EXTERNAL_STORAGE};
                            requestPermissions(permissions,STORAGE_CODE);
                        }
                        else {
                            savePDF();
                        }
                    }
                }
            });
    
    
    
    
        }
    
        private void savePDF() {
    
            Document mdoc=new Document();
            String mfilename=new SimpleDateFormat("yyyymmdd_HHmmss", Locale.getDefault()).format(System.currentTimeMillis());
    
            String sFilepath=this.getExternalFilesDir("/")+mfilename+".pdf";
    
            try{
                PdfWriter.getInstance(mdoc,new FileOutputStream(sFilepath));
                mdoc.open();
                String mtext=edit.getText().toString();
    
                mdoc.addAuthor("Shashen");
                
                mdoc.add(new Paragraph(mtext));
                
                mdoc.close();
                Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
            }
            catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            switch (requestCode){
                case STORAGE_CODE:{
                    if(grantResults.length>0&& grantResults[0]==PackageManager.PERMISSION_GRANTED){
                        savePDF();
                    }
                    else{
                        Toast.makeText(this, "Permission Denied...", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        }
    }

我已按照 youtube 教程并按照说明制作此代码。不,任何错误都会显示在 logcat 中。但是我的 pdf 没有保存到我的手机中。谁能告诉我是什么问题?

标签: javaandroid-studiopdfitext

解决方案


推荐阅读