鍍金池/ 問(wèn)答/HTML/ 在PPT轉(zhuǎn)PDF的時(shí)候保存好文件,但是打開(kāi)PDF這個(gè)文件是空白的問(wèn)題沒(méi)解決

在PPT轉(zhuǎn)PDF的時(shí)候保存好文件,但是打開(kāi)PDF這個(gè)文件是空白的問(wèn)題沒(méi)解決

// ppt 格式
if (
   req.files[0].mimetype === 'application/vnd.openxmlformats-officedocument.presentationml.presentation' ||
   req.files[0].mimetype === 'application/vnd.ms-powerpoint'
) {
     var form = formstream();
     form.buffer('file', des_file, req.files[0].originalname.substring(0, req.files[0].originalname.lastIndexOf('.')));
     var options = {
         method: 'POST',
         host: '127.0.0.1',
         port: '5000',
         path: '/unoconv/pdf/',
         headers: form.headers()
     };
     const promise = new Promise(function (resolve, reject) {
           var reqs = http.request(options, function (res) {
               var _data = '';
               res.on('data', function (data) {
                   _data += data;
               }).on('end', function () {
                   resolve(_data);
               }).on('error', function (err) {
                   reject(err);
               });
           });
           form.pipe(reqs);
     })
     promise.then(function (buffer) {
         console.log(buffer, 'success')    // buffet輸出的是亂碼的,好像是二進(jìn)制的
         fs.writeFile('./test.pdf', buffer, function (err) {
            if (err) {        
               console.log(err);
            }
         })
         // 保存pdf文件
     }, function (err) {
         console.log(err, 'failure')
     })
     }

完成轉(zhuǎn)換的時(shí)候再次保存好pdf這個(gè)文件,然而打開(kāi)這個(gè)文件都是空白的,這到底是什么問(wèn)題的?

回答
編輯回答
放開(kāi)她

你用的是什么庫(kù)?仔細(xì)看下文檔,看什么偵聽(tīng)轉(zhuǎn)換結(jié)束的事件,或者應(yīng)該寫(xiě)哪些內(nèi)容。從你的代碼里看不出。

2017年2月16日 09:25
編輯回答
毀與悔

如果我沒(méi)猜錯(cuò)的話(huà)。。pipe里邊返回的應(yīng)該是一個(gè)Buffer對(duì)象,或者二進(jìn)制的數(shù)據(jù)流什么之類(lèi)的。你直接拿String應(yīng)該會(huì)出問(wèn)題的。試著在拼接前先調(diào)用toString

或者認(rèn)為data為Buffer對(duì)象,將所有的Buffer存到一個(gè)數(shù)組中,然后在最后concat到一起,再進(jìn)行寫(xiě)入文件的操作。

2018年1月21日 22:34