Pbmtextps User Manual(0) Pbmtextps User Manual(0)

pbmtextps - رندر متن در یک تصویر PBM با استفاده از یک مفسر PostScript

pbmtextps [-font fontname] [-fontsize float] [-resolution n] [-leftmargin=n] [-rightmargin=n] [-topmargin=n] [-bottommargin=n] [-ascent=n] [-descent=n] [-pad] [-crop] [-stroke n] [-asciihex] [-ascii85] [-verbose] [-dump-ps] text [text ...]

این برنامه بخشی از Netpbm(1) است.

برنامه pbmtextps یک خط متن را از خط فرمان دریافت کرده و آن را در یک تصویر PBM رندر می‌کند. این تصویر حاوی یک خط متن تکی است؛ نویسه‌های خط جدید (newline) در ورودی هیچ تأثیری ندارند.

برای یک تولیدکننده متن پیشرفته‌تر، اما با قالب‌های فونت کمتر رایج، pbmtext را ببینید. pbmtext می‌تواند چندین خط متن تولید کند.

گزینه عمومی -plain پیش از Netpbm 10.42 (مارس ۲۰۰۸) هیچ تأثیری ندارد. خروجی همواره به صورت PBM خام (raw) است.

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

شما می‌توانید با گزینه‌های -leftmargin، -rightmargin، -topmargin و -bottommargin هر حاشیه‌ای را که می‌خواهید تنظیم کنید. مقدار مشخص‌شده از فضای خالی به دورترین لبهٔ حروف اضافه می‌شود؛ به عنوان مثال اگر مقدار ۱۰ نقطه را برای -topmargin مشخص کنید، ۱۰ نقطه فضای خالی بالای بلندترین نویسه در خط به دست خواهید آورد. برای بریدن یک سمت، مقدار 0 را مشخص کنید.

گزینه -ascent به بالای تصویر فضای خالی اضافه می‌کند تا به فاصله مشخصی بالای خط مبنای (baseline) متن برسد، و -descent فضای خالی را به پایین اضافه می‌کند تا به فاصله مشخصی در زیر خط مبنای متن برسد.

هنگامی که دو قطعه متن را (در فراخوانی‌های جداگانه pbmtextps) که قرار است به صورت افقی به یکدیگر الحاق شوند رندر می‌کنید، -ascent و -descent بسیار کاربردی‌تر از -topmargin و -bottommargin هستند. با -ascent و -descent، مادامی که مقداری بزرگ‌تر از ارتفاع یا عمق تمام نویسه‌های فونت مشخص کنید، دو تصویر دارای ارتفاع یکسان بوده و خط مبنای متن در موقعیتی یکسان قرار خواهد گرفت. با استفاده از -topmargin و -bottommargin ممکن است وضعیت به این صورت نباشد.

مثال:


     $ pbmtextps -font=Times-Roman -descent=20 \
          'The soup is called' > a1.pbm
     $ pbmtextps -font=Itallic -descent=20 'Goulash.' > a2.pbm
     $ pamcat -leftright -jbottom a1.pbm a2.pbm > out.pbm

اگر از -descent برای هم‌تراز کردن بخش‌های متنی که به صورت افقی با pamcat الحاق می‌شوند استفاده می‌کنید، گزینه -jbottom (تراز کردن از پایین) را روی pamcat مانند مثال بالا به کار ببرید. اگر از -ascent استفاده می‌کنید، به جای آن از -jtop استفاده نمایید.

به طور مشابه، اگر دو خط متن را (در فراخوانی‌های جداگانه pbmtextps) رندر می‌کنید که می‌خواهید آنها را به صورت عمودی الحاق کنید، مقادیر به اندازه کافی بزرگ برای -ascent و -descent تضمین می‌کنند که خطوط مبنا با فواصل یکنواخت چیده شوند.

