[英]jsPDF not rendering tamil text properly
我正在嘗試使用帶有 React-js 的 JSPDF 以泰米爾語文本生成發票。 我創建了一個具有打印按鈕的應用程序,單擊它應該生成 PDF,我在 generateBill 中對此進行了描述。 我在 App.js 文件中添加了整個代碼,如下所示,
import React from 'react'
import { jsPDF } from "jspdf";
import {font} from './Lohit-Tamil-normal'
function App() {
function generateBill(event)
{
//Intializing jspdf
const doc = new jsPDF('p','mm',[200,80])
//Importing custom font for tamil
doc.addFileToVFS('Lohit-Tamil.ttf', font);
doc.addFont('Lohit-Tamil.ttf', 'Lohit-Tamil', 'normal')
doc.setFont('Lohit-Tamil');
//Adding text to pdf document
doc.text("பாத்திரக்கடை", 30,20);
//Calculating today date to display in PDF
let today = new Date();
let dd = String(today.getDate()).padStart(2, '0');
let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
let yyyy = today.getFullYear();
today = dd + '/' + mm + '/' + yyyy;
//Displaying today's date
doc.text(`தேதி: ${today}`, 5, 25, null, null, "left");
//Displaying customer name
doc.text(`வாடிக்கையாளர் பெயர்:`, 5, 30, null, null, "left");
//Setting tamil as language for PDF
doc.setLanguage("ta")
//saving the PDF file
doc.save('autoprint.pdf');
}
return (
<button type="button" onClick={generateBill}>Print</button>
</div>
);
}
導入字體文件中的代碼 - Lohit-Tamil-normal.js:
export const font = '[base64_encoded_text_of_ttf_file]';
但是當我嘗試生成 pdf 時,我得到的文本如下所示。
但我期望的樣子:
很少有像“டை,தே”這樣的文字前后錯位。 但是當我嘗試從 PDF 復制文本並將其粘貼到我的系統中時,我得到了正確的結果。 如果有人能闡明並解決此問題,那就太好了。
jspdf 與少數 unicode 腳本不兼容。
so either try with non unicode tamil fonts https://github.com/neechalkaran/neechalkaran.github.io/tree/master/tamilfonts/nonunicode
或使用與泰米爾語https://pdfmake.github.io/docs/getting-started/ 兼容的 pdfmake
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.