نمایش نتایج 1 تا 4 از 4

نام تاپیک: لود نشدن فایل pdf داخل وب ویو

  1. #1
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    لود نشدن فایل pdf داخل وب ویو

    سلام دوستان

    من فایل pdf را از داخل پوشه asset به مسیر زیر کپی کردم :

    getFilesDir() +"/sample.pdf"


    یعنی در اینجا هیچ مشکلی نیست و دقیق مطمئن هستم فایل در اون مسیر وجود دارد.

    اما متاسفانه داخل وب ویو که میخوام لود کنم فقط صفحه سفید هست و هیچ چیزی نمایش نمیده...به نظرتون مشکل کجاست؟!!



    دستور اجرای فایل :
    webview_pdf.loadUrl("file:///" +getFilesDir() +"/sample.pdf"); 
    webview_pdf.getSettings().setBuiltInZoomControls(t rue) ;//show zoom buttons
    webview_pdf.getSettings().setSupportZoom(true);


    دستورات لایوت :

     <WebView        android:id="@+id/webview_pdf"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>



  2. #2
    کاربر دائمی آواتار Restlesa
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    سن
    32
    پست
    659

    نقل قول: لود نشدن فایل pdf داخل وب ویو

    سلام
    در ویجت WebView به صورت پیش فرض قابلیت بارگذاری و نمایش اسناد PDF رو از روی حافظه داخلی دستگاه های اندوریدی وجود نداره.
    برای نمایش یک فایل PDF در برنامه های اندرویدی می بایست یکی از سه کار زیر رو انجام بدی:
    1. از یک کتابخانه شخص ثالث استفاده کنی
    2. با استفاده از کلاس Intent از یه برنامه نمایش اسناد PDF داخلی خود دستگاه های اندرویدی استفاده کنی
    3. از GoogleDoc در یک مرورگر وب استفاده کنی


    مثالی از روش سوم
    String myPdfUrl = "http://example.com/awesome.pdf";
    String url = "http://docs.google.com/gview?embedded=true&url=" + myPdfUrl;
    Log.i(TAG, "Opening PDF: " + url);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl(url);

    این روش به هیچ وجه توصیه نمیشه چرا که این روش یک ایده بسیار مزخرف از لحاظ تجربه کاربریه و سرعت لود اسناد بسیار آهسته و بدون پاسخه.

    مثالی از روش دوم
    File appFolder = new File(Environment.getExternalStorageDirectory(), context.getBaseContext().getPackageName());
    File file = new File(appFolder, fileName);


    Uri path = Uri.fromFile(file);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(path, "application/pdf");
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


    context.startActivity(intent);

    بهترین و مطمئن ترین روش، روش دوم هستش. چرا که امروزه در تمامی گوشی های اندرویدی بصورت پیش فرض برنامه مخصوص نمایش اسناد PDF نصب هست.

    اما اگه به هر دلیلی مایلی که اسناد PDF رو در برنامه خودت باز و به نمایش دربیاری می تونی از روش اول استفاده کنی.
    برای این کار هم رو راه وجود داره:
    • راه اول اینه که اگه تو برنامه ات از API 21 به بالا استفاده می کنی می تونی از کلاس PDFRendered استفاده کنی. «فقط دقت داشته باش در صورتی که از این کلاس استفاده کنی برنامه ات در ورژن اندروید 5 به پایین کار نمی کنه»
    • راه دوم اینه که می تونی از یک ویجت مخصوص نمایش اسناد PDF استفاده کنی که آدرس سایتش رو توی لینک زیر گذاشتم. می تونی نحوه دانلود و استفاده از اون رو مطالعه کنی.

    android-pdfview

  3. #3
    کاربر دائمی آواتار samiasoft
    تاریخ عضویت
    مهر 1391
    محل زندگی
    اردبیل
    پست
    1,242

    نقل قول: لود نشدن فایل pdf داخل وب ویو

    سپاسگزارم از نظر شما در این باره

    علاوه برا مواردی که مطرح کردید بنده میخواستم کتابخانه ای استفاده کنم که قابلیت جستجو داخل pdf هم داشته باشه...برای همین یکی از دوستان pdf js رو بهم پیشنهاد دادند.

    https://github.com/mozilla/pdfjs-dist

    با استفاده از این من تونستم داخل وب ویو لودش کنم و فایل pdf رو بدین صورت نمایش بدم :

    String filename = getFilesDir() +"/sample.pdf";  
    WebSettings settings = webview_pdfjs.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setAllowFileAccessFromFileURLs(true);
    settings.setDomStorageEnabled(true);
    settings.setAllowUniversalAccessFromFileURLs(true) ;
    settings.setBuiltInZoomControls(true);
    webview_pdfjs.setWebChromeClient(new WebChromeClient());
    webview_pdfjs.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + filename);


    بدین صورت که فایل های pdf js رو داخل پوشه asset ریخته بودم و فایل pdf را در مسیر مربوطه کپی کرده بودم.
    داخل اون بسته موجود در گیت هاب کل فایل ها نیاز نیست اگر خواستید تست کنید از این لینک زیر فایل ها رو دانلود کنید و داخل پوشه asset کپی کنید.
    http://s8.picofile.com/file/8332306226/pdfjs.rar.html

    اما متاسفانه مشکلی که مطرح هست اینه که این روش هم فقط در اندروید های 19 به بالا به درستی pdf رو اجرا میکنه و اندروید های پایینتر کار نمیکند.

    من هرچقدر تلاش کردم مشکل رو حل کنم متاسفانه نتونستم کاری کنم...

    همچنین با جستجویی که کردم انگار چند سال پیش هم دوستانی با این مشکل روبرو بودند :
    https://stackoverflow.com/questions/...level-below-19

    که در پاسخ بهشون گفته شده ویرایش هایی داخل فایل pdf js انجام بدهند.

    حالا جای بد ماجرا اینجاست که این دوستان از "pauldmps Android-pdf.js" استفاده کردند که قابلیت های خیلی کمتری هم انگارداره...اما من از ""mozilla pdfjs"" استفاده کردم ...که راه حلی برای حل مشکل در اندروید 17 و 18 پیدانکردم.

    و نیازمند یاری شما دوستان برای حل این مشکل هستم

    https://github.com/mozilla/pdf.js/releases
    آخرین ویرایش به وسیله samiasoft : یک شنبه 07 مرداد 1397 در 13:01 عصر

  4. #4
    کاربر دائمی آواتار Restlesa
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    سن
    32
    پست
    659

    نقل قول: لود نشدن فایل pdf داخل وب ویو

    از مثال روش دومی که ارسال کردم استفاده کن بدون زحمت و دردسره و توی اکثر فروم ها هم همین روش پیشنهاد شده.

تاپیک های مشابه

  1. برای نمایش فایل PDF داخل فرمم چکار کنم؟
    نوشته شده توسط مهدی رحیم زاده در بخش C#‎‎
    پاسخ: 29
    آخرین پست: شنبه 17 بهمن 1394, 08:59 صبح
  2. سوال: لود نشدن فایل های آجاکس
    نوشته شده توسط mehdi-ghafari در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 12 آذر 1389, 17:37 عصر
  3. پاسخ: 4
    آخرین پست: شنبه 06 آذر 1389, 16:03 عصر
  4. نمایش فایل pdf داخل فرم در یک زمان خاص
    نوشته شده توسط iman_pc_love در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: جمعه 28 اسفند 1388, 13:13 عصر
  5. لود نشدن فايل هاي cox و dll
    نوشته شده توسط mahmood3d در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: یک شنبه 20 مرداد 1387, 08:19 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •