PDFSub
قیمت‌گذاریAPIMergeCompressEditE-Signصورت‌حساب‌های بانکیبلاگ
بازگشت به بلاگ
راهنمافرمت PDFاستانداردهای PDFPDF/APDF/XPDF/UAساختار

فرمت فایل PDF تشریح شد: ساختار، لایه‌ها و استانداردها

۲۶ اردیبهشت ۱۴۰۵
T
Todd Lahman
Founder, PDFSub

واقعاً درون یک PDF چیست؟ نمودار و واژه‌نامه با برچسب که چهار بخش فیزیکی (هدر، بدنه، xref، تریلر)، شش لایه محتوا (متن، تصاویر، فونت‌ها، حاشیه‌نویسی‌ها، وکتورها، امضاها)، فراداده و استانداردهای ISO (PDF/A، PDF/X، PDF/UA، PDF/E، PDF/VT) ساخته شده بر روی آن را پوشش می‌دهد.


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

این راهنما یک مرجع برچسب‌گذاری شده است: ساختار فیزیکی فایل، لایه‌های محتوایی که بدنه نگه می‌دارد، فراداده‌ای که همه چیز را احاطه کرده و استانداردها (PDF/A، PDF/X، PDF/UA، PDF/E، PDF/VT) که آن را برای موارد استفاده خاص محدود می‌کنند.

Anatomy of a PDF file: header, body objects, cross-reference table, trailer, content layers, and metadata

می‌خواهید از این نمودار در وبلاگ خود استفاده کنید؟ کد جاسازی زیر را کپی کنید:


چهار بخش فیزیکی

هر PDF روی دیسک، ساختار چهار قسمتی یکسانی دارد، به این ترتیب:

۱. هدر

خط اول فایل. همیشه با %PDF- و سپس شماره نسخه شروع می‌شود:

%PDF-1.7

نسخه‌ها از 1.0 (منتشر شده در ۱۹۹۳) تا 2.0 (منتشر شده در ۲۰۱۷، فعلی) متغیر هستند. هدر با یک خط کامنت حاوی بایت‌های باینری دنبال می‌شود که به ابزارهای انتقال مانند FTP سیگنال می‌دهد که این یک فایل باینری است.

۲. بدنه - اشیاء غیرمستقیم

بخش عمده فایل. هر صفحه، فونت، تصویر و فیلد فرم یک شیء غیرمستقیم شماره‌گذاری شده است:

1 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
 
2 0 obj
<< /Type /Pages /Kids [3 0 R] /Count 1 >>
endobj
 
3 0 obj
<< /Type /Page /Parent 2 0 R /Contents 4 0 R /Resources << ... >> >>
endobj

هر شیء دارای یک شناسه (شماره قبل از 0 obj)، یک شماره نسل (0، که برای به‌روزرسانی‌های افزایشی استفاده می‌شود) و یک محموله بین << و >> برای دیکشنری‌ها یا stream و endstream برای جریان‌های باینری (داده‌های تصویر، داده‌های فونت، محتوای فشرده) است.

اشیاء با سینتکس <id> <gen> R به یکدیگر ارجاع می‌دهند (مثلاً 3 0 R به معنی "شیء ۳، نسل ۰" است). اینگونه است که یک صفحه به فونت مورد استفاده خود ارجاع می‌دهد، یا یک کاتالوگ به ریشه درخت صفحات ارجاع می‌دهد.

۳. جدول ارجاع متقابل (xref)

یک جدول جستجوی آفست بایت. برای هر شیء در بدنه، xref موقعیت بایت مطلق آن را در فایل ثبت می‌کند:

xref
0 6
0000000000 65535 f
0000000017 00000 n
0000000089 00000 n
0000000172 00000 n
0000000299 00000 n
0000000453 00000 n

