2017-01-25 5 views
0

У меня есть метод, с помощью которого я пытаюсь распечатать PDF прямо из! Как вы можете видеть hereПрямая печать в приложении Rails с использованием системных команд

Я должен использовать систему (LPR) command.This решения работает отлично, но в убунту не в окнах или любой другой OS с. Вы знаете, как это сделать в windows?

и это мой метод:

def general_receipt_export 
    if params[:official_id].present? 
     @ids = params[:official_id].split(',') 
     @officials = Official.find(@ids) 
     pdf = render_to_string pdf: "#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}", :template => 'officials/general_receipt_export.html.erb', encoding: 'utf8',orientation: 'Landscape',page_size: 'A4' 
     render layout: false 
     save_path = Rails.root.join('public','pdfs', "#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}") 
     File.open(save_path, 'wb') do |file| 
      file << pdf 
     end 
     system("lpr", "public/pdfs/#{@ids.map(&:inspect).join(',').to_s + '_receipt.pdf'}") 
    else 
     render json:{messege: 'No letter to export'},status: 404 
    end 
    end 

ответ

1

Я нашел более легкое решение, которое не связано с используемой ОС! Это для Рубин:

<%= link_to 'print', 'your_link_here', :onclick => 'window.print();return false;'%> 

И эквивалентность в HTML:

<a onclick="window.print();return false;" href="your_link">print</a> 

Спасибо всем за то, на это время.

0

Смотрите эту страницу для справки: https://technet.microsoft.com/en-us/library/cc731926(v=ws.11).aspx вам потребуется Daemon Line Printer (LPD) работает на машине Windows. И тогда будет возможность выдавать команду. Возможно, вам придется изменить некоторые параметры безопасности. Я не использовал Rails на машине Windows в течение длительного времени, поэтому я не уверен, влияют ли на него параметры безопасности.

Вы уверены, что на машине, где вы печатаете, работает линейный принтер Daemon?

На странице я связан выше:

В этом примере показано, как напечатать «document.txt» текстовый файл в очереди принтера LaserPrinter1 на хосте LPD в 10.0.0.45:

Lpr -S 10.0.0.45 -P LaserPrinter1 -o Document.txt

Надеюсь, что поможет вам в правильном направлении.