اگر -ascent را تعیین کنید، احتمالاً دلیلی برای تعیین -topmargin نیز وجود ندارد، اما در صورت تعیین، اثر آن‌ها تجمعی خواهد بود. همین موضوع در مورد -descent و -bottommargin نیز صدق می‌کند.

گزینه -pad تصویر را در بالا و پایین تا جایی که بلندترین و کوتاه‌ترین نویسه‌ها در فونت می‌رسند پر (pad) می‌کند، حتی اگر آن نویسه‌ها در متن شما وجود نداشته باشند. این ویژگی زمانی مفید است که بخواهید چندین تصویر از متن تولید کرده (با چندین بار اجرای pbmtextps) و آن‌ها را به صورت عمودی الحاق نمایید تا یک تصویر متنی چندخطی بسازید. -pad تضمین می‌کند که خطوط در این تصویر دارای فاصله‌گذاری یکسانی هستند.

مثال:


    $ pbmtextps 'cat'   | pamfile
    $ pbmtextps 'Catty' | pamfile

دستورات فوق بدون استفاده از -pad نشان می‌دهند که تصویر 'Catty' ارتفاع بیشتری دارد، زیرا C بزرگ به سمت بالا و 'y' به سمت پایین کشیده می‌شوند.


    $ pbmtextps -pad 'cat'   | pamfile
    $ pbmtextps -pad 'Catty' | pamfile

دستورات فوق با استفاده از -pad نشان می‌دهند که هر دو تصویر دارای ارتفاع یکسانی هستند.

اگر -pad را همراه با -ascent یا -descent مشخص کنید، مقدار بزرگ‌تر اثرگذار خواهد بود.

گزینه -crop باعث می‌شود برنامه همه لبه‌ها را تا بیرونی‌ترین مرز نویسه‌ها برش دهد. این کار معادل استفاده از -leftmargin=0 -rightmargin=0 -topmargin=0 -bottommargin=0 است.

نمی‌توانید هیچ گزینهٔ دیگری را که بر حاشیه اثر می‌گذارد به همراه -crop مشخص کنید.

حاشیه بالای پیش‌فرض، هنگامی که هیچ‌یک از گزینه‌های -ascent، -topmargin، یا -pad را مشخص نکرده باشید، معادل مشخص کردن topmargin=0 است.

حاشیه پایین پیش‌فرض، هنگامی که هیچ‌یک از گزینه‌های -descent، -bottommargin، یا -pad را مشخص نکرده باشید، معادل مشخص کردن -descent=1.5*fontsize است.

حاشیه چپ پیش‌فرض، زمانی که -leftmargin را مشخص نکرده باشید، معادل مشخص کردن -leftmargin=0.5*fontsize است.

حاشیه راست پیش‌فرض، زمانی که -rightmargin را مشخص نکرده باشید، معادل مشخص کردن -rightmargin=0 است.

ساده‌ترین راه برای مشخص کردن متن جهت رندر شدن، مشخص کردن مستقیم آن به صورت ASCII، به عنوان تنها آرگومان دستور است. برای مثال:

    
  $ pbmtextps 'hello world'
    

اما همچنین می‌توانید آن را در چندین آرگومان پخش کنید. pbmtextps آن‌ها را از راست به چپ با یک فاصله در این بین به هم متصل می‌کند:

    
  $ pbmtextps hello world
    

با گزینهٔ -asciihex، می‌توانید متن را در کد ASCII-HEX متعلق به Postscript مشخص کنید:

    
  $ pbmtextps -asciihex 68656c6c6f20776f726c64
    

می‌توانید به صورت اختیاری جداکننده‌های متنی ASCII-HEX را که در یک برنامهٔ Postscript در اطراف متن قرار می‌گیرند نیز درج کنید:

    
  $ pbmtextps -asciihex '<68656c6c6f20776f726c64>'
    

