📝 UYAP Dönüştürücü

UDF'i Word'e
dönüştür

UYAP'tan indirilen UDF belgelerini düzenlenebilir Word (DOCX) dosyasına çevir. Paragraf hizalamaları ve kalın yazılar korunur.

Hızlı — Anında dönüştürme
🔒 Güvenli — Tarayıcıda işlenir
📦 Toplu — Birden fazla dosya
🧾

UDF dosyalarını buraya bırak

veya bilgisayarından seç

Desteklenen format: .udf (UYAP) — Maks. 20 MB / dosya

🛡️
Tarayıcıda işlenir: Dosyalarınız sunucumuza gönderilmez. Dönüştürme tamamen cihazınızda gerçekleşir.

UDF'i neden Word'e çeviririm?

UYAP'tan indirilen UDF dosyaları yalnızca UYAP uygulamasında açılabilir. Belgeyi düzenlemek, metni değiştirmek veya içeriği bir başka belgeye aktarmak istiyorsanız Word formatına çevirmeniz gerekir.

Dönüştürülen DOCX dosyası Microsoft Word, LibreOffice ve Google Docs ile doğrudan açılır ve düzenlenebilir.

3 adımda hazır

1
UDF dosyalarını yükle

Sürükle-bırak veya dosya seç ile UYAP'tan indirilen UDF dosyalarını ekle.

2
Kağıt boyutunu seç

A4 veya Letter seçimi yapabilirsin.

3
İndir

DOCX dosyasını tek tıkla indir. Birden fazla dosya ZIP olarak gelir.

Benzer dönüştürücüler

const zip = await JSZip.loadAsync(file); const xmlStr = await zip.file('content.xml').async('string'); const parser = new DOMParser(); const doc = parser.parseFromString(xmlStr, 'application/xml'); const rawText = doc.querySelector('content').textContent; const pf = doc.querySelector('pageFormat'); const marginTwip = { left: Math.round((parseFloat(pf?.getAttribute('leftMargin') || 70.875)) * 20), right: Math.round((parseFloat(pf?.getAttribute('rightMargin') || 70.875)) * 20), top: Math.round((parseFloat(pf?.getAttribute('topMargin') || 70.875)) * 20), bottom: Math.round((parseFloat(pf?.getAttribute('bottomMargin') || 70.875)) * 20), }; const stylesMap = {}; doc.querySelectorAll('styles > style').forEach(s => { stylesMap[s.getAttribute('name')] = { bold: s.getAttribute('bold') === 'true', size: parseFloat(s.getAttribute('size') || 12), family: s.getAttribute('family') || 'Times New Roman', }; }); const defaultStyle = stylesMap['hvl-default'] || { bold: false, size: 12, family: 'Times New Roman' }; const paragraphs = []; doc.querySelectorAll('elements > paragraph').forEach(p => { const align = parseInt(p.getAttribute('Alignment') || '0'); const spans = []; p.querySelectorAll('content').forEach(c => { const start = parseInt(c.getAttribute('startOffset')); const len = parseInt(c.getAttribute('length')); const res = c.getAttribute('resolver'); const style = (res && stylesMap[res]) ? stylesMap[res] : defaultStyle; spans.push({ text: rawText.substring(start, start + len), style }); }); paragraphs.push({ align, spans }); }); return { paragraphs, marginTwip, defaultStyle }; } /* ── UDF → DOCX ───────────────────────────────── */ async function convertUdfToDocx(file, paper) { const parsed = await parseUdf(file); const blob = buildDocx(parsed, paper); const name = file.name.replace(/\.udf$/i, '.docx'); return { blob, name }; } function buildDocx(parsed, paper) { /* * Minimal DOCX yapısı: Open XML (OOXML) formatında el ile oluşturulur. * DOCX = ZIP içinde: * [Content_Types].xml * _rels/.rels * word/document.xml * word/_rels/document.xml.rels * word/settings.xml */ const xmlDecl = '<' + '?xml version="1.0" encoding="UTF-8" standalone="yes"?' + '>'; /* Sayfa boyutu (twip: 1 inç = 1440 twip) */ const pageSz = paper === 'letter' ? { w: 12240, h: 15840 } /* 8.5 × 11 inç */ : { w: 11906, h: 16838 }; /* A4 */ const { marginTwip, defaultStyle } = parsed; /* Hizalama kodu */ const alignMap = ['left','center','right','both']; /* Paragrafları XML'e çevir */ const paraXml = parsed.paragraphs.map(para => { const jc = alignMap[para.align] || 'left'; const pStyle = ``; if (!para.spans.length || !para.spans.map(s=>s.text).join('').trim()) { return ` `; } const runs = para.spans.map(span => { const escaped = span.text .replace(/&/g,'&') .replace(//g,'>') .replace(/"/g,'"'); const bold = span.style.bold ? '' : ''; const sz = Math.round(span.style.size * 2); /* half-points */ const family = xmlEsc(span.style.family || 'Times New Roman'); return `${bold}${escaped}`; }).join(''); return `${pStyle}${runs}`; }).join('\n'); const documentXml = xmlDecl + ` ${paraXml} `; const contentTypes = xmlDecl + ` `; const relsMain = xmlDecl + ` `; const relsDoc = xmlDecl + ` `; const settingsXml = xmlDecl + ` `; const zip = new JSZip(); zip.file('[Content_Types].xml', contentTypes); zip.file('_rels/.rels', relsMain); zip.file('word/document.xml', documentXml); zip.file('word/_rels/document.xml.rels', relsDoc); zip.file('word/settings.xml', settingsXml); return zip.generateAsync({ type: 'blob', mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); } /* ── Yardımcı ───────────────────────────────── */ function xmlEsc(s) { return String(s).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function downloadBlob(blob, name) { Promise.resolve(blob).then(b => { const url = URL.createObjectURL(b); const a = document.createElement('a'); a.href = url; a.download = name; document.body.appendChild(a); a.click(); a.remove(); setTimeout(() => URL.revokeObjectURL(url), 1000); }); } function setStatus(i, cls, text) { const el = document.querySelector(`#fi-${i} .file-item-status`); if (!el) return; el.className = `file-item-status status-${cls}`; el.textContent = text; } function formatSize(b) { if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; } function escHtml(s) { return String(s).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,'''); }