PCL, عموما به زبان دستوری پرینتر یا Printer Command Language گفته می شود که توسط شرکت Hewlett-Packard و به منظور استفاده به عنوان یک پروتکل در پرینتر های این شرکت طراحی شد و بعد ها به عنوان استانداردی در این صنعت به کار رفت. این زبان در ابتدا به سال 1984 برای پرینتر های جوهر افشان آماده سازی شد اما تا به امروز در سطوح مختلفی برای پرینتر های حرارتی, دات ماتریکس و لیزری منتشر شده است.
پشتیبانی از زبان های HP-GL و PJL نیز در نسخه های جدید PCL گنجانده شده است. همچنین از PCL گاها و به اشتباه به عنوان مخفف کلمات Printer Control Language برداشت می شود که در واقع نام دیگر Page Description Language. یا به اختصار PDL است.
بررسی اجمالی PCL نسخه 1 تا 5
نسخه های 1 تا 5e و 5c از زبان PCL با استفاده از زبان های دستور محور, رشته دستور های دریافتی را پردازش و تفسیر می کنند. رشته های اطلاعات در زبان PCL در سطح کاربری و به وسیله راه انداز سخت افزاری یا برنامه های کاربردی ساخته می شوند.
- PCL 1: در سال 1984 و بر روی پرینتر ThinkJet 2225 معرفی و بر پایه پرینتر محتوای متن و گرافیکی و با حداکثر وضوح 150 نقطه در اینچ توسعه داده شد.
- PCL +1: برای پرینتر QuietJet 2227 منتشر شد.
- PCL 2: قابلیت پردازش و انتقال داده های الکترونیکی را اضافه کرد.
- PCL 3: با طراحی اولین پرینتر LaserJet رو نمایی شد که در آن پشتیبانی از قلم های bitmap و افزایش وضوح تا حداکثر 300 نقطه در اینچ گنجانده شد بود. در آینده پرینتر های DeskJet, InkJet, پرینتر های سری 2932 matrix و RuggedWriter 2235 matrix نیز با استفاده از این زبان عرضه شدند. هرچند هنوز هم مدل هایی از این پرینتر ها با PCL 3 وجود دارند اما عملا تولید و استفاده از این نسخه منسوخ شده است.
- PCL +3 (تک رنگ) و PCL +3c (رنگی): در پرینتر های DeskJet و PhotoSmart از شرکت HP استفاده شد.
- PCL 3GUI: در برخی از مدل های DesignJet و DeskJet مورد استفاده قرار گرفت. این نسخه از یک قالب تصویری و فشرده استفاده می کرد که توسط نسخه PCL 3 مورد پشتیبانی قرار نمی گرفت.
- PCL 4: در سال 1985 و در پرینتر های HP LaserJet Plus معرفی و کد های ماکرو, قلم و تصاویر bitmap در اندازه های بزرگ را اضافه کرد. PCL 4 هنوز نیز در بین بسیاری از برنامه نویسان از محبوبیت بالایی برخوردار است.
- PCL 5: در سال 1990 و در پرینتر HP LaserJet III معرفی شد و پشتیبانی از قلم های مقیاس پذیر و گرافیک برداری را اضافه کرد.
- PCL 5e: یا نسخه توسعه یافته از 5 که در سال 1992 و در HP LaserJet 4 معرفی شد و قابلیت ایجاد ارتباط مستقیم میان کامپیوتر, پرینتر و فونت های ویندوز را دارا بود.
- PCL 5c: در سال 1992 با قابلیت پشتیبانی از رنگ در پرینتر های HP PaintJet 300XL و HP Color LaserJet رو نمایی شد.
بررسی زبان PCL6
کمپانی HP زبان PCL 6 را در میانه های سال 1995 به همراه سری پرینتر HP LaserJet 4000 معرفی کرد که شامل موارد زیر می شود:
- PCL 6 توسعه یافته: یک زبان بهینه سازی شده و شی گرا برای تشریح برگه های دریافتی از رابط های کاربری مانند ویندوز و فشرده سازی دستورات برای صرفه جویی در منابع است که پیش از این به عنوان PCL XL شناخته می شد.
- PCL 6 استاندارد: نسخه ای برای ایجاد سازگاری با نسخه های PCL 5e یا PCL 5c.
- مدیریت قلم: توسعه قلم های مقیاس پذیر, مدیریت قلم و ذخیره سازی فرم ها و قلم ها.
PCL 6 توسعه یافته با بهره گیری از یک معماری جدید, راه را برای اصلاح پرینتر های نوین هموار کرد. بازگشت سریع تر به برنامه کاربردی, ایجاد پرینت های سریع تر از گرافیک های پیچیده, جریان موثر اطلاعات برای کاهش ترافیک شبکه, پرینت WYSIWYG به معنای (What You See Is What You Get یا دریافت آنچه که می بینید), بهبود کیفیت پرینت و سازگاری بهتر با سیستم های مختلف از جمله ویژگی های این نسخه هستند.
هرچند PCL 6 در پیاده سازی اولیه به دلیل تکیه زیاد بر روی راه اندار نرم افزاری در سیستم عامل های ویندوز و لینوکس و عدم پشتیبانی بسیاری از نرم افزار ها از این روش, به طور کامل موفق نبود, اما با ارائه نسخه های بعدی مانند PCL XL که به PCL 6 توسعه یافته تغییر نام یافت بسیاری از این مشکلات برطرف شد.
PCL 6 یک پروتکل مبتنی بر پشته/شی گرا مانند زبان طراحی PostScript است که بر خلاف PostScript تنها به رمزگذاری کد های دودویی محدود شده و می تواند به صورت کدهای دودویی یا متن ساده ارسال شود. دستورهای متنی ساده یا نمونه کدهای نمایش داده شده در اسناد برنامه نویسی PCL 6, پیش از ارسال به پرینتر باید با استفاده از ابزار هایی مانند HP’s JetASM تفسیر و ترجمه شوند.
بررسی کلاس های PCL 6
کلاس 1.1
- ابزار ترسیم: پشتیبانی از کشیدن خط/ کمان/ بیضی/ آکورد/ مستطیل/ چند ضلعی و …
- مدیریت رنگ: پشتیبانی از جعبه رنگ 8/4/1 بیتی، فضای رنگ R/G/B/Grey، پشتیبانی از جعبه رنگ سفارشی (حداکثر 256)
- فشرده سازی: پشتیبانی از سبک RLE
- واحد های اندازه گیری: اینچ، میلی متر و دهم میلیمتر
- مدیریت کاغذ: پشتیبانی از مجموعه کاغذ های از پیش تعیین شده یا سفارشی، شامل کاغذ های مرسوم و غیر مرسوم، A4 و غیره. قابلیت کاغذ کشی از درگاه دستی، سینی، کاست, پرینت پشت و رو, چرخش افقی یا عمودی و 180 درجه.
- قلم: پشتیبانی از bitmap یا قلم های TrueType، استفاده از مجموعه کاراکتر های متفاوت از PCL 5.
کلاس 2.0
- فشرده سازی: افزودن فشرده سازی JPEG.
- مدیریت کاغذ: افزودن هدایت کاغذ به خروجی متفاوت. افزودن اندازه رسانه A6 و B6 مخصوص ژاپن. افزودن کاست سوم برای کاغذ.
- قلم: پشتیبانی از متن عمودی.
کلاس 2.1
- فشرده سازی: افزودن Delta Row
- مدیریت کاغذ: افزودن رسانه های B5, JIS 8K, JIS 16K, JIS.
کلاس 2.2
- فشرده سازی: افزودن JFIF
کلاس 3.0
- مدیریت رنگ: اجازه استفاده از تنظیمات متفاوت رنگ در تصاویر Vector ,Raster و متن. پشتیبانی از رنگ های تطبیقی.
- پروتکل: اجازه استفاده از ویژگی های PCL 5 در PCL 6.
- قلم: پشتیبانی از قلم PCL
منبع: wikipedia
ممنونم عالی بود
سلام خسته نباشید. استاد من دنبال زبان epson ESC/P-R هستم ولی متاسفانه هرچی گشتم به جایی نرسید. کمکی یا راهنمایی میتونید بکنید؟
خیلی ممنون
سلام از لینک زیر استفاده کنید شاید مفید بود
https://files.support.epson.com/pdf/general/escp2ref.pdf
سلام خسته نباشید
برای خروجی یک دستگاه پرینتر با پروتکل PCL3 یا PCL3GUT تعریف شده تو بازار چی میتونم پیدا کنم با این پروتکل اگر راهنمایی بفرمایید ممنون میشم
سلام بر شما
هیچ پرینتر لیزری در حال حاضر از این نسخه پشتیبانی نمیکنند و همگیبه نسخه 5 یا 6 بروزرسانی شدند
اما جوهر افشان ها عموما با این ورژن کار میکنن
فایل زیر رو مطالعه کنید
http://www.cacorp.com/resources/Electronic_Forms_Support_for_ASCII_Printers_within_ARC400.doc
باسلام
اسکریپتی به زبان php برای چاپگرهای حرارتی به زبان esc pos وجود داره
https://github.com/mike42/escpos-php
به کمک این اسکریپت تونستم خیلی راحت از بستر وب برای چاپگر هام پرینت مستقیم بفرستم بدون این که حتی نیاز باشه درایور چاپگر رو نصب کنم
…
ظاهرا پرینت های لیزری زبان PCL دارند و من خیلی جستجو کردم تا بتونم روشی که در بالا گفتم روشون پیاده کنم خواستم ببینم شما در این زمینه تجربه ای دارین و می تونم از دانش شما استفاده کنم؟
در واقع من می خوام از طریق مرورگرم به صورت مستقیم روی چاپگر (تحت شبکه) پرینت بفرستم بدون نصب درایور و تنها با کدنویسی
باتشکر از شما
استاد خسته نباشی مطالب عالی بود موفق باشید
درود بر شما دوست گرامی بنده یک دستگاه پرینتر canon mf 3010 i- sensys دارم که در موقع کپی گرفتن در برگهa4 وقتی در حال اسکن کردن هست به درستی این کار رو انجام نمیده و همیشه ۳ تا ۴ سانت آخر کاغذ رو اسکن نمی کنه و در موقع چاپ این قسمت رو سفید چاپ میکنه من متوجه شدم که با دادن یک کد دستوری به دستگاه میشه این مشکل رو حل کرد ولی هرچقدر در اینترنت دنبال این کد گشتم موفق نشدم حتی دیدم که کد دستوری هست که بشه دستگاه روشنتر و یا کم رنگ تر بتونه چاپ کنه خواهش میکنم اگر از این کد دستوری اطلاعی دارید به من گزارش بدید تشکر از شا
سلام میخواستم که طول کار هد پرینتر جوهر افشان رو افزاش بدم چه کار باید بکنم ؟