GS(1) Ghostscript GS(1)

gs - مفسر و پیش‌نمایش‌گر زبان‌های PostScript و PDF

gs [ گزینه‌ها ] [ فایل‌ها ] ... (Unix, VMS)
gswin32c [ گزینه‌ها ] [ فایل‌ها ] ... (MS Windows)
gswin32 [ گزینه‌ها ] [ فایل‌ها ] ... (MS Windows 3.1)
gsos2 [ گزینه‌ها ] [ فایل‌ها ] ... (OS/2)

دستور gs (gswin32c، gswin32، gsos2) برنامهٔ Ghostscript را فراخوانی می‌کند؛ مفسری برای زبان‌های PostScript(tm) و Portable Document Format (PDF) متعلق به Adobe Systems. دستور gs «فایل‌ها» را به ترتیب خوانده و آن‌ها را به‌عنوان برنامه‌های Ghostscript اجرا می‌کند. پس از انجام این کار، ورودی‌های بعدی را از جریان ورودی استاندارد (معمولاً صفحه‌کلید) می‌خواند، هر خط را جداگانه تفسیر کرده و خروجی را به یک دستگاه خروجی (که می‌تواند یک فایل یا پنجرهٔ پیش‌نمایش X11 باشد؛ در ادامه را ببینید) می‌فرستد. مفسر هنگام برخورد با دستور «quit» (درون فایل یا از طریق صفحه‌کلید)، رسیدن به انتهای فایل، یا دریافت سیگنال وقفه (مانند Control-C از صفحه‌کلید) به‌طور عادی خارج می‌شود.

مفسر سوئیچ‌های گزینه‌ای متعددی را می‌شناسد که برخی از آن‌ها در ادامه شرح داده شده‌اند. لطفاً برای اطلاعات کامل مستندات کاربرد برنامه را ببینید. سوئیچ‌ها می‌توانند در هر کجای خط فرمان قرار گیرند و بر تمام فایل‌های بعد از خود اعمال می‌شوند. فراخوانی Ghostscript با سوئیچ -h یا -? پیامی تولید می‌کند که چندین سوئیچ کاربردی، تمام دستگاه‌های شناخته‌شده برای آن فایل اجرایی و مسیر جستجوی فونت‌ها را نشان می‌دهد؛ در Unix همچنین مکان مستندات دقیق را نمایش می‌دهد.

ممکن است Ghostscript برای استفاده از چندین دستگاه خروجی مختلف کامپایل شده باشد. برای دیدن اینکه فایل اجرایی شما شامل چه دستگاه‌هایی است، دستور «gs -h» را اجرا کنید.

مگر اینکه دستگاه خاصی را مشخص کنید، Ghostscript معمولاً نخستین دستگاه از میان آن‌ها را باز کرده و خروجی را به آن هدایت می‌کند.

اگر برنامه با پشتیبانی از X11 ساخته شده باشد، اغلب دستگاه پیش‌فرض یک پنجرهٔ X11 (پیش‌نمایش‌گر) است؛ در غیر این صورت، معمولاً Ghostscript از دستگاه bbox استفاده کرده و ابعاد فایل postscript را روی stdout چاپ می‌کند.

بنابراین اگر نخستین دستگاه در فهرست همان موردی است که می‌خواهید استفاده کنید، کافی است دستور زیر را اجرا کنید:

gs myfile.ps

همچنین می‌توانید مجموعهٔ دستگاه‌های موجود را از درون Ghostscript بررسی کنید: Ghostscript را اجرا کرده و عبارت زیر را تایپ کنید:

devicenames ==

اما نخستین دستگاه در فهرست حاصل ممکن است همان دستگاه پیش‌فرضی نباشد که با «gs -h» مشاهده می‌کنید. برای تعیین «AbcXyz» به‌عنوان دستگاه خروجی اولیه، سوئیچ زیر را اضافه کنید:

-sDEVICE=AbcXyz

برای نمونه، برای خروجی گرفتن روی یک چاپگر Epson می‌توانید از دستور زیر استفاده کنید:

gs -sDEVICE=epson myfile.ps

