PDFJAM(1) User Commands PDFJAM(1)

pdfjam - یک اسکریپت شل برای دستکاری فایل‌های PDF

pdfjam [options] [--] [file[pages]]...

دستور pdfjam فهرستی از اسناد (pdf،‏ ps،‏ eps،‏ jpg یا png) را در یک فایل pdf واحد ادغام می‌کند. این ابزار امکان چرخاندن، مقیاس‌بندی، بازآرایی و ترکیب آزادانه صفحه‌ها را با بهره‌گیری از توانایی بسته‌های LaTeX به نام‌های 'pdfpages' و 'graphicx' فراهم می‌کند.

خروجی با یک نام خودکار تولیدشده نوشته می‌شود (مگر اینکه از طریق --outfile مشخص شود). فایل‌های ورودی به‌صورت گرافیک در خروجی جاسازی می‌شوند. به‌ویژه فایل‌های jpg بدون تبدیل مجدد (transcoding) همان‌طور که هستند حفظ می‌شوند. ورودی از stdin با تعیین /dev/stdin به عنوان یک فایل پشتیبانی می‌شود و در صورتی که فایلی داده نشود، حالت پیش‌فرض است.

با مشخص کردن pages می‌توان تعیین کرد کدام صفحه‌ها و با چه ترتیبی گنجانده شوند. مقدار پیش‌فرض '-' تمام صفحه‌ها را انتخاب می‌کند. یک مثال:

pdfjam file1 '{},2,4-6,9-' ...

یک صفحه خالی ایجاد می‌کند، به دنبال آن صفحه‌های 2، 4، 5، 6 از file1 و سپس صفحه‌های 9 به بعد (تا انتهای file1) قرار می‌گیرند.

انتخاب صفحه را می‌توان روی بیش از یک فایل اعمال کرد، برای نمونه:

pdfjam file1 file2 file3 last-1 ...

انتخاب صفحه 'last-1' (معکوس کردن ترتیب صفحه‌ها) را روی هر سه فایل اعمال می‌کند؛ اما برای مثال:

pdfjam file1 file2 2- file3 1-7 ...

انتخاب صفحه '2-' را روی file1 و file2، و '1-7' را روی file3 اعمال خواهد کرد. انتخاب صفحه روی تمامی فایل‌هایی اعمال می‌شود که *بلافاصله* پیش از آن در فهرست آرگومان‌ها آمده باشند.

برای جزئیات بیشتر درباره نحو pagespec، راهنمای pdfpages را ببینید.

گزینه‌های کلید-مقدار برای 'pdfpages' و 'graphicx' را می‌توان به‌صورت --key value مشخص کرد.

تنها این متن را نمایش می‌دهد؛ بدون هیچ پردازشی روی فایل‌های PDF.
متغیر 'configpath' را نمایش داده و بلافاصله خارج می‌شود؛ بدون پردازش فایل‌های PDF.
شماره نسخه pdfjam را نمایش داده و بلافاصله خارج می‌شود؛ بدون پردازش فایل‌های PDF.
جلوگیری از نمایش توضیحات اضافی درباره روند پیشرفت.

