2017-05-03 12 views
6

का उपयोग कर .NET प्रिंट डॉक्यूमेंट के साथ डायनामिक पेपर ऊंचाई मेरी आवश्यकता यह है कि मुझे चालान प्रिंट करने की आवश्यकता है, इसमें 10 लाइन हो सकती है या इसमें 20 लाइन हो सकती है। प्रत्येक चीज एक चालान में होनी चाहिए।टीवीएस डॉट मैट्रिक्स प्रिंटर

उदा। यदि आप किसी भी सुपरमार्केट में जाते हैं, यदि आप 3 आइटम खरीदते हैं, तो आपको छोटे आकार का बिल मिल सकता है। यदि आप 30 आइटम खरीदते हैं, तो आपको बड़े आकार का बिल मिल सकता है। मैं इसे अपने vb.NET एप्लिकेशन में लागू करना चाहता हूं।

बिलकुल मुझे बिल की प्रकृति के अनुसार प्रोग्राम के माध्यम से प्रिंटर पेज की लंबाई बढ़ाने के लिए वास्तव में आवश्यकता है।

मैं डॉट मैट्रिक्स प्रिंटर और ग्राफ़िक मोड प्रिंटिंग का उपयोग कर रहा हूं।

मैं क्या कोशिश की है:

अब के रूप में, मैं पाठ फ़ाइल बनाया है और आदेश

Type Printfile.txt > prn 

नीचे का उपयोग कर कमांड लाइन प्रिंट के माध्यम से इसे प्रिंट लेकिन, समस्या मैं नहीं कर पा रहा है है अलग-अलग फ़ॉन्ट, वजन या आकार के साथ मेरी टेक्स्ट फ़ाइल को प्रारूपित करें क्योंकि मैं इसे टेक्स्टफाइल (नोटपैड) के रूप में लिख रहा हूं।

मैं वीबी.नेट से फ़ाइलों को लिखने के लिए स्ट्रीमराइटर का उपयोग कर रहा हूं और अभी तक मैं इसे टेक्स्ट फ़ाइलों में प्रारूपित करने की कोशिश कर रहा हूं।

मैं कुछ शब्दों को बोल्ड या इटैलिक और फ़ॉन्ट आकार भिन्नता के रूप में प्रारूपित करना चाहता हूं लेकिन मैं ऐसा करने में सक्षम नहीं हूं क्योंकि मैं टेक्स्ट फ़ाइलों के साथ स्वरूपण कर रहा हूं।


Store Name 
Store Address 
----------------------------------------  
Gift Receipt 

Transaction #:   105 
Date: 11/10/2009  Time: 6:10:10 
Cashier: 2   Register: 5 
----------------------------------------  
Item   Description  Quantity 
---------------------------------------- 
567577   xyz    2 
687687   abc    4 
– –   – –    – 
---------------------------------------- 
        Net Amount : 6 

Thank You for shopping 
XYZ StoreName 
We hope you’ll come back soon! 

+1

के लिए आप एक सादा पाठ फ़ाइल है, और आप कागज के एक टुकड़े पर एक स्वरूपित चालान करने के लिए करना चाहते हैं। पाठ का प्रारूप क्या है (कॉलम, पंक्तियां, आदि)? इसे प्रारूपित करने के लिए आप किस तकनीक का उपयोग कर रहे हैं (एक्सेल, पीडीएफ, आदि)? आप इसे प्रिंटर पर कैसे भेज रहे हैं? भिक्षा से अंत तक, * रास्ता * करने के लिए बहुत अधिक काम है, और जैसा कि यह खड़ा है, यह सवाल बहुत व्यापक है। अगर मैं कर सकता तो मैं बंद करने के लिए वोट दूंगा। – djv

+1

हमें आपके कोड प्रयासों को देखने की आवश्यकता है। जैसा ऊपर बताया गया है यह _too broad_ लगता है। ऐसा करने के लिए बहुत कुछ है लेकिन हम यह जानने के लिए संघर्ष करेंगे कि कहां से शुरू करना है। – Bugs

+0

मुझे कोड को अपडेट करने दें –

उत्तर

4

आप के बजाय एक एचटीएमएल स्वरूपित चालान प्रिंट कर एक WebBrowser नियंत्रण का उपयोग कर सकते हैं:

नीचे प्रारूप हैं। आपको अपनी जरूरतों के हिसाब से टेक्स्ट फ़ाइल से चालान को कैसे पॉप्युलेट करना है, यह जानने की आवश्यकता होगी। यह स्वचालित हो सकता है। उदाहरण के लिए, प्रत्येक तालिका पंक्ति जोड़ने के लिए एक लूप बनाएं। आप सीएसएस का भी उपयोग कर सकते हैं।

अपने फ़ॉर्म के एक WebBrowser नियंत्रण जोड़ें, और इस कोड को

