Арабские заголовки в JSPDF Autotable появляются в виде искаженного или поврежденного текстаJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Арабские заголовки в JSPDF Autotable появляются в виде искаженного или поврежденного текста

Сообщение Anonymous »

Я использую jspdf с jspdf-autotable, чтобы генерировать отчет о правом к леле (RTL) PDF на арабском языке.
Все работает отлично, но заголовки кажутся искаженными /испорченными текстами вместо правильных арабских персонажей. < /p>
const handlePDFExportArabic = () => {
const doc = new jsPDF({ orientation: "landscape" });

// ✅ Add Arabic Font
doc.addFileToVFS("Amiri-Regular.ttf", arabicFont);
doc.addFont("Amiri-Regular.ttf", "Amiri", "normal");
doc.setFont("Amiri");

// ✅ Set Right-to-Left (RTL)
doc.setLanguage("ar");

// ✅ Title in Arabic (Centered)
doc.text("📄 قائمة عملاء الائتمان", 287, 16, {
align: "right",
lang: "ar",
});

// ✅ Create AutoTable with Arabic Headers
autoTable(doc, {
startY: 20,
head: [
[
"رقم الطلب", // Request ID
"رقم الحساب", // Account Number
"اسم العميل", // Customer Name
"الفرع", // Branch
"الحد الائتماني", // Credit Limit
"رقم السجل التجاري", // CR Number
"حالة السجل التجاري", // CR Status
"الحالة", // Status
],
],
body: rowData.map((row) => [
row.RequestId || "غير متوفر",
row.AccountNumber || "غير متوفر",
row.customerInfo?.[0]?.commercialNameArabic || "غير متوفر",
row.branchIdArabic || "غير متوفر",
row.customerInfo?.[0]?.capital
? row.customerInfo[0].capital
.toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + " ريال"
: "غير متوفر",
row.customerInfo?.[0]?.crNumber || "غير متوفر",
new Date(row.customerInfo?.[0]?.crEndDateGregorian) > new Date()
? "✔️ ساري"
: "❌ منتهي",
row.Status.includes("Waiting")
? "⏳ قيد المراجعة"
: row.Status.includes("Approved")
? "✅ مقبول"
: row.Status.includes("Rejected")
? "❌ مرفوض"
: "غير متوفر",
]),
theme: "grid",
margin: { top: 30 },
styles: {
font: "Amiri",
fontSize: 10,
useUnicode: true,
halign: "right",
},
headStyles: { fontStyle: "bold", font: "Amiri", halign: "right", useUnicode: true },

columnStyles: {
0: { cellWidth: "wrap" }, // Request ID
1: { cellWidth: "wrap" }, // Account Number
2: { cellWidth: "wrap" }, // Customer Name (wider)
3: { cellWidth: 20 }, // Branch
4: { cellWidth: "wrap" }, // Credit Limit
5: { cellWidth: "wrap" }, // CR Number
6: { cellWidth: 40 }, // CR Status
7: { cellWidth: "wrap" }, // Status
},
});

// ✅ Save PDF with Arabic Name
doc.save("قائمة_العملاء_الائتمانيين.pdf");
};
< /code>
Проблема
❌ Заголовки появляются в искаженном /нечитаемом тексте < /p>
Я уже:
Добавлен useUnicode: true
Applied Font: "Amiri"
используется doc.setlanguage ("ar")
halign: "Право" < /p>
haleg JSPDF Autotable

Подробнее здесь: https://stackoverflow.com/questions/795 ... rrupt-text
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»