اجرای ترتیبی pdfjam روی هر یک از فایل‌های ورودی به نوبت، و تولید یک فایل خروجی مجزا برای هر ورودی، به‌جای رفتار پیش‌فرض ادغام‌سازی. برای محل قرارگیری فایل‌های خروجی، --outfile را ببینید. گزینه --batch در صورت دریافت ورودی از stdin قابل استفاده نیست.
مسیر قرارگیری فایل(های) خروجی را تعیین می‌کند. اگر 'name' یک دایرکتوری موجود باشد، pdfjam تلاش می‌کند فایل(های) PDF خروجی را در آنجا با نام(هایی) برگرفته از نام فایل(های) ورودی و گزینه --suffix (پایین را ببینید) بنویسد. در غیر این صورت، خروجی pdf در 'name' نوشته خواهد شد.
یک پسوند برای نام فایل‌های خروجی تعیین می‌کند که هنگام نامشخص بودن --outfile یا دایرکتوری بودن آن به کار می‌رود. رشته STRING نباید طول صفر داشته باشد.
اگر ابزار یونیکسی 'file' در دسترس باشد، خروجی 'file -Lb FILE1' باید به‌صورت 'PDF document...' باشد که در آن '...' اطلاعات نسخه را ارائه می‌دهد. اگر در سیستم شما چنین است، باید از --checkfiles استفاده کنید؛ در غیر این صورت از --no-checkfiles استفاده نمایید، که در این حالت تمامی فایل‌های ورودی باید دارای پسوندهای صحیح (.pdf،‏ .ps،‏ .eps،‏ .jpg،‏ .jpeg،‏ .png یا معادل‌های بزرگ آن‌ها) باشند.
موتور LaTeX مورد استفاده را مشخص می‌کند (یکی از pdflatex،‏ xelatex یا lualatex). رشته pathtolatex باید مسیر کامل به یک فایل اجرایی مناسب LaTeX باشد (برای نمونه /usr/bin/xelatex در بسیاری از سیستم‌های یونیکس).
مشخص می‌کند که آیا دایرکتوری موقت ایجادشده توسط pdfjam باید حذف شود یا خیر. برای کمک به عیب‌یابی بیشتر خطاها از '--no-tidy' یا '--builddir' (پایین را ببینید) استفاده کنید.
یک دایرکتوری ساخت را برای استفاده به‌جای دایرکتوری موقت تعیین می‌کند. فایل‌های موجود در آن بازنویسی خواهند شد. این گزینه بر --tidy اولویت دارد.
دستور latex را N بار برای هر سند خروجیِ ساخته‌شده اجرا می‌کند.
از خواندن هرگونه فایل پیکربندی pdfjam جلوگیری می‌کند.
کدگذاری خط فرمان را مشخص می‌کند.

اندازه کاغذ LaTeX را مشخص می‌کند؛ برای نمونه '--paper a4' یا به‌سادگی '--a4paper' برای کاغذ ISO A4. به لطف بسته 'geometry' در LaTeX، طیف گسترده‌ای از اندازه‌های کاغذ در دسترس است. برای جزئیات بیشتر مستندات LaTeX و/یا بسته 'geometry' را ببینید. اگر مقدار پیش‌فرضی تنظیم نشده باشد، اندازه کاغذ پیش‌فرض سیستم از طریق libpaper به دست می‌آید و در صورت عدم دستیابی، به A4 بازمی‌گردد.
اندازه کاغذ سفارشی را بر حسب پوینت = ۱/۷۲ اینچ (در LaTeX با نام bp و در سایر نرم‌افزارها با نام pt شناخته می‌شود) مشخص می‌کند، مانند --papersize 612,792. واحدها را می‌توان به‌طور صریح نیز مشخص کرد، مانند --papersize 10in,18cm.
جهت افقی (landscape) صفحه (یا عدم آن) را در فایل PDF خروجی مشخص می‌کند.
گزینه کلاس سند 'twoside' (دوطرفه) را مشخص (یا لغو) می‌کند.
هر صفحه فرد را ۱۸۰ درجه می‌چرخاند (یا نمی‌چرخاند). بدین ترتیب لبه‌ای که صفحات در چاپ دوطرفه ورق می‌خورند تغییر می‌کند.
یک رنگ پس‌زمینه برای صفحه‌های خروجی مشخص می‌کند. مقدار RGBSPEC باید یک سه‌تایی از اعداد صحیح بین 0 و 255 باشد که با کاما از هم جدا شده‌اند. یک مثال: --pagecolor 150,200,150. پیش‌فرض، بدون رنگ پس‌زمینه است.

عنوان (Title)، نویسنده (Author)، موضوع (Subject) و کلمات کلیدی (Keywords) را (از آخرین فایل PDF ورودی، در صورت وجود بیش از یکی) در فایل PDF خروجی حفظ (یا عدم حفظ) می‌کند. این مورد نیازمند ابزار pdfinfo از بسته poppler-utils و بسته 'hyperref' در LaTeX است؛ اگر هر یک از آن‌ها موجود نباشد، '--keepinfo' نادیده گرفته می‌شود.
--pdfsubject string, --pdfkeywords string متن عنوان (Title)، نویسنده (Author)، موضوع (Subject) و کلمات کلیدی (Keywords) را در فایل PDF خروجی فراهم می‌کند. نیازمند بسته 'hyperref' در LaTeX است. این گزینه‌ها، هرکدام به‌طور جداگانه، بر --keepinfo اولویت دارند.

