PDFTK(1) General Commands Manual PDFTK(1)

pdftk - ابزاری کارآمد برای دستکاری و مدیریت اسناد PDF

pdftk <فایل‌های PDF ورودی | - | PROMPT>
[ input_pw <گذرواژه‌های مالک PDF ورودی | PROMPT> ]
[ <عملیات> <آرگومان‌های عملیات> ]
[ output <نام فایل خروجی | - | PROMPT> ]
[ encrypt_40bit | encrypt_128bit | encrypt_aes128 ]
[ allow <مجوزها> ]
[ owner_pw <گذرواژه مالک | PROMPT> ]
[ user_pw <گذرواژه کاربر | PROMPT> ]
[ flatten ] [ need_appearances ]
[ compress | uncompress ]
[ keep_first_id | keep_final_id ] [ drop_xfa ] [ drop_xmp ]
[ replacement_font <نام قلم> ]
[ verbose ] [ dont_ask | do_ask ]
که در آن:
<عملیات> می‌تواند خالی باشد یا شامل موارد زیر:
[ cat | shuffle | burst | rotate |
generate_fdf | fill_form |
background | multibackground |
stamp | multistamp |
dump_data | dump_data_utf8 |
dump_data_fields | dump_data_fields_utf8 |
dump_data_annots |
update_info | update_info_utf8 |
attach_files | unpack_files ]

برای راهنمای کامل: pdftk --help

اگر PDF را کاغذ الکترونیکی در نظر بگیریم، آن‌گاه pdftk برای آن حکم منگنه‌کش، دستگاه پانچ، شیرازه‌بند، ابزار رمزگشایی و عینک اشعهٔ ایکس الکترونیکی را دارد. ابزار pdftk برنامه‌ای ساده برای انجام کارهای روزمره با اسناد PDF است. از آن برای موارد زیر استفاده کنید:

* ادغام اسناد PDF یا مرتب‌سازی صفحات اسکن‌شدهٔ PDF
* جداسازی و استخراج صفحات PDF در یک سند جدید
* چرخاندن اسناد یا صفحات PDF
* رمزگشایی ورودی در صورت نیاز (نیازمند گذرواژه)
* رمزگذاری خروجی بر اساس نیاز
* پر کردن فرم‌های PDF با داده‌های X/FDF و/یا ایستا کردن (Flatten) فرم‌ها
* تولید قالب داده‌های FDF از روی فرم‌های PDF
* اعمال واترمارک در پس‌زمینه یا مُهر در پیش‌زمینه
* گزارش مشخصات فنی، نشانک‌ها (Bookmarks) و فراداده‌های سند PDF
* افزودن یا به‌روزرسانی مشخصات، نشانک‌ها یا فراداده‌های PDF
* پیوست کردن فایل‌ها به صفحات PDF یا به کل سند PDF
* استخراج پیوست‌های موجود در PDF
* تفکیک یک سند PDF به صفحات تک‌برگی (Burst)
* خارج کردن از حالت فشرده و فشرده‌سازی مجدد جریان‌های دادهٔ صفحات
* ترمیم فایل‌های آسیب‌دیدهٔ PDF (تا حد امکان).SH "گزینه‌ها (OPTIONS)" خلاصه‌ای از گزینه‌ها در زیر آمده است.

نمایش این خلاصه از گزینه‌ها.
<input PDF files | - | PROMPT>
فهرستی از فایل‌های PDF ورودی. اگر قصد دارید این PDFها را ترکیب کنید (بدون استفاده از دستگیره‌ها)، فایل‌ها را به همان ترتیبی که می‌خواهید ترکیب شوند فهرست کنید. از - برای فرستادن یک PDF منفرد به pdftk از طریق stdin استفاده کنید. فایل‌های ورودی می‌توانند با دستگیره‌ها (handles) مرتبط شوند، که در آن یک دستگیره شامل یک یا چند حرف بزرگ انگلیسی است:

<input PDF handle>=<input PDF filename>

دستگیره‌ها اغلب حذف می‌شوند. آن‌ها هنگام تعیین گذرواژه‌های PDF یا محدوده‌های صفحات در مراحل بعد مفید هستند.

برای مثال: A=input1.pdf QT=input2.pdf M=input3.pdf

[input_pw <input PDF owner passwords | PROMPT>]
گذرواژه‌های مالک (owner) برای PDFهای ورودی، در صورت نیاز، با استفاده از دستگیره‌های آن‌ها به فایل‌ها متصل می‌شوند:

