PrintDocument और PrintDialog का उपयोग कर मुद्रित

यह एक बहुत ही सरल और संक्षिप्त होने का इरादा दृश्य बुनियादी शुद्ध . जल्दी से समझते हैं कि यह काम करता है और कम (बहुत कम कोड के साथ) तो कुछ भी नहीं है कि हमारे hinders है जब हमारे निजी स्पर्श डाल करने के लिए आसान है. प्रोग्रामर बहुत रचनात्मक कर रहे हैं और मैं कई बार मैं बहुत जटिल है और कोड के उदाहरण है, जो मैं करने के लिए काटना और भागों का विश्लेषण करने के लिए अपने ऑपरेशन को समझने के लिए किया था के साथ भर के साथ मिले बिताया. तो मैं ठोस उदाहरण के लिए, सिर्फ नकल के साथ काम करने के लिए आसान में अपने सभी पोस्ट डाल करने की कोशिश पेस्ट, और एक यह विन्यास mimina नियंत्रण बनाते हैं.

हम की जरूरत है:

(Form1 के), Winform, एक PrintDocument नियंत्रण (PrintDocument1) के, (PrintDialog1) PrintDialog, एक पाठ बॉक्स (TextBox1) और एक बटन (बटन 1). प्रपत्र इस छवि को इसी तरह दिखना चाहिए:

Button1 क्लिक करें घटना में निम्नलिखित कोड की प्रतिलिपि बनाएँ


 तो अगर PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK
 PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
 (PrintDocument1.Print)
 यदि अंत

कि यह संवाद बॉक्स का चयन प्रिंटर है खुलता है और तब से गुजरता पूरे विन्यास गुजरता है PrintDocument वस्तु का चयन और फिर आपको बताता है कि मुद्रित. क्या घटना PrintPage PrintDocument चलाता है.

