PDFTOSRC(1) General Commands Manual PDFTOSRC(1)

pdftosrc - استخراج فایل منبع یا جریان داده (stream) از فایل PDF

pdftosrc PDF-file [stream-object-number]

اگر تنها PDF-file به‌عنوان آرگومان داده شود، pdftosrc فایل منبع جاسازی‌شده را از نخستین شیء جریان (stream object) یافته‌شده با /Type /SourceFile درون PDF-file استخراج کرده و آن را در فایلی با نام /SourceName (همان‌گونه که در آن شیء جریان PDF تعریف شده است) می‌نویسد (مثال کاربردی زیر را ببینید).

اگر هر دوی PDF-file و stream-object-number به‌عنوان آرگومان داده شوند و stream-object-number عددی مثبت باشد، pdftosrc جریان PDF مربوط به شیء مشخص‌شده با stream-object-number را از PDF-file استخراج و از حالت فشرده خارج می‌کند و آن را در فایلی به نام PDF-file.stream-object-number می‌نویسد، در حالی که پسوند .pdf یا .PDF از نام اصلی PDF-file حذف می‌شود.

یک حالت خاص مربوط به جریان‌های اشیاء XRef است که از نسخهٔ PDF-1.5 به بعد بخشی از استاندارد PDF هستند: اگر stream-object-number برابر با -1 باشد، آنگاه pdftosrc جریان XRef را از فایل PDF از حالت فشرده خارج کرده و آن را در قالب جدول ارجاع متقابل (cross-reference table) خوانا برای انسان، درون فایلی به نام PDF-file.xref می‌نویسد (این جریان‌های XRef را نمی‌توان صرفاً با دادن شماره شیء آن‌ها استخراج کرد).

در هر صورت، اگر فایلی با نام فایل خروجی از قبل وجود داشته باشد بازنویسی خواهد شد.

نکته‌ها

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

تنها جریان شیء نوشته خواهد شد، بدین معنی که دیکشنری آن شیء نوشته نمی‌شود.

دانستن اینکه کدام stream-object-number باید پرس‌وجو شود، نیازمند اطلاعاتی دربارهٔ فایل PDF است که باید از جای دیگری به دست آید؛ برای نمونه، با بررسی فایل PDF توسط یک ویرایشگر یا استخراج محتوای خام آن با یک ابزار کمکی.

قابلیت‌های استخراج جریان در pdftosrc (برای نمونه، دربارهٔ نسخه‌های شناخته‌شدهٔ PDF و انواع فیلترها) از قابلیت‌های نسخهٔ برنامهٔ پایه‌ای xpdf پیروی می‌کند.

در حال حاضر شمارهٔ نسل (generation number) شیء جریان پشتیبانی نمی‌شود. مقدار پیش‌فرض 0 (صفر) در نظر گرفته می‌شود.

عبارت stream-object-number ارتباطی با “جریان‌های اشیاء” (object streams) معرفی‌شده در Adobe PDF Reference، ویرایش پنجم، نسخهٔ 1.6 ندارد.

یک فایل خارجی، مثلاً myfile.zip، می‌تواند با استفاده از دستورهای بنیادین (primitives) برنامهٔ pdfTeX در فایلی به نام foo.pdf جاسازی شود، همان‌طور که در مثال زیر نشان داده شده است:

\immediate\pdfobj
stream attr {/Type /SourceFile /SourceName (myfile.zip)}
file{myfile.zip} \pdfcatalog{/SourceObject \the\pdflastobj\space 0 R}
سپس myfile.zip می‌تواند با فراخوانی “pdftosrc foo.pdf” از foo.pdf استخراج شود.

هیچ‌کدام.

هیچ‌کدام.

در صورت موفقیت، کد خروج pdftosrc برابر 0 و در غیر این صورت 1 است.

همهٔ پیام‌ها به stderr فرستاده می‌شوند. هنگام فراخوانی برنامه، pdftosrc شماره نسخهٔ کنونی برنامهٔ xpdf را اعلام می‌کند که pdftosrc بر پایهٔ آن ساخته شده است، هرچند که به‌عنوان بخشی از pdfTeX نگهداری می‌شود.

هنگامی که pdftosrc در نوشتن فایل خروجی موفق باشد، یکی از پیام‌های زیر صادر خواهد شد:

Source file extracted to source-file-name
یا
Stream object extracted to PDF-file.stream-object-number
یا
Cross-reference table extracted to PDF-file.xref

هنگامی که شیء مشخص‌شده با stream-object-number شامل یک جریان نباشد، pdftosrc پیام خطای زیر را صادر می‌کند:

Not a Stream object

هنگامی که PDF-file باز نشود، پیام خطا چنین است:

Error: Couldn't open file 'PDF-file'.

هنگامی که pdftosrc با یک فایل PDF نامعتبر روبرو شود، پیام خطا (در چند سطر) چنین خواهد بود:

Error: May not be a PDF file (continuing anyway)
(سطرهای بیشتر)
Invalid PDF file

پیام‌های خطای دیگری نیز از سوی pdftosrc برای انواع مختلف فایل‌های PDF خراب وجود دارد.

همهٔ فایل‌های منبع جاسازی‌شده استخراج نخواهند شد، بلکه تنها نخستین مورد یافت‌شده استخراج می‌شود.

pdfimages(1), pdftex(1), pdftotext(1), xpdf(1).

pdftosrc بخشی از pdfTeX است و توسط Hàn The Thành، با استفاده از قابلیت‌های xpdf نوشته‌شده توسط Derek Noonburg توسعه یافته است. این صفحهٔ راهنما توسط Hartmut Henkel نوشته شده است.

فهرست گفتگوی عمومی برای pdftosrc: https://lists.tug.org/pdftex

16 January 2026 Web2C 2026