2011-01-07 3 views
33

Я установил wkhtmltopdf на Centos 5.5. (Поскольку были проблемы с библиотекой, прошло 4 дня). Теперь это частично работает. Я сказал частично, потому что все pdf-файлы, созданные wkhtmltopdf, включают квадраты вместо текста?Проблема с квадратными символами на wkhtmltopdf

Что я могу сделать? Я искал google, но ничего не нашел.

Цените свою помощь.

+0

Плохой револьвер - посмотрите на @James F ответ, это сделал трюк для меня – Roland

+0

Если вы видите это только в некоторых перерывах строк, попробуйте добавить 'text-rendering: geometricPrecision;' в 'body' класс в вашем CSS, по адресу: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1734 –

+0

@Tim - пожалуйста, отметьте ответ Джеймса F как правильный, щелкнув галочку с серым цветом под текущим количеством голосов 56. –

ответ

78

Когда у меня возник вопрос с черными квадратами, я смог его решить, не устанавливая X11, установив ур-шрифты.

+3

Решение от James F решило мою проблему. Точно такая же проблема, когда я выполняю wkhtmltophp в командной строке все шрифты, где 100% .Но нет, если я попытаюсь выполнить его с PHP с помощью этой команды. Centos 6 и установленные шрифты URL yum устанавливают urw-шрифты, а затем он работает ;-) Спасибо James – Roland

+4

Удивительное решение James. Тим, пожалуйста, примите его как ответ, поскольку он явно работает. – Marcin

+2

Отличный ответ. @Tim Tuckle: пожалуйста, примите это как ответ. –

0

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

Какая кодировка использует ваш HTML-код? (Это проще проверить, поэтому я перечислил его первым). Если это что-то напуганное, вам, возможно, придется перевести его до подачи его на wkhtmltopdf. В этом случае может помочь отчет об ошибке.

Помогло ли wkhtmltopdf найти ваши шрифты? Если wkhtmltopdf не может найти шрифты вашей системы, тогда у него возникнет серьезная проблема и может выпасть на символ «Неизвестный символ» (пустой ящик).

Кроме того, если ваш текст содержит символы, которые на самом деле не существуют в запрошенном шрифте, вы получите символ неизвестного символа. Если вы предполагаете использовать «Courier New», а текст - все арабский ... курьером шрифта не содержит этих символов. Браузеры имеют различные позиции понижения, которые они могут использовать, но рендеринг PDF будет делать то, что он сказал, насколько это возможно. И в этом случае это неизвестный символ.

Простой тест: может ли whtmltopdf успешно преобразовать «hello world.html» в PDF в вашей системе?

<html><body>Hello World</body></html> 

Если это работает, вам необходимо выяснить, где вдоль линии между «мозг мертв» и «ваш реальный HTML» все идет наперекосяк.

+0

Да , Я тестировал, как вы сказали test.html. Даже тот, который отображается в квадратах. Но все заполнено черным. Я протестировал wkhtmltopdf-i386 и wkhtmltopdf-amd64. Боюсь, моя проблема настолько сложна. Как вы думаете? :( –

0

Я думаю, вам нужно попытаться установить пакеты X11, wkhtmltopdf использует это для шрифтов и т. Д. Симптомы, которые вы описываете, именно то, что программа будет делать с отсутствующими пакетами.

+0

Это неправда. Если вы используете EL7, вам не нужна вся система X11. Grab [wkhtmltopdf-amd] (https://github.com/h4cc/wkhtmltopdf-amd64), затем 'yum install libXrender libXext fontconfig urw -fonts' –

0

Автономный wkhtmltopdf не нуждается в x-сервере - попробуйте и посмотрите, не устраняет проблему. Я работаю над CentOS без графики/x-сервера, и он работает абсолютно нормально.

17

Я был в состоянии решить эту проблему, используя следующий ресурс:

http://code.google.com/p/wkhtmltopdf/wiki/static

Короче говоря, вы, вероятно, не нужно, чтобы установить всю библиотеку x11 и всех его зависимостей. Просто установка urw-fonts должна сделать трюк. Вышеуказанный ресурс даже упоминает CentOS как имеющий эту проблему.

Выполнить эту команду на сервере:

sudo yum install urw-fonts libXext openssl-devel 
+0

В основном тот же ответ, что и Джеймс Ф. После загрузки статического бинара мне пришлось установить следующие депо, чтобы заставить его работать на RHEL7: 'yum install libXrender libXext fontconfig urw-fonts' –

+0

Это именно то, что сработало для меня. Благодарю. – HartleySan

1

Я использую CentOS 7 с wkhtmltox 12.4 и обнаружил, что ни один из предложений, до сих пор не сосредоточил свой блок-текст в выходных файлах PDF.

Для меня окончательным решением было установить dejavu-sans-fonts.

+0

спасибо помощнику, этот работал мне после того, как попробовал так много чертового количества предложений/исправлений/обходных решений по всему Интернету до сих пор. im on centos 7 и используя wkhtmltopdf 0.12.2.1 (с исправленным qt) –