2013-11-26 1 views
4

Мне нужно создать pdf-файл с холста. Кто-нибудь может мне помочь ?Преобразование png изображения в pdf в узле canvas

это то, что я пытался

var http = require('http'), fs = require('fs'), 
Canvas = require('canvas'); 
var ht = require('https'); 
http.createServer(function (req, res) { 
dr(); 
function dr() 
{ 

    fs.readFile(__dirname + '/temp.jpg', function(err, data) { 
     if (err) throw err; 
     var img = new Canvas.Image; // Create a new Image 
     img.src = data; 

     var canvas = new Canvas(img.width, img.height,'pdf'); 
     var ctx = canvas.getContext('2d'); 
     ctx.drawImage(img, 0, 0, img.width/4, img.height/4); 
     res.writeHead(200, {'content-type' : 'application/pdf'}); 
     canvas.toDataURL('application/pdf', function(err, str){ 

     res.write(str); 

     res.end(); 

     }); 

    }); 

} 

}).listen(8124); 
+0

Что не работает? Какой результат вы ожидаете? –

+0

Мне нужно отобразить pdf обратно на веб-страницу res.writeHead (200, {'content-type': 'application/pdf'}); но Ошибка: в настоящее время поддерживается только изображение/png. есть ли другие пути – SHIN

+0

Вы фактически не конвертировали в PDF код. Вы просто изменили тип mime. Найдите библиотеку создания PDF для NodeJS, которая может взять изображение, которое вы создали. Холст не может этого сделать. – WiredPrairie

ответ

3

Этот код работает для меня.

var http = require('http'), fs = require('fs'), 
Canvas = require('canvas'); 
var ht = require('https'); 
http.createServer(function (req, res) { 
dr(); 
function dr() 
{ 

    fs.readFile(__dirname + '/temp.jpg', function(err, data) { 
     if (err) throw err; 
     var img = new Canvas.Image; // Create a new Image 
     img.src = data; 

     var canvas = new Canvas(img.width, img.height, 'pdf'); 
     var ctx = canvas.getContext('2d'); 
     ctx.drawImage(img, 0, 0, img.width/4, img.height/4); 

     res.writeHead(200, {'content-type' : 'application/pdf'}); 
    res.write(canvas.toBuffer()); 
    res.end(); 
    }); 

} 

}).listen(8124); 

 Смежные вопросы

  • Нет связанных вопросов^_^