在Node.js中将MySQL BLOB转换为PDF

时间:2018-12-08 10:07:43

标签: node.js blob export-to-pdf

我的BLOB记录很少,我在下面发布了一条记录的屏幕截图: enter image description here

我需要将其转换回pdf并保存在文件夹中。 到目前为止,这是我尝试过的,但没有任何效果:

仅将Blob保存到文件(失败)

const mysql = require('mysql');
const fs = require('fs');

const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "SQL1234",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;

  const sql = 'SELECT * FROM documents WHERE idnum = 29347';

  con.query(sql, function (err, result, fields) {
    if (err) throw err;
    const row = result[0];
    const pdf = row.pdf;
    fs.writeFileSync('some.pdf', pdf);

  });

});

然后将其转换为字符串base64并使用软件包base64topdf

const base64 = require('base64topdf');
var bufferBase64 = pdf.toString('base64');
let decodedBase64 = base64.base64Decode(bufferBase64, 'finalpdf.pdf');

另一个失败的尝试:

    let buffer = Buffer.from(row.pdf);
    fs.writeFile('file.pdf', buffer, 'binary', function(err) {
        if(err) {
            console.log(err);
        }else{
            console.log('file saved');
            fs.readFile('test.pdf', (err, data) => {
                res.contentType("application/pdf");
                res.send(data);//
            });
        }
    });

使用blob-to-buffer

const toBuffer = require('blob-to-buffer');
 var blob = b64toBlob(row.pdf, 'application/pdf');

 toBuffer(blob, function (err, buffer) {
   if (err) throw err

   buffer[0] // => 1
   buffer.readUInt8(1) // => 2
   let decodedBase64 = base64.base64Decode(buffer, 'myfile2.pdf');
 });

我知道我在做一些愚蠢的事情,就是我已经发布了Blob的屏幕截图,所以您知道我拥有什么样的数据。 任何帮助将不胜感激。

0 个答案:

没有答案