<input PDF handle>=<input PDF file owner password>

اگر دستگیره‌ها مشخص نشوند، گذرواژه‌ها به ترتیب با فایل‌های ورودی مرتبط می‌شوند.

بیشتر قابلیت‌های pdftk نیازمند این هستند که PDF ورودیِ رمزگذاری‌شده با گذرواژهٔ ~مالک~ (~owner~) همراه باشد. اگر PDF ورودی گذرواژهٔ مالک ندارد، در عوض باید گذرواژهٔ کاربر (user) ارائه شود. اگر PDF ورودی هیچ گذرواژه‌ای ندارد، نباید گذرواژه‌ای داده شود.

هنگام اجرا در حالت do_ask، چنانچه گذرواژهٔ ارائه‌شده نادرست باشد یا هیچ گذرواژه‌ای وارد نشده باشد، pdftk برای دریافت گذرواژه از شما درخواست خواهد کرد.

[<operation> <operation arguments>]
عملیات‌های موجود عبارتند از: cat، shuffle، burst، rotate، generate_fdf، fill_form، background، multibackground، stamp، multistamp، dump_data، dump_data_utf8، dump_data_fields، dump_data_fields_utf8، dump_data_annots، update_info، update_info_utf8، attach_files، unpack_files. برخی از عملیات‌ها آرگومان‌های اضافی می‌گیرند که در ادامه توضیح داده شده‌اند.

اگر این آرگومان اختیاری حذف شود، pdftk در حالت «فیلتر» ('filter') اجرا می‌شود. حالت فیلتر تنها یک ورودی PDF می‌گیرد و پس از اعمال تمام گزینه‌های خروجی، مانند رمزگذاری و فشرده‌سازی، یک PDF جدید می‌سازد.

صفحات را از PDFهای ورودی گردآوری (الحاق) می‌کند تا یک PDF جدید بسازد. از cat برای ادغام صفحات PDF یا جدا کردن صفحات PDF از اسناد استفاده کنید. همچنین می‌توانید از آن برای چرخاندن صفحات PDF استفاده نمایید. ترتیب صفحات در PDF جدید با ترتیب محدوده‌های صفحات ارائه‌شده مشخص می‌شود. محدوده‌های صفحات به این صورت توصیف می‌شوند:

<input PDF handle>[<begin page number>[-<end page number>[<qualifier>]]][<page rotation>]

که در آن دستگیره مشخص‌کنندهٔ یکی از فایل‌های PDF ورودی است، و شماره صفحات آغازین و پایانی ارجاعاتی با مبنای یک (one-based) به صفحات موجود در فایل PDF هستند. توصیف‌کننده می‌تواند even، odd یا ~ باشد، و چرخش صفحه می‌تواند north، south، east، west، left، right یا down باشد.

اگر دستگیرهٔ PDF داده شود اما صفحه‌ای مشخص نشود، کل PDF استفاده می‌شود. اگر برای هیچ‌یک از PDFهای ورودی صفحه‌ای مشخص نشود، نشانک‌های (bookmarks) PDFهای ورودی نیز ادغام شده و در خروجی گنجانده می‌شوند.

اگر دستگیره از محدودهٔ صفحه حذف شود، صفحات از اولین PDF ورودی گرفته می‌شوند.

توصیف‌کنندهٔ even باعث می‌شود pdftk فقط از صفحات با شمارهٔ زوج PDF استفاده کند، بنابراین 1-6even صفحات ۲، ۴ و ۶ را به همان ترتیب تولید می‌کند. 6-1even صفحات ۶، ۴ و ۲ را به همان ترتیب تولید می‌کند.

توصیف‌کنندهٔ odd مشابه با even عمل می‌کند.

صفحات را می‌توان با استفاده از توصیف‌کنندهٔ ~ به دنبال یک محدودهٔ صفحه، از یک محدودهٔ صفحه کسر کرد. برای نمونه، 1-20~5-6 و 1-20~5~6 معادل 1-4 7-20 هستند، و ~5 همهٔ صفحات به جز صفحهٔ ۵ را نتیجه می‌دهد. بسته به پوستهٔ شما، ممکن است لازم باشد به دلیل وجود ~ در ابتدا، این آرگومان را نقل‌قول‌گذاری (کوتیشن) کنید.