این همان چیزی است که PDF ها را قابل دسترسی تصادفی می‌کند. یک نمایشگر می‌تواند xref را بخواند، مستقیماً به آفست بایت شیء ۳ بپرد و آن صفحه را بدون تجزیه و تحلیل بقیه فایل رندر کند. دلیل اینکه PDF های یک فصل به صورت فوری باز می‌شوند، حتی زمانی که فایل منبع ۵۰۰ صفحه است.

۴. تریلر

آخرین بخش. به تجزیه‌کننده می‌گوید که کجا xref را پیدا کند و کدام شیء ریشه است:

trailer
<< /Size 6 /Root 1 0 R /Info 7 0 R >>
startxref
1893
%%EOF

مقدار startxref آفست بایت جدول xref است. نشانگر %%EOF پایان واقعی فایل است. تریلرها همان چیزی هستند که به‌روزرسانی‌های افزایشی را ممکن می‌سازند: افزودن یک xref + تریلر جدید در انتها به شما امکان می‌دهد اشیاء را بدون بازنویسی کل فایل اضافه کنید.


شش لایه محتوا

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

۱. متن

دستورات موقعیت گلیف و ارجاعات فونت، نه رشته‌های متنی. یک PDF دستوراتی مانند "گلیف ۴۲ را از فونت F3 در موقعیت (۱۲۰۰، ۵۴۰) رسم کن" را ذخیره می‌کند، نه "حرف A را اینجا رسم کن". به همین دلیل متن قابل انتخاب و جستجو است: نمایشگر با استفاده از نگاشت ToUnicode (یا CMap برای فونت‌های CJK) شناسه گلیف را به نقاط کد یونیکد نگاشت معکوس می‌کند.

وقتی متنی فاقد نگاشت ToUnicode باشد، مشکل کلاسیک "PDF با متن قابل انتخاب که هنگام کپی شدن خراب می‌شود" را تجربه می‌کنید. متن قابل مشاهده است، اما نگاشت گلیف به یونیکد شکسته یا غایب است.

۲. تصاویر

به صورت جریان‌های جاسازی شده در یکی از چندین فرمت ذخیره می‌شوند:

  • JPEG (فیلتر DCTDecode): عکس‌ها، رایج‌ترین
  • JPEG2000 (JPXDecode): فشرده‌سازی بالاتر، کمتر رایج
  • معادل PNG (فیلتر FlateDecode + Predictor): اسکرین‌شات‌ها، خطوط گرافیکی
  • CCITT Group 4 (CCITTFaxDecode): متن اسکن شده سیاه و سفید، در اسکن‌های آرشیوی استفاده می‌شود
  • JBIG2 (JBIG2Decode): تصاویر دوبعدی، رایج در اسناد OCR شده

تصاویر می‌توانند بدون تأثیر بر محتوای دیگر، نمونه‌برداری مجدد، فشرده‌سازی مجدد یا جایگزین شوند.

۳. فونت‌ها

به صورت برنامه‌های کامل فونت، زیرمجموعه (فقط گلیف‌های استفاده شده گنجانده شده‌اند) یا با نام ارجاع داده شده (باید روی سیستم نمایشگر نصب شده باشد) جاسازی می‌شوند. زیرمجموعه‌سازی پیش‌فرض است - اندازه فایل را به شدت کاهش می‌دهد. فرمت‌های فونت پشتیبانی شده: Type1، TrueType، OpenType و CIDFont (برای CJK).

هنگامی که یک فونت ارجاع داده می‌شود اما جاسازی نشده و روی سیستم نمایشگر نصب نشده است، نمایشگر یک فونت مشابه را جایگزین می‌کند - که معمولاً ظاهر اشتباهی دارد. PDF/A برای جلوگیری از این امر نیاز به جاسازی تمام فونت‌ها دارد.

۴. حاشیه‌نویسی‌ها

برجسته‌سازی‌ها، نظرات، پیوندها، مُهرها، واترمارک‌ها و فیلدهای فرم همگی حاشیه‌نویسی هستند. آن‌ها بر روی محتوای صفحه لایه‌بندی می‌شوند و می‌توانند بدون تغییر صفحه زیرین اضافه، ویرایش یا حذف شوند.

