نمایش نتایج 1 تا 36 از 36

نام تاپیک: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

  1. #1
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    Lightbulb پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    برای اینکه بتونین از صفحاتتون پرینت بگیرین به روش زیر اقدام کنید

    در این روش از هر کنترلی که توی صفحه داشته باشید می تونین پرینت بگیرید مثل گریدویو ، عکس، جدول و هر چیز دیگه ای

    1. یک کلاس به وب سایتتون اضافه کنین و نام اون رو PrintHelper بگذارید
    کد زیر رو در اون بنویسید:

    C#‎
    --------------

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Text;
    using System.Web.SessionState;

    public class PrintHelper
    {
    public PrintHelper()
    {
    }

    public static void PrintWebControl(Control ctrl)
    {
    PrintWebControl(ctrl, string.Empty);
    }

    public static void PrintWebControl(Control ctrl, string Script)
    {
    StringWriter stringWrite = new StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
    if (ctrl is WebControl)
    {
    Unit w = new Unit(100, UnitType.Percentage); ((WebControl)ctrl).Width = w;
    }
    Page pg = new Page();
    pg.EnableEventValidation = false;
    if (Script != string.Empty)
    {
    pg.ClientScript.RegisterStartupScript(pg.GetType() , "PrintJavaScript", Script);
    }
    HtmlForm frm = new HtmlForm();
    pg.Controls.Add(frm);
    frm.Attributes.Add("runat", "server");
    frm.Controls.Add(ctrl);
    pg.DesignerInitialize();
    pg.RenderControl(htmlWrite);
    string strHTML = stringWrite.ToString();
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Write(strHTML);
    HttpContext.Current.Response.Write("<script>window .print();</script>");
    HttpContext.Current.Response.End();
    }
    }
    VB.NET
    --------------

    Imports System
    Imports System.Data
    Imports System.Configuration
    Imports System.Web
    Imports System.Web.Security
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.WebControls.WebParts
    Imports System.Web.UI.HtmlControls
    Imports System.IO
    Imports System.Text
    Imports System.Web.SessionState

    Public Class PrintHelper
    Public Sub New()
    End Sub

    Public Shared Sub PrintWebControl(ByVal ctrl As Control)
    PrintWebControl(ctrl, String.Empty)
    End Sub

    Public Shared Sub PrintWebControl(ByVal ctrl As Control, ByVal Script As String)
    Dim stringWrite As StringWriter = New StringWriter()
    Dim htmlWrite As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(stringWrite)
    If TypeOf ctrl Is WebControl Then
    Dim w As Unit = New Unit(100, UnitType.Percentage)
    CType(ctrl, WebControl).Width = w
    End If
    Dim pg As Page = New Page()
    pg.EnableEventValidation = False
    If Script <> String.Empty Then
    pg.ClientScript.RegisterStartupScript(pg.GetType() , "PrintJavaScript", Script)
    End If
    Dim frm As HtmlForm = New HtmlForm()
    pg.Controls.Add(frm)
    frm.Attributes.Add("runat", "server")
    frm.Controls.Add(ctrl)
    pg.DesignerInitialize()
    pg.RenderControl(htmlWrite)
    Dim strHTML As String = stringWrite.ToString()
    HttpContext.Current.Response.Clear()
    HttpContext.Current.Response.Write(strHTML)
    HttpContext.Current.Response.Write("<script>window.print();</script>")
    HttpContext.Current.Response.End()
    End Sub
    End Class

    2. دو صفحه بسازید default.aspx و print.aspx (این صفحه default همون صفحه ای هست که می خواین اطلاعاتشو پرینت بگیرین و صفحه print هم یه صفحه popup هست که حالت preview رو داره)

    3. داخل صفحه default.aspx یک پنل قرار بدین (از toolbar یک panel درگ کنید توی صفحه) و هر کنترل یا جدول یا گریدویو ، عکس و هر چیز دیگه ای رو که می خواین ازش پرینت داشته باشین رو توی اون پنل جاسازی و مرتب کنید(دقت کنید تمامی کنترلها و متنهایی که توی پنل قرار می دین پرینت گرفته می شن به همون شکل که شما قرار دادید)

    4. در صفحه default یک دکمه برای پرینت قرار بدین و نامش رو هم مثلاً پرینت اطلاعات بگذارید و سپس در رویداد کلیک اون کد زیر رو بنویسید:

    C#‎
    --------

    protected void btnPrint_Click(object sender, EventArgs e)
    {
    Session["ctrl"] = Panel1;
    ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','Prin tMe','height=300px,width=300px,scrollbars=1');</script>");
    }
    VB.NET
    ----------

    Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click
    Session("ctrl") = Panel1
    ClientScript.RegisterStartupScript(Me.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','Prin tMe','height=300px,width=300px,scrollbars=1');</script>")
    End Sub

    این کد اطلاعات مورد نظر رو در سشن ذخیره می کنه و به پنجره POPUP می فرسته و بعد پرینت می گیره ... اگر می خواین مستقیماً پرینت بگیره به جای کدهای بالا این کد رو بنویسید:


    PrintHelper.PrintWebControl(Panel1);

    5. در رویداد page_load صفحه print.aspx کد زیر رو اضافه کنین:

    C#‎
    ------------

    protected void Page_Load(object sender, EventArgs e)
    {
    Control ctrl = (Control)Session["ctrl"];
    PrintHelper.PrintWebControl(ctrl);
    }


    VB.NET
    -------

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim ctrl As Control = CType(Session("ctrl"), Control)
    PrintHelper.PrintWebControl(ctrl)
    End Sub

    تموم شد

    حالا اجرا کنید و پرینت بزنید

    امیدوارم مفید واقع بشه

    موفق باشید
    آخرین ویرایش به وسیله bahar_engineer : چهارشنبه 17 تیر 1388 در 14:16 عصر

  2. #2

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    ممنون دوست عزیز

  3. #3

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    مرسی
    واقعاً به همچین کدی نیاز بود
    فقط اگه لطف کنید چه خورده در مورد کلاس پروژه بیشتر توضیح بدید که چکار کردید ممنون میشم ( به خصوص با زبان VB )
    موفق باشید

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    104

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    دوست عزیز من می خوام مدیر سایت که رفت داخل قسمت admin کسانی که ثبت نام کردند رو ببینه داخل یه datagrid بعد از اون پرینت بگیره. از همین کد شما باید استفاده کنم؟؟؟ میشه یکم توضیح بدین!!!

  5. #5

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    نقل قول نوشته شده توسط arhnmn مشاهده تاپیک
    دوست عزیز من می خوام مدیر سایت که رفت داخل قسمت admin کسانی که ثبت نام کردند رو ببینه داخل یه datagrid بعد از اون پرینت بگیره. از همین کد شما باید استفاده کنم؟؟؟ میشه یکم توضیح بدین!!!
    خوب شما گریدتون رو بایند کنید و از همون روشی که خانم bahar_engineer گفتن پیش برید به نتیجه میرسید
    برای مشاهده لیست کاربران ثبت نام کرده هم که باید اطلاعات اونها رو از جدول مورد نظر بگیرید و تو گرید بریزید

  6. #6
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    عذر می خوام سوء تفاهم نشه

    این کد من نیست یعنی من ننوشتمش

    دنبال اینطور پرینتی می گشتم توی یه سایت خارجی پیداش کردم گفتم بذارم بقیه هم فیض ببرند


    اما در مورد سوال جناب arhnmn باید به عرض برسونم:
    بله . از همین روش می تونین استفاده کنین. شما گریدتون رو به بانک متصل کرده و با مشخصات افرادی که ثبت نام کردند پر کنید بعد به همون شکل یه پنل توی صفحه قرار بدین و گریدتون رو توی اون پنل بذارین و بعد هم پرینت .

  7. #7
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    حالا کسی هست که بدونه اگه بخوایم تو سایز A4 چاپ کنیم چه باید کرد؟ صفحه من چون در ابعاد 1024*768 هست وقتی چاپ می شه قسمتی از سمت راست صفحه نمی افته ... حتی وقتی pdf می شه

  8. #8
    VIP آواتار raziee
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    35
    پست
    2,208

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    ممنون از کدی که گذاشتی.
    این کد من نیست یعنی من ننوشتمش
    اخلاق و زفتار درستتون ارزشمنده.
    منظورم اینه که مثل بعضی ها کد ها و مقالات دیگران رو به نام خودتون منتشر نکردید.
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

  9. #9

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    فکر نکنم این کاذ برای گزارش گیری مناسب باشه باید از ابزارهای گزارش گیر مثل کریستال استفاده کنی

  10. #10
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    نه کریستال حجم بالایی داره و برای چنین گزارش ساده ای سنگینه

    من فقط می خوام صفحه مو در سایز A4 پرینت بگیرم... البته نهایتا فکر می کنم باید یک جدول توی صفحه بذارم با سایز A4 و به این شکل پرینت بزنم... یا کاری کنم که جدول SCALE بشه به سایز A4

  11. #11

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام ، مرسی از راهنماییتون ، من می خوام پرینت بگیرم از یک panel ولی نمی خوام print dialog نمایش داده بشه ، میشه کمکم کنید ؟

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    104

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    دو صفحه بسازید default.aspx و print.aspx (این صفحه default همون صفحه ای هست که می خواین اطلاعاتشو پرینت بگیرین و صفحه print هم یه صفحه popup هست که حالت preview رو داره)

    دوست عزیز من متوجه این قسمت از گفته های شما نشدم.صفحه popupکه حالت preview داره یعنی چی؟؟

  13. #13
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    104

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    خانوم bahar این طور که من فهمیدم صفحه popup برای نشون دادن متن پرینت هستش که خوب من نمیخوام این باشه.من بقیه مراحل رو انجام دادم ولی متاسفانه Errorمیده .
    این خط class printhelper

    frm.Controls.Add(ctrl)


    این error رو میده:
    Value cannot be null.
    Parameter name: child
    اگر میشه دوستانی که این کد رو اجرا کردن راهنمائیم کنن.مرسی
    آخرین ویرایش به وسیله arhnmn : پنج شنبه 25 تیر 1388 در 19:48 عصر

  14. #14
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    104

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    ببخشید که من همش پست میزارم .چون آخرین مهلت پروژم و چندتا مشکل اساسی دارم
    این خطی که گفتم error میداد یعنی این خط:

    frm.Controls.Add(ctrl)
    من برای امتحان کردن حذفش کردم ولی یه مشکل دیگه پیش اومد که دیگه اون صفحه ایی که میخوام داخلش یه gridview پرینت بشه نشون داده نمیشه و یکسره میره برای شناسایی پرینتر.
    لطفا" کمک کنید

  15. #15
    کاربر دائمی آواتار icegirl_f2r
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    ESF_Ashrafi Esfahani
    پست
    204

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    نقل قول نوشته شده توسط bahar_engineer مشاهده تاپیک
    شما گریدتون رو به بانک متصل کرده و با مشخصات افرادی که ثبت نام کردند پر کنید بعد به همون شکل یه پنل توی صفحه قرار بدین و گریدتون رو توی اون پنل بذارین و بعد هم پرینت .
    میشه مستقیماً هم گرید را به پرینتر فرستاد کافیه در کد زیر به جای panel اسم گریدتون را بزارین
    PrintHelper.PrintWebControl(Panel1);
    یعنی به این صورت
    PrintHelper.PrintWebControl(gridview);

  16. #16
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    نقل قول نوشته شده توسط bahar_engineer مشاهده تاپیک
    این کد اطلاعات مورد نظر رو در سشن ذخیره می کنه و به پنجره POPUP می فرسته و بعد پرینت می گیره ... اگر می خواین مستقیماً پرینت بگیره به جای کدهای بالا این کد رو بنویسید:


    PrintHelper.PrintWebControl(Panel1);

    اینجا گفتم که اگه خواستین اون پنجره print preview باز نشه این کد رو به جای کدی که در شماره 4 گفتم قرار بدین

    شرمنده من دیگه به این تاپیک سر نزدم ... شاید هم خیلی دیر شده باشه (برای پروژتون می گم)

    من خودم الان تست کردم :
    برای اینکه اصلا پنجره print نمایش داده نشه به این صورت عمل کنید :
    1. توی صفحه default یعنی همون صفحه ای که دکمه پرینت رو قرار دادین کد های رویداد کلیک باتن رو به این صورت تغییر بدین:


    Session["ctrl"] = Panel1;
    Control ctrl = (Control)Session["ctrl"];
    PrintHelper.PrintWebControl(ctrl);
    //ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','Prin tMe','height=500px,width=700px,scrollbars=1');</script>");


    همانطور که می بینید خطی که صفحه print رو بوسیله کد جاواسکریپت باز می کرد رو حذف کردیم (من در توضیحات قرار دادمش بوسیله //)
    و کدی که توی صفحه print نوشته بودیم رو به همین رویداد اضافه کردم

    حالا می تونین صفحه print رو کلا حذف کنید

    برای من که جواب داد
    آخرین ویرایش به وسیله bahar_engineer : سه شنبه 30 تیر 1388 در 10:36 صبح

  17. #17
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    نقل قول نوشته شده توسط arhnmn مشاهده تاپیک
    خانوم bahar این طور که من فهمیدم صفحه popup برای نشون دادن متن پرینت هستش که خوب من نمیخوام این باشه.من بقیه مراحل رو انجام دادم ولی متاسفانه Errorمیده .
    این خط class printhelper

    frm.Controls.Add(ctrl)
    این error رو میده:

    اگر میشه دوستانی که این کد رو اجرا کردن راهنمائیم کنن.مرسی
    فکر می کنم این خطا برای اینه که شما هیچ کنترلی رو توی سشن نفرستادین

    در اینجا کنترل در صفحه پرینت ، اطلاعات خودشو از سشن می گیره و شما صفحه پرینت رو که همون صفحه popup هست حذف کردین پس هیچ اطلاعاتی وجود نداره که بتونی اضافه کنه برای همین null هست مقدار کنترلتون و خطا می ده

  18. #18
    کاربر دائمی آواتار minamorsali
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    سن
    36
    پست
    120

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام
    با تشکر از مقاله خوبتون.
    من این روش رو در صفحه ascx استفاده کردم، اما در رویداد کلیک دستور

    ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language=javascript>window.open('Print.aspx','Prin tMe','height=300px,width=300px,scrollbars=1');</script>");

    رو نمیشناسه.
    برای حلش چه کار کنم؟
    یه سوال دیگه. من از این روش در گزارش گیری استفاده می کنم . اول سر کنترل گرید ویوو ام خالیه و بعد از کلیک دکمه گزارش، داده ها از دیتا بیس وارد گرید ویوو میشه، حالا مشکلم اینه که وقتی دکمه پرینت رو می زنم اطلاعات گرید ویوو ام می پره و در نتیجه صفحه سفید برام چاپ میشه. ممنون میشم اگه راهنماییم کنید.

    با تشکر فراوان
    آخرین ویرایش به وسیله minamorsali : شنبه 31 مرداد 1388 در 11:08 صبح دلیل: اشتباه در رساندن مفهوم

  19. #19

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام
    من نتونستم كد رو اجرا كنم
    من كلاس PrintHelper رو داخل AppCode ايجاد كردم
    Value cannot be null.
    Parameter name: child


    Line 40: pg.Controls.Add(frm);
    Line 41: frm.Attributes.Add("runat", "server");
    Line 42: frm.Controls.Add(ctrl);
    Line 43: pg.DesignerInitialize();
    Line 44: pg.RenderControl(htmlWrite);

  20. #20
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    تبریز
    پست
    318

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام
    دوستان به ما گفتن که از پنل استفاده نکنین چون گاهی وقتا قفل می کنه و مشکلاتی تو بعضی از browser ها پیش میاره ، در مورد این کدها هم که از پنل استفاده کردین ممکن هست از یه ابزار دیگه استفاده شه ، یا اصلا این که از پنل استفاده نکنیم درسته ؟

  21. #21

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    دوستان به ما گفتن که از پنل استفاده نکنین چون گاهی وقتا قفل می کنه و مشکلاتی تو بعضی از browser ها پیش میاره ، در مورد این کدها هم که از پنل استفاده کردین ممکن هست از یه ابزار دیگه استفاده شه ، یا اصلا این که از پنل استفاده نکنیم درسته ؟
    اینو کی گفته ؟
    من تاحالا همچین چیزی نشنیدم . اگه که از گفتتون کاملاً مطمئن هستید بگید تا از این به بعد ما هم یه خورده رو استفاده از پنل تامل بیشتری کنیم . ممنون
    من این روش رو در صفحه ascx استفاده کردم، اما در رویداد کلیک دستور

    کد:
    ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script language
    آره . البته من روز اولی که خانم bahar_engineer این کد رو قرار دادن من ازش استفاده کردم و 100% جواب میداد
    یه مدت مدت بعد واسه خودم که خواستم استفاده کنم دیگه از همین تکه کد ایراد میگیره
    حالا چرا ؟... نمیدونم

  22. #22
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    من خودم دوباره تست کردم مشکلی نداره

    اینم صفحات شما فقط کدهاشو نگاه کنین چون بانک داره و برای اجرا بهتون خطا می ده

    صفحه اصلی من که شامل دکمه پرینته REPORT هست که شامل کدهایی برای ارتباط با بانک اطلاعاتیه و اگه همین صفحه رو اضافه کنین خطا می ده ... شما همینطوری بازش کنین و کدهاشو بردارین که البته همونطوری هست که در ابتدای تاپیک نوشتم

    فایل PDF هم نتیجه پرینت هست

    صفحه PRINT هم که همون صفحه کذایی پرینته

    اون فولدر APP_CODE هم که شامل کلاس PRINTHELPER
    فایل های ضمیمه فایل های ضمیمه

  23. #23
    کاربر دائمی آواتار minamorsali
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    سن
    36
    پست
    120

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام
    خیلی خیلی متشکرم به خاطر راهنماییتون.
    همون کارهایی که گفتید رو انجام دادم، اما در هنگام اجرا موقعی که روی دکمه پرینت کلیک می کنم ارور :
    The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).


    رو در خط زیر از برنامه print helper می ده:

    frm.Controls.Add(ctrl);


    متشکر میشم اگه راهنماییم کنید.

  24. #24
    کاربر دائمی آواتار bahar_engineer
    تاریخ عضویت
    دی 1387
    محل زندگی
    تهران
    پست
    657

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎‎ & VB

    شما چه کنترلی رو می خواین پرینت بگیرین؟

  25. #25
    کاربر دائمی آواتار minamorsali
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    سن
    36
    پست
    120

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    کنترل گرید ویوو.
    راستی یه مورد دیگه اینکه من به برنامه شما که دقت کردم شما قبل از اجرا data sourse اتون و دستور select اتون مشخصه، اما من select ام در زمان اجرا توسط کاربر و پس از زدن دکمه گزارش مشخص میشه.بخاطر همین شاید روش شما جواب نده برای من. شما می دونید من باید چه کنم؟
    این روش رو نمیشه بصورت کلاینت ساید پیاده کرد؟
    باز هم بخاطر کمک هاتون بی نهایت متشکرم.

  26. #26
    کاربر دائمی آواتار minamorsali
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    سن
    36
    پست
    120

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    ارورش رو برطرف کردم ، اما باز هم صفحه سفید تحویلم میده....
    این روشی که شما گفتین، رو نمیشه بصورت کلاینت ساید بدون رفت و برگشت به سرور انجام داد؟

    با تشکر از راهنمایی هاتون خانم bahar_enginer

  27. #27

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    مرسی. دمت گرم.

  28. #28
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلام دوست عزیز
    این برنامه شما باید حتما کنترلها در یک panel باشه

  29. #29

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    این روشی که شما گفتین، رو نمیشه بصورت کلاینت ساید بدون رفت و برگشت به سرور انجام داد؟
    چرا نمیشه.. اینم روشش
    اول در مورد اینکه پنل با بعضی مرورگرها مشکل داره بگم که درسته مشکل داره... مثلا با ورژنهای قدیمی opera فکر کنم ورژن 8 بود که اسکرول نمی گرفت... دقیقا یادم نیست ولی تو ورژنهای بعدی حل شد

    دوم در مورد پرینت... فکر میکنم واسه پرینت گرفتن راه خیلی خیلی ساده تری وجود داشته باشه
    که من از همین سایت برنامه نویس یاد گرفتم و تا حالا هم هر چی خواستم پرینت بگیرم از این کدها استفاده کردم
    مثل صدور کارت امتحانی و برگه اعتراض تو A5 و پرینت نمره ها تو A4
    بریم سر اصل مطلب
    تو این روش فقط یه صفحه داریم و احتیاجی هم به کلاس خاصی نیست ... میتونید ار پنل هم استفاده نکنید ... چون ما با جدول کار میکنیم...اما اگه جدولتون ارتفاعش خیلی زیاد بود میتونید جدولو بزارید داخل پنل و به پنل اسکرول بدید...پنل تاثیری تو پرینت ما نداره...چون ما از جدول داخل پنل میخوایم پرینت بگیریم نه خود پنل
    اول تمام المانهایی رو که میخواید ازشون پرینت بگیرید بزارید تو یه تیبل و هر جوری که دوست دارید اونها رو تیبل بندی کنید. به اون جدول یه id بدید مثلا pri
    بعد بالای این جدول یا هرجایی که توی این جدول نباشه یه دکمه از نوع html ای بزارید
    یه چیزی مثل کد زیر

    <inputid="Button1"type="button"value="print table"onclick="return CallPrint('pri')"/>


    و اسکریپت زیررو هم به قسمت head صفحه اضافه کنید


    <script>
    function CallPrint(strid)
    {
    var prtContent = document.getElementById(strid);
    var WinPrint = window.open('','','letf=0,top=0,width=720,height=600,margin-left=0,toolbar=0,scrollbars=1,status=0');
    WinPrint.document.write(prtContent.outerHTML);
    WinPrint.document.close();
    WinPrint.print();
    WinPrint.close();
    returnfalse;
    }
    </script>


    سایز پنجره preview و پرینت تو قسمت اسکریپت تعیین میشه البته به اندازه جدولتون هم مربوطه
    اگه همه این چیزا رو با دقت تعیین کنید میبینید که پرینت دقیقا همون جوری میشه که انتظار دارید

  30. #30
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Iran
    پست
    1,035

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎‎ & VB

    چطور می توانم یک فایل pdf بدون باز کردن پرینت بگیرم

  31. #31

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎‎ & VB

    سلام دوست من
    مرسی از راه حلی که گذاشتی
    اما من این کد رو تست کردم
    وقتی پنلم رو برای چاپ می فرستم قیافهء پنلم داغون می شه
    و خیلی زشت می شه
    چطور می تونم این مشکل رو حل کنم

  32. #32
    کاربر دائمی
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    اصفهان
    پست
    119

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎‎ & VB

    دوست عزیز سلام
    ممنون از کد خوبی که گذاشتید.
    مشگل من اینجاست که در پنل یک جدول با اندازه های درصدی دارم. موقع پرینت این اندازه ها اندازه واقعی نیستن. میشه راه حل ارائه بدین؟
    ممنون از وقتی که می گذارین.

  33. #33
    کاربر دائمی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    شمال
    سن
    36
    پست
    215

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎‎ & VB

    سلام
    ممنون از کدی که گذاشتید

    من ا زکد اول تاپیک استفاده کردم
    اما مشکل اینه که سایز صفحه ای که میخواد پرینت گرفته بشه رو نمیدونم
    ضمن اینکه فونت من تو پنل tahoma است و توی چاپ arial
    یعنی کاربر یه چیزی میبینه یه چیز دیگه تو پرینت پرویو میاد!!!
    کسی میتونه کمکم کنه؟؟؟؟؟؟؟؟؟؟؟؟؟
    آخرین ویرایش به وسیله neynavaz : چهارشنبه 21 مهر 1389 در 16:55 عصر

  34. #34
    کاربر دائمی آواتار mehran_337
    تاریخ عضویت
    مهر 1384
    محل زندگی
    رشت
    پست
    1,305

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    من هم از این کلاس استفاده کردم ما همه رو چپ چین کرده و فونت ها رو بهم ریخته چکار کنم که تنظیمات صفحه همچنان حفظ بشه و با همون استایلی که در صفحه می بینم چاپ بشه؟

  35. #35
    کاربر دائمی
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    293

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    دست شما درد نکنه من این کد را انجام دادم اجرا کرد و هیچ مشکلی نداره ولی چنانچه صفحه ما یک مسترپچ باشه کار نمیکنه .ایا کسی امتحان کرده و ......من چیکار کنم تا در صفحه مستر پیچ هم مشکل نداشته باشد.

  36. #36

    نقل قول: پرینت گرفتن از هر قسمت صفحه که مایل باشید C#‎ & VB

    سلامممممم
    با این که خودت ننوشتی اما کاره بزرگی انجام دادی

    بگزریم
    تویه همین تالار
    karaji333

    یک تاپیک زده بود که یک دی ال ال گذاشت .کاره پرینت رو به بهترین نحوه احسنت انجام میده
    لینک رو ببینید
    اینو نگفتم بی خیال شین
    گفتم برید از ش بپرسیدشاید بتونه کمکتون کنه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •