ورود/ایجاد حساب کاربری
   منوی اصلی
· خانه
· لیست کاربران
· جستجو
· آمار مشاهدات
· آرشیو مقالات


- شرح
· راهنمای نویسندگان
· درباره ما

   همکاری با نشریه
در صورتی که مایل به همکاری با نشریه هستید، می‌توانید در لیست پستی نشریه عضو شده و در جریان امور قرار گیرید. برای اطلاعات بیشتر، اینجا کلیک کنید.

   کاربران
سردبیر
هیچ مدیر کمکی حاضر
همکاران
هیچ مدیر کمکی حاضر
اعضا:
جدیدترین:جدید امروز:0
جدیدترین:جدید دیروز:0
جدیدترین:مجموع:2471
جدیدترین:جدیدترین:
ufumenarayu
اعضا:حاضر
اعضا:اعضا:0
مهمان‌ها:مهمان‌ها:7
مجموع:مجموع:7
کاربران حاضر
هیچ کاربر حاضری وجود ندارد

   ورود کاربران




 


 برای ورود مشکل دارید؟
 ثبت نام کاربران جدید

دستکاری PDFها با PDF Toolkit

(1773 مجموع کلمات موجود در متن)
(7503 بار مطالعه شده است)  نسخه چاپی

دستکاری PDF ها بوسیله‌ی PDF Toolkit

0.مقدمه

اگر پیش از ایــن با کاغذ کارهای روزمره‌ی خود را انجام می‌دادید،‌ مطمئنا برروی میز شما چسب، منگنه، پانچ، سوزن، گیره و قیچی وجود داشته؛ اگر امروز کارهای خود را به صورت دیجیتالی انجام می‌دهید یکی از فرمت‌هایی که بسیار با آن ســر و کــار خواهید داشت فرمت PDF یا Portable Document Format خواهد بود. فرمتی از سوی Adobe که در اکثر سیستم عامــل‌ها و حتی تجهیزاتی مانند گوشی‌های موبایل و کامپیوترهای دستی مانند Palm پشتیبانی می‌شود. اگر از PDF استفاده می‌کنید pdftk برای شما حکم منگنه و چسب و پانج و سوزنن را دارد. با pdftk می‌توانید فایل‌های pdf خــود را نطــم بــبخشید، ببرید، بچسبانید، فایل دیگری به آن‌ها ضمیمه کنید و .... در این مقاله قصــد دارم شـــما را با قابلیت‌‌های اصلی این برنامه هرچند مختصر آشنا کنم. برای کاربری پیشرفته می‌تونید به مستندات (مقالات، راهنماها) برنامه در سایت اصلی یا در سایت‌های دیگر مراجعه کنید.

1.تهیه‌ی برنامه

برنامه‌ی pdftk یک برنــامه‌ی آزاد تحـــت مجوز GNU/GPL است[۱] که بـه صــورت رایگان قابل دریافت است. برای دریافت برنامه می‌توانید به سایت اصلی آن در [۲] مراجعه کنید. البته بسیاری از تــوزیع‌های لینوکس مانند Debian، Gentoo و SuSE این برنامه را در مخـــازن یا دیسک‌های نصـــب بـــه هــمــراه دارنــد. در بـــخش دانلودها نیز بسته‌های rpm برای SuSE و Mandrake! وجود دارد. اگر همکارتان از لینوکس استفاده نمی‌کند،‌می‌تـــوانید این برنامه را به او نیز معرفی کنید چرا که این برنامه عــلاوه بر سیستم گنو/لینوکس برای ســـیســتــم‌عامــل‌هـای Sun Solaris و Mac OS X و Microsoft Windows و FreeBSD نـیــز موجــود است. بــرای دریافت فــایــل‌های نــصــــب بــاینری یا دریافت سورس‌کد می‌توانید به بخش دانلود سایت مراجعه کنید.

جدیدترین نسخه‌ی این برنامه تا زمان نوشتن این مقاله ۱.۱۲ است.برنامه‌ی pdf toolkit را باید در کنسول اجرا کنید، در حقیقت برنامــه‌ای برای خط فرمان است و رابط گرافیکی نــدارد و همین موضوع کار با آن را بسیار ساده‌تر کرده است، کافیست چند دکمه بفشارید تا PDF شما به کل تغییر کند!

