DocumentException:/storage/emulated/0/droidText/ciccia.pdf:open failed:ENOENT(没有这样的文件或目录)

时间:2016-07-03 10:14:03

标签: java android

在没有SD卡的情况下,在{samsung galaxy tab s2中将the path保存到“存档”的pdf file是什么?

PDF创建:

public void createPDF() {
        Document doc = new Document();
        try {
            String path = Environment.getExternalStorageDirectory()
                    .getAbsolutePath() + "/droidText";

            File dir = new File(path);
            if (!dir.exists())
                dir.mkdirs();

            Log.d("PDFCreator", "PDF Path: " + path);

            //File file = new File(dir, "sample.pdf");
            File file = new File(dir, "ciccia.pdf");

            FileOutputStream fOut = new FileOutputStream(file);

            PdfWriter.getInstance(doc, fOut);

            // open the document
            doc.open();
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            Bitmap bitmap = BitmapFactory.decodeResource(getContext()
                    .getResources(), R.drawable.androtuto);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
            Image myImg = Image.getInstance(stream.toByteArray());
            myImg.setAlignment(Image.MIDDLE);

            // add image to document
            doc.add(myImg);


            Paragraph spazio = new Paragraph(" ");
            Font spazioFont = new Font(Font.COURIER, 14.0f, Color.GREEN);
            spazio.setAlignment(Paragraph.ALIGN_CENTER);
            spazio.setFont(spazioFont);

            Paragraph pTavolo = new Paragraph("numero tavolo: "+numeroTavolo);
            Font paraFontTavolo = new Font(Font.COURIER);
            pTavolo.setAlignment(Paragraph.ALIGN_CENTER);
            pTavolo.setFont(paraFontTavolo);


            // add paragraph to document
            doc.add(pTavolo);


            Paragraph p1 = new Paragraph(string);
            System.out.println(string);
            Font paraFont = new Font(Font.COURIER);
            p1.setAlignment(Paragraph.ALIGN_CENTER);
            p1.setFont(paraFont);


            doc.add(p1);
            Paragraph pizzeOrdinate = new Paragraph("Pizze ordinate: "+string2);

            Font paraFontPizzeOrdinate = new Font(Font.COURIER, 14.0f, Color.GREEN);
            pizzeOrdinate.setAlignment(Paragraph.ALIGN_CENTER);
            pizzeOrdinate.setFont(paraFontPizzeOrdinate);

            doc.add(pizzeOrdinate);

            // add paragraph to document

            Paragraph p3 = new Paragraph("TOTALE Pizze: "+totalepizze);

            Font paraFont3 = new Font(Font.COURIER, 14.0f, Color.GREEN);
            p3.setAlignment(Paragraph.ALIGN_CENTER);
            p3.setFont(paraFont3);

            doc.add(p3);

            doc.add(spazio);
            doc.add(spazio);


            Paragraph p2 = new Paragraph("BIBITE ordinate"+string4);
            System.out.println(string4);


            Font paraFont2 = new Font(Font.COURIER, 14.0f, Color.GREEN);
            p2.setAlignment(Paragraph.ALIGN_CENTER);
            p2.setFont(paraFont2);

            doc.add(p2);

            Paragraph p4 = new Paragraph("TOTALE Bibite: "+totalebibite);

            Font paraFont4 = new Font(Font.COURIER, 14.0f, Color.GREEN);
            p4.setAlignment(Paragraph.ALIGN_CENTER);
            p4.setFont(paraFont4);

            doc.add(p4);

            doc.add(spazio);
            doc.add(spazio);



            int costoTotale= totalepizze+totalebibite;
            Paragraph p5 = new Paragraph("TOTALE : "+costoTotale);

            Font paraFont5 = new Font(Font.COURIER, 14.0f, Color.GREEN);
            p5.setAlignment(Paragraph.ALIGN_CENTER);
            p5.setFont(paraFont5);

            doc.add(p5);

           /* Paragraph p3 = new Paragraph("TOTALE: "+tot);

            Font paraFont3 = new Font(Font.COURIER, 14.0f, Color.GREEN);
            p3.setAlignment(Paragraph.ALIGN_CENTER);
            p3.setFont(paraFont3);

            doc.add(p3);*/


            stream = new ByteArrayOutputStream();
            bitmap = BitmapFactory.decodeResource(getContext()
                    .getResources(), R.drawable.android);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
            myImg = Image.getInstance(stream.toByteArray());
            myImg.setAlignment(Image.MIDDLE);

            // add image to document
            doc.add(myImg);

            // set footer
            Phrase footerText = new Phrase("Pied de page ");
            HeaderFooter pdfFooter = new HeaderFooter(footerText, false);
            doc.setFooter(pdfFooter);

        } catch (DocumentException de) {
            // Log.e("PDFCreator", "DocumentException:" + de);
            Log.e("PDFCreator", "DocumentException:" + de.getMessage());
        } catch (IOException e) {
            //  Log.e("PDFCreator", "ioException:" + e);
            Log.e("PDFCreator", "DocumentException:" + e.getMessage());


        } finally {
            doc.close();
        }

    }

PDF视图:

public void viewPDF() {
        String path = "/sdcard/droidText/ciccia.pdf";
        try {
    File targetFile = new File(path);
    Uri targetUri = Uri.fromFile(targetFile);

    Intent intent=new Intent();
    intent.setPackage("com.hp.android.print");
    //intent = new Intent(Intent.ACTION_VIEW);
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(targetUri, "application/pdf");

    startActivity(intent);
}catch(ActivityNotFoundException anfe){
    final String appPackageName="com.hp.android.print";
            try{
                startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=" +appPackageName)));
            }catch(android.content.ActivityNotFoundException anfer){
        startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("https://play.google.com/store/apps/details?id=" +appPackageName)));
    }
        }
    }

这是异常:DocumentException:/storage/emulated/0/droidText/ciccia.pdf: open failed: ENOENT (No such file or directory)

logcat的:

D/PDFCreator: PDF Path: /data/droidText
07-02 18:52:51.760 2211-2736/zio.zio.zio E/PDFCreator: DocumentException:/data/droidText/ciccia.pdf: open failed: ENOENT (No such file or directory)
07-02 18:52:51.770 2211-2909/zio.zio.zio D/PDFCreator: PDF Path: /data/droidText
07-02 18:52:51.770 2211-2909/zio.zio.zio E/PDFCreator: DocumentException:/data/droidText/ciccia.pdf: open failed: ENOENT (No such file or directory)
07-02 18:52:51.770 2211-2211/zio.zio.zio D/ViewRootImpl: #3 mView = null
07-02 18:52:51.840 2211-2211/zio.zio.zio E/ViewRootImpl: sendUserActionEvent() mView == null
07-02 18:52:52.310 2211-2211/zio.zio.zio V/ActivityThread: updateVisibility : ActivityRecord{72262aa token=android.os.BinderProxy@15b718e {info.androidhive.materialtabs/zio.zio.zio.activity.ScrollableTabsActivity}} show : false

ANDROID MANIFEST:

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

1 个答案:

答案 0 :(得分:0)

尝试通往此道路:

String path = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + "/droidText/";
相关问题