Показать PDF, полученный с сервера с помощью JavaScript - PullRequest
0 голосов
/ 01 июля 2019

Я занимаюсь разработкой веб-приложения с использованием javascript, jquery и nodejs.

Я должен получить файл pdf и показать его в новом окне браузера. Я думаю, что правильно получил файл на стороне клиента, потому что окно, которое отображается на данный момент, имеет правильный номер страницы в формате pdf и правильный заголовок, но показанные страницы являются пустыми. Это мой код:

Серверная сторона:

app.post("/showSlide", function(req,res) {

    var fileName = req.body.filename.replace(/\s/g, '');
    var course = req.body.course;
    var professor = req.body.professor
    var folder = path.join(__dirname+"/dataset",infoStudent[0].email,course+"_"+professor,fileName);


    var file2send = fs.readFileSync(folder);
    console.log("file to send: ",file2send);
    res.contentType('application/pdf');
    res.send(file2send);

});

Клиентская сторона:

$.ajax({
    type: "POST",
    data: JSON.stringify({"filename": $('#'+buttonId).text(), "course": courseName, "professor": courseProfessor}),
    url: "/showSlide",
    contentType: "application/json; charset=utf-8",
    responseType: "arraybuffer",
    success: function(data, status, jqXHR) {

        if(data) {
            console.log("data",data);
            var file = new Blob([data], {
                type: 'application/pdf'
            });

            console.log("Blob file: ",file);
            var fileURL = window.URL.createObjectURL(file);
            window.open(fileURL);

        }
    },
    error: function(jqXHR, status) {

        console.log("Error Showing File");

    }
});

Вот изображение того, что я получаю в новом окне.

Window Obtained

Это первая часть вывода:

% PDF-1.5 % μμμμ 1 0 объектов <>>> endobj 2 0 объектов <> endobj 3 0 объектов <> / ExtGState <> / XObject <> / Font <> / ProcSet [/ PDF / Text / ImageB / ImageC / ImageI] >> / MediaBox [0 0 720 450] / Содержание 4 0 R / Group <> / Вкладки / S / StructParents 0 >> endobj 4 0 объектов <> поток ?} Xi = Ke nÝüê ± § · Þ xv д d:[ ¤Û@þ~´¸øо÷"Ä6d× î!¥­%II¯ßýáõ·û»üýøû×õw÷úwÿû×ÿøñÛõºÞ×þ·Rkå5òõªízýåO?~ûÏóúóß~÷ÿòÏÿü§¿üùõó¯¯ßýa¾þúóÏñQ¹Z·þëßüøí?þøíõïÿñ÷¯×QcÒ¯÷SÿO¯¿üÓßRïïÞ^¥Ê_@Ô÷ÈH½¼GèÊí,íõQÞ3½ði Ô ´wYýdM³Gòx·%E]3 önYýÝòëÝYijÒ²´gö×ÿmçÏí}¥³_¹ &û$çwÊÞ/¼_ ¿6о £ А »ÑÎíªräö ^ Н; fwÌÞ ±, Io1 + К [yvB; Ve {íüíz§% U | BD * åÝÇþd½¡¼jSª7D} § $ Õ #? {ÓwswYCX @ £ $ ïÆÉÝÓ # ñÎìwĮ-ÏÏw ¢tV © ÜXù =! ÉîÐ @} )ä) tØPbS {j7Ë ~ I ¢ ~ ¯ k! É »» " у # ÓμweAY37T! # AIND ? V (³ Å ([_ OR (yvg®rgμÙ ' »YK $ Ir: É% Ø <è {uúäM3)'e </em> Ài Н

Где я не прав, показывая pdf? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...