2015-03-10 4 views
2

Я создаю несколько отчетов на основе html из своего приложения Meteor. Все работает красиво на моей машине разработки, но когда я подталкиваю ее к серверу, возвращаемые файлы PDF пусты.wkhtmltopdf и Meteor, возвращающий пустой pdf

Я установил wkhtmltopdf 0.11, используя инструкции in this post. Я также пробовал 0.9.9. Когда я иду печатать, я не получаю никаких ошибок: просто файл PDF без какого-либо контента.

Любые предложения относительно того, что я делаю неправильно, будут оценены!

Вот код, я использую для создания PDF:

Router.route('/reports/printHTML/:fileID?', { 
    name: 'reports.printHTML', 
    where: 'server', 
    action: function(){ 

var headers = { 
    'Content-type': 'application/pdf', 
    'Content-Disposition': "attachment; filename=space_report_" + this.params.fileID + ".pdf" 
}; 
this.response.writeHead(200, headers); 

var wk = Meteor.npmRequire('wkhtmltopdf'); 

var thisReport = PastReports.findOne({_id: this.params.fileID}); 

if(thisReport){ 
    var html = thisReport.body + '<head><link rel="stylesheet" href="' + Meteor.absoluteUrl() + '/bootstrap.css"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/2.2.6/fullcalendar.min.css"></head>'; 
    var r = wk(html, {pageSize:'letter', orientation:'Landscape', zoom:1, B:"5mm", L:"5mm", R:"5mm", T:"5mm",}).pipe(this.response); 
} else { 
    console.log("No report to print: " + this.params.fileID); 
} 

} });

+0

такой же здесь. Вы решили это? – cankemik

ответ

1

пользователь работает метеор приложение должна иметь wkhtmltopdf в своем PATH, так что вы можете попробовать следующее:

  • Войти, как пользователь работает метеор приложение и проверить PATH, где wkhtmltopdf находится либо which wkhtmltopdf или whereis wkhtmltopdf

  • Войти, как пользователь работает метеор приложение и проверить свой путь с echo $PATH

  • Установите PATH содержит тот же самый путь, который используется wkhtmltopdf

    # inside ~/.bashrc or ~/.bash_profile

    export PATH="$PATH:/usr/local/bin"

  • В качестве альтернативы, вы можете создать символическую ссылку на wkhtmltopdf в существующий каталог в вашем PATH.Если wkhtmltopdf установлен под /usr/local/bin и у вас уже есть /usr/bin в вашем PATH:

    ln -s /usr/local/bin/wkhtmltopdf /usr/bin/wkhtmltopdf

Кроме того, не забудьте проверить консоль или сервера журналов в браузере на наличие ошибок.

0

У меня была аналогичная проблема с PhantomJS. В комплект входит мой двоичный файл OSX из phantomjs вместо версии Ubuntu. Как предложил Чип, попробуйте изменить путь, соответствующий вашему распределению ОС.

+0

Пример пути после исправления поможет – Tyrsius

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