wkhtmltopdf, настроенный правильно

Я использую это (https://github.com/KnpLabs/KnpSnappyBundle) для рендеринга файла HTML к PDF. Я создал его на тестовом сервере, и все это работает отлично, но когда я перемещаю его в живой сервер, ни одно из изображений не показывает вообще. Обоими из серверов является AWS EC2. Я попытался использовать png и изображения jpg, а также относительные, абсолютные и полные пути, но ничто, что я делаю, кажется, не работает.

Мне кажется, что проблемой является конфигурация живого сервера, но я не установил его сам и не уверенный, как проверить его.

Изображения отображены, если я перехожу к ним непосредственно и прежде чем PDF будет сгенерирован так, я знаю, что изображения там хорошо.

Я попытался ввести /home/ubuntu/wkhtmltox/bin/wkhtmltopdf http://www.google.com test.pdf в консоль и это - то, что я получаю

Загрузка страниц (1/6) QSslSocket: не может разрешить SSLv2_client_method] 10% QSslSocket: не может разрешить страницы SSLv2_server_method Counting (2/6)
Разрешение ссылок (4/6)
Загрузка заголовков и нижних колонтитулов (5/6)
Печать страниц (6/6) Сделанный

Затем это сохраняет копию домашней страницы к серверу. Таким образом, это определенно работает, но я не понимаю, почему это не работает, работая, когда я использую его на сайте.

Все пути являются абсолютными, первоначально они были http://{{домен}}/pdf/images/background_logo.png и т.д. Я изменил их на http://subdomain.livesite.com/pdf/images/background_logo.png, и т.д. чтобы удостовериться, что путь был определенно корректен, но это не имело никакого значения. Я протестировал пути в браузере, и они не загружают проблем. Это хорошо работает на тестовом сервере, таким образом, я не уверен почему не работа над живым сайтом. Код, используемый для генерации PDF:

public function generatePdf($app)
{
    $products = $this->getRecurringOrderProducts();    
    if (count($products) > 0)
    {   
        $filename = $this->getPdfFilename($app);
        if (!file_exists($filename))
        {   
            // Generate HTML
            $html = $app['twig']->render('order/pdf.twig', array(    
                'entry' => $this,    
                'products' => $products,    
                'expiry_date' => $this->getExpiryDate(), // Add this line
                'content_height' => intval( (8*100*count($products))/95 )+1,    
                'domain' => $app['config']['domain'],    
            ));    
            // Generate PDF
            $snappy = new Pdf($app['wkhtmltox_bin']);    
            $snappy->setOption('orientation', 'landscape');    
            $snappy->generateFromHtml(utf8_decode($html), $filename);    
        }
    }    
}

Я использую wkhtmltopdf версию 0.9.9, если это помогает

Я не уверен, что я делаю неправильно, но был бы так благодарен за любую справку.

0
задан 7 August 2014 в 14:43
1 ответ

Мне удалось это исправить, проблема заключалась в том, что url изображения должен был быть абсолютным, но когда я тестировал его до того, как сервер не кэшировал его, то отображал старый файл.

0
ответ дан 5 December 2019 в 13:36

Теги

Похожие вопросы