PDA

View Full Version : چاپ اطلاعات یک pdf که داخل یک Stream هست



Mrs.Net
شنبه 22 تیر 1387, 09:41 صبح
یک گزارش با کریستا ریپورت تبدیل کردم به pdf و ریختم داخل یک stream .
حالا میخوام ازش پرینت بگیرم چجوری اینکار بکنم؟

a_mzadeh
شنبه 22 تیر 1387, 23:24 عصر
سلام، شما ميتونين از كامپوننت com كه نرم افزارهايي مثل adobe reader در اختيارتون قرار ميدن استفاده كنين.
موفق باشين.

ali_kashani
یک شنبه 23 تیر 1387, 19:28 عصر
با سلام

اگر ميشه يك توضيح يا يك مثال در مورد كامپوننت com بگذاريد.

a_mzadeh
یک شنبه 23 تیر 1387, 19:53 عصر
سلام، در ابتدا شما بايد كامپوننت مورد نظرتون رو به Toolbox ويژوال استديو اضافه كنين. براي اين كار:
. از منوي Tools گزينه Choose Toolbox Items رو انتخاب مي كنين.
. در پنجره اي كه نمايش داده مي شه تب COM Components را انتخاب كنين.
. اگر نرم افزار Adobe reader يا Adobe acrobat رو كامپيوترتون نصب باشه ميتونين كامپوننت Adobe PDF Reader رو انتخاب كنين.

بعد از اينكه اين كامپوننت رو تو فرمتون تعريف كردين (يا اون رو روي فرم بندازين و يا مثل يك متغير اون رو تعريف كنين) ميتونين از توابع اون استفاده كنين.
با فرض اينكه اسم متغير ما axAcroPDF1 هست:



axAcroPDF1.src = filePath;
axAcroPDF1.printAll();
البته توابع بدرد بخور ديگه اي هم داره ...
موفق باشين.

Mrs.Net
یک شنبه 23 تیر 1387, 20:24 عصر
راه خیلی خوبیه اما یه بدی داره
وقتی میره پرینت بگیره acrobat reader اجرا میکنه . راهی هست که برنامه آکروبات اجرا نشه؟

a_mzadeh
یک شنبه 23 تیر 1387, 22:13 عصر
راه خیلی خوبیه اما یه بدی داره
وقتی میره پرینت بگیره acrobat reader اجرا میکنه . راهی هست که برنامه آکروبات اجرا نشه؟

سلام،
راستش منم با همين مشكل درگيرم. البته اين نكته رو هم اضافه كنم كه اگر متغير رو بصورت سراسري تعريف كنين، نرم افزار ادوب ريدر فقط بار اول اجرا ميشه و دفعات بعدي فقط پنجره مخصوص پرينت نمايش داده ميشه.
من يك كد از قديم دارم كه ظاهرا بايد مانع اجراي نرم افزار ادوب ريدر بشه، ولي نميشه! شما امتحان كنين اگه شد، لطفا نتيجه رو اعلام كنين.


//axAcroPDF1.src = FileName;
//axAcroPDF1.printWithDialog();

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = new System.Diagnostics.ProcessStartInfo();
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo.Verb = "print";
p.StartInfo.FileName = FileName;
p.Start();