تنظیمات چرخش صفحه می‌تواند باعث شود pdftk صفحات و اسناد را بچرخاند. هر گزینه چرخش صفحه را به شرح زیر (بر حسب درجه) تنظیم می‌کند: north: 0، east: 90، south: 180، west: 270، left: -90، right: +90، down: +180. گزینه‌های left، right و down تنظیمات نسبی بر روی چرخش صفحه اعمال می‌کنند.

اگر هیچ آرگومانی به cat ارسال نشود، pdftk تمام PDFهای ورودی را به همان ترتیبی که داده شده‌اند برای ایجاد خروجی ترکیب می‌کند.

نکته‌ها:
* ممکن است <end page number> کمتر از <begin page number> باشد.
* می‌توان از کلیدواژهٔ end به جای شماره صفحه برای ارجاع به صفحهٔ پایانی سند استفاده کرد.
* با حذف شماره صفحهٔ پایانی، به یک صفحهٔ منفرد ارجاع دهید.
* دستگیره می‌تواند به تنهایی برای نشان دادن کل سند PDF استفاده شود؛ برای مثال، B1-end همان B است.
* می‌توانید با پیشوند کردن حرف r به شماره صفحات، به ترتیب معکوس به آن‌ها ارجاع دهید. برای مثال، صفحهٔ r1 آخرین صفحهٔ سند، r2 یکی مانده به آخرین صفحهٔ سند، و rend اولین صفحهٔ سند است. می‌توانید از این پیشوند در محدوده‌ها نیز استفاده کنید، برای مثال r3-r1 سه صفحهٔ آخر یک PDF است.

مثال‌های محدودهٔ صفحات بدون دستگیره‌ها:
1\-endeast – چرخش کل سند به اندازهٔ ۹۰ درجه
5 11 20 – برداشتن صفحات منفرد از PDF ورودی
5-25oddwest – برداشتن صفحات فرد در محدوده، چرخش به اندازهٔ ۹۰ درجه
6-1 – معکوس کردن صفحات در محدوده از PDF ورودی

مثال‌های محدودهٔ صفحات با استفاده از دستگیره‌ها:
فرض کنید A=in1.pdf B=in2.pdf، در این صورت:
A1-21 – برداشتن محدوده از in1.pdf
Bend-1odd – برداشتن تمام صفحات فرد از in2.pdf به ترتیب معکوس
A72 – برداشتن یک صفحهٔ منفرد از in1.pdf
A1-21 Beven A72 – گردآوری صفحات از هر دو فایل in1.pdf و in2.pdf
Awest – چرخش کل سند in1.pdf به اندازهٔ ۹۰ درجه
B – استفاده از تمام in2.pdf
A2-30evenleft – برداشتن صفحات زوج از محدوده، کم کردن ۹۰ درجه از چرخش هر صفحه
A A – الحاق in1.pdf با in1.pdf
Aevenwest Aoddeast – اعمال چرخش‌ها بر روی صفحات زوج و صفحات فرد از in1.pdf
Awest Bwest Bdown – الحاق اسناد چرخانده‌شده

صفحات را از PDFهای ورودی مقابله و تلفیق (collate) می‌کند تا یک PDF جدید ایجاد شود. مانند عملیات cat کار می‌کند با این تفاوت که در هر بار، یک صفحه از هر محدودهٔ صفحه برای ساخت PDF خروجی برمی‌دارد. اگر صفحات یک محدوده تمام شود، با محدوده‌های باقی‌مانده ادامه می‌دهد. محدوده‌ها می‌توانند از تمام امکانات شرح داده‌شده در بالا برای cat، مانند محدوده‌های صفحات معکوس، چندین محدوده از یک PDF منفرد، و چرخش صفحه استفاده کنند. این ویژگی برای کمک به تلفیق و مرتب‌سازی صفحات PDF پس از اسکن اسناد کاغذی طراحی شده است.
یک سند PDF ورودی منفرد را به صفحات جداگانه تقسیم می‌کند. همچنین گزارشی به نام doc_data.txt ایجاد می‌کند که مشابه خروجی dump_data است. بخش output می‌تواند شامل یک رشتهٔ قالب‌بندی به سبک printf برای نام‌گذاری این صفحات باشد. برای مثال، اگر صفحاتی با نام‌های page_01.pdf ،page_02.pdf و غیره می‌خواهید، output page_%02d.pdf را به pdftk ارسال کنید. اگر این الگو حذف شود، الگوی پیش‌فرض pg_%04d.pdf افزوده می‌شود و صفحاتی با نام‌های pg_0001.pdf ،pg_0002.pdf و غیره تولید می‌کند. رمزگذاری را می‌توان با افزودن گزینه‌های خروجی مانند owner_pw روی خروجی اعمال کرد، به عنوان مثال:

