Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的PDFBox无法打开和填充PDF表单_Android_Pdf_Pdfbox - Fatal编程技术网

Android上的PDFBox无法打开和填充PDF表单

Android上的PDFBox无法打开和填充PDF表单,android,pdf,pdfbox,Android,Pdf,Pdfbox,我使用了来自的PDFBox,并将其导入build.gradel:dependencies{compile'org.apache:PDFBox-android:1.8.9.0'} 但每次我运行该活动时,都会显示Toast,但找不到填充的PDF文件。PDF位于/assets文件夹中。我自己在/app/src/main/assets中创建了这个文件夹。我使用安卓工作室 活动: public class GwmProbenActivity extends AppCompatActivity { Dat

我使用了来自的PDFBox,并将其导入build.gradel:dependencies{compile'org.apache:PDFBox-android:1.8.9.0'}

但每次我运行该活动时,都会显示Toast,但找不到填充的PDF文件。PDF位于/assets文件夹中。我自己在/app/src/main/assets中创建了这个文件夹。我使用安卓工作室

活动:

public class GwmProbenActivity extends AppCompatActivity {

DatabaseHelperAllgemeineDaten myDb;
public String stOrt;
public String stProgramm;
public String stName;
public String stDatum;
File root;

AssetManager assetManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_proben);

    Intent intent = getIntent();
    stDatum = intent.getStringExtra("datum");
    myDb = new DatabaseHelperAllgemeineDaten(this);

    PDFBoxResourceLoader.init(getApplicationContext());
    root = android.os.Environment.getExternalStorageDirectory();
    assetManager = getAssets();
}


public void fillPDF() {
    try {
        // Load the document and get the AcroForm
        PDDocument document = PDDocument.load(assetManager.open("Vorlage_GWM-   Protokoll.pdf"));
        PDDocumentCatalog docCatalog = document.getDocumentCatalog();
        PDAcroForm acroForm = docCatalog.getAcroForm();

        // Fill the text field
        PDFieldTreeNode field = acroForm.getField("ProbenahmeDatum");
        field.setValue(stDatum);

        String path = root.getAbsolutePath() + "/Download/Vorlage_GWM-Protokoll1";
        Toast.makeText(this,"Saved filled form to " +    path,Toast.LENGTH_LONG).show();
        document.save(path);
        document.close();
    }
    catch (IOException ioe)
    {
        ioe.printStackTrace();
    }
}

public void speichern (View v) {
    fillPDF();
}
}

我已经添加了.pdf并将祝酒词移到document.close后面。现在Toast没有出现,我在storage/Simulated/0/Download中找不到该文件


由于API 23+,您需要检查活动中的权限。这就是解决办法

1.您保存的文件名中缺少pdf 2保存前会调用Toast,因此它的出现并不意味着什么=>请更正此问题,编辑您的问题并在评论中说明现在发生了什么。谢谢,我已添加了.pdf并将Toast移到文档后面。关闭。现在Toast没有出现,我在storage/Simulated/0/DownloadOk中找不到该文件,明白了。由于API 23+,您需要检查活动中的权限。很高兴听到这个好消息。请删除问题或自己回答。