فیلدهای فرم یک مورد خاص هستند: یک حاشیه‌نویسی ویجت تعاملی (بخش قابل مشاهده) به علاوه یک دیکشنری فیلد (بخش داده). هنگام پر کردن فرم و ذخیره، فقط دیکشنری‌های فیلد تغییر می‌کنند - خود صفحه دست نخورده باقی می‌ماند.

۵. گرافیک وکتور

خطوط، اشکال، منحنی‌ها و مسیرهایی که با عملگرهای شبیه PostScript (moveto, lineto, curveto) رسم شده‌اند. بدون افت کیفیت به صورت نامحدود مقیاس‌پذیر هستند. بیشتر خروجی‌های CAD، نمودارها و دیاگرام‌ها در PDF ها گرافیک وکتور هستند.

۶. امضاهای دیجیتال

امضاهای مبتنی بر PKI که به محدوده‌های بایت فایل گره خورده‌اند. دیکشنری امضا مشخص می‌کند "بایت‌های ۰ تا ۱۲۵۴۷ و ۱۴۲۰۰ تا پایان فایل امضا شده‌اند" - یک محدوده کوچک در وسط برای خود مقدار امضا رزرو شده است. هر تغییری در محدوده‌های بایت امضا شده، امضا را نامعتبر می‌کند، که اینگونه PDF دستکاری پس از امضا را تشخیص می‌دهد.

برخی PDF ها چندین امضا دارند که به صورت به‌روزرسانی‌های افزایشی لایه‌بندی شده‌اند - هر امضاکننده فایل را همانطور که در زمان دریافت آن وجود داشته امضا می‌کند و زنجیره را حفظ می‌کند.


فراداده: دو سیستم موازی

PDF دو سیستم فراداده دارد که اغلب با هم اختلاف دارند:

دیکشنری استاندارد /Info

در تریلر ذخیره می‌شود. فیلدها: Title، Author، Subject، Keywords، Creator (برنامه‌ای که کاربر سند را در آن ایجاد کرده است)، Producer (برنامه‌ای که PDF را تولید کرده است)، CreationDate، ModDate. رشته‌های متنی ساده، خواندن آن‌ها با هر ابزار PDF آسان است.

جریان فراداده XMP

یک جریان XML جداگانه (Adobe XMP، مبتنی بر RDF/XML) که از طرح‌واره‌های غنی‌تری پشتیبانی می‌کند: Dublin Core، IPTC، طرح‌واره‌های سفارشی خاص دامنه (پروفایل‌های رنگی، ثبت حق چاپ، نسخه‌بندی دست‌نوشته).

تولیدکنندگان مدرن PDF به هر دو می‌نویسند. PDF های قدیمی فقط /Info دارند. برخی PDF ها /Info قدیمی از نسخه قبلی و XMP دقیق از ویرایش اخیر دارند - یا بالعکس. هنگام حسابرسی PDF ها برای انطباق یا پزشکی قانونی، هر دو را بررسی کنید.


استانداردهای ISO ساخته شده بر روی PDF

مشخصات پایه PDF، ISO 32000 است. چندین استاندارد مشتق شده، PDF را برای موارد استفاده خاص محدود می‌کنند:

استاندارد استفاده محدودیت‌ها
PDF/A بایگانی طولانی مدت تمام فونت‌ها جاسازی شده، بدون جاوا اسکریپت، بدون صدا/تصویر، فضاهای رنگی مستقل از دستگاه. سطوح انطباق: PDF/A-1، A-2، A-3 (اجازه پیوست فایل را می‌دهد)
PDF/X تولید چاپ رنگ CMYK، فونت‌ها و پروفایل‌های رنگی جاسازی شده، بدون شفافیت (PDF/X-1a) یا شفافیت کنترل شده (PDF/X-4)
PDF/UA دسترسی‌پذیری درخت ساختار تگ‌گذاری شده، فراداده زبان، متن جایگزین برای تصاویر، ترتیب خواندن منطقی
PDF/E مهندسی مدل‌های سه‌بعدی (فرمت‌های U3D، PRC)، فراداده خاص CAD
PDF/VT چاپ تراکنشی متغیر بهینه‌سازی شده برای نامه‌های شخصی‌سازی شده با حجم بالا

