2009-10-22 5 views
5

में एक प्रिंटर के लिए एक फ़ाइल मुद्रण मैं रूबी कार्यक्रम से एक प्रिंटर से एक pdf फ़ाइल भेजने पर रूबी पर एक प्रिंटर रूबी का उपयोग कर के लिए एक स्वरूपित पाठ भेजने या के साथ मदद की जरूरत है। मैं Rails ऐप से पीडीएफ फ़ाइल बनाने के लिए कोड लिख सकता हूं लेकिन यह नहीं जानता कि उस पीडीएफ फाइल को डिफॉल्ट प्रिंटर पर कैसे प्रिंट किया जाए। मैं रूबी पर रूबी के साथ एक छोटा टिकट आवेदन लिखने की कोशिश कर रहा हूं।रूबी

+0

यह जानना बहुत उपयोगी होगा कि यह किस ऑपरेटिंग सिस्टम के लिए है। –

+0

मुझे लगता है कि @Shreyans इसे क्लाइंट पक्ष पर प्रिंट करना चाहते हैं, न कि सर्वर की तरफ। @wdebeaum और @ पी। बैडर उत्तर सर्वर पक्ष के लिए हैं। – klew

उत्तर

6

पर लिनक्स और मैक ओएस एक्स आप "LPR" कमांड लाइन कार्यक्रम है, यह पीडीएफ फाइल के नाम से गुजर रहा है (Windows के बारे में निश्चित नहीं है, हालांकि) का उपयोग कर सकते हैं। उदाहरण के लिए:

def print_to_paper 
    your_code_to_write_a_pdf_file("file.pdf") 
    system("lpr", "file.pdf") or raise "lpr failed" 
end 
+0

धन्यवाद (वाई)। इसने काम कर दिया!! – Rohit

8

यहां विंडोज वातावरण में एक समाधान है: फॉक्सिट! http://www.foxitsoftware.com/pdf/reader/

आप पृष्ठभूमि में पीडीएफ को चुपचाप प्रिंट करने के लिए foxit.exe (स्टैंडअलोन निष्पादन योग्य) को कॉल कर सकते हैं।

सिंटेक्स: foxit.exe/टी "अपने file.pdf" "प्रिंटर का नाम"

shell = WIN32OLE.new('Shell.Application')

shell.ShellExecute("foxit.exe","/t \"#{filename}\" \"#{printer}\"")

0

मैं अगर वहाँ एक रास्ते पर कुछ मुद्रित करने के लिए है यकीन नहीं है वेब से डिफ़ॉल्ट प्रिंटर। मेरे बैंक में जब मैं भुगतान पुष्टिकरण प्राप्त करना चाहता हूं तो वे मुझे पीडीएफ देते हैं और मुझे इसे मैन्युअल रूप से प्रिंट करना होगा। मुझे लगता है कि यह अच्छा समाधान है। बस इसके बारे में कुछ जानकारी जोड़ें।

0

मैं कंप्यूटर लेबल बनाने के लिए एक आंतरिक एप्लिकेशन है। मैं डेल से प्राप्त फ़ाइल से कंप्यूटर आयात करता हूं या उन्हें मैन्युअल रूप से दर्ज करता हूं, मैं उन्हें एक CSV में निर्यात करता हूं जिसे मैं एमएस एससीसीएम में आयात कर सकता हूं। मैं कंप्यूटर पर रखने के लिए लेबल मुद्रित कर सकते हैं। लेबल में एक कंपनी लोगो, कंप्यूटर का नाम, मैक पता और servicedesk संपर्क जानकारी है।

मैं gLabels साथ इसे प्रिंट। आप gLabels में एक लेबल डिज़ाइन करते हैं, गतिशील फ़ील्ड दर्ज करते हैं और इसमें एक CSV फ़ीड करते हैं और यह एक पीडीएफ थूकता है जिसे मैं अपने डीमो लेबलराइटर को प्रिंट करने के लिए एलपीआर का उपयोग करता हूं।

मैं अपने कंप्यूटर मॉडल में रख क्योंकि मैं और कहाँ यह डाल करने के लिए पता नहीं था।

# Print all computers with printed = false 
def self.print 
    printed_labels = 0 
    csv_file = Tempfile.new(["computers", ".csv"]) 
    logger.debug("Writing #{csv_file.path}") 
    begin 
    Computer.transaction do 
     Computer.unprinted.each do |computer| 
     csv_file.puts "\"#{computer.mac(' ')}\",\"#{computer.hostname}\"" 
     computer.printed = true 
     computer.save 
     printed_labels += 1 
     end 
    end 
    ensure 
    csv_file.close 
    if csv_file.length > 0 
     pdf_file = Tempfile.new(["computers", ".pdf"]) 
     begin 
     pdf_file.close 
     system '/usr/bin/glabels-batch', "--input=#{csv_file.path}", "--output=#{pdf_file.path}", AssetBase::Application.config.computer_label 
     system '/usr/bin/lpr', '-P', 'LabelWriter-450', pdf_file.path 
     ensure 
     pdf_file.unlink 
     end 
    end 
    csv_file.unlink 
    end 
    printed_labels 
end 

यह फेडोरा लिनक्स पर चलता है तो प्रिंटर बैकएंड कप और क्या इसके बारे में बात यह है कि पीडीएफ मैं नहीं जानता कि संभालती है। यह सीयूपीएस या प्रिंटर ड्राइवर या प्रिंटर ड्राइवर हो सकता है।

पीडीएफ के लिए संरचित पाठ बनाने के अन्य तरीकों रहे हैं लेकिन लेबल gLabels लिए अच्छा है।