🔄 آخر تحديث لمحرّك الأداة والأمان: منذ 42 دقيقة
🚀 تحديث: تم تشغيل خادم معالجة محلي فائق السرعة ومتوافق 100% مع زوارنا من بلدك !
أفضل أداة ومحرر دمج ملفات PDF مجاناً أون لاين وبأعلى أمان
دمج PDF | أداة متقدمة تعمل بالكامل في المتصفح
قائمة الملفات المضافة
تفريغ الكل
لا توجد ملفات بعد .. أضف ملفات PDF لبدء الدمج
دمج الملفات الآن
إعادة تعيين
تقنية pdf-lib عالية الأداء • دمج سريع وآمن • يدعم الصفحات الكبيرة
(function(){
// ———- تخزين الملفات ———-
let pdfFilesQueue = []; // كل عنصر: { id, file, name, size }
let nextId = 1;
// مراجع DOM
const dropZone = document.getElementById(‘dropZone’);
const fileInput = document.getElementById(‘fileInput’);
const selectBtn = document.getElementById(‘selectFilesBtn’);
const fileListContainer = document.getElementById(‘fileListContainer’);
const mergeBtn = document.getElementById(‘mergeBtn’);
const resetBtn = document.getElementById(‘resetBtn’);
const clearAllBtn = document.getElementById(‘clearAllBtn’);
const statusContainer = document.getElementById(‘statusContainer’);
// تحديث واجهة القائمة
function renderFileList() {
if (!fileListContainer) return;
if (pdfFilesQueue.length === 0) {
fileListContainer.innerHTML = ‘
لا توجد ملفات .. أضف ملفات PDF لبدء الدمج‘;
return;
}
let html = ”;
pdfFilesQueue.forEach((item, idx) => {
const sizeMB = (item.size / 1024 / 1024).toFixed(2);
const sizeDisplay = sizeMB >= 1 ? `${sizeMB} م.ب` : `${(item.size / 1024).toFixed(0)} ك.ب`;
html += `
${escapeHtml(item.name)}
${sizeDisplay}
`;
});
fileListContainer.innerHTML = html;
// إضافة الأحداث للأزرار الجديدة
document.querySelectorAll(‘.btn-move-up’).forEach(btn => {
btn.addEventListener(‘click’, (e) => {
e.stopPropagation();
const id = parseInt(btn.getAttribute(‘data-id’));
moveFileUp(id);
});
});
document.querySelectorAll(‘.btn-move-down’).forEach(btn => {
btn.addEventListener(‘click’, (e) => {
e.stopPropagation();
const id = parseInt(btn.getAttribute(‘data-id’));
moveFileDown(id);
});
});
document.querySelectorAll(‘.btn-remove’).forEach(btn => {
btn.addEventListener(‘click’, (e) => {
e.stopPropagation();
const id = parseInt(btn.getAttribute(‘data-id’));
removeFileById(id);
});
});
}
// أدوات مساعدة
function escapeHtml(str) {
if(!str) return ”;
return str.replace(/[&]/g, function(m) {
if(m === ‘&’) return ‘&’;
if(m === ”) return ‘>’;
return m;
});
}
function moveFileUp(id) {
const index = pdfFilesQueue.findIndex(f => f.id === id);
if(index > 0) {
[pdfFilesQueue[index-1], pdfFilesQueue[index]] = [pdfFilesQueue[index], pdfFilesQueue[index-1]];
renderFileList();
}
}
function moveFileDown(id) {
const index = pdfFilesQueue.findIndex(f => f.id === id);
if(index !== -1 && index f.id !== id);
renderFileList();
clearStatus(); // عند تغيير القائمة نظف الرسائل السابقة
}
function clearAllFiles() {
pdfFilesQueue = [];
renderFileList();
clearStatus();
}
function clearStatus() {
if(statusContainer) statusContainer.innerHTML = ”;
}
// إضافة ملفات جديدة (مع منع التكرار التقريبي حسب الاسم والحجم لتجربة أفضل)
function addFiles(files) {
if(!files || files.length === 0) return;
let addedCount = 0;
for(let file of files) {
if(file.type !== ‘application/pdf’) {
showTemporaryError(`الملف “${file.name}” ليس بصيغة PDF، تم تخطيه.`);
continue;
}
// منع تكرار متطابق تماماً (نفس الاسم والحجم) لتجنب الإرباك
const isDuplicate = pdfFilesQueue.some(f => f.name === file.name && f.size === file.size);
if(isDuplicate) {
showTemporaryError(`⚠️ الملف “${file.name}” موجود مسبقاً في القائمة، تم تجاهل النسخة المكررة.`);
continue;
}
pdfFilesQueue.push({
id: nextId++,
file: file,
name: file.name,
size: file.size
});
addedCount++;
}
if(addedCount > 0) {
renderFileList();
clearStatus();
}
}
function showTemporaryError(msg) {
const existing = statusContainer.querySelector(‘.temp-error’);
if(existing) existing.remove();
const errDiv = document.createElement(‘div’);
errDiv.className = ‘error-card temp-error’;
errDiv.style.padding = ’15px’;
errDiv.style.marginTop = ’10px’;
errDiv.innerHTML = `
${msg}`;
statusContainer.prepend(errDiv);
setTimeout(() => { if(errDiv && errDiv.remove) errDiv.remove(); }, 3000);
}
// —– عملية الدمج باستخدام pdf-lib (بدون سيرفر) —–
async function startMerge() {
if(pdfFilesQueue.length === 0) {
showTemporaryError(‘لا توجد ملفات للدمج، أضف ملفات PDF أولاً.’);
return;
}
if(pdfFilesQueue.length === 1) {
showTemporaryError(‘تحتاج إلى ملفين على الأقل لعملية الدمج. أضف ملفات إضافية.’);
return;
}
// تعطيل الأزرار أثناء المعالجة
mergeBtn.disabled = true;
resetBtn.disabled = true;
clearAllBtn.disabled = true;
// عرض واجهة التقدم
statusContainer.innerHTML = `
جاري دمج الملفات…
تحميل الملفات ودمج الصفحات، قد يستغرق قليلاً حسب حجم الملفات
يتم المعالجة محلياً بسرعة عالية ✨
`;
const progressText = document.getElementById(‘mergeProgressText’);
try {
// إنشاء مستند PDF جديد
const mergedPdf = await PDFLib.PDFDocument.create();
let totalFiles = pdfFilesQueue.length;
for(let i = 0; i mergedPdf.addPage(page));
}
if(progressText) progressText.innerText = ‘جاري تجهيز الملف النهائي…’;
const mergedPdfBytes = await mergedPdf.save();
const blob = new Blob([mergedPdfBytes], { type: ‘application/pdf’ });
const downloadUrl = URL.createObjectURL(blob);
const timestamp = new Date().toISOString().slice(0,19).replace(/:/g, ‘-‘);
const fileName = `merged_docs_${timestamp}.pdf`;
// عرض نتيجة النجاح
statusContainer.innerHTML = `
✅ تم الدمج بنجاح!
تم دمج ${pdfFilesQueue.length} ملف بإجمالي صفحات متعددة.
تحميل الملف المدمج
دمج ملفات جديدة
`;
const downloadLinkEl = document.getElementById(‘finalDownloadLink’);
if(downloadLinkEl) {
downloadLinkEl.addEventListener(‘click’, (e) => {
// لا حاجة لإبطال، فقط نسمح بالتحميل
});
}
const newMergeBtn = document.getElementById(‘newMergeReset’);
if(newMergeBtn) {
newMergeBtn.addEventListener(‘click’, () => {
// تنظيف الرابط
URL.revokeObjectURL(downloadUrl);
resetAllState();
});
}
} catch (err) {
console.error(err);
statusContainer.innerHTML = `
فشل الدمج
${escapeHtml(err.message || ‘حدث خطأ تقني غير متوقع، تأكد من صحة ملفات PDF’)}
المحاولة مرة أخرى
`;
const tryAgain = document.getElementById(‘tryAgainReset’);
if(tryAgain) tryAgain.addEventListener(‘click’, () => resetAllState());
} finally {
mergeBtn.disabled = false;
resetBtn.disabled = false;
clearAllBtn.disabled = false;
}
}
// قراءة الملف كـ ArrayBuffer باستخدام Promise
function readFileAsArrayBuffer(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => resolve(reader.result);
reader.onerror = () => reject(new Error(`فشل قراءة الملف: ${file.name}`));
reader.readAsArrayBuffer(file);
});
}
function resetAllState() {
pdfFilesQueue = [];
nextId = 1;
renderFileList();
clearStatus();
mergeBtn.disabled = false;
resetBtn.disabled = false;
clearAllBtn.disabled = false;
}
// — أحداث السحب والإفلات —
function setupDragAndDrop() {
dropZone.addEventListener(‘dragover’, (e) => {
e.preventDefault();
dropZone.classList.add(‘drag-over’);
});
dropZone.addEventListener(‘dragleave’, () => {
dropZone.classList.remove(‘drag-over’);
});
dropZone.addEventListener(‘drop’, (e) => {
e.preventDefault();
dropZone.classList.remove(‘drag-over’);
const items = e.dataTransfer.files;
if(items && items.length) {
addFiles(Array.from(items));
}
});
dropZone.addEventListener(‘click’, (e) => {
if(e.target === dropZone || e.target.closest(‘.drop-area’) && !e.target.closest(‘#selectFilesBtn’)) {
fileInput.click();
}
});
}
// تهيئة جميع المستمعين
function init() {
setupDragAndDrop();
selectBtn.addEventListener(‘click’, (e) => {
e.stopPropagation();
fileInput.click();
});
fileInput.addEventListener(‘change’, (e) => {
if(e.target.files && e.target.files.length) {
addFiles(Array.from(e.target.files));
}
fileInput.value = ”;
});
mergeBtn.addEventListener(‘click’, startMerge);
resetBtn.addEventListener(‘click’, resetAllState);
clearAllBtn.addEventListener(‘click’, clearAllFiles);
renderFileList();
}
init();
})();
أسئلة شائعة حول دمج ملفات PDF
هل أداة دمج ملفات PDF آمنة لملفاتي الحساسة؟
نعم، موقع PDF Nets يعالج ملفاتك بالكامل داخل متصفحك محلياً (Client-Side) باستخدام تقنيات الجافا سكريبت المتطورة، ولا يتم رفع مستنداتك إلى أي سيرفر نهائياً لضمان الخصوصية المطلقة.
هل أحتاج لتثبيت برامج لاستخدام دمج ملفات PDF؟
لا، الأداة تعمل 100% عبر الويب على جميع الأنظمة (ويندوز، ماك، آيفون، أندرويد) مباشرة بدون برامج أو إضافات.
أفضل أداة دمج ملفات PDF مجاناً وبدون قيود تتيح لك منصة PDF Nets معالجة مستنداتك عبر أداة دمج ملفات PDF الاحترافية بالكامل أون لاين دون الحاجة لتثبيت برامج خارحية. الأداة آمنة تماماً، سريعة وتدعم العمل على ملفاتك بأعلى دقة لضمان سير أعمالك المكتبية والرقمية بسلاسة.
كيفية تشغيل دمج ملفات PDF مجاناً أون لاين كل ما عليك فعله هو سحب وإفلات مستنداتك داخل المتصفح، وسيقوم محركنا المحلى بمعالجة البيانات فوراً. نضمن لك الحفاظ على التنسيق الأصلي للملف مع توفير خيارات تحميل فورية مباشرة تدعم الاستكمال وسرعات إنترنت متعددة.
💡 معلومات تقنية وأمان المستندات
تتم معالجة ملفاتك محلياً بالكامل داخل متصفحك باستخدام تقنيات الجافا سكريبت المتقدمة و WebAssembly. لا يتم رفع أي مستند إلى خوادمنا، مما يضمن أماناً بنسبة 100% ومتوافق مع معايير حماية البيانات العالمية.
دليل أمان واستخدام الأداة (PDF Nets Documentation)
⚙️ نوع المعالجة: معالجة محليّة مشفرة بالكامل 100% داخل المتصفح.
🛡️ التوافقية والخصوصية: آمن للبيانات الحكومية والمستندات البنكية.
🇬🇧 English Version - Enterprise PDF Engine
Need to process your documents internationally? Access our high-performance English workspace for دمج ملفات PDF . 100% secure, browser-based, client-side WebAssembly rendering. No installation required.
🇪🇸 Versión en Español - Herramientas PDF Profesionales
Procese sus archivos de forma segura. Acceda a la utilidad global para دمج ملفات PDF en español de forma totalmente gratuita y sin registros.
🇩🇪 Deutsche Version - DSGVO-Konforme PDF-Bearbeitung
Sichere und schnelle Bearbeitung Ihrer PDF-Dokumente direkt im Browser. 100% Datenschutz durch lokale Client-Side Verarbeitung für دمج ملفات PDF .
🛠️ PDF Nets Hub: Check our comprehensive master list of the Best Free PDF Tools 2026 to accelerate your workspace productivity.
Großartig! Da die Verarbeitung vollständig auf der Client-Seite erfolgt, ist das Tool absolut DSGVO-konform.