Мгновенная ошибка: система не может найти указанный путь

Пожалуйста, я впервые пытаюсь использовать snappy, чтобы пользователь мог загружать PDF-файл с моего сайта. Раньше я использовал DomPDF, но обнаружил, что он не подходит для текущей ситуации. Сначала я установил wkhtmltopdf, затем я установил snappy с помощью композитора, который установил его в c / users / computer-name / vendor (я очень новичок в композиторе). Я скопировал папку vendor в каталог своего проекта.

Я добавил код ниже;

    require __DIR__ . '/vendor/autoload.php';
    use Knp\Snappy\Pdf;
    $snappy = new Pdf('/usr/local/bin/wkhtmltopdf');
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="file.pdf"');
    echo $snappy->getOutput('http://www.github.com');

как показано здесь: https://github.com/knplabs/snappy PDF-файл загружается, но не открывается . Chrome сообщает: «Не удалось загрузить PDF-документ». Когда я открываю PDF-файл с помощью блокнота, я вижу ошибку;

Неустранимая ошибка: Uncaught RuntimeException: код состояния выхода «1» говорит о том, что что-то пошло не так: stderr: система не может найти указанный путь. stdout: command: / usr / local / bin / wkhtmltopdf --lowquality https://www.google.com/"; C: \ Users \ CHIDIE ~ 1 \ AppData \ Local \ Temp \ knp_snappy5e42659b757116.59025588.pdf. в C: \ xampp \ htdocs \ enterprisecareer \ templates \ vendor \ knplabs \ knp-snappy \ src \ Knp \ Snappy \ AbstractGenerator.php: 381

Пожалуйста помоги. Что мне не хватает. Я знаю, что делаю что-то не так.

Спасибо.


person Chidiebere Onwunyirigbo    schedule 11.02.2020    source источник


Ответы (1)


/usr/local/bin/wkhtmltopdf в примере snappy - это двоичная папка Linux. Похоже, вы используете Windows xampp. Загрузите программу wkhtmltopdf отсюда https://wkhtmltopdf.org/downloads.html и обновите путь, где вы извлекли двоичный файл вот так.

$snappy = new Pdf('C:\path to where you extracted binary'); 

Также убедитесь, что извлеченный путь не требует прав администратора для выполнения.

person tinker    schedule 11.02.2020
comment
Спасибо за Ваш ответ. Я сделал то, что вы сказали, и использовал $ snappy = new Pdf ('C: \ Program Files \ wkhtmltopdf \ bin \ wkhtmltopdf'); но теперь он показывает ошибку C: \ Program 'не распознается как внутренняя или внешняя команда. Знаешь, пожалуйста, что еще я мог сделать? Google пока не предлагает никакого решения. - person Chidiebere Onwunyirigbo; 12.02.2020
comment
Спасибо, теперь работает. Установил заново и изменил извлеченный путь. - person Chidiebere Onwunyirigbo; 12.02.2020