آموزش ساخت فایل Pdf در برنامه نویسی اندروید
سلام دوستان امیدوارم حالتون خوب باشه در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت فایل Pdf در برنامه نویسی اندروید می پردازیم ایجاد فایل pdf به صورت معمول بسیار سخت است و به سادگی نمی توان یک فایل pdf ایجاد کرد در این آموزش ما با استفاده از یک کتاب خانه این کار را انجام می دهیم در ادامه با ما همراه باشید.
در ابتدای کار باید یک کتاب خانه را اضافه کنید
برای اینکار وارد فایل Build.gradle از نوع Module شده و در بخش dependencies خط زیر را اضافه کنید.
1 | compile 'com.itextpdf:itextg:5.5.9' |
سپس پروژه را sync کنید. علت خطاهای گریدل را قبلا بررسی کرده در سایت واژه Gradle را جستجو کنید.
کد زیر یک void است که مقدار ورودی می گیرد یعنی هرچی به ورودی آن بدهید pdf آن را وسط چین شده تحویل خواهید گرفت و در آخر این فایل در حافظه به نام sample.pdf ذخیره می شود و سپس به شما نمایش داده می شود !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public void createandDisplayPdf(String text) { Document doc = new Document(); try { String path = Environment.getExternalStorageDirectory().getAbsolutePath(); File dir = new File(path); if(!dir.exists()) dir.mkdirs(); File file = new File(dir, "sample.pdf"); FileOutputStream fOut = new FileOutputStream(file); PdfWriter.getInstance(doc, fOut); doc.open(); Paragraph p1 = new Paragraph(text); Font paraFont= new Font(Font.COURIER); p1.setAlignment(Paragraph.ALIGN_CENTER); p1.setFont(paraFont); doc.add(p1); } catch (DocumentException de) { Log.e("PDFCreator", "DocumentException:" + de); } catch (IOException e) { Log.e("PDFCreator", "ioException:" + e); } finally { doc.close(); } viewPdf("sample.pdf"); } private void viewPdf(String file) { File pdfFile = new File(Environment.getExternalStorageDirectory() + "/" + file); Uri path = Uri.fromFile(pdfFile); Intent pdfIntent = new Intent(Intent.ACTION_VIEW); pdfIntent.setDataAndType(path, "application/pdf"); pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(pdfIntent); } catch (ActivityNotFoundException e) { Toast.makeText(TableActivity.this, "Can't read pdf file", Toast.LENGTH_SHORT).show(); } } |
همانطور که دید کامل است و بخش مهم را فراموش نکنید دسترسی زیر را به AndroidManifest.xml اضافه کنید.
1 2 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> |
این آموزش هم همانند آموزش های قبلی به فرجام رسید.
موفق و موید باشید.
سُلام خسته نباشید به این قسمت خطا میده
Font paraFont= new Font(Font.COURIER);
اینو قرمز رنگ میاره
COURIER
چیکار کنم حل بشه ؟
به دوست دیگر توضیح دادم این یک فونت است می توانید حذفش کنید.
سلام به ما
با تشکر از سایت خوبتون
من بعد از زدن دکمه ی سینک با این ارور روبرو میشم:
Error:(30, 13) Failed to resolve: com.itextpdf:itextg:5.5.9
به اون پستی که داخل سایتتون گفتید مراجعه کردم ولی مشکلم رو حل نکرد
لطفا راهنمایی کنید
سلام و درود شما باید ف*ی*ل*ت*ر*ش*ک*ن را روشن کنید از یک ف*ی*ل*ت*ر*ش*ک*ن باید استفاده کنید.
دوست عزیز از اون هم دارم استفاده میکنم و تنظیمات پرو*کسی اندروید استودیو هم روی اتوماتیک هستش
ولی باز هم همون مشکلو دارم
از کتاب خانه زیری استفاده کنید (همان کتاب خانه با ورژن بالاتر است)
سلام و خسته نباشید
-این کد دقیقا واسه چیه؟
_واسه اینه که pdf در سورس برنامه قرار بدی و تو خود برنامه اجرا بشه؟(بدون نیاز به استفاده از نرم افزار های pdf خوان؟)
_یا کاری شبیه پی دی اف خوان ها انجام میده؟ مثلا pdf های که تو گوشی همراه هست رو میشه به وسیله این انجام داد؟
ممنون از شما
سلام هر در جواب به هردوسال خیر این کد یک فایل pdf ایجاد می کند واضح گفتیم.
موفق باشید.
سلام میشه واسه ما هم توضییح بدین لطفا
یعنی چی فایل pdf ایجاد میکنه؟
من اینجور برداشت کردم که تو گوشی همراه یه متن بهش بدیم pdf تحویل بده همینه؟
بله دوست عزیز به عنوان خروجی فایل pdf میده
سلام فونت فارسی چجوری ادد کنم تو این کتابخونه الان جدول تولید کردم ولی فارسیارو نشون نمیده
خیلی عالی
تشکر از زحمات شما
خواهش می کنم موفق باشید.
با سلام و وقت بخیر
متون فارسی رو پشتیبانی نمکنه؟
چون متون انگلیسی رو نشون میده و لی فارسی رو نه
میشه راهنمایی کنید لطفا؟
سلام خواهشا کمک کنید.
نام فایلهای pdf فارسیه، برای همین نمایش داده نمیشه. آیا راه حلی سراغ دارین؟
سلام از StringBuilder باید استفاده آموزشش در سایت موجود است سرچ کنید.
یک نمونه کد
موفق باشید.
سوال بالا رو تکمیل کنم.از همین مثال شما استفاده کردم ولی فایل با نام فارسی نمیسازه
سلام من یک لیست ویو دارم چطور به pdf تبدیلش کنم؟
سلام و درود
باید دیتاهای لیست view را در یک آرایه از لیست بریزید سپس با یک حلقه for یا foreach آن را پر کنید.
موفق و پیروز باشید.
ممنون متن فارسی را هم نمایش نمیده؟کامنت های قبلی را هم خوندم نفهمیدم چیکار کنم که فارسی هم نمایش بده ؟ لطفا این سوال هم جواب بدین با تشکر
سلام قبلا کد قرار داده شده است سرچ کنید در سایت پیدا می کنید.
از stringbuilder هم append و هم insert استفاده می کنم هیچ کدوم فارسی نمایش
نمیدن؟
مثل همیشه عالی بود
لطفا سورس تبدیل ListView به PDF هم بذارید.
سلام
میشه درباره getResultantText که در نظرات گفتید بیشتر توضیح بدید
و چجوری باید بسازیمش