سوئیچ «-sDEVICE=» باید قبل از نخستین اشاره به نام فایل برای چاپ قرار گیرد، و تنها نخستین استفاده از این سوئیچ تأثیرگذار خواهد بود.

در نهایت، می‌توانید یک دستگاه پیش‌فرض را در متغیر محیطی GS_DEVICE مشخص کنید. ترتیب اولویت برای این گزینه‌ها از بالاترین به پایین‌ترین (Ghostscript دستگاهی را که در بالاترین رتبه در فهرست تعریف شده به کار می‌برد) به شرح زیر است:

setpagedevice
(command line)
GS_DEVICE
(first device in build list)

برخی دستگاه‌ها می‌توانند از تفکیک‌پذیری‌های (تراکم‌های) متفاوتی پشتیبانی کنند. برای تعیین تفکیک‌پذیری روی چنین دستگاهی، از سوئیچ «-r» استفاده کنید:

gs -sDEVICE=<device> -r<xres>x<yres>

برای نمونه، روی یک چاپگر ۹-سوزنی سازگار با Epson، با دستور زیر کم‌تراکم‌ترین (سریع‌ترین) حالت را دریافت می‌کنید:

gs -sDEVICE=epson -r60x72

و بیشترین تراکم (بهترین کیفیت خروجی) با دستور:

gs -sDEVICE=epson -r240x72.

اگر چاپگری را به‌عنوان دستگاه خروجی انتخاب کنید، Ghostscript همچنین به شما امکان می‌دهد محل ارسال خروجی را مشخص کنید -- در سیستم‌های Unix، معمولاً به یک فایل موقت. برای ارسال خروجی به فایلی به نام «foo.xyz»، از سوئیچ زیر استفاده کنید:

-sOutputFile=foo.xyz

ممکن است بخواهید هر صفحه را جداگانه چاپ کنید. برای این کار، با استفاده از سوئیچ «-sOutputFile=» همراه با «%d» در الگوی نام فایل، خروجی را به مجموعه‌ای از فایل‌های «foo1.xyz, foo2.xyz, ...» بفرستید:

-sOutputFile=foo%d.xyz

هر فایل حاصل، یک صفحه از خروجی را دریافت می‌کند و فایل‌ها به ترتیب شماره‌گذاری می‌شوند. «%d» یک مشخصهٔ قالب‌بندی printf است؛ همچنین می‌توانید از متغیرهایی مانند «%02d» استفاده کنید.

در سیستم‌های Unix و MS Windows می‌توانید خروجی را به یک لوله (pipe) نیز بفرستید. برای نمونه، برای هدایت خروجی با pipe به دستور «lpr» (که در بسیاری از سیستم‌های Unix آن را به چاپگر هدایت می‌کند)، از گزینهٔ زیر استفاده کنید:

-sOutputFile=%pipe%lpr

توجه داشته باشید که کاراکترهای «%» در MS Windows باید دو بار تکرار شوند (%%) تا از مخدوش شدن توسط مفسر خط فرمان جلوگیری شود.

همچنین می‌توانید خروجی را به خروجی استاندارد بفرستید:

-sOutputFile=-
یا
-sOutputFile=%stdout%

در این حالت باید از سوئیچ -q نیز استفاده کنید تا از نوشتن پیام‌های Ghostscript در خروجی استاندارد جلوگیری شود.

برای انتخاب یک اندازهٔ کاغذ خاص، از سوئیچ خط فرمان زیر استفاده کنید:

-sPAPERSIZE=<paper_size>

برای نمونه:

-sPAPERSIZE=a4
یا
-sPAPERSIZE=legal

اکثر اندازه‌های استاندارد کاغذ ISO و US شناسایی می‌شوند. برای فهرست کامل، مستندات کاربرد یا تعاریف موجود در فایل مقداردهی اولیهٔ «gs_statd.ps» را ببینید.

Ghostscript افزون بر چاپ یا مشاهدهٔ فایل‌های PostScript و PDF، کارهای فراوان دیگری نیز انجام می‌دهد. برای نمونه، اگر می‌خواهید از کادر محدودکنندهٔ (bounding box) یک فایل PostScript (یا EPS) مطلع شوید، Ghostscript یک «دستگاه» ویژه ارائه می‌دهد که صرفاً این اطلاعات را چاپ می‌کند.

