में एक प्रिंटर के लिए एक फ़ाइल मुद्रण मैं रूबी कार्यक्रम से एक प्रिंटर से एक pdf फ़ाइल भेजने पर रूबी पर एक प्रिंटर रूबी का उपयोग कर के लिए एक स्वरूपित पाठ भेजने या के साथ मदद की जरूरत है। मैं Rails ऐप से पीडीएफ फ़ाइल बनाने के लिए कोड लिख सकता हूं लेकिन यह नहीं जानता कि उस पीडीएफ फाइल को डिफॉल्ट प्रिंटर पर कैसे प्रिंट किया जाए। मैं रूबी पर रूबी के साथ एक छोटा टिकट आवेदन लिखने की कोशिश कर रहा हूं।रूबी
रूबी
उत्तर
पर लिनक्स और मैक ओएस एक्स आप "LPR" कमांड लाइन कार्यक्रम है, यह पीडीएफ फाइल के नाम से गुजर रहा है (Windows के बारे में निश्चित नहीं है, हालांकि) का उपयोग कर सकते हैं। उदाहरण के लिए:
def print_to_paper
your_code_to_write_a_pdf_file("file.pdf")
system("lpr", "file.pdf") or raise "lpr failed"
end
धन्यवाद (वाई)। इसने काम कर दिया!! – Rohit
यहां विंडोज वातावरण में एक समाधान है: फॉक्सिट! http://www.foxitsoftware.com/pdf/reader/
आप पृष्ठभूमि में पीडीएफ को चुपचाप प्रिंट करने के लिए foxit.exe (स्टैंडअलोन निष्पादन योग्य) को कॉल कर सकते हैं।
सिंटेक्स: foxit.exe/टी "अपने file.pdf" "प्रिंटर का नाम"
shell = WIN32OLE.new('Shell.Application')
shell.ShellExecute("foxit.exe","/t \"#{filename}\" \"#{printer}\"")
मैं अगर वहाँ एक रास्ते पर कुछ मुद्रित करने के लिए है यकीन नहीं है वेब से डिफ़ॉल्ट प्रिंटर। मेरे बैंक में जब मैं भुगतान पुष्टिकरण प्राप्त करना चाहता हूं तो वे मुझे पीडीएफ देते हैं और मुझे इसे मैन्युअल रूप से प्रिंट करना होगा। मुझे लगता है कि यह अच्छा समाधान है। बस इसके बारे में कुछ जानकारी जोड़ें।
मैं कंप्यूटर लेबल बनाने के लिए एक आंतरिक एप्लिकेशन है। मैं डेल से प्राप्त फ़ाइल से कंप्यूटर आयात करता हूं या उन्हें मैन्युअल रूप से दर्ज करता हूं, मैं उन्हें एक 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 लिए अच्छा है।
यह जानना बहुत उपयोगी होगा कि यह किस ऑपरेटिंग सिस्टम के लिए है। –
मुझे लगता है कि @Shreyans इसे क्लाइंट पक्ष पर प्रिंट करना चाहते हैं, न कि सर्वर की तरफ। @wdebeaum और @ पी। बैडर उत्तर सर्वर पक्ष के लिए हैं। – klew