я впервые задаю вопрос здесь. По сути, я хочу экспортировать pdf-файл с японскими символами из браузера с помощью PdfKit (клиентская сторона). Итак, мне нужно отправить файл шрифта с сервера на клиент с помощью буфера. Вот мой код... все это использует node.js с экспрессом:
Серверная часть (Nodejs):
function download_font(req, res) {
var fontpath = path.join(__dirname, 'kochi-gothic-subst.ttf');
fs.readFile(fontpath, function(err, content) {
if (err) { // If we couldn't read the file for some reason
res.writeHead(404, { // Send a 404 Not Found status
"Content-Type": "text/plain; charset=UTF-8"});
res.write(err.message); // Simple error message body
res.end(); // Done
}
else { // Otherwise, if the file was read successfully.
res.writeHead(200, // Set the status code and MIME type
{"Content-Type": 'application/octet-stream'});
res.write(content); // Send file contents as response body
res.end(); // And we're done
}
});
Запрос со стороны клиента с использованием javascript:
$.get("/log/font").done(function( data ) {
var blob = new Blob([data], { type: 'application/octet-stream' });
var doc = new PDFDocument();
var stream = doc.pipe(blobStream());
doc.font(blob).fontSize(25).text('武大郎',100, 100);
doc.end();
stream.on('finish', function() {
blob = stream.toBlob('application/pdf');
var url = window.URL || window.webkitURL;
var link = document.createElement('a');
link.href = url.createObjectURL(blob);
link.download = 'test.pdf';
var event = document.createEvent("MouseEvents");
event.initEvent("click", true, false);
link.dispatchEvent(event);
});
});
Но при запуске браузера отображается сообщение об ошибке: Uncaught Error: не поддерживается формат шрифта или стандартный шрифт PDF.
Поэтому я проверяю данные о размере с сервера и клиента. Вот мой код для проверки размера файла:
*$.get("/log/font").done(function( data ) {
//alert( "Data Loaded: " + data );
var blob = new Blob([data], { type: 'application/octet-stream' });
var url = window.URL || window.webkitURL;
var link = document.createElement('a');
link.href = url.createObjectURL(blob);
link.download = 'kochi-gothic-subst.ttf';
var event = document.createEvent("MouseEvents");
event.initEvent("click", true, false);
link.dispatchEvent(event);
});
Я вижу два файла не равны. Кто-нибудь может помочь мне экспортировать pdf с японскими символами со стороны браузера?