برای نمونه، با استفاده از یکی از فایل‌های نمونهٔ ارائه‌شده همراه با Ghostscript،

gs -sDEVICE=bbox golfer.ps

خروجی زیر چاپ می‌شود:

%%BoundingBox: 0 25 583 732
%%HiResBoundingBox: 0.808497 25.009496 582.994503 731.809445
-- filename arg1 ...
آرگومان بعدی را طبق معمول به‌عنوان نام فایل در نظر می‌گیرد، اما تمامی آرگومان‌های باقی‌مانده را (حتی اگر ساختار نحوی سوییچ‌ها را داشته باشند) دریافت کرده و پیش از اجرای فایل، نام "ARGUMENTS" را در "userdict" (نه در "systemdict") به‌صورت آرایه‌ای از آن رشته‌ها تعریف می‌کند. هنگامی که Ghostscript اجرای فایل را به پایان رساند، به خط فرمان (shell) بازمی‌گردد.
نامی را در "systemdict" با تعریف داده‌شده مشخص می‌کند. توکن (token) باید دقیقاً یک توکن باشد (همان‌طور که توسط عملگر "token" تعریف شده) و نباید هیچ فاصله خالی (whitespace) داشته باشد.
نامی را در "systemdict" با مقدار value=null تعریف می‌کند.
نامی را در "systemdict" با یک رشته مشخص به‌عنوان مقدار تعریف می‌کند. این با -d متفاوت است. برای نمونه، -dname=35 معادل قطعه‌کد
	/name 35 def
است، در حالی که -sname=35 معادل
	/name (35) def
خواهد بود.
باعث می‌شود Ghostscript برای فایل‌های کتابخانه ابتدا دایرکتوری جاری را بررسی کند.
به‌طور پیش‌فرض، Ghostscript دیگر دایرکتوری جاری را بررسی نمی‌کند، مگر اینکه
البته اولین دایرکتوری ارائه‌شده به‌صورت صریح در -I نقطه (".") باشد.
همچنین بخش فایل‌های راه‌اندازی (INITIALIZATION FILES) در ادامه، و فایل همراه
Use.htm را برای بررسی دقیق‌تر مسیرهای جستجو و نحوه یافتن فایل‌ها توسط Ghostscript ببینید.
راه‌اندازی بی‌صدا: پیام‌های معمول راه‌اندازی را متوقف می‌کند و همچنین کاری معادل -dQUIET انجام می‌دهد.
معادل -dDEVICEWIDTH=number1 و
-dDEVICEHEIGHT=number2 است. این گزینه برای دستگاه‌هایی
(مانند پنجره‌های X11) کاربرد دارد که نیازمند (یا مجاز به) تعیین عرض و ارتفاع هستند.
معادل -dDEVICEXRESOLUTION=number1 و
-dDEVICEYRESOLUTION=number2 است. این گزینه برای دستگاه‌هایی
مانند چاپگرها که از چندین تفکیک‌پذیری X و Y پشتیبانی می‌کنند، کاربرد دارد. اگر
تنها یک عدد مشخص شود، برای هر دو وضوح X و Y استفاده می‌شود.
فهرست مشخص‌شده از دایرکتوری‌ها را به ابتدای مسیر جستجوی فایل‌های کتابخانه‌ای اضافه می‌کند.
-
این در واقع یک سوییچ نیست، بلکه به Ghostscript نشان می‌دهد که ورودی
استاندارد از یک فایل یا یک لوله (pipe) می‌آید، نه به‌صورت تعاملی از خط
فرمان. Ghostscript ورودی استاندارد را تا رسیدن به پایان فایل (end-of-file)
می‌خواند، آن را مانند هر فایل دیگری اجرا می‌کند و سپس به پردازش خط فرمان ادامه
می‌دهد. هنگامی که خط فرمان به‌طور کامل پردازش شد، Ghostscript به‌جای رفتن به
حالت تعاملی، خارج می‌شود.
توجه داشته باشید که فایل راه‌اندازی معمول "gs_init.ps"، دیکشنری "systemdict" را
فقط‌خواندنی می‌کند؛ بنابراین مقادیر نام‌های تعریف‌شده با -D، -d،
-S یا -s قابل تغییر نیستند (اگرچه البته می‌توان آن‌ها را با
تعاریف موجود در "userdict" یا سایر دیکشنری‌ها جایگزین کرد).

