مقدمات کار با اسناد PDF در Adobe AIR (آموزش)

aliamel

کاربر فعال
بررسی و تشخیص وضعیت نصب آدوب ریدر


با سلام خدمت دوستان عزیز
آموزشی که در ادامه مطالعه خواهید کرد در خصوص کار با اسناد PDF می باشد . در این آموزش به یک سری نکات که می بایست قبل از بارگذاری سند PDF رعایت شود اشاره می گردد .
امید است خواننده گرامی با بهره گیری از این آموزش هر چند کوتاه بتواند عملیات پیشرفته و متنوعی را با این قبیل اسناد انجام دهد .


مقدمه :

بسیاری اوقات که مشغول انجام پروژه ای با نرم افزار فلش هستیم این مورد در ذهنمان تداعی می شود :
چگونه این پروژه را حرفه ای تر و بهینه تر انجام دهم ؟ اکثر فلش کاران حرفه ای جهت تضمین امنیت فایل هایی که می سازند و نیز به دلیل افزایش کارایی پروژه اقدام به بار گذاری دینامیک این اسناد (SWF) می کنند .
از طرف دیگر برخی از فلش کاران نیز ایده های جدیدی در ذهن خود دارند . برای مثال ممکن است با خود بگویند : حالا که می توان اسناد SWF را در برنامه بارگذاری کرد آیا امکان دارد که بتوان اسنادی با فرمت های دیگر هم چون PDF و HTML و ... را نیز بارگذاری نمود ؟
پاسخ سوال فوق آری است . به لطف Adobe Flash API’s امکان بار گذاری اسنادی چون PDF و HTML و MP3 و ... مقدور می باشد .


در آموزشی که تدارک دیده ام به ضروریات ونکات مهم در خصوص بارگذاری سند PDF در AIR می پردازم .
هنگامی که بخواهیم سند PDF مورد نظری را در برنامه لود کنیم حتما باید پلاگین Adobe Reader را روی سیستم خود نصب کرده باشیم. علت این امر آن است که پلاگین Adobe Reader در موتور Webkit موجود در AIR تعبیه نشده است و بنابراین شرط لازم جهت ترجمه (Render )این قبیل اسناد ٬نصب بودن Adobe Reader است .


کلاسی که جهت این مهم استفاده می شود کلاسی ست به نام HTMLLoader . با استفاده از پراپرتی pdfcapability از کلاس فوق می توان بررسی کرد که آیا اپلیکشن قادر است اسناد PDF را به درستی ترجمه کند یا خیر ؟
مقدار برگشتی پراپرتی مذکور یک مقدار عددی می باشد . در صورتی که اپلیکشن نتواند از اسناد PDF استفاده کند خطایی را تولید خواهد نمود .
هم چنین کلاس HTMLPDFCapability ثابت هایی را به منظور امکان سنجی مقدار ممکن از پراپرتی pdfCapability تعریف می کند . این ثابت ها به قرار زیر هستند :



STATUS_OK:
بدین معناست که پلاگین Adobe Reader نصب می باشد و شی ای از نوع HTMLLoader قادر است PDF را لود کند.


ERROR_INSTALLED_READER_NOT_FOUND:
بدین مفهوم است که پلاگین Adobe Reader نصب نبوده و بنابراین امکان بارگذاری اسناد PDF در برنامه مقدور نمی باشد.


ERROR_INSTALLED_READER_TOO_OLD:
این پراپرتی به معنی آن است که نسخه نصب شده Adobe Reader قدیمی بوده (پایین تر از 8) و بنابراین برنامه قادر نیست تا سند PDF را لود نماید .

ERROR_PREFERRED_READER_TOO_OLD:
چند نسخه از Adobe Reader در سیستم نصب شده است و چون نسخه پیش فرض جهت باز کردن اسناد PDF نسخه ای پایین تر از 8 است بنابراین امکان لود سند ممکن نیست .


اکنون جهت واضح تر شدن مطالب فوق به ذکر یک مثال می پردازم .
1- یک سند فلش (AIR) در ابعاد 70*300 پیکسل ایجاد کرده و یک Label به همراه یک TextInput برروی استیج قرار دهید .
2- مقدار لیبل کامپوننت Label را “PDF Status” و نام TextInput را با lbl_status مقدار دهی کنید .
3- میزان پهنای lbl_status را 300 و ارتفاع آن را 25 در نظر گرفته و رنگ پس زمینه استیج را به دلخواه تنظیم کنید .
4- سند را در پوشه مورد نظر ذخیره نمایید .
5- یک سند اکشن اسکریپت با نام pdf_status ایجاد و آنرا در مکانی که سند فلش واقع شده ذخیره کنید .
6- کد زیر را در سند .as درج کنید .
7- جهت برقراری ارتباط دو سندی که ایجاد کردید٬ به سند فلش بازگشته و در کادر Class از پانل Properties عبارت " pdf_status" را وارد کنید .
8- مجددا هر دو سند را ذخیره (Save) کرده و خروجی AIR را ایجاد کنید. (File >Adobe AIR2 Settings)
در انتها خروجی AIR ایجاد شده را نصب نمایید .



