PDA

View Full Version : Advanced Printing in VB6



CodeMasterX
چهارشنبه 25 بهمن 1385, 05:06 صبح
سلام به تمام دوستان و اساتید بخش VB

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

D32.00110
چهارشنبه 25 بهمن 1385, 17:14 عصر
سلام به تمام دوستان و اساتید بخش VB

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

منم به این نیاز دارم ...

CodeMasterX
جمعه 27 بهمن 1385, 03:13 صبح
کسی نیست یه کمکی به من بکنه،به این کمک نیاز دارم شدید!!!
بازم میگم چجوری میشه اطلاعات رو برای پرینتر هایی مثل پرینتر های سوزنی و حراراتی که توی فروشگاه ها و ... استفاده میشن فرستاد؟

zerobit-ltd
جمعه 27 بهمن 1385, 10:23 صبح
تو لینک زیر یه چیزی دیدم، گفتم شاید به دردتون بخوره.
http://barnamenevis.org/forum/showthread.php?t=47003

behzad_gh
جمعه 27 بهمن 1385, 19:46 عصر
سلام من در یک پروژه بصورت کامل با این پرینترها کار کرده‌ام . برای پرینت با این پرینترها به ۲ روش می‌شه عمل کرد .
۱- ایجاد یک پرینتر از نوع Generic / Text در ویندوز و ارسال اطلاعات به صورت Raw به آن
How To Send Raw Data to a Printer Using the Win32 API from Visual Basic
(http://support.microsoft.com/kb/q154078/)
۲- استفاده از درایور OPOS که اکثر پرینترهای فروشگاهی اون رو پشتیبانی می‌کنن.
در رابطه با هر یک از روشهای بالا سوال یا توضیح خواستید بفرمایید تا توضیح بدهم .
موفق باشید.

CodeMasterX
جمعه 27 بهمن 1385, 19:51 عصر
پیداش کردم!
لینک زیر رو ببینید که مایکروسافت توضیح داده که چجوری میشه اطلاعات رو بصورت RAW به پرینتر فرستاد،این Procedure از توابع Win32 API استفاده کرده:

http://support.microsoft.com/kb/q154078

behzad_gh
جمعه 27 بهمن 1385, 20:50 عصر
خسته نباشید!!! من که لینکش رو گذاشته بودم.

How To Send Raw Data to a Printer Using the Win32 API from Visual Basic (http://support.microsoft.com/kb/q154078/)

behzad_gh
جمعه 27 بهمن 1385, 20:57 عصر
حالا باید بدونید که پرینتر شما از کدام استاندارد (Emulation) استفاده می‌کنه .
اساس کار پرینترهای فروشگاهی به این صورت است که می‌توان با ارسال کاراکترهای خاص به پرینتر اونها رو کنترل کرد .مثلا اگر پرینتر کاتر داشت فرمان برش ورق رو صادر کرد یا تعدادی خط رو به صورت خالی رد کرد یا رنگ و فونت نوشته رو عوض کرد و .... البته این کدها برای همه پرینترها ثابت نیستند و استانداردهای (Emulation) مختلفی مانند ESC-POS ، Star LineMode و .... وجود دارد. که برای اطلاع از انواع استانداردهایی که پرینتر شما پشتیبانی می‌کنه باید به Manual آن مراجعه کنید.
بعد از اینکه Emulation پرینتر مشخص شد باید دستورات رو مطابق با همون استاندارد به پرینتر بفرسید .
باز هم اگر سوالی بود در خدمتیم.

CodeMasterX
یک شنبه 29 بهمن 1385, 02:07 صبح
behzad جان لطفا سورس کدی که میتونه با این پرینتر ها تعامل داشته باشه رو برام بذار رو سایت.ماژول،کلاس،اکتیوایکس هرچی بود فرقی نمیکنه.

ممنون.

behzad_gh
یک شنبه 29 بهمن 1385, 21:35 عصر
پیداش کردم!
لینک زیر رو ببینید که مایکروسافت توضیح داده که چجوری میشه اطلاعات رو بصورت RAW به پرینتر فرستاد،این Procedure از توابع Win32 API استفاده کرده:

http://support.microsoft.com/kb/q154078

سلام
من فقط از همین سورس کدی که شما هم لینکش روز گذاشتید استفاده می‌کنم . برای ارتباط با پرینتر نیاز به هیچ اکتیو ایکس یا کد اضافه ای نیست . همونطور که گفتم فقط باید یک پرینتر از نوع Generic / Text در ویندوز تعریف کنید و پرینتر رو به همون Port ی که در هنگام ایجاد پرینتر Generic / Text مشخص کردید وصل کنید و اطلاعات رو به اون ( توسط همون سورس کد ) به صورت Raw ارسال کنید . باور کنید به همین سادگی!!! :متفکر:
در انجام هر کدام از قسمتهای بالا اگر مشکلی هست بگید تا راهنمایی کنم .

موفق باشید.

CodeMasterX
دوشنبه 30 بهمن 1385, 01:57 صبح
والا behzad مشکلی که نداره کد این لینک مایکروسافت ولی نمیتونه مختصات محدوده قابل چاپ رو روی پرینتر به درستی تشخیص بده.جند وقت پیش یه جا یه سری Win32 API Calls دیدم که این کار رو انجام میداد ولی گمشون کردم دارم دنبال اونا میگردم.پیداشون که کردم برای دوستان عم میزارم.

behzad_gh
دوشنبه 30 بهمن 1385, 12:37 عصر
نمیتونه مختصات محدوده قابل چاپ رو روی پرینتر به درستی تشخیص بده.

برای پرینترهای فروشگاهی ( سوزنی و حرارتی ) شما مختصات محدوده چاپ رو نمی‌تونید تعیین کنید . هر خط این پرینترها از تعدادی ستون تشکیل شده است که اکثرا ۴۸ حرف است که اگر طول نوشته شما بزرگتر از ۴۸ حرف باشه حروف اضافه رو در خط بعدی چاپ می‌کند.