ذخیره‌سازی موقت نویسه‌ها (character caching) را غیرفعال می‌کند. فقط برای اشکال‌زدایی مفید است.
عملگر "bind" را غیرفعال می‌کند. فقط برای اشکال‌زدایی مفید است.
راه‌اندازی معمول دستگاه خروجی را متوقف می‌کند. این گزینه ممکن است هنگام اشکال‌زدایی مفید باشد.
اعلان و مکث در انتهای هر صفحه را غیرفعال می‌کند. این ویژگی برای مواردی که برنامه دیگری کنترل Ghostscript را بر عهده دارد مطلوب است.
استفاده از فونت‌های ارائه‌شده توسط پلتفرم زیرین (برای نمونه X11) را غیرفعال می‌کند. این گزینه زمانی که فونت‌های پلتفرم تفاوت نامطلوبی با فونت‌های مقیاس‌پذیر دارند، ممکن است لازم باشد.
عملیات فایلی را که کار جاری می‌تواند انجام دهد محدود می‌کند. اکنون این حالت عملیاتی پیش‌فرض است.
دیکشنری "systemdict" را قابل‌نوشتن باقی می‌گذارد. این کار هنگام اجرای برنامه‌های کاربردی خاص ضروری است، اما از آنجا که تدابیر امنیتی معمول PostScript را دور می‌زند، شدیداً نهی می‌شود.
همان‌طور که در بالا توضیح داده شد، یک دستگاه خروجی اولیه جایگزین را انتخاب می‌کند.
همان‌طور که در بالا توضیح داده شد، یک فایل خروجی جایگزین (یا pipe) را برای دستگاه خروجی اولیه انتخاب می‌کند.

