Изображения большого размера с wkhtmltoimage, когда «--width» => 1140

1

Немного странная проблема. Я генерирую некоторые HTML-отчеты, а затем, из-за ограничений Outlook 2010 для понимания CSS/HTML/изображений, я отправляю весь проклятый отчет как изображение.

Генерация работает нормально. Предварительный просмотр сгенерированного HTML-кода в браузере выглядит прекрасным с различными разрешениями. Однако WKHTMLTOPDF (вернее, wkhtmltoimage) дает мне некоторое нечетное поведение с этим флагом --width.

У меня есть следующий код PHP:

# Converts a .html file to a .jpg file - requires wkhtmltopdf installed:
# http://wkhtmltopdf.org/downloads.html
function html_to_jpg($fileIn, $fileOut) {
    echo "\nRendering HTML to image\n";
    $command = 'wkhtmltoimage --width 1130 ' . $fileIn . ' ' . $fileOut;
    $remove = 'rm -f ' . filter_var($fileOut, FILTER_SANITIZE_STRING);
    try {
        exec($remove);
        exec($command);
        return true;
    } catch (Exception $e) {
        return false;
    }
}

Это работает. Он генерирует изображение ширины "1130", как указано. Тем не менее, отчет выглядит немного хитроумным по этой ширине, поэтому я увеличиваю число --width...

$command = 'wkhtmltoimage --width 1140 ' . $fileIn . ' ' . $fileOut;

Теперь это все еще создает изображение, однако изображение теперь имеет ширину 36480 пикселей, с центром в центре и стек черного пространства справа.

Благодаря экспериментам я подтвердил, что ширина <1140 не порождает эту проблему, но каждая ширина выше. Я подтвердил это на Ubuntu 15.10 Wily и CentOS 6.7, оба установлены с разных RPM.

Кто-нибудь еще испытал это? Я делаю что-то глупое (кроме использования exec)?

Теги:
centos
wkhtmltopdf

1 ответ

0

Я испытал такое же поведение, и я исправил его, изменив ширину элемента html в соответствии с шириной, которую я передаю в команде, и она отлично работает

так что в основном в вашем файле fileIn добавьте это в тег стиля

html, body {
  width:1140px !important;
}

конечно, вы можете опустить! важно, если ничто иное не влияет на ширину этих элементов в вашем файле.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню