bounty将于明天到期。回答此问题可获得+50声望奖励。buga希望引起更多的注意这个问题。
我试图将PDF渲染为文件,但PDF中的阿拉伯语文本显示为一些编码文本,如*BFJ) 'DE9DHE'*
,1'4/ 'D9H6J
,*0C1) EF
等。
-- API --
import { renderToFile } from '@react-pdf/renderer';
import TicketDownloadPDF from '@/sections/@dashboard/ticket/view/TicketDownloadPDF';
export async function handler(req: NextApiReq, res: NextApiResponse) {
try {
const { selected } = req.body;
const selectedTickets = await tickets.find({ _id: { $in: selected } })
await renderToFile(<TicketDownloadPDF ticket={selectedTickets[0]} />, 'file1.pdf');
res.status(200).json({ message: 'weewuu' });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Internal server error' });
}
}
字符串
1条答案
按热度按时间xdnvmnnf1#
您需要在代码中单独注册阿拉伯字体,但首先安装
fontkit
模块,以便能够上传自定义字体:要执行此操作,请使用命令:
npm install @react-pdf/fontkit
个然后在代码中添加以前下载的字体的注册:
字符串
现在,您应该能够在渲染文件中正确查看阿拉伯符号。但是,您应该记住,阿拉伯字母是从右向左排列的。这可以通过创建一个StyleSheet对象来支持,该对象将
writingMode
参数设置为rl
,并将其重用为TicketDownloadPDF
的样式。如果您有任何不清楚或疑虑,请让我知道。