pdftk in.pdf burst owner_pw foopass

یک PDF ورودی منفرد را می‌گیرد و تنها صفحات مشخص‌شده را می‌چرخاند. سایر صفحات بدون تغییر باقی می‌مانند. ترتیب صفحات تغییر نمی‌کند. صفحات مورد نظر برای چرخش را با استفاده از همان ساختاری که در cat به کار می‌رفت مشخص کنید، با این تفاوت که صفحاتی را که نمی‌چرخانید حذف می‌کنید:

[<begin page number>[-<end page number>[<qualifier>]]][<page rotation>]

توصیف‌کننده می‌تواند even یا odd باشد، و چرخش صفحه می‌تواند north، south، east، west، left، right یا down باشد.

هر گزینه چرخش صفحه را به شرح زیر (بر حسب درجه) تنظیم می‌کند: north: 0، east: 90، south: 180، west: 270، left: -90، right: +90، down: +180. گزینه‌های left، right و down تنظیمات نسبی بر روی چرخش صفحه اعمال می‌کنند.

ترتیب مشخص‌شده برای صفحات، ترتیب صفحات در خروجی را تغییر نمی‌دهد.

یک فایل PDF ورودی منفرد را می‌خواند و از روی آن یک فایل FDF مناسب برای fill_form تولید کرده و در نام فایل خروجی داده‌شده یا (اگر هیچ خروجی تعیین نشده باشد) در stdout می‌نویسد. این دستور PDF جدیدی ایجاد نمی‌کند.
فیلدهای فرم یک PDF ورودی منفرد را با داده‌های برگرفته از یک فایل FDF، فایل XFDF یا stdin پر می‌کند. نام فایل داده را بعد از fill_form وارد کنید، یا از - برای فرستادن داده‌ها از طریق stdin استفاده نمایید، مانند:

pdftk form.pdf fill_form data.fdf output form.filled.pdf

اگر فایل FDF ورودی علاوه بر متن ساده (plain text)، شامل داده‌هایی با قالب‌بندی Rich Text نیز باشد، داده‌های Rich Text به همراه متن ساده در فیلدهای فرم گنجانده می‌شوند. همچنین pdftk پرچمی را تنظیم می‌کند که به Reader/Acrobat اشاره می‌کند تا ظاهر جدید فیلدها را بر اساس داده‌های Rich Text ایجاد کند. بنابراین هنگامی که کاربر PDF را باز می‌کند، نمایش‌دهنده ظاهر Rich Text را در همان لحظه ایجاد خواهد کرد. اگر نمایش‌دهندهٔ PDF کاربر از Rich Text پشتیبانی نکند، کاربر به جای آن داده‌های متن ساده را خواهد دید. اگر این فرم را پیش از آنکه Acrobat فرصت ایجاد (و ذخیره) ظاهر جدید فیلدها را داشته باشد مسطح (flatten) کنید، داده‌های متن ساده همان چیزی خواهند بود که خواهید دید.

همچنین گزینه‌های flatten، need_appearances و replacement_font را ببینید.

یک واترمارک PDF را در پس‌زمینهٔ یک PDF ورودی منفرد اعمال می‌کند. نام فایل PDF پس‌زمینه را بعد از background وارد کنید، مانند:

pdftk in.pdf background back.pdf output out.pdf

نرم‌افزار pdftk تنها از صفحهٔ اول PDF پس‌زمینه استفاده می‌کند و آن را بر روی تک‌تک صفحات PDF ورودی اعمال می‌نماید. این صفحه بر حسب نیاز مقیاس‌بندی شده و می‌چرخد تا متناسب با صفحهٔ ورودی شود. می‌توانید از - برای فرستادن یک PDF پس‌زمینه به pdftk از طریق stdin استفاده کنید.

