PDA

View Full Version : باز کردن یک فایل Pdf یا doc , ارسال به چاپگر بدون باز کردن فایل



bmanfy
سه شنبه 17 دی 1387, 17:57 عصر
سلام دوستان :
من یک فایل Pdf دارم البته Doc مربوط به اونها رو هم دارم . که به خاطر اینکه به هم نریختن Pdfشون کردم .
1: میخوام اگه بشه تنها با داشتن آدرس فایل اون رو چاپ کنم ؟
2: چهطور میشه بازشون کرد ؟ چون شاید بهتر باشه کاربر قبل از چاپ فایل رو هم ببینه .

ممنون .

Felony
چهارشنبه 18 دی 1387, 17:49 عصر
برای چاپ به صورت مستقیم فکر کنم با توابع API بشه ولی برای نمایش خود فایل اگه میخوای توی برنامت بازش کنی فکر کنم کامپوننتی برای این منظور باشه که باهاش چاپ هم میشه کرد .

bmanfy
چهارشنبه 18 دی 1387, 17:54 عصر
برای چاپ به صورت مستقیم فکر کنم با توابع API بشه
اون تابع Api چی هست ؟


برای نمایش خود فایل اگه میخوای توی برنامت بازش کنی فکر کنم کامپوننتی برای این منظور باشه که باهاش چاپ هم میشه کرد .

نیاز نیست حتما تو برنامه ی خودم باز بشه . فقط میخوام باز بشه .
یعنی کاربر بر روی سیستمش نرم افزار Adobe Reader رو نصب داشته باشه و من قایل خودم رو درون اون برنامه باز کنم .
به عبارتی اگه بشه فایلم رو به صورت یک پارامتر برای Adobe reader بفرستم . البته (ادرس محل نصب Adobe Reader رو هم نمیدونم)

Felony
چهارشنبه 18 دی 1387, 23:07 عصر
اون تابع Api چی هست ؟


نام تابع رو دقیقا نمیدونم ، دوستان دیگر راهنمایی کنند .



نیاز نیست حتما تو برنامه ی خودم باز بشه . فقط میخوام باز بشه .
یعنی کاربر بر روی سیستمش نرم افزار Adobe Reader رو نصب داشته باشه و من قایل خودم رو درون اون برنامه باز کنم .
به عبارتی اگه بشه فایلم رو به صورت یک پارامتر برای Adobe reader بفرستم . البته (ادرس محل نصب Adobe Reader رو هم نمیدونم)


اگر فایلاتون همه PDF هستندکامپوننت رایگان برای نمایش فایل PDF خیلی هست از اونها استفاده کنید جون ممکنه کاربر روی سیستمش Reader نداشته باشه در ضمن این کامپوننتها خودشون قابلیت پرینت هم دارند ، و گر نه که میتونید از تابع ShellExecute استفاده کنید .

mafazel
پنج شنبه 19 دی 1387, 09:36 صبح
برای یک برنامه اساسی پاسخ بالا درسته ولی برای مورد شما، از دستورات زیر استفاده کنید:


Uses ShellAPI;
.....
// For View
ShellExecute(HInstance, 'Open',pChar('F:\test.pdf'),nil, nil, SW_SHOW);
// For Print
ShellExecute(HInstance, 'print',pChar('F:\test.pdf'),nil, nil, SW_SHOW);

bmanfy
پنج شنبه 19 دی 1387, 09:49 صبح
اگر فایلاتون همه PDF هستندکامپوننت رایگان برای نمایش فایل PDF خیلی هست

کاش اسم یک کامپوننت رو میگفتین.



جون ممکنه کاربر روی سیستمش Reader نداشته باشه


برای این یک طرح جدید به ذهنم رسید . من یک Adobe Reader پرتبل (Portble) دارم . که میتونم اون رو کنار برنامه ام قرار بدم .
فقط اگه بشه فایل رو برای اون بفرستم .....

اگه کسی لطف کنه و اسم یک کامپوننت رو بفرسته ممنون میشم .

bmanfy
پنج شنبه 19 دی 1387, 09:52 صبح
برای یک برنامه اساسی پاسخ بالا درسته ولی برای مورد شما، از دستورات زیر استفاده کنید:


Uses ShellAPI;
.....
// For View
ShellExecute(HInstance, 'Open',pChar('F:\test.pdf'),nil, nil, SW_SHOW);
// For Print
ShellExecute(HInstance, 'print',pChar('F:\test.pdf'),nil, nil, SW_SHOW);


خیلی ممنون
یک فایل doc رو هم میشه به همین روش بالا باز/چاپ کرد . (منظورم اینه که پارامترهایی که تو بالا نوشتین عمومیت داره ؟)

