2012-04-12 39 views
6

Tôi có một ứng dụng node.js, trong đó tôi đang sử dụng pdfkit để tạo các tài liệu pdf. Tôi muốn có thể bao gồm hình ảnh từ một url trong pdf. Tôi không thể lưu hình ảnh vào hệ thống tệp vì môi trường thời gian chạy của tôi chỉ đọc và bộ pdf dường như tìm hình ảnh được nhúng từ thư mục hệ thống tệp. Có cách nào tôi có thể sử dụng một url trong bộ pdf để nhúng một hình ảnh?Bộ pdf có thể lưu hình ảnh từ url không?


Here. Anh chàng này đã sửa đổi pdfkit để bao gồm chức năng đó.

+1

Không, điều đó là không thể với việc triển khai hiện tại. Nhưng tôi có thể cho bạn biết thật dễ dàng để sửa đổi nguồn và triển khai tính năng này. –

+0

Tôi giả định câu hỏi này là về [pdfkit này] (http://pdfkit.org/) –

+0

[This] (https://github.com/devongovett/pdfkit/blob/master/lib/image.coffee#L13) là nơi nó đọc tệp. Ví dụ, bạn có thể thay đổi nó thành '@contents = filename' hoặc bất kỳ thứ gì bạn muốn. –

Trả lời

1

bạn có thể sử dụng http.get:

http.get('YOUR URL TO GET THE IMAGE').on('response', function(res) 
    res.setEncoding('binary'); 
    res.on('data', function(chunk){ 
     buffer += chunk; 
    }); 
    res.on('end', function(){ 

    fs.writeFile('PATH TO SAVE IMAGE', buffer, 'binary', function (err) { 
     if (err){ 
      throw err; 
     } 
     doc = new PDFDocument({ size: 'LETTER or any other size pdfkit offer' }); 
     doc.image('PATH TO SAVE IMAGE', 0, 0, { fit: [WIDTH, HEIGHT] }) 
     .fontSize(10).text('text 1', 100, 170) 
     .fontSize(16).text('text 2', 60, 120) 

    }); //After file is download and was write into the HD will use it 

}).end(); //EO Downloading the file 
2

PDFKit bây giờ hỗ trợ thông qua bộ đệm với phương pháp doc.image thay vì một tên tập tin. Xem cam kết this. Vì vậy, bạn có thể làm như câu trả lời khác cho thấy, và tải về các hình ảnh từ URL chính mình, và sau đó vượt qua bộ đệm trực tiếp đến PDFKit thay vì lưu nó vào một tập tin đầu tiên.

Các vấn đề liên quan