اگر PDF ورودی پس‌زمینهٔ شفاف نداشته باشد (مانند PDF ساخته‌شده از اسکن صفحات)، پس‌زمینهٔ حاصل نمایان نخواهد بود – به جای آن از عملیات stamp استفاده کنید..TP multibackground <background PDF filename | - | PROMPT> همانند عملیات background است، با این تفاوت که هر صفحه از PDF پس‌زمینه را بر روی صفحه متناظر از PDF ورودی اعمال می‌کند. اگر فایل PDF ورودی صفحات بیشتری نسبت به PDF مهر (stamp) داشته باشد، آخرین صفحه مهر بر روی این صفحات باقی‌مانده در PDF ورودی تکرار می‌شود.

این عملیات دقیقاً همانند عملیات background رفتار می‌کند، با این تفاوت که صفحه PDF مهر را بر روی صفحات سند PDF ورودی قرار می‌دهد. این قابلیت زمانی بهترین نتیجه را می‌دهد که صفحه PDF مهر دارای پس‌زمینه‌ای شفاف باشد.
همانند عملیات stamp است، اما هر صفحه از PDF پس‌زمینه را بر روی صفحه متناظر در PDF ورودی اعمال می‌کند. اگر PDF ورودی صفحات بیشتری نسبت به PDF مهر داشته باشد، آخرین صفحه مهر بر روی این صفحات باقی‌مانده در PDF ورودی تکرار می‌شود.
یک فایل PDF ورودی تکی را می‌خواند و فراداده‌ها، نشانک‌ها (bookmarks یا همان outlines)، مشخصات ابعادی صفحه (media، چرخش و برچسب‌ها)، داده‌های تعبیه‌شده توسط STAMPtk (گزینه embed در STAMPtk را ببینید) و سایر داده‌ها را در نام فایل خروجی مشخص‌شده یا (در صورت عدم تعیین خروجی) در stdout گزارش می‌کند. نویسه‌های غیر ASCII به‌صورت موجودیت‌های عددی XML کدگذاری می‌شوند. این دستور هیچ فایل PDF جدیدی ایجاد نمی‌کند.
همانند dump_data است، با این تفاوت که خروجی با کدگذاری UTF-8 ارائه می‌شود.
یک فایل PDF ورودی تکی را می‌خواند و آمار فیلدهای فرم را به نام فایل خروجی مشخص‌شده یا (در صورت عدم تعیین خروجی) به stdout گزارش می‌دهد. نویسه‌های غیر ASCII به‌صورت موجودیت‌های عددی XML کدگذاری می‌شوند. این دستور یک PDF جدید ایجاد نمی‌کند.
همانند dump_data_fields است، با این تفاوت که خروجی با کدگذاری UTF-8 ارائه می‌شود.
این عملیات در حال حاضر فقط یادداشت‌ها و حاشیه‌نویسی‌های پیوند (link annotations) را گزارش می‌دهد. یک فایل PDF ورودی تکی را می‌خواند و اطلاعات یادداشت‌ها را در نام فایل خروجی مشخص‌شده یا (در صورت عدم تعیین خروجی) در stdout گزارش می‌کند. نویسه‌های غیر ASCII به‌صورت موجودیت‌های عددی XML کدگذاری می‌شوند. این دستور یک PDF جدید ایجاد نمی‌کند.
نشانک‌ها، برچسب‌های صفحه، اندازه‌های صفحه، چرخش‌های صفحه و فراداده‌های موجود در دیکشنری Info یک فایل PDF تکی را تغییر می‌دهد تا با فایل داده ورودی مطابقت پیدا کند. فایل داده ورودی از همان نحو و ساختار خروجی dump_data استفاده می‌کند. نویسه‌های غیر ASCII باید به‌صورت موجودیت‌های عددی XML کدگذاری شوند.

این عملیات فراداده‌های ذخیره‌شده در جریان XMP فایل PDF را (در صورت وجود) تغییر نمی‌دهد. (به همین دلیل باید یک مدخل ModDate را همراه با تاریخ/زمان جاری در اطلاعات به‌روزرسانی‌شده خود قرار دهید، با قالب: D:YYYYMMDDHHmmSS، برای مثال D:201307241346 – داده‌های حذف‌شده پس از YYYY به مقادیر پیش‌فرض بازمی‌گردند.)

برای مثال:

pdftk in.pdf update_info in.info output out.pdf