ساختار اصلی فرمان‌ها به صورت زیر است:

pdftk inputfile(s) operation [options] output outputfile [password] [userpermissions]

2.دریافت اطلاعات درباره‌ی سند

قبل از کار با یک فایل PDF همیشه بهتر است اطلاعاتی درباره‌ی فایل داشته باشید، این که فایل بر اساس کدام نسخه از PDF ایــجاد شـده، توسط چه برنامه‌ای ایجاد شده و غیره. بـــه ایــن اطــلاعات Meta-Informations مــی‌گویــنـد، ای اطلاعات در حین ایجاد توسط برنامه‌ی نویسنده‌ی PDF یا برنامه‌ی ایجاد کننده‌ی PDF در فایل PDF ذخیره می‌شوند. برای دیدن این اطلاعات نیاز به یک فایل متنی جدید خواهید داشت، به نمونه‌ی زیر توجه کنید:

~$ pdftk example.pdf dump_data output info.txt

~$ more info.txt

InfoKey: Creator

InfoValue: QuarkXPress(tm) 6.5

InfoKey: Title

InfoValue: Layout 1

InfoKey: Producer

InfoValue: QuarkXPress(tm) 6.5

InfoKey: XPressPrivate

InfoValue: %%DocumentProcessColors: Cyan Magenta Yellow Black
%%DocumentCustomColors: (PANTONE 485 C)
%%RGBCustomColor: .912 .137 .092 (PANTONE 485 C)
%%EndComments

InfoKey: CreationDate

InfoValue: 20060306170513

PdfID0: 5e4a1ed16b804656d3e6e104af7e5ae

PdfID1: 5e4a1ed16b804656d3e6e104af7e5ae

NumberOfPages: 2

PageLabelNewIndex: 1

PageLabelStart: 1

PageLabelNumStyle: DecimalArabicNumerals

~$

در این نمونه اطلاعات ذخیره شده در فایل Example.pdf در فایل info.txt دخیره خواهد شد. نیازی به ساخت info.txt از پیش نیست. این فایل را خود برنامه ایجاد خواهد کرد. با دستور cat یا more می‌توانید محتویات قایل info.txt را ببینید. این محتویات بسته به برنامه‌ی ایجاد کننده‌ی PDF و نیز تنطیمات کاربر می‌تواند متغییر باشد. برای به روز کردن اطلاعات موجود در یک فایل PDF کافیست اطلاعاتی را که نیاز به به روز رسانی دارند را در یک فایل متنی ذخیره کنید و سپس با استفاده از روش زیر آن‌ها را به روز کنید.(فقط فیلد‌هایی را که می‌خواهید به روز کنید در فایل متنی ورودی بنویسید). در اینجا ابتدا فایلی با محتویاتی نیاز به تغییردارند ایجاد می‌کنم:

InfoKey: Creator

InfoValue: TeX

InfoKey: Title

InfoValue: My Project Review

InfoKey: Producer

InfoValue: QuarkXPress(tm) 6.5


پس از ایجاد فایل با محتویاتی که قرار است تغییر کنند، ه روش زیر اطلاعات را به روز می‌کنیم:


~$ pdftk Example.pdf update_info update.txt output updated.pdf

~$pdftk updated.pdf dumpdata output newinfo.txt

~$ more newinfo.txt

InfoKey: Creator

InfoValue: TeX

InfoKey: Title

InfoValue: My Project Review

InfoKey: Producer

InfoValue: QuarkXPress(tm) 6.5

InfoKey: XPressPrivate

InfoValue: %%DocumentProcessColors: Cyan Magenta Yellow Black
%%DocumentCustomColors: (PANTONE 485 C)
%%RGBCustomColor: .912 .137 .092 (PANTONE 485 C)
%%EndComments

InfoKey: CreationDate

InfoValue: 20060306170513

NumberOfPages: 2

PageLabelNewIndex: 1

PageLabelStart: 1

PageLabelNumStyle: DecimalArabicNumerals

~$

