Направляющие: преобразовать HTML в PDF? [закрытый]

Считаете ли вы использование launch4j ? Я использовал его для создания своих exe-файлов, и он работает безупречно и позволяет вам установить значок. Я использую его в сочетании с izpack .

60
задан rip747 17 December 2008 в 20:04
поделиться

11 ответов

Драгоценный камень, WickedPDF , делает именно это.

64
ответ дан 24 November 2019 в 17:50
поделиться

Вы попытались смотреть на html2pdf? домашняя страница http://html2pdf.seven49.net/Web/

существует также проект SourceForge ее.

Alan

-1
ответ дан apolinsky 7 November 2019 в 14:18
поделиться

Я пробую библиотеку с www.pd4ml.com

, вот надрез кода....

я вытягиваю в HTML в Строковое содержание. Затем я делаю паре вещей нравится, заменяют переключатели флажками и затем выполняют его через pd4ml библиотеку для рендеринга PDF.
результат в значительной степени походит на исходную страницу....

    String content = nextPage.generateResponse().contentString();

    content = content.replace("Print", "");
    content = content.replace("Back", "");

    content = content.replace("border=\"1\"", "border=\"0\"");
    content = content.replace("radio", "checkbox");

    java.net.InetAddress i = java.net.InetAddress.getLocalHost();
    String address =  i.getHostAddress()+":53000";

    content = content.replace("img src=\"/cgi-bin", "img src=\"http://"+address+"/cgi-bin");

    System.out.println(content);

    PD4ML html = new PD4ML();
    html.setPageSize( new java.awt.Dimension(650, 700) );
    html.setPageInsets( new java.awt.Insets(30, 30, 30, 30) );
    html.setHtmlWidth( 750 );
    html.enableImgSplit( false );
    html.enableTableBreaks(true);

    StringReader isr = new StringReader(content);
    baos = new ByteArrayOutputStream();
    html.render( isr, baos);
    PDFRegForm pdfForm = (PDFRegForm)pageWithName("PDFRegForm");
    pdfForm.baos = baos;
    pdfForm.generateResponse();
-1
ответ дан 7 November 2019 в 14:18
поделиться

Если Вы хотите иметь действительно хорошее качество (думайте, надлежащее расположение/CSS и т.д.), необходимо создать процесс, встраивающий реальный webbrowser рендеринг его вне экрана и печать его через драйвер принтера PDF.

-1
ответ дан Johan Dahlin 7 November 2019 в 14:18
поделиться
  • существует RPDF, в котором Вы описываете свой PDF в как представление.
  • также существует RTEX, который использует TeX (La) для, генерирует PDF.
1
ответ дан mat 7 November 2019 в 14:18
поделиться

Нет наверняка никакого прямого способа сделать это в Ruby (по крайней мере, не было, когда я пытался сделать это несколько месяцев назад). Если Вы действительно не можете постараться не генерировать свой pdfs от HTML, необходимо, вероятно, навести справки о некоторых внешних инструментах или сервисах с этой целью.

Удачи!

-1
ответ дан Milan Novota 7 November 2019 в 14:18
поделиться

Самая близкая вещь, которую я нашел как "решение" этого, при помощи JRuby и затем использования Проект Летающей тарелки. Я просто желаю, чтобы это портировать к Ruby, таким образом, это могло быть встроенное решение. Бог мне жаль, что я не был лучше в Java.

1
ответ дан rip747 7 November 2019 в 14:18
поделиться

Не относится к Ruby, но лучшее решение, которое я нашел это открытый код HTMLDOC .

-1
ответ дан 24 November 2019 в 17:50
поделиться

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

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

Существует рубиновый гем, который оборачивает HTMLDOC, который вам понадобится: PDF :: HTMLDoc

Как только вы это получите, зарегистрируйте тип MIME, тогда вы можете сделать что-то вроде:

@letter_template = LetterTemplate.find(params[:id])

respond_to do |format|
      format.html
      format.pdf { send_data render_to_pdf({:action => 'show.rpdf',  :layout => 'pdf_report'}), :filename => @letter_template.name + ".pdf",  :disposition => 'inline' }
    end

В контроллере приложения i ' Мы добавили метод render_to_pdf, например:

def render_to_pdf(options =nil)
    data = render_to_string(options)
    pdf = PDF::HTMLDoc.new
    pdf.set_option :bodycolor, :white
    pdf.set_option :toc, false
    pdf.set_option :portrait, true
    pdf.set_option :links, false
    pdf.set_option :webpage, true
    pdf.set_option :left, '2cm'
    pdf.set_option :right, '2cm'
    pdf.set_option :footer, "../"
    pdf.set_option :header, "..."
    pdf.set_option :bottom, '2cm'
    pdf.set_option :top, '2cm'
    pdf << data
    pdf.generate
  end

Вы найдете больше документации на сайте HTMLDOC, на который ссылается Трэвис Бил. Надеюсь, это поможет вам продвинуться по пути, и если ваши документы не очень сложны, этого должно быть достаточно. Дайте нам знать, как вы поживаете.

2
ответ дан 24 November 2019 в 17:50
поделиться

Возможно, проект остановился, но Пиза (также известная как XHTML2PDF ) - это библиотека Python, которая преобразует CSS + HTML в PDF. Некоторое время назад использовал его в приложении Rails (с низким трафиком), управляя им как инструментом командной строки - сработало довольно хорошо.

0
ответ дан 24 November 2019 в 17:50
поделиться

HTMLDOC ?

  • конвертирует HTML в PDF;
  • Свободный и открытый исходный код (доступна коммерческая поддержка);
  • может быть используется в качестве...
    • ... автономное приложение,
    • ... для пакетной обработки документов,
    • ... или запускаемое как веб-сервис,
  • интерфейс - это CLI или GUI.
-1
ответ дан 24 November 2019 в 17:50
поделиться
Другие вопросы по тегам:

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