طريقة الاستخدام
- أفلت ملف PDF في منطقة الإفلات أو انقر لاختيار ملف (حتى 100 ميغابايت).
- انظر إلى المعاينة للتأكد من أنه المستند الصحيح.
- اختر Base64 الخام لطلبات API، أو Data URI لتضمين ملف PDF في صفحة ويب.
- انسخ النتيجة أو نزّلها كملف .txt.
إرسال ملفات PDF عبر واجهات JSON API
لا يتضمن JSON نوعًا للبيانات الثنائية، لذا تستقبل واجهات REST API التي تتعامل مع المستندات هذه المستندات عادةً كسلسلة Base64. فمنصات التوقيع الإلكتروني وأنظمة الفوترة والفوترة الإلكترونية وخدمات الطباعة والبريد ومحركات OCR وأرشيفات المستندات تقبل ملفات PDF بهذه الطريقة في الغالب، في حقل مثل content أو file أو documentBase64، مع اسم الملف في حقل منفصل. وتعيد بعض الخدمات ملفات PDF بالطريقة نفسها؛ وتحوّلها أداة تحويل Base64 إلى PDF إلى ملفات من جديد.
أرسل Base64 الخام دون فواصل أسطر ما لم تنص وثائق واجهة API على غير ذلك، إذ ترفض كثير من الواجهات قيمة لا تزال تحمل البادئة data:application/pdf;base64,. وضع حدود حجم الطلبات في حسبانك أيضًا: فملف PDF بحجم 7.5 ميغابايت يصبح نحو 10 ميغابايت من Base64.
التعرّف على ملف PDF بترميز Base64
يبدأ ملف PDF بالأحرف %PDF- يليها رقم الإصدار. وعند ترميز هذه البايتات بـ Base64، تنتج دائمًا سلسلة تبدأ بـ JVBERi0. فالسلسلة الطويلة التي تبدأ بـ JVBER في استجابة API أو عمود في قاعدة بيانات أو ملف سجل هي على الأرجح ملف PDF. ويصلح الفحص نفسه قبل إرسال البيانات: فإذا بدأت سلسلتك بأي شيء آخر، فربما رمّزت بيانات خاطئة، أو رمّزتها مرتين.
تضمين ملف PDF في HTML
يضع data URI ملف PDF بالكامل داخل صفحة HTML، دون ملف منفصل تحتاج إلى استضافته:
<embed src="data:application/pdf;base64,JVBERi0..." type="application/pdf" width="100%" height="600">
<iframe src="data:application/pdf;base64,JVBERi0..." width="100%" height="600"></iframe>
يعمل هذا في متصفحات سطح المكتب التي تتضمن عارض PDF مدمجًا، لكن له حدودًا. فكثير من متصفحات الهواتف لا تعرض ملفات PDF داخل الصفحة إطلاقًا. كما يمنع Chrome وبعض المتصفحات الأخرى الصفحة من توجيه علامة التبويب بأكملها إلى عنوان data:، لذا فإن الرابط أو استدعاء window.open الذي يشير إلى عنوان data:application/pdf قد يفتح علامة تبويب فارغة أو لا يفعل شيئًا. ولفتح ملف PDF في علامة تبويب جديدة من JavaScript، حوّل Base64 إلى Blob URL بدلًا من ذلك. أما المستندات التي يزيد حجمها على بضعة ميغابايتات، فالأفضل لها عادةً عنوان URL عادي للملف.
ترميز ملف PDF في الشيفرة البرمجية
# Python: إنشاء متن طلب JSON
import base64, json
from pathlib import Path
pdf_b64 = base64.b64encode(Path('invoice.pdf').read_bytes()).decode('ascii')
body = json.dumps({'filename': 'invoice.pdf', 'content': pdf_b64})
// المتصفح: يأتي file من عنصر <input type="file">
const reader = new FileReader();
reader.onload = () => {
const pdfBase64 = reader.result.split(',')[1]; // إزالة بادئة data URI
};
reader.readAsDataURL(file);
الأسئلة الشائعة
لماذا تبدأ سلسلة Base64 لملف PDF بـ JVBERi0؟
%PDF-، وهي الترويسة الموجودة في بداية كل ملف PDF. ورؤيتها تؤكد أن السلسلة تحتوي على ملف PDF.هل يُرفع ملف PDF عند تحويله؟
لا. يُقرأ الملف ويُرمَّز وتُعرض معاينته محليًا في متصفحك. ولا تغادر العقود والفواتير وغيرها من المستندات السرية جهازك أبدًا.
هل يغيّر الترميز ملف PDF أو يضغطه؟
لا. يُفك ترميز سلسلة Base64 إلى البايتات نفسها تمامًا، لذا تبقى الحماية بكلمة مرور والتوقيعات الرقمية وحقول النماذج والبيانات الوصفية كما هي. ويكون النص أكبر من ملف PDF بنحو 33%؛ ولتقليل الحجم، اضغط ملف PDF قبل ترميزه.
هل ينبغي تفعيل التفاف الأسطر؟
فقط عندما تتطلبه الصيغة، كأن تنشئ رسالة بريد MIME يدويًا، حيث يقتصر طول أسطر المرفقات على 76 حرفًا. أما واجهات JSON API وعناوين data URI في HTML فتتوقع سلسلة واحدة متصلة.
ما الحد الأقصى لحجم ملف PDF؟
تقبل الأداة ملفات يصل حجمها إلى 100 ميغابايت. أما في واجهات API فيكون الحد العملي عادةً أقل، لذا تحقّق من الحد الأقصى لحجم الطلب وتذكّر أن Base64 يضيف نحو الثلث. وقد يكون عرض المخرجات الطويلة جدًا على الشاشة بطيئًا، فاستخدم «تنزيل» مع المستندات الكبيرة.