رشته STRING ارائه‌شده را به دیباچه (preamble) فایل(های) منبع LaTeX، درست قبل از خط '\begin{document}' الصاق می‌کند تا بسته‌های LaTeX بارگذاری شوند یا گزینه‌های سراسری تنظیم گردند. یک مثال:
pdfjam --nup 2x2 myfile.pdf -o myfile-4up.pdf --preamble '\usepackage{fancyhdr} \pagestyle{fancy}'

اگر '--preamble' بیش از یک بار در فراخوانی استفاده شود، رشته‌های دیباچه داده‌شده به یکدیگر متصل می‌شوند. برای نکته‌ای پیرامون جلوگیری از تداخل‌ها، فایل README را ببینید که در https://github.com/pdfjam/pdfjam نیز در دسترس است.

--
پایان پردازش گزینه‌ها را مشخص می‌کند.

گزینه‌های مربوط به '\includepdfmerge' در بسته 'pdfpages' لایتک را مشخص می‌کند. برای اطلاعات بیشتر مستندات pdfpages (معمولاً دستور 'texdoc pdfpages') را ببینید. در اینجا KEY نام هر یک از گزینه‌های پرتعداد برای '\includepdfmerge' و VALUE مقدار متناظر با آن است. مثال‌ها:
--nup 2x1 (برای چیدمان ۲تایی صفحه در کنار یکدیگر)
--scale 0.7 (برای مقیاس‌بندی تمام صفحه‌های ورودی به اندازه ۷۰٪)
--offset '1cm 0.5cm' (برای جابه‌جایی تراز تمامی صفحه‌ها -- به نقل‌قول‌ها دقت کنید!)
--frame true (برای قرار دادن یک کادر به دور هر صفحه ورودی)
--booklet true (برای تغییر ترتیب صفحه‌ها در دسته‌های فرم چاپی (signatures)، معمولاً با --nup مفید است)
--signature N (اندازه signature را بر حسب تعداد صفحات اصلی در یک فرم چاپی در سند نهایی مشخص می‌کند. هشدار: booklet صورت کوتاه‌شده‌ای برای signature است، بنابراین اگر از --booklet true استفاده کنید، signature نادیده گرفته می‌شود)
--trim '1cm 2cm 1cm 2cm' --clip true (برای بریدن مقادیر مذکور به‌ترتیب از چپ، پایین، راست و بالای صفحه‌های ورودی)
--angle NNN (زاویه چرخش بر حسب درجه. زاویه‌هایی غیر از 0، 90، 180 یا 270 همچنان صفحه‌های مستطیلی صاف ایجاد می‌کنند و تنها محتوا چرخانده خواهد شد.)

مقادیر پیش‌فرض برای گزینه‌های --suffix، --keepinfo، --paper، --outfile، --landscape، --twoside، --tidy، --latex، --runs، --checkfiles و --preamble را می‌توان در فایل‌های پیکربندی سراسری سیستم یا فایل‌های ویژه کاربر تنظیم کرد. فایل‌های مورد جستجو عبارتند از:

/etc/pdfjam.conf /usr/share/etc/pdfjam.conf /usr/local/share/pdfjam.conf /usr/local/etc/pdfjam.conf $XDG_CONFIG_HOME/pdfjam.conf $HOME/.pdfjam.conf

این فهرست را می‌توان با ویرایش 'configpath' در اسکریپت pdfjam تغییر داد. در صورت استفاده از آرگومان --vanilla، تمامی این فایل‌ها نادیده گرفته می‌شوند.

David Firth (2002 to 2019)، Reuben Thomas (2020 to 2024)، Markus Kurtz (since 2024)

بسته‌های LaTeX به نام‌های graphicx (https://ctan.org/pkg/graphicx) و pdfpages (https://ctan.org/pkg/pdfpages). برای گنجاندن فایل‌های eps، بسته epstopdf را ببینید (https://ctan.org/pkg/epstopdf).

برای اطلاعات بیشتر، از جمله یک نمونه فایل پیکربندی، ببینید: https://github.com/pdfjam/pdfjam

2025-01-30 pdfjam 4.2