여기에 질문을 올리는 것은 처음입니다. 기본적으로 PdfKit (클라이언트 측)을 사용하여 브라우저에서 일본 문자로 PDF 파일을 내보내려고합니다.브라우저에서 nodejs 서버의 올바른 응답 데이터를 얻는 방법
서버 측 (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
}
});
요청에서 내가 Buffer.Here 내 코드에 의해 서버에서 클라이언트로 글꼴 파일을 보낼 필요가 ...이 명시 적으로 모든 사용 Node.js를하다 클라이언트 측 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);
});
});
브라우저 실행 오류 메시지 표시 : 지원되지 않는 오류 : 지원되지 않는 글꼴 형식 또는 표준 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를 내보낼 수 있습니까?
Vinnie Pepi에게 답장을 보내 주셔서 감사합니다.하지만 여전히 작동하지 않습니다. – user3643255