همانند update_info است، با این تفاوت که ورودی با کدگذاری UTF-8 ارائه می‌شود.
با استفاده از قابلیت‌های پیوست فایل در PDF، فایل‌های دلخواه را درون یک PDF بسته‌بندی می‌کند. می‌توان بیش از یک پیوست را پس از attach_files ذکر کرد. پیوست‌ها در سطح سند اضافه می‌شوند، مگر اینکه گزینه اختیاری to_page مشخص شده باشد؛ در این حالت، فایل‌ها به شماره صفحه داده‌شده پیوست می‌شوند (صفحه نخست 1 و صفحه پایانی end است). پیوست‌های سطح سند را می‌توان با یکی از رابطه‌های Source، Data، Alternative، Supplement و Unspecified (پیش‌فرض) برچسب‌گذاری کرد.

برای مثال:

pdftk in.pdf attach_files table1.html table2.html to_page 6 output out.pdf

pdftk in.pdf attach_files in.tex relation Source output out.pdf

تمام پیوست‌ها را از PDF ورودی در پوشه فعلی یا در دایرکتوری خروجی مشخص‌شده پس از output رونوشت می‌کند. برای مثال:

pdftk report.pdf unpack_files output ~/atts/

یا به‌صورت تعاملی:

pdftk report.pdf unpack_files output PROMPT

[output <output filename | - | PROMPT>]
نام فایل PDF خروجی نباید برابر با نام یکی از فایل‌های ورودی باشد. برای ارسال خروجی به stdout از - استفاده کنید. هنگام استفاده از عملیات dump_data، از output برای تعیین نام فایل داده خروجی استفاده کنید. هنگام استفاده از عملیات unpack_files، از output برای تعیین نام دایرکتوری خروجی استفاده کنید. هنگام استفاده از عملیات burst، می‌توانید از output برای کنترل نام فایل‌های صفحات PDF حاصل استفاده کنید (در بالا شرح داده شده است).
[encrypt_40bit | encrypt_128bit | encrypt_aes128]
اگر برای PDF خروجی یک گذرواژه کاربر یا مالک مشخص شود، الگوریتم رمزنگاری PDF خروجی به‌طور پیش‌فرض بر روی AES-128 تنظیم می‌شود. الگوریتم‌های ضعیف‌تر RC4 40-bit و RC4 128-bit را می‌توان با مشخص کردن encrypt_40bit یا encrypt_128bit انتخاب کرد (توصیه نمی‌شود).
[allow <permissions>]
مجوزها (Permissions) تنها در صورتی بر روی PDF خروجی اعمال می‌شوند که یک سطح رمزنگاری مشخص شده باشد یا گذرواژه مالک یا کاربر ارائه شده باشد. اگر دسترسی‌ها مشخص نشوند، مقدار پیش‌فرض آنها 'none' خواهد بود که به معنای غیرفعال بودن تمام قابلیت‌های زیر است.

بخش permissions می‌تواند شامل یک یا چند مورد از قابلیت‌های زیر باشد:

چاپ با بالاترین کیفیت
چاپ با کیفیت پایین‌تر
همچنین اجازه Assembly را می‌دهد
همچنین اجازه ScreenReaders را می‌دهد
همچنین اجازه FillIn را می‌دهد
به کاربر اجازه می‌دهد تمام موارد بالا به‌همراه چاپ با بالاترین کیفیت را انجام دهد.
[owner_pw <owner password | PROMPT>]
[user_pw <user password | PROMPT>]
اگر سطح رمزنگاری تعیین شود اما هیچ گذرواژه‌ای داده نشود، گذرواژه‌های مالک و کاربر خالی باقی می‌مانند؛ این بدان معناست که هر کسی می‌تواند PDF حاصل را باز کند و پارامترهای امنیتی آن را تغییر دهد.
[compress | uncompress]
این گزینه‌ها فقط زمانی مفید هستند که بخواهید کد PDF را در یک ویرایشگر متن مانند vim یا emacs ویرایش کنید. با اعمال فیلتر uncompress، فشرده‌سازی جریان (stream) صفحه PDF را حذف کنید. برای بازگرداندن فشرده‌سازی از فیلتر compress استفاده نمایید.
[flatten]
از این گزینه برای ادغام فیلدهای فرم تعاملی PDF ورودی (و داده‌های آنها) با صفحات PDF استفاده کنید. تنها یک PDF ورودی را می‌توان مشخص کرد. گاهی اوقات همراه با عملیات fill_form استفاده می‌شود.
[need_appearances]
پرچمی را تنظیم می‌کند که به Reader/Acrobat اشاره می‌کند تا بر اساس مقادیر فیلدهای فرم، ظاهر جدیدی برای فیلدها ایجاد کند. هنگام پر کردن فرم با متن غیر ASCII، از این گزینه برای اطمینان از بهترین نحوه نمایش در Adobe Reader یا Acrobat استفاده کنید. این گزینه در صورت ترکیب با گزینه flatten کار نخواهد کرد.
[replacement_font <font name>]
از قلم مشخص‌شده برای نمایش متن در فیلدهای فرم استفاده می‌کند. این گزینه زمانی مفید است که فرمی را با متنی غیر ASCII پر می‌کنید که توسط قلم‌های موجود در PDF ورودی پشتیبانی نمی‌شود. font name می‌تواند نام فایل یا نام خانواده قلم باشد، اما استفاده از نام فایل قابل اطمینان‌تر است. در حال حاضر فقط قلم‌های TrueType با متن Unicode پشتیبانی می‌شوند.
[keep_first_id | keep_final_id]
هنگام ترکیب صفحات از چندین فایل PDF، از یکی از این گزینه‌ها برای رونوشت شناسه سند (document ID) از سند ورودی نخست یا پایانی به PDF خروجی جدید استفاده کنید. در غیر این صورت pdftk یک شناسه سند جدید برای PDF خروجی ایجاد می‌کند. هنگامی که هیچ عملیاتی مشخص نشده باشد، pdftk همیشه از شناسه سند ورودی (تکی) استفاده می‌کند.
[drop_xfa]
اگر PDF ورودی شما فرمی است که با استفاده از Acrobat 7 یا Adobe Designer ایجاد شده است، احتمالاً دارای داده‌های XFA است. پر کردن چنین فرمی با استفاده از pdftk باعث تولید یک PDF با داده‌هایی می‌شود که در Acrobat 7 (و احتمالاً 6؟) نمایش داده نمی‌شوند. راهکار این است که داده‌های XFA فرم را پیش از پر کردن فرم با pdftk یا در هنگام پر کردن آن حذف کنید. استفاده از این گزینه باعث می‌شود pdftk داده‌های XFA را از فرم PDF خروجی حذف کند.

این گزینه فقط هنگام اجرای pdftk بر روی یک فایل PDF ورودی تکی مفید است. هنگام سرهم‌بندی یک PDF از چندین فایل ورودی با استفاده از pdftk، هرگونه داده XFA موجود در ورودی به‌طور خودکار حذف می‌شود.

[drop_xmp]
بسیاری از فایل‌های PDF، فراداده‌های سند را هم با استفاده از دیکشنری Info (شیوه قدیمی) و هم جریان XMP (شیوه جدید) ذخیره می‌کنند. عملیات update_info در pdftk می‌تواند دیکشنری Info را به‌روز کند، اما جریان XMP را خیر. راهکار مناسب برای این موضوع، قرار دادن یک مدخل ModDate با تاریخ/زمان جاری در اطلاعات به‌روزرسانی‌شده شما است. قالب تاریخ/زمان عبارت است از: D:YYYYMMDDHHmmSS، برای مثال D:201307241346 – داده‌های حذف‌شده پس از YYYY به مقادیر پیش‌فرض بازمی‌گردند. این ModDate جدیدتر باید به نمایشگرهای PDF نشان دهد که فراداده‌های Info به‌روزتر از داده‌های XMP هستند.

همچنین، ممکن است ترجیح دهید جریان XMP را به‌کلی از PDF حذف کنید – این دقیقاً کاری است که این گزینه انجام می‌دهد. توجه داشته باشید که اشیاء درون PDF ممکن است جریان‌های فراداده XMP مجزا و مخصوص به خود داشته باشند و drop_xmp آنها را حذف نمی‌کند؛ این گزینه تنها جریان XMP در سطح سندِ PDF را حذف می‌کند.

[verbose]
به‌طور پیش‌فرض، pdftk بدون پیام اجرا می‌شود. افزودن verbose به انتها باعث می‌شود اطلاعات و جزئیات بیشتری نمایش داده شود.
[dont_ask | do_ask]
بسته به تنظیمات زمان کامپایل (نگاه کنید به ASK_ABOUT_WARNINGS)، در صورت بروز مشکل مانند یک گذرواژه نادرست، pdftk ممکن است از شما ورودی بیشتری درخواست کند. با افزودن dont_ask (تا pdftk از شما نپرسد چه باید کرد) یا do_ask (تا pdftk از شما بپرسد چه کاری انجام دهد)، این رفتار پیش‌فرض را بازنویسی کنید.