अब वस्तु PrintDocument1 डबल क्लिक करें और निम्नलिखित कोड चिपकाएँ


 e.Graphics.DrawString (TextBox1.Text, नई फ़ॉन्ट ("Verdana, 18, FontStyle.Bold) Brushes.Black, 10, 10)

 मैं के लिए के रूप में पूर्णांक = 1 10
 e.Graphics.DrawString ("पंक्ति नमूना:" और मैं, नई फ़ॉन्ट ("Tahoma", 10, FontStyle.Bold) Brushes.Black, 10, 20 + (मैं 30 *))
 अगला

जब आप इस प्रिंट पृष्ठ और दस लाइनें अलग नमूना और furnte के और आकार का उपयोग कर के शीर्षक के रूप में बॉक्स की सामग्री को चलाते हैं. परिणाम निम्न छवि के समान दिखेगा:

नियंत्रण के बारे में अधिक जानकारी ...

PrintDialog घटक (Windows प्रपत्र)

Windows प्रपत्र PrintDialog घटक है एक पूर्व विन्यस्त संवाद बॉक्स के लिए एक प्रिंटर का चयन करने के लिए चुनते हैं, जो पृष्ठों को मुद्रित करने के लिए और अन्य Windows-आधारित अनुप्रयोगों में मुद्रण से संबंधित सेटिंग्स निर्धारित करने के लिए प्रयोग किया जाता है. यह प्रिंटर सेटिंग्स का चयन करें या प्रिंटर के लिए संबंधित, के बजाय एक ही संवाद बॉक्स की स्थापना के लिए एक सरल समाधान के रूप में प्रयोग करें. आप उपयोगकर्ताओं को उनके दस्तावेजों के विभिन्न भागों को मुद्रित करने की अनुमति कर सकते हैं: सभी मुद्रित, मुद्रित पृष्ठों की निर्दिष्ट श्रेणी या चयन मुद्रित. मानक संवाद विंडोज पर भरोसा करके बनाने के लिए, अनुप्रयोगों जिसका बुनियादी कार्यक्षमता तुरंत उपयोगकर्ताओं को परिचित है.

PrintDocument घटक (Windows प्रपत्र)

Windows प्रपत्र का PrintDocument घटक गुण है कि क्या वर्णन करने के लिए प्रिंट और फिर Windows-आधारित अनुप्रयोगों में दस्तावेज़ मुद्रित सेट करने के लिए प्रयोग किया जाता है.

84 जवाब "PrintDocument और PrintDialog का उपयोग कर मुद्रित करें"

  1. ZOLRAK.MX कहते हैं:

    अच्छी तरह के रूप में मैं पोस्ट के आसपास चला गया और कोई नहीं के रूप में यह करने के लिए और अधिक पृष्ठों को मुद्रित करता है पर उत्तर दिया, मैं अपने आप को काम दिया अन्य साइटों की जाँच और मैं एक कोड मिल गया है लेकिन enterlo के लिए इस जटिल मध्यम आसानी से तो यह उदाहरण modique कि यहाँ गाड़ी चला रहे हैं तो वहाँ मेरे दो सेंट है और मुझे आशा है कि और मैं okas समझते हैं ;)

    यह चर को प्रकाशित किया है
    पूर्णांक = 1 के रूप में मंद लाइन

    PrintDocument1_PrintPage निजी उप (ByVal प्रेषक के रूप में System.Object, ByVal System.Drawing.Printing.PrintPageEventArgs के रूप में ई) हैंडल PrintDocument1.PrintPage

    'हम फ़ॉन्ट प्रकार और अधिक परिभाषित
    नई फ़ॉन्ट के रूप में मंद स्रोत ("Arial",, 10)
    "हम उस स्थिति को परिभाषित करने के लिए मुद्रण शुरू होगा
    पूर्णांक = 20 के रूप में मंद स्थिति
    लाइनों की गणना मुद्रित किया जाता है
    पूर्णांक = 0 रूप में मंद lineaimpresa
    'चर जब आप पृष्ठ के एक छलांग लगाने को देखने के लिए
    बूलियन = झूठी salto_pagina के रूप में मंद
    चर नामित कितने लाइनों प्रति पत्रक मुद्रित करने के लिए
    NroLineasPagina मंद पूर्णांक = 70

    के लिए मैं 150 के लिए लाइन =
    e.Graphics.DrawString ("पंक्ति नमूना:" पंक्ति, और स्रोत, Brushes.Black, 10, स्थिति)
    स्थिति + = 15
    लाइन + 1 =
    lineaimpresa + 1 =
    तो अगर lineaimpresa = NroLineasPagina
    salto_pagina = सच
    के लिए बाहर निकलें
    यदि अंत
    अगला

    है यदि salto_pagina = सच है फिर
    e.HasMorePages = सच
    अन्य
    e.HasMorePages = झूठा
    यदि अंत
    अंत उप

    वैसे मुझे आशा है कि और उन्हें और उनके okas byes के अनुकूलन करने की आवश्यकता की सेवा

    • एलीशा कहते हैं:

      मदद के लिए धन्यवाद.

      • ZOLRAK.MX कहते हैं:

        की कुछ सिर्फ कुछ है कि agredicimiento सहायता के रूप में कई पन्नों देता है और यह कुछ है ;)

  2. डिएगो कहते हैं:

    के रूप में मैं मुद्रित कर सकते हैं

  3. renestimpy कहते हैं:

    आयात System.IO

    सार्वजनिक कक्षा frmDesCaratula के

    निजी स्ट्रिंग के रूप में StringToPrint

    निजी उप frmDesCaratula_Load (System.EventArgs के रूप में वस्तु ई, के रूप में प्रेषक) संभालती MyBase.Load
    Me.MdiParent = mdiPrincipal
    अंत उप

    निजी उप Button1_Click (System.EventArgs के रूप में वस्तु ई, के रूप में प्रेषक) संभालती Button1.Click
    तो अगर ptdConfiguracion.ShowDialog = Windows.Forms.DialogResult.OK
    ptdDocumento.PrinterSettings = ptdConfiguracion.PrinterSettings
    (ptdDocumento.Print)
    यदि अंत
    अंत उप

    निजी उप PrintDocument1_PrintPage System.Drawing.Printing.PrintPageEventArgs के रूप में वस्तु ई, के रूप में (प्रेषक) संभालती ptdDocumento.PrintPage

    e.Graphics.DrawString (TextBox1.Text, नई फ़ॉन्ट ("Verdana, 18, FontStyle.Bold) Brushes.Black, 10, 10)
    मैं के लिए के रूप में पूर्णांक = 1 10
    e.Graphics.DrawString ("पंक्ति नमूना:" और मैं, नई फ़ॉन्ट ("Tahoma", 10, FontStyle.Bold) Brushes.Black, 10, 20 + (मैं 30 *))
    अगला

    ----- सब एक दस्तावेज के मुद्रण

    पूर्णांक = 0 charactersOnPage के रूप में मंद
    पूर्णांक = 0 linesPerPage के रूप में मंद

    'अक्षर charactersOnPage की संख्या के मूल्य सेट
    'यह stringToPrint पृष्ठ की सीमा के भीतर फिट होगा.
    'E.Graphics.MeasureString (stringToPrint, Me.Font, e.MarginBounds.Size, _
    StringFormat.GenericTypographic, charactersOnPage, linesPerPage)

    'पृष्ठ की सीमा के भीतर स्ट्रिंग खींचता
    'E.Graphics.DrawString (stringToPrint, Me.Font, Brushes.Black, _
    E.MarginBounds, StringFormat.GenericTypographic)

    यह मुद्रित किया गया है स्ट्रिंग के हिस्से को हटा दें.
    'StringToPrint = stringToPrint.Substring (charactersOnPage)

    'अगर अधिक पृष्ठों के लिए मुद्रित किया जा देखने के लिए जाँच करें.
    E.HasMorePages stringToPrint.Length => 0

    अंत उप

    निजी उप Button2_Click System.EventArgs के रूप में वस्तु ई, के रूप में (प्रेषक) संभालती Button2.Click
    (ReadFile)
    (ptdDocumento.Print)
    अंत उप

    निजी उप (ReadFile)
    DocName स्ट्रिंग = "index.html" के रूप में मंद
    DocPath स्ट्रिंग = के रूप में मंद "जी: \"
    ptdDocumento.DocumentName = docName
    नई FileStream (DocPath docName +, FileMode.Open) के रूप में मंद धारा
    कोशिश
    नई StreamReader (धारा) के रूप में मंद पाठक
    कोशिश
    reader.ReadToEnd = (stringToPrint)
    अंत में
    (reader.Dispose)
    कोशिश करो समाप्ति
    अंत में
    (stream.Dispose)
    कोशिश करो समाप्ति
    अंत उप

    निजी उप Button3_Click System.EventArgs के रूप में वस्तु ई, के रूप में (प्रेषक) संभालती Button3.Click
    ppdVista.Document = ptdDocumento
    (ppdVista.ShowDialog)
    अंत उप

    अंत क्लास

    TextBox1: यह मेरे लिए काम किया है, आप एक texbox की जरूरत
    PrintDocument: ptdDocumento
    PrintPreviewControl: ppdVista
    PrintDialog: ptdConfiguracion

  4. केविन रामिरेज़ कहते हैं:

    दिलचस्प लेख है, लेकिन आश्चर्य है कि कैसे हम टिकट, रसीदें, चालान, या नियंत्रित करने की जाँच के मुद्रण के रूप में और अधिक पेशेवर वातावरण में कार्य अगर प्रिंटर ऑनलाइन है और कागज या मुद्रण के impreison Mido उन्हें कुछ त्रुटि के लिए बंद कर दिया गया था चाहिए.

    तुम क्या उल्लेख के रूप में मैं कई बार कोशिश की है इस असफल है और इस समस्या को हल करने के लिए कुछ भी नहीं मिला hacerca सहेजें.

    नमस्ते.
    Atte. केविन रामिरेज़

  5. फ्रेंको सी. Sanchez कहते हैं:

    सुबह अच्छा है, पता है अगर आप किसी भी ट्यूटोरियल था ताकि आप एक DataGridView की सामग्री मुद्रित कर सकते हैं क्योंकि सब कुछ मैं इंटरनेट पर मिल बहुत कोड और कुछ भी चलाने हाँ! करने में सक्षम है चाहता था.
    मैं बहुत अगर आप इसके बारे में जानकारी की सराहना करेंगे.

    सादर

  6. मैनुअल कहते हैं:

    प्रिय, मैं Microsoft में किया गया है पर 10 साल के लिए प्रोग्रामिंग, VB6 के माध्यम से चला गया और अब मैं VS2010 के साथ हूँ.
    मैं किसी भी अधिक रिपोर्टों के PrintDocument लचीला उपकरण नहीं मिला है, वहाँ कुछ भी नहीं है कि वह नहीं कर सकता है.

    यदि आप प्रश्न हैं तो कृपया मुझसे संपर्क.
    का संबंध है

    • फ्रेंको सी. Sanchez कहते हैं:

      सुप्रभात मैनुअल, मैं एक संपर्क ईमेल खर्च करने के लिए लाइन में और अधिक हो जाएगा और इसलिए मुझे एक हाथ दे?
      आपको बहुत बहुत धन्यवाद
      मैं मेरा छोड़
      francocsanchez@gmail.com

      टी: यह बहुत आवश्यक है

    • केविन रामिरेज़ कहते हैं:

      खैर मैनुअल agredece ज्यादा आप मुझे जवाब है कि मैं मुझे एक ईमेल या किसी भी संपर्क की तरह कमान करेगा के लिए facilitaras क्योंकि मैं इस में छह महीने के बारे में है.

      और मैं एक कुछ पेशेवर मार्गदर्शन मैं इस्तेमाल कर सकते हैं लगता है.

      मैं अपने मेल छोड़ दें.
      kevinramirez92@hotmail.com

      नमस्ते.
      Atte. केविन रामिरेज़.

    • फ्रेंको कहते हैं:

      मैनुअल मैं कैसे एक DataGridView की सामग्री मुद्रित करने के लिए मदद की ज़रूरत है!.
      आप मुझे एक हाथ दे सकते हैं?
      francocsanchez@gmail.com

    • लुइस Cepeda का कहना है:

      नमस्ते.
      क्यू स्था है कि मेरी मेल कभी कभी सिर्फ बुनियादी दृश्य 2010 में स्वत: मुद्रण के लिए मदद की ज़रूरत है.
      Luis_Cepedaf@hotmail.com

    • सैन मार्टिन फ्रेंको कहते हैं:

      कुछ विशिष्ट पुस्तकालय के लिए एक एक्सेल दस्तावेज़ और आयाम में पाठ बॉक्स मान लोड immpresora करने के लिए अनुसार निर्धारित किया है.

      धन्यवाद

  7. सा एडगर का कहना है:

    हाय, माफ करना मैं तत्काल मदद की क्या होता है मुझे पता है कि मैं सामग्री पैनल घ जिस में मैं एक छवि (स्क्रॉलबार कश्मीर से निपटने पर पैनल से बड़ा) और कुछ पाठ बॉक्स मुद्रित कर सकते हैं करना चाहते हैं ... एक PrintDocument से में सभी की जरूरत है. हाय, माफ करना मैं तत्काल मदद की क्या होता है मुझे पता है कि मैं सामग्री पैनल घ जिस में मैं एक छवि (स्क्रॉलबार कश्मीर से निपटने पर पैनल से बड़ा) और कुछ पाठ बॉक्स मुद्रित कर सकते हैं करना चाहते हैं ... एक PrintDocument से में सभी की जरूरत है. हाय, माफ करना मैं तत्काल मदद की क्या होता है मुझे पता है कि मैं सामग्री पैनल घ जिस में मैं एक छवि (स्क्रॉलबार कश्मीर से निपटने पर पैनल से बड़ा) और कुछ पाठ बॉक्स मुद्रित कर सकते हैं करना चाहते हैं ... एक PrintDocument से में सभी की जरूरत है.

  8. टोरेस का कहना है:

    आपको बहुत बहुत धन्यवाद, पहली सरल उदाहरण है कि काम करता है

  9. अल्बर्टो कहते हैं:

    शुक्रिया. स्पष्टता और कठोरता. महान. अब मैं चक्र और फिल्टर करने के लिए एक डेटाबेस में रिकॉर्ड मुद्रित करने के लिए आवश्यक है, लेकिन यह बहुत स्पष्ट रूप से कैसे संपर्क में आप कहीं और मिल गया है बहुत dimly उजागर कि. तुम एक शिक्षक महान हो.

  10. yack ने कहा:

    मैं अपने उदाहरण की सेवा अगर मैं एक सवाल है बस के रूप में मैं सही स्थिति alprograma cirle प्रिंट के मेरे ईमेल कर सकते हैं yack7raro@gmail.com अगर poersona लैगून के रूप में जाना जाता है

  11. जो कहते हैं:

    पोस्ट उत्कृष्ट है, मैं मेरे लेबल मुद्रण खत्म करने के लिए कुछ जानकारी की जरूरत है, इस मामले में पहले बात करने के लिए मुद्रित करना है बॉक्स में क्या है, और प्रभाव की स्थिति को समायोजित करने के लिए 2, बधाई और आपको बहुत बहुत धन्यवाद ...

    • जो कहते हैं:

      प्रिंट के बारकोड बारकोड नीचे पहले पाठ बॉक्स पर पाठ के लिए सामान्य अक्षरों में मुद्रित करने की आवश्यकता है पुनश्च हिस्सा है कि स्पष्ट है, धन्यवाद नहीं करता है.

टिप्पणी