در زیر به توضیح مختصر بعضی از قسمت های مهم کد می پردازم:


کلاس HTMLLoader :


کلاسی که یک نوع DisplayObject را به منظور نگه داری اطلاعات HTML تعریف می کند . این کلاس هم چنین بر اطلاعاتی که نیاز دارید تا از صفحات وب بارگذاری کنید مدیریت می کند .به طور ساده تر می توان گفت جهت نمایش صفحات وب ٬ اسناد PDF و نظایر آن در اپلیکشن از این کلاس استفاده می گردد .
در کانسترکتور (سازنده) برنامه بایستی جهت تفکیک حالات 4 گانه وضعیت نصب AdobeReader ٬ از دستور شرطی Switch استفاده کنیم :
PHP:
switch (HTMLLoader.pdfCapability)
که مقدار برگشتی آن از نوع Int می باشد .


اکنون بررسی می کنیم که مقدار عددی برگشتی چه مفهومی دارد . مفهوم این عدد را توسط پراپرتی های موجود در HTMLPDFCapability در قالب Case های جداگانه بررسی می کنیم (توجه داشته باشید پراپرتی های HTMLPDFCapability مقدار Int بر می گردانند) :

PHP:
case HTMLPDFCapability.STATUS_OK:




و در نهایت با توجه به هر حالت مقدار lbl_status را متناسب با آن تنظیم می کنیم .


تذکر : برنامه را در محیط فلش اجرا نکنید . زیرا پیغام نادرستی را در خروجی نشان خواهد داد . بهتر است خروجی AIR را نصب و اجرا نمایید.
مطالب فوق همان طور که پیش تر نیز اشاره شد مقدمه ای بود جهت انجام عملیات مختلف برروی اسناد PDF (از جمله نمایش سند در برنامه و ... که نمونه های متنوعی را در وب می توان ایافت) .سایر این عملیات را بر عهده خواننده می گذارم . امیدوارم این آموزش مفید واقع شده باشد.
موفق و پیروز باشید !




 

پیوست ها

  • Detect PDF.rar
    354.4 کیلوبایت · بازدیدها: 115

benyamin_pc

Well-Known Member
به شخصه کار با pdf تحت air به فلش واگذار کنم بهتر میدونم تا به خود air و دلیلشم api های قوی که در این راستا برای خود فلش پلیر توسط بایت آرایه هست می دونم
 

مجتبی !

New Member
ممنون از آموزش خوبتون
ولی من یه مشکل دارم که میخوام فایل pdf رو با خود فلش پلیر 10 باز کنم . تو فلش cs5
آیا راه حلی برای این کار وجود داره
ممن.ن میشم راهنمایی کنید
:-?
 

aliamel

کاربر فعال
مجتبی جان بدون این که سوالتون رو می پرسیدید میتونستید خودتون اینو متوجه شید :
فایلی که ضمیمه کردم را دانلود کنید و از قسمت publish settings وارد تب flash بشید و از قسمت Script گزینه action script 3 و در قسمت player گزینه flash player10 رو انتخاب کنید و خروجی بگیرید و ببینید چه اتفاقی می افته !
 

benyamin_pc

Well-Known Member
ممنون از آموزش خوبتون
ولی من یه مشکل دارم که میخوام فایل pdf رو با خود فلش پلیر 10 باز کنم . تو فلش cs5
آیا راه حلی برای این کار وجود داره
ممن.ن میشم راهنمایی کنید
:-?

آره عزیز میشه . اگه ی دونه پست قبل خودتونو که بنده نوشته بودم می خوندین اونجا گفته بودم که حتی انقدر اینکارو با خود فلش میشه قوی انجام داد که بنده ترجیح میدم حتی تو ایر هم از دستورات ایر استفاده نکنم ! و دلیلشم وجود api های بسیار قوی در این زمینه هست که تو ایر هم میشه ازش استفاده کرد اما دستورات با فلش پلیر سازگاری کامل دارند و با دستوری که فلش پلیر نخونه ایجاد نشدن
 

مجتبی !

New Member
با سلام مجدد به تمام دوستان
من فایل رو دانلود کردم ولی ازش هیچی نفهمیدم
میشه بگید چطوری میشه بهش بفهمونیم کدوم فایل pdf از کجا لود کنه و نمایش بده .

بازم بخاطر توجتون ممنون
 

aliamel

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

جدیدترین ارسال ها

بالا