هنگام اجرا در حالت dont_ask، برنامه pdftk فایل‌ها را بدون اطلاع قبلی با خروجی خود بازنویسی (over-write) خواهد کرد..SH "مثال‌ها (EXAMPLES)"

تلفیق صفحات اسکن‌شده
pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
یا اگر odd.pdf دارای ترتیب معکوس است:
pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

مثال‌های زیر از گذرواژه‌های واقعی به عنوان پارامترهای خط فرمان استفاده می‌کنند، که این کار توصیه نمی‌شود (بخش «ملاحظات امنیتی (SECURITY CONSIDERATIONS)» را ببینید).

رمزگشایی یک PDF
pdftk secured.pdf input_pw foopass output unsecured.pdf
رمزنگاری یک PDF با استفاده از AES-128 (پیش‌فرض) و سلب تمام مجوزها (پیش‌فرض)
pdftk 1.pdf output 1.128.pdf owner_pw foopass
مانند بالا، به جز اینکه گذرواژه 'baz' نیز باید برای باز کردن PDF خروجی استفاده شود
pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz
مانند بالا، به جز اینکه چاپ کردن مجاز است (پس از باز شدن PDF)
pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz allow printing
اعمال رمزنگاری ۴۰ بیتی RCA روی خروجی و لغو تمام مجوزها (پیش‌فرض). تنظیم گذرواژه مالک به 'foopass'.
pdftk 1.pdf 2.pdf cat output 3.pdf encrypt_40bit owner_pw foopass
پیوند زدن دو فایل که یکی از آن‌ها نیازمند گذرواژه 'foopass' است. خروجی رمزنگاری نمی‌شود.
pdftk A=secured.pdf 2.pdf input_pw A=foopass cat output 3.pdf
پیوند زدن in1.pdf و in2.pdf در یک PDF جدید به نام out1.pdf
pdftk in1.pdf in2.pdf cat output out1.pdf
یا (با استفاده از دسته‌ها):
pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
یا (با استفاده از نویسه‌های عام):
pdftk *.pdf cat output combined.pdf
حذف صفحه ۱۳ از in1.pdf برای ایجاد out1.pdf
pdftk in.pdf cat 1-12 14-end output out1.pdf
یا:
pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf
فشرده‌زدایی از جریان‌های صفحه PDF برای ویرایش PDF در یک ویرایشگر متن (مانند vim یا emacs)
pdftk doc.pdf output doc.unc.pdf uncompress
بازسازی جدول آسیب‌دیده XREF و طول جریان‌های PDF، در صورت امکان
pdftk broken.pdf output fixed.pdf
تجزیه یک سند تک‌فایل PDF به صفحات مجزا و تخلیه داده‌های آن در doc_data.txt
pdftk in.pdf burst
تجزیه یک سند PDF به صفحات رمزنگاری‌شده و مجاز کردن چاپ با کیفیت پایین
pdftk in.pdf burst owner_pw foopass allow DegradedPrinting
نوشتن گزارش از فراداده‌ها و نشانک‌های سند PDF در report.txt
pdftk in.pdf dump_data output report.txt
چرخاندن اولین صفحه PDF به اندازه ۹۰ درجه در جهت عقربه‌های ساعت
pdftk in.pdf cat 1east 2-end output out.pdf
چرخاندن کل یک سند PDF به اندازه ۱۸۰ درجه
pdftk in.pdf cat 1-endsouth output out.pdf

این یک پورت از pdftk به جاوا است. ببینید:
https://gitlab.com/pdftk-java/pdftk
برنامه اصلی را می‌توان در www.pdftk.com یافت.

نویسنده اصلی pdftk، Sid Steward (sid.steward at pdflabs dot com) است.

ارسال گذرواژه به عنوان پارامتر خط فرمان ناامن است زیرا می‌تواند در تاریخچه پوسته ذخیره شده و از طریق /proc برای سایر کاربران قابل دسترسی باشد. در عوض، از کلمه کلیدی PROMPT استفاده کرده و گذرواژه‌ها را از طریق ورودی استاندارد وارد کنید.

7 دسامبر 2020