mafazel
پنج شنبه 19 دی 1387, 10:14 صبح
بله
حداقل Open برای نوع فایلهایی که توسط یک نرم افزار Register شده اند کار می کنه (مثل دابل کلیک روی اون فایله)

Felony
پنج شنبه 19 دی 1387, 14:06 عصر
کاش اسم یک کامپوننت رو میگفتین.

اینم لینک (http://www.google.com/search?hl=fa&q=pdf+component+for+delphi&lr=)


برای این یک طرح جدید به ذهنم رسید . من یک Adobe Reader پرتبل (Portble) دارم . که میتونم اون رو کنار برنامه ام قرار بدم .
فقط اگه بشه فایل رو برای اون بفرستم .....

بله میشه ، توی قسمت Help برنامتون به دنبال CommandLine Parameters بگردید .

bmanfy
پنج شنبه 19 دی 1387, 16:41 عصر
بله
حداقل Open برای نوع فایلهایی که توسط یک نرم افزار Register شده اند کار می کنه (مثل دابل کلیک روی اون فایله)
ایا دستور پرینتی که گفتید فایل هایی که توسط هیچ نرم افزار رجیستر نشدن رو پرینت میگیره .
منظورم اینه اگه Reader نصب نباشه چی پرینت میگیره بازم یا نه .

چه طور میشه فایل ها رو نسبت به یک نرم افزار خاص رجیستر کرد .
همنطور که گفتم یک Adobe Reader پرتبل دارم . چطور میتونم فایلهای pdf رو تنظیک کنم که ازین پس با این نرم افزار باز بشن .

bmanfy
پنج شنبه 19 دی 1387, 17:33 عصر
اگر اکتیویکس مربوط به pdf رو توی برنامه بزارم
(در دلفي مسير Component --> Import ActiveX Control رفته. و فايل pdf.ocx را از شاخه مذكور فراخواني كرده و آنرا نصب كنيد. با نصب اين فايل شما ميتونيد در برگه ActiveX كامپوننت pdf رو ببينيد.)
این مطلب رو توی یک سایت دیگه پیدا کردم .
اونوقت در زمان اجرا تو سیستم کاربر اگه adobe Reader نصب نباشه کار میکنه بازم یا نه ؟

Felony
پنج شنبه 19 دی 1387, 18:56 عصر
اونوقت در زمان اجرا تو سیستم کاربر اگه adobe Reader نصب نباشه کار میکنه بازم یا نه ؟

اصولش اینکه کار کنه ، چون دلفی هر چی برای اجرای برنامت لازم باشه به برنامه موقع کامپایل اضافه میکنه ، برای همینم کمی حجم فایل اجراییش زیاد هست .

دوست عزیز اینها سوالاتی هستند که با تست ، خودتون هم نتیجش رو میتونید بفهمید و نیاز به هیچ تخصص و حرفه ای ندارند ، با این کار ( پرسش این طور سوالات ) فقط وقت خود را طلف میکنید تا کسی بیاد و به سوالتون پاسخ بده .

موفق باشد .

bmanfy
جمعه 20 دی 1387, 16:59 عصر
دوست عزیز اینها سوالاتی هستند که با تست ، خودتون هم نتیجش رو میتونید بفهمید و نیاز به هیچ تخصص و حرفه ای ندارند ، با این کار ( پرسش این طور سوالات ) فقط وقت خود را طلف میکنید تا کسی بیاد و به سوالتون پاسخ بده .

دوست عزیز خیلی شرمنده ام اگه با سوالاتم باعث ناراحتی تون شدم . اما تا جایی که من خودم بتونم اینها رو تست میکنم .
تست سوال قبلی نیازمند تعویض ویندوز هست . و میدونید که ...... وقتگیر تر هست .
و سوالی که من پرسیدم جنبه کلی داشت چرا که در مقاله ای که درمورد استفاده از فایل Swf تو برنامه بود . یک سری کدها به برنامه اضافه کرده بودند تا تو سیستمی که فلش پلیر نصب نباشه هم کار کنه (و شاید هر دلیل دیگری ....)
البته اون هم از طریق اظافه کردن اکتیویکس بود .
پس سوال من با تصور قبلی بوده که داشتم و مطمئنا نتیجه ی تنبلی و .... نبوده .

از لطف همگی ممنون .

Felony
جمعه 20 دی 1387, 17:34 عصر
دوست عزیز خیلی شرمنده ام اگه با سوالاتم باعث ناراحتی تون شدم

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

اگر با حرفم شما رو ناراحت کردم ، معذرت میخوام .

موفق باشید .

bmanfy
شنبه 21 دی 1387, 17:03 عصر
نه دوست عزیز ناراحت چرا .

ما خانه به دوشان غم سیلاب نداریم .

ممنون از کمک همگی .