java - 如何在 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 没有保存到我的手机中。谁能告诉我是什么问题?
解决方案
推荐阅读
- javascript - WebStorm 中 jQuery/Ajax 的项目模板?
- peoplesoft - 如何在变量中存储多个 SQLExec 值
- javascript - 在对象中搜索单词并返回结果
- android - 以编程方式从 Android 热点中删除客户端
- python - 逗号从 Windows 中的 Python 3 sys.argv 中消失
- asp.net-core-mvc - asp.net core 2.1 tempdata 为空,带有redirecttoaction
- php - 如何在两个嵌套的 symfony 应用程序中设置正确的配置?
- reactjs - React - 如何过滤按钮
- sql - 如果该特定项的另一个条目/值也存在,如何获取另一个“标记”值
- scala - 带有双冒号的 Finch 中的 Scala Post 方法