یک PDF می‌تواند همزمان با چندین استاندارد مطابقت داشته باشد - PDF/A-2u (بایگانی با نگاشت یونیکد) به علاوه PDF/UA (دسترسی‌پذیری) برای بایگانی‌های دولتی و حقوقی رایج است.


PDF های خطی (بهینه‌سازی شده برای وب)

یک PDF "خطی" یا "بهینه‌سازی شده برای وب"، بدنه را مجدداً مرتب می‌کند تا اشیاء صفحه اول در اوایل فایل ظاهر شوند. یک نمایشگر وب می‌تواند صفحه ۱ را پس از دانلود فقط حدود ۵۰ کیلوبایت اول، بدون انتظار برای کل فایل، رندر کند. تریلر در جلو تکرار می‌شود، به علاوه یک جدول راهنما که به نمایشگر می‌گوید هر صفحه از کجا شروع می‌شود.

بیشتر تولیدکنندگان مدرن PDF، خطی‌سازی را به عنوان گزینه "ذخیره برای وب" پشتیبانی می‌کنند. این فرمت ۲-۵٪ به اندازه فایل اضافه می‌کند در ازای رندر سریع صفحه اول در اتصالات کند.


رمزگذاری و مجوزها

PDF ها را می‌توان با رمز عبور (یا گواهی‌نامه) رمزگذاری کرد و مجوزهای دانه‌ریز را اعطا کرد: چاپ، کپی متن، ویرایش، پر کردن فرم‌ها، استخراج برای دسترسی‌پذیری. رمزگذاری در دیکشنری /Encrypt تریلر ذخیره می‌شود.

قدرت رمزگذاری تکامل یافته است: RC4 40 بیتی (PDF های اولیه، امروزه به راحتی شکسته می‌شوند)، RC4 128 بیتی (هنوز ضعیف)، AES-128، AES-256. پیاده‌سازی اولیه RC4 آکروبات در سال ۲۰۰۱ به صورت عمومی شکسته شد؛ رمزگذاری مدرن PDF (AES-256، PDF 2.0) هنگام استفاده با رمزهای عبور قوی، معتبر است.

توجه: "مجوزها" مشورتی هستند. نمایشی که به آن‌ها احترام می‌گذارد، آن‌ها را اجرا خواهد کرد. نمایشی که آن‌ها را نادیده می‌گیرد (یا ابزاری که رمزگذاری را حذف می‌کند) این کار را نمی‌کند.


نحوه خواندن PDF ها توسط PDFSub

PDFSub با استفاده از اتصال PDFium در Rust (همان موتوری که نمایشگر PDF کرومیوم را پشتیبانی می‌کند) به علاوه PaddleOCR برای اسناد اسکن شده، PDF ها را پردازش می‌کند. برای جزئیات کامل معماری و مقایسه با ابزارهای مبتنی بر ابر، به امنیت PDF مرورگر در مقابل ابر مراجعه کنید.

برای تبدیل PDF ها به فرمت‌های دیگر ضمن حفظ ساختار شرح داده شده در بالا:

  • PDF به اکسل - متن + جداول را استخراج می‌کند، مختصات را حفظ می‌کند
  • OCR PDF - یک لایه متن قابل جستجو به PDF های اسکن شده اضافه می‌کند
  • PDF به ورد - متن را به پاراگراف‌های قابل ویرایش بازمی‌گرداند
  • فشرده‌سازی PDF - تصاویر را نمونه‌برداری مجدد می‌کند، فونت‌ها را زیرمجموعه می‌کند