توجه داشته باشید که جداکننده‌های <> برای پوسته‌های خط فرمان معنای ویژه‌ای دارند، بنابراین اگر pbmtextps را از طریق یک پوسته فراخوانی می‌کنید، حتماً آن‌ها را درون علامت نقل‌قول قرار دهید، همان‌طور که در این مثال انجام شده است.

با -asciihex، می‌توانید فاصله‌های خالی (white space) را در هر کجای متن کدگذاری‌شده قرار دهید؛ این کار هیچ تاثیری ندارد. همچنین می‌توانید آرگومان را همانند ورودی سادهٔ ASCII در چندین آرگومان پخش کنید:

    
  $ pbmtextps -asciihex '<' 68656c6c6f 20 776f726c64 '>'
    

اما توجه داشته باشید در حالی که Postscript نویسهٔ ASCII NUL را به عنوان فاصلهٔ خالی مجاز می‌شمارد، هیچ راهی برای ارسال یک آرگومان شامل نویسهٔ NUL به pbmtextps وجود ندارد.

با گزینهٔ -ascii85، می‌توانید متن را در کد ASCII-85 متعلق به Postscript مشخص کنید. این عملکرد مشابه -asciihex است. جداکننده‌های Postscript برای یک رشتهٔ متنی ASCII-85 به صورت <~ ~> هستند.

علاوه بر گزینه‌های مشترک بین تمامی برنامه‌های مبتنی بر libnetpbm (به‌ویژه -quiet، به گزینه‌های مشترک (Common Options) مراجعه کنید)، pbmtextps گزینه‌های خط فرمان زیر را می‌شناسد:

فونت مورد استفاده را مشخص می‌کند. fontname نام هر فونت معتبر Postscript است که بر روی سیستم نصب شده باشد.

پیش‌فرض TimesRoman است.

روش زیر راهی برای دریافت فهرستی از نام‌های تمام فونت‌های موجود است:


        $ gs -c &apos;(*) {==} 256 string /Font resourceforall&apos;

هشدار: اگر fontname نام یک فونت معتبر نباشد، pbmtextps صرفاً از فونت پیش‌فرض استفاده می‌کند و این موضوع را به شما اطلاع نمی‌دهد.

این اندازهٔ فونت بر حسب پوینت (point) است. برای اطلاعات در مورد نحوهٔ تفسیر این اندازه، به گزینهٔ -resolution مراجعه کنید.

پیش‌فرض 24 پوینت است.

پیش از Netpbm نسخهٔ 10.75 (ژوئن 2016)، این مقدار باید یک عدد صحیح می‌بود.

این مقدار، وضوح (رزولوشن) بر حسب نقطه در اینچ (dpi) برای اندازه‌گیری فاصله‌های مربوط به تولید تصویر است. تصاویر PBM وضوح ذاتی ندارند، بنابراین فاصله‌ای مانند "1 اینچ" هیچ معنایی ندارد مگر اینکه جداگانه مشخص کنید دربارهٔ چه وضوحی صحبت می‌کنید. این کاری است که این گزینه انجام می‌دهد.

به طور خاص، معنای اندازهٔ فونت توسط این وضوح تعیین می‌شود. اگر اندازهٔ فونت 24 پوینت و وضوح 150 dpi باشد، آن‌گاه اندازهٔ فونت 50 پیکسل خواهد بود.

پیش‌فرض 150 dpi است.

این گزینه‌ها حاشیه‌های اضافه‌شده به تصویر را که از دورترین لبهٔ حروف چاپی اندازه‌گیری می‌شوند، کنترل می‌کنند. برای جزئیات به حاشیه‌ها (Margins) مراجعه کنید.

همهٔ اندازه‌ها بر حسب پوینت، به صورت یک عدد اعشاری (ممیز شناور) هستند.

این گزینه‌ها در Netpbm نسخهٔ 10.75 (ژوئن 2016) اضافه شده‌اند.