برای دیدن اطلاعات فایل‌های PDF می‌توانید از برنامــه‌ی pdfinfo نیز کمک بگیرید. این برنامه نیز یک برنامه‌ی آزاد تحت مــجوز GNU GPL اســت و در بـسیاری از توزیع‌‌هــای لــینوکسی مشهـور مــاننــد Debian و Gentoo یا Fedora Core به صورت پیش‌فــرض نصــب شــده است. برای Update کردن این اطالعات نمی‌توانید از pdfinfo استفاده کنید و باید از روش یادشده‌ی بالا یا برنامه‌های دیگر کمک بگیرید.(برای دریافت اطلاعات بیشتر دبرباره‌ی این برنامه به صفحات Manual آن مراجعه کنید،‌کافیست در کنسول بزنید: man pdfinfo)

3.جدا کردن و چسباندن صفحات

بسیار خوب، به بخض اصلی یعنی چسباندن و جدا کردن صفحات PDF رسیدیم، با pdftk مانند یک صحاف می‌توانید کتاب الکترونیکی خود را لف و نشر کنید و سپس صفحاتی را که نیاز ندارید برداشته یا صفحات جدید را به آن اضافه کنید و در نهایت دوباره فایل PDF خود را سرهم کنید.

بسیار خوب کار خود را با جدا کردن صفحــــــات Pdf خود شروع می‌کینم،‌برای جدا کردن صفحات فایل Example.pdf به صورت زیر عمل می‌کنیم:

$ pdftk Example.pdf burst output Page%03d.pdf

بدین ترتیـب فایـل Example.pdf بــه فایــل‌های Page001.pdf و Page002.pdf و ... تبدیــل می‌شود. همان‌طور که حتما خودتان حدس زده‌اید 03d% به برنامه می‌گوید تا شماره‌ی صفحات مندرج پس از اسامی فایل‌های جدا شده دارای سه رقــم بـاشند.(برای نمونه 001، اگر این مقدار را به 06d% تبدیل کنید ارقام بعد از اسامی مانند 000001 خـواهند بود.) در صورتی که می‌خواهید تمام صفحات در یک دایرکتوری به صورت مرتب جدا شده باشند می‌توانید دستور را به صورت زیر استفاده کنید:

~$mkdir splitted

~$ pdftk Example.pdf burst output splitted/Page%03d.pdf

~$ ls splitted/

Page001.pdf Page002.pdf



حال پس از جدا کردن صفحات صفحات جدید خود را اضافه کنید و یا صفحاتی که دیگر نیازی نیست را جدا کنید،‌پس از ایـن مرحلــه‌ی چــسباندن صفــحات اســت،‌ مهم نیست که حتما تمام فایل‌ها یک صفحه‌ای باشند، بـرای نمونه ممکن است شما بخواهید تمام فایل‌های PDF دانـلود شده از مجله‌ی IranTUX را به یکدیگر بچسبانید تا یکپارچه شوند،‌ در این صورت فایل‌های PDF شما هر کدام چند صفحه‌ای هستند، برای چسباندن صفحات به صورت زیر عمل کنید:


$pdftk Page001.pdf Page002.pdf Page4.pdf cat output New.pdf

بسیار خوب فایل New.pdf حاوی صفحات ۱ و ۲ و۴ است، اگر بجای فایل Page001.pdf فایل pdftk.pdf و بجای فایل‌های بعدی سایــر فــایل‌های PDF همــین شماره از مجــله را قرار دهید،‌فایل نهایی یعنی New.pdf فایلی یکپارچه خواهد بود شامل تمام مقالات این شماره از مجله‌ی ایران‌تاکس خواهد بود.

یک سناریوی دیگر، فرض کنیم شما فردی بسیار فعال و ماهر در شغل خود هستید و رزومه‌ی کاریتان ۱۰۰ صفحه است، حال می‌خواهید صفحات ۶۰ تا ۸۵ و ۹۰ تا ۹۷ آن را برای مدیر خود بفرستید، به علاوه می‌خواهید درپایان آن نامه‌ای که در فایل mail.pdf دارید را نیز اضافه کنید، اگر بخواهید مانند بالا رفتار کنید باید تمام صفحات را جدا کنید، سپس صفحات ۶۰ و ۶۱ و ... و ۸۵ و نیز ۹۰ و ۹۱ و ..و ۹۷ و در نهایت فایل mail.pdf را در دستور خود ذکر کنید و نتیجه را به فایل نهایی منتقل کنید،‌این کار زمان بسیار زیادی را هدر خواهد داد، مسلمــا Sid Steward نویسنده‌ی برنامه برای این سناریو راه حلی دارد:

