Считаете ли вы использование launch4j ? Я использовал его для создания своих exe-файлов, и он работает безупречно и позволяет вам установить значок. Я использую его в сочетании с izpack .
Вы попытались смотреть на html2pdf? домашняя страница http://html2pdf.seven49.net/Web/
существует также проект SourceForge ее.
Alan
Я пробую библиотеку с 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();
Если Вы хотите иметь действительно хорошее качество (думайте, надлежащее расположение/CSS и т.д.), необходимо создать процесс, встраивающий реальный webbrowser рендеринг его вне экрана и печать его через драйвер принтера PDF.
Нет наверняка никакого прямого способа сделать это в Ruby (по крайней мере, не было, когда я пытался сделать это несколько месяцев назад). Если Вы действительно не можете постараться не генерировать свой pdfs от HTML, необходимо, вероятно, навести справки о некоторых внешних инструментах или сервисах с этой целью.
Удачи!
Самая близкая вещь, которую я нашел как "решение" этого, при помощи JRuby и затем использования Проект Летающей тарелки. Я просто желаю, чтобы это портировать к Ruby, таким образом, это могло быть встроенное решение. Бог мне жаль, что я не был лучше в Java.
Не относится к Ruby, но лучшее решение, которое я нашел это открытый код HTMLDOC .
После того, как после большого количества пота и слез крови мне удалось написать довольно простое приложение 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, на который ссылается Трэвис Бил. Надеюсь, это поможет вам продвинуться по пути, и если ваши документы не очень сложны, этого должно быть достаточно. Дайте нам знать, как вы поживаете.
Возможно, проект остановился, но Пиза (также известная как XHTML2PDF ) - это библиотека Python, которая преобразует CSS + HTML в PDF. Некоторое время назад использовал его в приложении Rails (с низким трафиком), управляя им как инструментом командной строки - сработало довольно хорошо.
HTMLDOC ?