این گزینه‌ها حاشیه‌های اضافه‌شده به تصویر را که از خط مبنای متن (baseline) اندازه‌گیری می‌شوند، کنترل می‌کنند. برای جزئیات به حاشیه‌ها (Margins) مراجعه کنید.

اندازه‌ها بر حسب پوینت، به صورت یک عدد اعشاری هستند.

این گزینه‌ها در Netpbm نسخهٔ 10.75 (ژوئن 2016) اضافه شده‌اند.

این گزینه تصویر را از بالا و پایین تا جایی که بلندترین و کوتاه‌ترین نویسه‌های فونت می‌رسند پر (pad) می‌کند، حتی اگر آن نویسه‌ها در متن شما وجود نداشته باشند. برای جزئیات به حاشیه‌ها (Margins) مراجعه کنید.

این گزینه در Netpbm نسخهٔ 10.75 (ژوئن 2016) اضافه شده است.

این گزینه باعث می‌شود برنامه تمام لبه‌ها را تا دورترین لبهٔ حروف چاپی برش دهد (crop). این معادل -leftmargin=0 -rightmargin=0 -topmargin=0 -bottommargin=0 است. برای جزئیات به حاشیه‌ها (Margins) مراجعه کنید.

این گزینه در Netpbm نسخهٔ 10.75 (ژوئن 2016) اضافه شده است.

این مشخص می‌کند که متن در آرگومان‌ها در قالب کد ASCII-HEX متعلق به Postscript است. به متن ورودی (Input Text) مراجعه کنید..sp نمی‌توانید این گزینه را همراه با -ascii85 مشخص کنید.

این گزینه در Netpbm نسخه 11.02 (مارس 2023) اضافه شد.

این بدان معناست که متن موجود در آرگومان‌ها به صورت کد Postscript ASCII-85 است. بخش متن ورودی (Input Text) را ببینید.

نمی‌توانید این گزینه را همراه با -asciihex مشخص کنید.

این گزینه در Netpbm نسخه 11.02 (مارس 2023) اضافه شد.

این پهنای خط (بر حسب پوینت) برای استفاده در قلم‌های خطی (stroke font) است. هیچ پهنای خط پیش‌فرضی وجود ندارد زیرا نویسه‌ها به‌طور پیش‌فرض توپر هستند.
این گزینه باعث می‌شود pbmtextps اطلاعات بیشتری درباره فرایند پردازش خود در خطای استاندارد (Standard Error) نمایش دهد.
این گزینه باعث می‌شود pbmtextps به جای خود تصویر، برنامه Postscript را که برای تولید تصویر استفاده می‌کرد در خروجی استاندارد (Standard Output) بنویسد. می‌توانید از این به عنوان ورودی یک مفسر Postscript (مانند Ghostscript یا چاپگر) استفاده کنید یا برای درک بهتر برنامه آن را بررسی نمایید.

این گزینه در Netpbm نسخه 10.75 (ژوئن 2016) اضافه شد.

می‌توانید با استفاده از وضوحی بالاتر از مقدار پیش‌فرض و سپس کاهش مقیاس تصویر با استفاده از pamscale، متنی هموارشده (antialiased) تولید کنید.

برای توصیه‌های بیشتر درباره نحوه استفاده، به راهنمای ابزار مشابه pbmtext مراجعه کنید.

pbmtextps در انتشار 10.0 (ژوئن 2002) به Netpbm اضافه شد.

pbmtext(1), pamcut(1), pnmcrop(1), pamcomp(1), ppmchange(1), pnmrotate(1), pamscale(1), ppmlabel(1), pbm(1)

حق نشر (C) 2002 متعلق به James McCann

این صفحه راهنما توسط ابزار 'makeman' در Netpbm از منبع HTML تولید شده است. مستندات اصلی در نشانی زیر قرار دارد:

http://netpbm.sourceforge.net/doc/pbmtextps.html
17 February 2023 netpbm documentation