~$pdftk A=myresume.pdf B=mail.pdf cat A60-85 A90-97 B output forboss.pdf

نتیجه فایل forboss.pdf است که شامل صفحات ۶۰تا۸۵ و ۹۰تا۹۷ فـایل رزومه و نیز تمام فایل mail.pdf است. با کمی دقت و تفکر می‌توانید روش‌های ساده‌تر و کارامدتری برای کارهایتان بیابید.

4.پسورد و مجوزهای کاربر

یکی از ویژگی‌های فایل‌های PDF توانایی رمزگذاری است، شما می‌توانید با تعریف یک عدد رمز برای فایــل PDF جلوی دسترسی افراد غیر مجاز به فایلتان را بگیرید. برای این کار کافیست به روش زیر عمل کنید:

$pdftk resume.pdf output sec_resume.pdf owner_pw 12345 user_pw 1234567890

فایل خروجی یعنی sec_resume.pdf یک فایل رمزگذاری شده است، باز کردن این فایل با هر برنامه‌ای نیاز به وارد کردن کلمه‌ی عبور خواهد داشت. امـا دو رمز عبـور برای چه؟ یــکی Owner یا صاحـب فایل و دیگری برای User یــا کاربر فایل اســت. صــاحب فایــل می‌توانید مجوزهای دیگری کــه در قسمت بعد خواهیم گفت را تغیردهد،‌اما کاربر فقط می‌توانید اعمالی را که به اون اجازه داده شده‌آند را انجام دهد.

هر فایل PDF از سوی نویسنده یا ایجاد کننده‌ی فایل می‌تواند تعدادی مجوز دریافت کند، برای نمونه مجوز کپی محتوا یا CopyContent که به شما اجازه‌ی کپی تصاویر و متن داخل PDF را می‌دهد. مجوز چاپ یا Printing که مجوز چاپ است نیز مجــوز DegradedPrinting که مــجوز چــاپ با کیفیت پــایین است. صاحب یـا Owner می‌تواند یک یا هر کدام از این مجوزها و نیز مجوزهای دیگر را تغییر دهد. به نمونه‌ی زیر توجه کنید:


pdftk resume.pdf output New.pdf owner_pw 12345 user_pw 1234567890 allow printing CopyContects


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

$pdftk A=firs.pdf B=second.pdf input_pw A=12345 cat output firstandsecond.pdf user_pw 1234567890

در نمونه‌ی بالا فایل fisrt.pdf یک فایل رمزگذاری شده با پسورد 12345 است که کا با فایل second.pdfترکیبش نمودیم و در نهایت فایل firstandsecond.pdf را با رمز 1234567890 ایجاد کردیم.


5.سخن نهایی

برنامه های بسیاری رد سیستم عامل‌های مختلف برای کار با PDF ها وجود دارند، برنامه‌هایی مانند Acrobat Reader یا TeX (بخوانید تخ). یادگیری و استفاده از برنامه‌های غیر آزادی مانند Adobe Acrobat چندان سخت نیست اما اگر برای کارهای خود به برنامــه‌ای آزاد و همه فن حریف نیاز دارید می‌توانید TeX را آغاز کنید، این زبان بیشتر شبیه به یک زبان برنامه نویسـی برای ایجاد فایــل‌های PDF است و نــتایج فوق‌العاده‌ای به ارمغان می‌آورد. اما اگر فرصتی برای یادگیری ندارید و یا نمی‌خواهید خود را درگیر مسائل پیچیده کنید، PDFTK یــکی از ابزارهای ساده و کم حجم است که کارهای اصلی را برای شما انجام می‌دهد. مسلما با این ابزار نمی‌توانید محتویات فایل‌های PDF را ایجاد و یا ویرایش کنید، کاری که با TeX به ظرافت و با قدرت بسیاری قابل انجام است.


نویسنده: نوید عبدی <Navid ~ GNUIran.org>

پی نوشت:

[۱].http://www.gnu.org/licenses/gpl.html

[۲]. آدرس سـایت اصـلی: http://www.accesspdf.com/pdftk

بـرای دریـافت برنامه می‌‌توانید به اینجا مراجعه کنید: http://www.accesspdf.com/article.php/20041130153545577

http://en.wikipedia.org/wiki/Image:Schreibtisch.2.JPG


PDF Version

تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.