Dim html = 
    "<html>" & 
     "<head>" & 
      "<style>" & 
       "table, th" & 
       "{" & 
        "border: 1px solid black;" & 
        "table-layout: fixed;" & 
        "width: 100px;" & 
        "border-collapse: collapse;" & 
       "}" & 
       ".title" & 
       "{" & 
        "color: blue;" & 
       "}" & 
      "</style>" & 
     "</head>" & 
     "<body>" & 
      "<p><b><div class=""title"">Store Name</div></b></p>" & 
      "<p>Store Address</p>" & 
      "<p><hr/></p>" & 
      "<p><b>Gift Receipt</b></p>" & 
      "<p>Transaction #:   105</p>" & 
      "<p>Date: 11/10/2009  Time: 6:10:10</p>" & 
      "<p>Cashier: 2   Register: 5</p>" & 
      "<p><hr/></p>" & 
      "<table>" & 
       "<tr>" & 
        "<th>Item</th>" & 
        "<th>Description</th>" & 
        "<th>Quantity</th>" & 
       "</tr>" & 
       "<tr>" & 
        "<th>567577</th>" & 
        "<th>xyz</th>" & 
        "<th>2</th>" & 
       "</tr>" & 
       "<tr>" & 
        "<th>687687</th>" & 
        "<th>abc</th>" & 
        "<th>4</th>" & 
       "</tr>" & 
       "<tr>" & 
        "<th>- -</th>" & 
        "<th>- -</th>" & 
        "<th>-</th>" & 
       "</tr>" & 
       "<tr>" & 
        "<th colspan=""2"">Net Amount</th>" & 
        "<th>6</th>" & 
       "</tr>" & 
      "</table>" & 
      "<p><hr/></p>" & 
      "<p>Thank You for shopping</p>" & 
      "<p>XYZ StoreName</p>" & 
      "<p>We hope you’ll come back soon!</p>" & 
     "</body>" & 
    "</html>" 

Me.WebBrowser1.DocumentText = html 

आप दस्तावेज़ पूरा करने के लिए कोई हैंडलर (या एक अलग प्रिंट बटन है, लेकिन बिंदु की आवश्यकता होगी ShowPrintDialog() से पहले नहीं कहा जा सकता है चलाने दस्तावेज़ पूरा हो गया है)।

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted 
    Me.WebBrowser1.ShowPrintDialog() 
End Sub 

उपर्युक्त कोड प्रारूपित, रसीद के बावजूद इस प्राथमिकता का उत्पादन करता है।

enter image description here

+0

आपके उत्तर के लिए धन्यवाद। मुझे आज़माएं और आपको बताएं। इस बीच यह कस्टम पेपर की लंबाई का समर्थन करेगा? इसमें 10 लाइन हो सकती है या इसमें 20 लाइन हो सकती है। प्रत्येक चीज एक चालान में होनी चाहिए। –

+0

बेशक, कारण के भीतर। जब आप कई रेखाएं करते हैं तो आप तालिका के आकार और फ़ॉन्ट को कम कर सकते हैं। सही आकार खोजने में कुछ परीक्षण होंगे। यदि आपके पास 100 आइटम थे, तो निश्चित रूप से आप इसे एक पृष्ठ में फिट नहीं करना चाहेंगे। तो कार्यक्रम में कुछ तर्क लिखा जाना चाहिए। – djv

+0

मुझे नहीं लगता कि यह ठीक हो जाएगा, समस्या यह है कि विंडोज़ पेज को कैसे संभालती है। ऐसा करने के लिए आपको प्रिंटिंग समाप्त होने पर अगले पृष्ठ पर अग्रिम नहीं करने के लिए ड्राइवर को ध्यान से सेट करना चाहिए। –

0

डॉट प्रिंटर, जो सभी लाइनों मुद्रित कर सकते हैं में (कोई मेटर कितने) और अंत में, कच्चे प्रिंटिंग का उपयोग कागज कटौती करने के लिए ascii कोड भेज सकते हैं।

आप प्रिंटर के पीछे से कागज निकालने के लिए एफएफ (फॉर्म फ़ीड, भेज सकते हैं), लेकिन ईएससी ओ (प्रिंटर के सामने से पेपर निकालने के लिए) नहीं, ईएससी 0/ईएससी 1 (प्रिंटर/रीसेट त्रुटियों) या यहां तक ​​कि एक घंटी/बजर: बचने के कोड बीईएल

कोड ब्रांड से ब्रांड में बदलते हैं और प्रिंटर मॉडल में कुछ बार बदलते हैं। इसके अलावा आपके पास कई मोड या Page description languages (PDL) हो सकते हैं। एचपी इसे प्रिंटर कमांड लैंग्वेज (पीसीएल) भी कहते हैं।ईपीएसन पीडीएल सबसे आम है।

एक example in C#, प्रलेखन win32 api

संबंधित मुद्दे