گزینه -dSAFER دسترسی‌های سامانه فایل را به فایل‌ها و دایرکتوری‌هایی محدود می‌کند که توسط متغیرهای محیطی مربوطه (مانند GS_LIB) یا پارامترهای خط فرمان مجاز شده‌اند (برای جزئیات به https://ghostscript.com/doc/current/Use.htm مراجعه کنید).

حالت SAFER اکنون حالت عملیاتی پیش‌فرض است. بنابراین، هنگام اجرای برنامه‌هایی که نیاز به باز کردن فایل‌ها یا تنظیم پارامترهای محدودشده دارند، باید گزینه خط فرمان -dNOSAFER یا مترادف آن -dDELAYSAFER را پاس دهید.

اجرا با NOSAFER/DELAYSAFER (همان‌طور که از نامشان پیداست) سطح امنیت را کاهش می‌دهد و بنابراین تنها برای اشکال‌زدایی یا در جریان‌های کاری بسیار کنترل‌شده توصیه می‌شود، و در هر شرایط دیگری اکیداً نهی می‌گردد..SH "فایل‌ها (FILES)"

مکان بسیاری از فایل‌های زمان اجرای Ghostscript هنگام ساخت برنامه درون فایل اجرایی کامپایل می‌شود. در سیستم‌های Unix این مسیرها معمولاً بر پایه‌ی /usr/local هستند، اما ممکن است در سیستم شما متفاوت باشند. در DOS معمولاً بر پایه‌ی C:\GS هستند، اما ممکن است جای دیگری باشند، به‌ویژه اگر Ghostscript را به همراه GSview نصب کنید. برای یافتن مکان مستندات Ghostscript روی سیستم خود، که جزئیات بیشتری را در اختیارتان می‌گذارد، دستور «gs -h» را اجرا کنید.

/usr/local/share/ghostscript/#.##/*
فایل‌های راه‌اندازی، ابزارها و تعاریف قلم پایه‌ای
/usr/local/share/ghostscript/fonts/*
تعاریف قلم‌های بیشتر
/usr/local/share/ghostscript/#.##/examples/*
فایل‌های نمایشی Ghostscript
/usr/local/share/ghostscript/#.##/doc/*
فایل‌های گوناگون مستندات

هنگام جستجو برای فایل‌های راه‌اندازی «gs_*.ps»، فایل‌های مربوط به قلم‌ها، یا فایل عملگر «run»، نرم‌افزار Ghostscript ابتدا سعی می‌کند فایل را با همان نام داده‌شده باز کند؛ در صورتی که دایرکتوری مشخص نشده باشد، از دایرکتوری کاری جاری استفاده می‌کند. اگر این کار ناموفق باشد و نام فایل مسیر صریحی از یک دایرکتوری یا درایو را مشخص نکرده باشد (برای نمونه، در سیستم‌های Unix شامل «/» یا در سیستم‌های MS Windows شامل «\» نباشد)، Ghostscript دایرکتوری‌ها را به این ترتیب بررسی می‌کند:

1.
دایرکتوری‌های مشخص‌شده توسط گزینه‌های -I در خط فرمان (پایین را ببینید)، در صورت وجود؛
2.
دایرکتوری‌های مشخص‌شده توسط متغیر محیطی GS_LIB، در صورت وجود؛
3.
دایرکتوری‌های مشخص‌شده توسط ماکروی GS_LIB_DEFAULT در makefile نرم‌افزار Ghostscript هنگام ساخته شدن فایل اجرایی. هنگامی که gs روی Unix ساخته می‌شود، GS_LIB_DEFAULT معمولاً برابر است با: "/usr/local/share/ghostscript/#.##:/usr/local/share/ghostscript/fonts" که در آن «#.##» نشان‌دهنده شماره نسخه Ghostscript است.

هر یک از این موارد (GS_LIB_DEFAULT، GS_LIB و پارامتر -I) می‌توانند یک دایرکتوری واحد یا فهرستی از دایرکتوری‌ها باشند که با «:» از یکدیگر جدا شده‌اند.

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

نرم‌افزار Ghostscript، یا دقیق‌تر دستگاه نمایش X11، به دنبال منابع زیر تحت نام برنامه «Ghostscript» می‌گردد:

عرض حاشیه بر حسب پیکسل (پیش‌فرض = 1).
نام رنگ حاشیه (پیش‌فرض = black).
اندازه و مکان پنجره، به صورت WxH+X+Y (پیش‌فرض NULL است).
تعداد پیکسل‌های افقی در هر اینچ (پیش‌فرض از WidthOfScreen و WidthMMOfScreen محاسبه می‌شود).
تعداد پیکسل‌های عمودی در هر اینچ (پیش‌فرض از HeightOfScreen و HeightMMOfScreen محاسبه می‌شود).
مشخص می‌کند که آیا برای ذخیره پنجره نمایش از backing store استفاده شود یا خیر (پیش‌فرض = true).

برای فهرست کامل‌تری از منابع، سند راهنمای استفاده را ببینید. برای تنظیم این منابع در Unix، آن‌ها را در فایلی مانند ~/.Xresources به شکل زیر قرار دهید:

Ghostscript*geometry:	 612x792-0+0
Ghostscript*xResolution: 72
Ghostscript*yResolution: 72

سپس این منابع را در پایگاه داده منابع کارساز X ادغام کنید:

% xrdb -merge ~/.Xresources

فایل‌های گوناگون مستندات Ghostscript (در بالا)، به‌ویژه Use.htm.

به تارنمای http://bugs.ghostscript.com و گروه خبری Usenet به نشانی comp.lang.postscript مراجعه کنید.

این سند آخرین بار برای Ghostscript نسخه 10.04.0 بازبینی شده است.

شرکت Artifex Software, Inc. نگه‌دارنده اصلی Ghostscript است. Russell J. Lang با نشانی gsview در ghostgum.com.au، نویسنده بیشتر کدهای بخش MS Windows در Ghostscript است.

18 Sept 2024 10.04.0