برای گردش کارهای بایگانی به طور خاص، به نحوه تبدیل PDF به PDF/A مراجعه کنید.


مطالعه بیشتر

  • ISO 32000-2 (مشخصات PDF 2.0) - مرجع معتبر، پولی
  • آرشیو مرجع PDF ادوبی - مرجع رایگان برای PDF 1.7
  • انجمن PDF - گروه کاری صنعت، مقالات رایگان و فایل‌های آزمون انطباق

برای موضوعات خاص PDF: راهنمای انطباق PDF برای وکلا، راهنمای تبدیل PDF/A.

بازگشت به بلاگ

سوال دارید؟ با ما تماس بگیرید

PDFSub

تمام ابزارهای PDF و اسناد مورد نیاز شما در یک مکان. سریع، امن و خصوصی.

مطابق با GDPRمطابق با CCPAآماده برای SOC 2
با قدرت PDFSub Engine

ابزارهای PDF

  • ادغام PDF
  • تقسیم PDF
  • تغییر ترتیب صفحات
  • صفحات در هر برگه
  • نمایشگر PDF
  • استخراج صفحات
  • استخراج تصاویر
  • جایگزینی تصویر
  • چرخش PDF
  • حذف صفحات
  • افزودن واترمارک
  • ویرایشگر PDF
  • مهر زدن PDF
  • پرکننده فرم PDF
  • برش صفحات
  • تغییر اندازه صفحه
  • افزودن شماره صفحه
  • سرصفحه‌ها و پاصفحه‌ها
  • فشرده‌سازی PDF
  • قابل جستجو کردن
  • Clean Scanned PDF
  • Photo to Document
  • Auto-Crop PDF
  • تعمیر PDF
  • ویرایش فراداده
  • حذف فراداده
  • PDF به Word
  • Word به PDF
  • PDF to Excel
  • Excel به PDF
  • PDF به PowerPoint
  • PowerPoint به PDF
  • HTML به PDF
  • HTML to Text
  • HTML to Markdown
  • PDF به HTML
  • EPUB به PDF
  • PDF به EPUB
  • متن به PDF
  • RTF به PDF
  • PDF به RTF
  • PDF به متن
  • ODT به PDF
  • PDF به ODT
  • ODS به PDF
  • PDF به ODS
  • ODP به PDF
  • PDF به ODP
  • تبدیل PDF/A
  • ایجاد PDF
  • تبدیل دسته‌ای
  • PDF به تصویر
  • تصویر به PDF
  • PDF به PNG
  • PNG به PDF
  • HTML to PNG
  • HTML to JPEG
  • HTML to WEBP
  • SVG به PDF
  • PDF به SVG
  • TIFF به PDF
  • WEBP به PDF
  • HEIC به تصویر
  • WEBP به JPG
  • WEBP به PNG
  • Image Converter
  • ODG به PDF
  • محافظت با رمز عبور
  • باز کردن قفل PDF
  • حذف اطلاعات حساس PDF
  • امضای الکترونیکی PDF
  • Share Document
  • مقایسه PDFها
  • استخراج جداول
  • مبدل صورتحساب بانکی
  • استخراج کننده فاکتور
  • اسکنر رسید
  • تحلیلگر گزارش مالی
  • OCR - استخراج متن
  • تبدیل دست‌نویس
  • خلاصه‌سازی PDF
  • ترجمه PDF
  • چت با PDF
  • استخراج داده
  • استودیو طراحی

محصول

  • همه ابزارها
  • ویژگی‌ها
  • صورت‌حساب‌های بانکی
  • API
  • قیمت‌گذاری
  • سوالات متداول
  • بلاگ

پشتیبانی

  • درباره ما
  • مرکز راهنمایی
  • تماس با ما
  • سوالات متداول

حقوقی

  • سیاست حفظ حریم خصوصی
  • شرایط استفاده
  • سیاست کوکی

© 2026 تمامی حقوق برای PDFSub محفوظ است.

ساخته شده در آمریکا با برای مردم سراسر جهان