PDFKit не генерирует правильный PDF - PullRequest
0 голосов
/ 28 марта 2011

Я установил PDFKit и wkhtmltopdf.

В одном действии я рендеринг простого HTML, как:

<html><body><h1>Hello Internet!</h1></body></html>

Когда я запускаю свое действие с расширением .pdf, оно генерирует неправильный файл PDF. Отладка PDFKit я попал в эти строки:

result = IO.popen(invoke, "w+") do |pdf|
  pdf.puts(@source.to_s) if @source.html?
  pdf.close_write
  pdf.gets(nil)
end

Ну, вот где генерируется мой PDF, он использует командную строку без wkhtmltopdf и мой HTML в качестве ввода.

Используя rdebug, я обнаружил, что значение для invoke:

"c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe" "--margin-right" "0.75in" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-bottom" "0.75in" "--encoding" "UTF-8" "--margin-left" "0.75in" "--quiet" "-" "-"

И @ source.to_s -

<html><body><h1>Hello Internet!</h1></body></html>

Хорошо, поэтому я попытался запустить команду от руки так:

"c:\Program Files\wkhtmltopdf\wkhtmltopdf.exe" "--margin-right" "0.75in" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-bottom" "0.75in" "--encoding" "UTF-8" "--margin-left" "0.75in" "--quiet" "-" "-" < c:\hello_internet.html > correct.pdf

Очевидно, что в hello_internet есть содержимое @ source.to_s

Запуск его приводит к созданию правильного файла PDF.

Правильный сгенерированный pdf здесь , неправильный здесь .

Понятия не имею, что здесь может быть не так.

Спасибо.

1 Ответ

0 голосов
/ 30 марта 2011

Решение довольно простое и является объектом запроса на получение от bxu689 в PDFKits Github.

...