簡體   English   中英

jsPDF沒有正確呈現泰米爾語文本

[英]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: 我從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM