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

نام تاپیک: چاپ با چاپگرهای تحویلداری بانک (generic)

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    چاپ با چاپگرهای تحویلداری بانک (generic)

    سلام.
    فکر کنم سوالم یه کم سخت باشه ولی اگه ممکنه هر کس هر قدر اطلاعات داره همونا رو در اختیار من بزاره ! ممنون.
    من بنا به ضرورت مجبورم برنامه ای بنویسم که چاپ اون توسط چاپگرهای تحویلداری در بانکها (Generic Text only) باشه.
    می دونم که طریقه چاپ با این چاپگرها کاملا متفاوت است و تو msdn هم خیلی گشتم و generic class رو پیدا کردم که باید همون راه چاپ با این چاپگرها باشه ولی اصلا ازش سر در نیاوردم.
    به هر حال از دوستان تقاضا دارم هر گونه تجربه ای دارند مرحمت کنند.

  2. #2
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام

    مگه این چاپگر ها مثل چاپگر های عادی نصب نمی شن توی ویندوز

    خوب اگه می شن خیلی عادی میشه انتخابشون کرد مثل پرینترهای دیگه و اطلاعات رو

    براشون فرستاد دیگه

    اصلا چه فرقی می کنه با چاپگرهای دیگه

  3. #3
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط bashir_nashi مشاهده تاپیک
    سلام.
    فکر کنم سوالم یه کم سخت باشه ولی اگه ممکنه هر کس هر قدر اطلاعات داره همونا رو در اختیار من بزاره ! ممنون.
    من بنا به ضرورت مجبورم برنامه ای بنویسم که چاپ اون توسط چاپگرهای تحویلداری در بانکها (Generic Text only) باشه.
    می دونم که طریقه چاپ با این چاپگرها کاملا متفاوت است و تو msdn هم خیلی گشتم و generic class رو پیدا کردم که باید همون راه چاپ با این چاپگرها باشه ولی اصلا ازش سر در نیاوردم.
    به هر حال از دوستان تقاضا دارم هر گونه تجربه ای دارند مرحمت کنند.
    چیزی که پیدا کردی متنش یا لینکش را اینجا بگذارید.

  4. #4
    سلام.
    در این که این چاپگرها یا در واقع دستگاههای پرفراژ با چاپگرهای معمولی فرق میکنند شکی نیست . چون این چاپگر روی کامپیوتر بانک نصب است و با نرم افزار بانک کار میکند ولی روی همین کامپیوتر مثلا در word یه کلمه رو تایپ و دستور چاپ توسط این چاپگر را میدهیم . ولی انگار نه انگار . حتی در properties چاپگر های نصب شده روی یک کامپیوتر کلید print test page هست که در مورد این چاپگرها کاری انجام نمی دهد .
    این رو هم بگم که این چاپگرها به پورت COM متصل میشوند.
    من تو msdn کلاس generic رو پیدا کردم که نمی دونم اصلا به Generic Text Only Printer مربوط است یا نه (از بس که اینگلیسیم خوبه!!!)

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vbalr/html/89f771d9-ecbb-4737-88b8-116b63c6cf4d.htm

    اینم چند خط اولش اگه اینجوری نشد پیداش کرد:

    A generic type is a single programming element that adapts to perform the same functionality for a variety of data types. When you define a generic class or procedure, you do not have to define a separate version for each data type for which you might want to perform that functionality.

    An analogy is a screwdriver set with removable heads. You inspect the screw you need to turn and select the correct head for that screw (slotted, crossed, starred). Once you insert the correct head in the screwdriver handle, you perform the exact same function with the screwdriver, namely turning the screw.

    Screwdriver set as a generic tool



    When you define a generic type, you parameterize it with one or more data types. This allows the using code to tailor the data types to its requirements. Your code can declare several different programming elements from the generic element, each one acting on a different set of data types. But the declared elements all perform the identical logic, no matter what data types they are using.
    For example, you might want to create and use a queue class that operates on a specific data type such as String. You can declare such a class from System.Collections.Generic.Queue, as the following example shows.


    بازم ممنون از توجهتون.

  5. #5
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط bashir_nashi مشاهده تاپیک
    سلام.
    در این که این چاپگرها یا در واقع دستگاههای پرفراژ با چاپگرهای معمولی فرق میکنند شکی نیست . چون این چاپگر روی کامپیوتر بانک نصب است و با نرم افزار بانک کار میکند ولی روی همین کامپیوتر مثلا در word یه کلمه رو تایپ و دستور چاپ توسط این چاپگر را میدهیم . ولی انگار نه انگار . حتی در properties چاپگر های نصب شده روی یک کامپیوتر کلید print test page هست که در مورد این چاپگرها کاری انجام نمی دهد .
    این رو هم بگم که این چاپگرها به پورت COM متصل میشوند.
    من تو msdn کلاس generic رو پیدا کردم که نمی دونم اصلا به Generic Text Only Printer مربوط است یا نه (از بس که اینگلیسیم خوبه!!!)

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vbalr/html/89f771d9-ecbb-4737-88b8-116b63c6cf4d.htm

    اینم چند خط اولش اگه اینجوری نشد پیداش کرد:

    A generic type is a single programming element that adapts to perform the same functionality for a variety of data types. When you define a generic class or procedure, you do not have to define a separate version for each data type for which you might want to perform that functionality.

    An analogy is a screwdriver set with removable heads. You inspect the screw you need to turn and select the correct head for that screw (slotted, crossed, starred). Once you insert the correct head in the screwdriver handle, you perform the exact same function with the screwdriver, namely turning the screw.

    Screwdriver set as a generic tool



    When you define a generic type, you parameterize it with one or more data types. This allows the using code to tailor the data types to its requirements. Your code can declare several different programming elements from the generic element, each one acting on a different set of data types. But the declared elements all perform the identical logic, no matter what data types they are using.
    For example, you might want to create and use a queue class that operates on a specific data type such as String. You can declare such a class from System.Collections.Generic.Queue, as the following example shows.


    بازم ممنون از توجهتون.
    این جنریک اصلا ربطی به چیزی که شما می خواهی نداره.

  6. #6
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    تا جایی که من دیدم اکثر دستگاههای پرفراژ Driver دارند و نصب میشه و مثل بقیه چاپگر ها کار میکنن.
    مثلا Beiyang 8 cm .
    مدل چاپگرتون چیه ؟

  7. #7
    اسم چاپگر : olivity مدلشو باید فردا برم ببینم تو ذهنم نیست.
    ولی میدونم که درایور نداره .

  8. #8
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    چه مدلی Olivetti اینجور که من اطلاع دارم جدیدا درایور براشون نوشتن و هیچ اطلاع دیگه ای ندارم.
    حالا اصلا چیکار میخوای بکنی؟
    چون اینا معمولا باید مستقیم روی پورت COM بفرستی.
    نیازی به درایور هم ندارن.

  9. #9
    این جنریک اصلا ربطی به چیزی که شما می خواهی نداره.
    جدا !!! . فکر کنم بزرگترین کمک رو شما به من کردید که از شر سروکله زدن با این کلاس راحتم کردین.


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

  10. #10
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313
    نقل قول نوشته شده توسط bashir_nashi مشاهده تاپیک
    جدا !!! . فکر کنم بزرگترین کمک رو شما به من کردید که از شر سروکله زدن با این کلاس راحتم کردین.



    من میخوام بتونم باهاش یه چیزی چاپ کنم مثلا یه کلمه یا عدد. چون چاپ برنامه من اجبارا باید با این چاپگر کار کنه.
    در مورد ارسال به پورت COM هم اگه می شه بیشت توضیح بدین .
    این کلاس جنریک در 2005 اضافه شده و یک چیزی شبیه به آرایه ها را در اختیار می گذاره.

  11. #11
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    این نوع چاپگر ها EPROM شون طوری برنامه ریزی شده که فونتها بصورت سخت افزاری روشون تعریف شده . و همشون عمدتا فارسی رو پشتیبانی میکنن.
    حالا شما بایستی Command های لازم برای چاپ اطلاعات مثل فرمان Cut رو پیدا کنین و بفرستین روی پورتی که چاپگر متصل شده . به نوع کار میگن چاپ Dos
    البته خاصیت دیگه که دارن اکثرا درایور ویندوزی هم دارن که مثل بقیه چاپگر ها نصب میشن و شما می توننین کاراتونو به ویندوز بسپارین.

  12. #12
    یه چندتا لینکه شاید به دردت بخوره
    احتمالا درایور ویندوزی داره
    http://support.microsoft.com/kb/81626
    http://support.microsoft.com/kb/81626

  13. #13
    این نوع چاپگر ها EPROM شون طوری برنامه ریزی شده که فونتها بصورت سخت افزاری روشون تعریف شده . و همشون عمدتا فارسی رو پشتیبانی میکنن.
    حالا شما بایستی Command های لازم برای چاپ اطلاعات مثل فرمان Cut رو پیدا کنین و بفرستین روی پورتی که چاپگر متصل شده . به نوع کار میگن چاپ Dos
    البته خاصیت دیگه که دارن اکثرا درایور ویندوزی هم دارن که مثل بقیه چاپگر ها نصب میشن و شما می توننین کاراتونو به ویندوز بسپارین.
    من حتما فردا چاپگر بانک رو میارم خونه و سعی میکنم این کار رو بکنم ولی اگه ممکنه یه کم واضح تر بگید . چه دستوری برای ارسال اطلاعات به پورتهای سریال استفاده میشه ؟
    ممنون.

  14. #14
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    من توی داس همچین چیزی نوشتم خیلی وقت پیشها . اما اون برای خودش یک پرینتر بود و درایور داشت . نیازی به هیچ کاری اضافی نداشت

  15. #15
    کاربر تازه وارد آواتار netspc
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    India
    پست
    81
    سلام اون کلاس generic که شما میبینید برای کار برروی چاپگرهایی هست که مدل درایور اونها را نمیدونید و اینکه یک کلاس کلی برای کار با چاپگرهای استاندار هست .
    برای کار با پرفراژها اولین کاری که شما باید بکنی اینکه لیست فونتهای داخل دستگاه رو بدست بیاری
    دومین کار اینه که شما تمام 255 کاراکتر ascii رو باهاش چاپ کن (بهتر برای اینکار از داس استفاده کنی چون همونطور که دوستان گفتند اینگونه چاپگرها با پورت com وصل میشوند راحت تر میتونی تحت داس اینکار رو بکنی)
    درضمن برنامه هایی که معمولاً توی بانک ها هست جایی برای تنظیم چاپگر باید داشته باشه از اونجا فکر کنم بتونی نوع چاپگر رو پیدا کنی
    یادم هست یه بانک اطلاعاتی که دوستان با اون کار میکردند به نام dataease قابلیت کار کردن با این نوع چاپگرها رو داشت توی خود برنامه از طریق تنظیمات داخلی برنامه میشد به این نوع چاپگرها وصل شد.

  16. #16
    من الارغم تلاشی که کردم نتونستم حتی صدای چاپگر رو دربیارم چه برسد به چاپ دادن ...
    درایورش رو هم تو اینترنت گیر آوردم ولی هیچ کمکی نکرد.

    دومین کار اینه که شما تمام 255 کاراکتر ascii رو باهاش چاپ کن (بهتر برای اینکار از داس استفاده کنی چون همونطور که دوستان گفتند اینگونه چاپگرها با پورت com وصل میشوند راحت تر میتونی تحت داس اینکار رو بکنی)
    ممنون ولی من این کارو بلد نیستم.چه جوری از توی داس کارکتر ها رو چاپ بدم ؟
    -------------------------
    روی ارسال دیتا به پورت های سریال هم خیلی کار کردم . msdn میگه کد زیر رو بکار ببرید:

    WriteFile(hSerialPort, Buffer, Buffer.Length, BytesWritten, IntPtr.Zero)

    البته قبلش باید ارتباط برقرار بشه و تنظیماتی انجام بگیره که چون موقعی که میخوام اجرا کنم قبل از رسیدن به این دستور کار یه جایی می لنگه اصلا اجازه اجرا به writefile داده نمی شه.
    کد کاملش اینه :

    Option Strict On

    Class CommException
    Inherits ApplicationException
    Sub New(ByVal Reason As String)
    MyBase.New(Reason)
    End Sub
    End Class

    Module Module1

    Public Structure DCB
    Public DCBlength As Int32
    Public BaudRate As Int32
    Public fBitFields As Int32
    Public wReserved As Int16
    Public XonLim As Int16
    Public XoffLim As Int16
    Public ByteSize As Byte
    Public Parity As Byte
    Public StopBits As Byte
    Public XonChar As Byte
    Public XoffChar As Byte
    Public ErrorChar As Byte
    Public EofChar As Byte
    Public EvtChar As Byte
    Public wReserved1 As Int16 'Reserved; Do Not Use
    End Structure

    Public Structure COMMTIMEOUTS
    Public ReadIntervalTimeout As Int32
    Public ReadTotalTimeoutMultiplier As Int32
    Public ReadTotalTimeoutConstant As Int32
    Public WriteTotalTimeoutMultiplier As Int32
    Public WriteTotalTimeoutConstant As Int32
    End Structure

    Public Const GENERIC_READ As Int32 = &H80000000
    Public Const GENERIC_WRITE As Int32 = &H40000000
    Public Const OPEN_EXISTING As Int32 = 3
    Public Const FILE_ATTRIBUTE_NORMAL As Int32 = &H80
    Public Const NOPARITY As Int32 = 0
    Public Const ONESTOPBIT As Int32 = 0

    Public Declare Auto Function CreateFile Lib "kernel32.dll" _
    (ByVal lpFileName As String, ByVal dwDesiredAccess As Int32, _
    ByVal dwShareMode As Int32, ByVal lpSecurityAttributes As IntPtr, _
    ByVal dwCreationDisposition As Int32, ByVal dwFlagsAndAttributes As Int32, _
    ByVal hTemplateFile As IntPtr) As IntPtr

    Public Declare Auto Function GetCommState Lib "kernel32.dll" (ByVal nCid As IntPtr, _
    ByRef lpDCB As DCB) As Boolean

    Public Declare Auto Function SetCommState Lib "kernel32.dll" (ByVal nCid As IntPtr, _
    ByRef lpDCB As DCB) As Boolean

    Public Declare Auto Function GetCommTimeouts Lib "kernel32.dll" (ByVal hFile As IntPtr, _
    ByRef lpCommTimeouts As COMMTIMEOUTS) As Boolean

    Public Declare Auto Function SetCommTimeouts Lib "kernel32.dll" (ByVal hFile As IntPtr, _
    ByRef lpCommTimeouts As COMMTIMEOUTS) As Boolean

    Public Declare Auto Function WriteFile Lib "kernel32.dll" (ByVal hFile As IntPtr, _
    ByVal lpBuffer As Byte(), ByVal nNumberOfBytesToWrite As Int32, _
    ByRef lpNumberOfBytesWritten As Int32, ByVal lpOverlapped As IntPtr) As Boolean

    Public Declare Auto Function ReadFile Lib "kernel32.dll" (ByVal hFile As IntPtr, _
    ByVal lpBuffer As Byte(), ByVal nNumberOfBytesToRead As Int32, _
    ByRef lpNumberOfBytesRead As Int32, ByVal lpOverlapped As IntPtr) As Boolean

    Public Declare Auto Function CloseHandle Lib "kernel32.dll" (ByVal hObject As IntPtr) As Boolean

    Sub Main()

    Dim hSerialPort As IntPtr
    Dim Success As Boolean
    Dim MyDCB As DCB
    Dim MyCommTimeouts As COMMTIMEOUTS
    Dim BytesWritten, BytesRead As Int32
    Dim Buffer() As Byte

    ' Declare variables to use for encoding.
    Dim oEncoder As New System.Text.ASCIIEncoding
    Dim oEnc As System.Text.Encoding = Text.Encoding.GetEncoding(1252)

    ' Convert String to Byte().
    Buffer = oEnc.GetBytes("Test")

    Try
    ' Serial port.
    Console.WriteLine("Accessing the COM1 serial port")
    ' Obtain a handle to the COM1 serial port.
    hSerialPort = CreateFile("COM1", GENERIC_READ Or GENERIC_WRITE, 0, IntPtr.Zero, _
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero)
    ' Verify that the obtained handle is valid.
    If hSerialPort.ToInt32 = -1 Then
    Throw New CommException("Unable to obtain a handle to the COM1 port")
    End If

    Success = WriteFile(hSerialPort, Buffer, Buffer.Length, BytesWritten, IntPtr.Zero)

    ' Retrieve the current control settings.
    Success = GetCommState(hSerialPort, MyDCB)
    If Success = False Then
    Throw New CommException("Unable to retrieve the current control settings")
    End If
    ' Modify the properties of MyDCB as appropriate.
    ' WARNING: Make sure to modify the properties in accordance with their supported values.
    MyDCB.BaudRate = 9600
    MyDCB.ByteSize = 8
    MyDCB.Parity = NOPARITY
    MyDCB.StopBits = ONESTOPBIT
    ' Reconfigure COM1 based on the properties of MyDCB.

    Success = SetCommState(hSerialPort, MyDCB)
    If Success = False Then
    Throw New CommException("Unable to reconfigure COM1")
    End If
    ' Retrieve the current time-out settings.
    Success = GetCommTimeouts(hSerialPort, MyCommTimeouts)
    If Success = False Then
    Throw New CommException("Unable to retrieve current time-out settings")
    End If
    ' Modify the properties of MyCommTimeouts as appropriate.
    ' WARNING: Make sure to modify the properties in accordance with their supported values.
    MyCommTimeouts.ReadIntervalTimeout = 0
    MyCommTimeouts.ReadTotalTimeoutConstant = 0
    MyCommTimeouts.ReadTotalTimeoutMultiplier = 0
    MyCommTimeouts.WriteTotalTimeoutConstant = 0
    MyCommTimeouts.WriteTotalTimeoutMultiplier = 0
    ' Reconfigure the time-out settings, based on the properties of MyCommTimeouts.
    Success = SetCommTimeouts(hSerialPort, MyCommTimeouts)
    If Success = False Then
    Throw New CommException("Unable to reconfigure the time-out settings")
    End If
    ' Write data to COM1.
    MsgBox("fghfgh")

    Console.WriteLine("Writing the following data to COM1: Test")
    Success = WriteFile(hSerialPort, Buffer, Buffer.Length, BytesWritten, IntPtr.Zero)
    If Success = False Then
    Throw New CommException("Unable to write to COM1")
    End If
    ' Read data from COM1.
    Success = ReadFile(hSerialPort, Buffer, BytesWritten, BytesRead, IntPtr.Zero)
    If Success = False Then
    Throw New CommException("Unable to read from COM1")
    End If
    Catch ex As Exception
    Console.WriteLine(ex.Message)
    Finally
    ' Release the handle to COM1.
    Success = CloseHandle(hSerialPort)
    If Success = False Then
    Console.WriteLine("Unable to release handle to COM1")
    End If
    End Try

    Console.WriteLine("Press ENTER to quit")
    Console.ReadLine()
    End Sub

    End Module



    اگه کسی بتونه کمک کنه خیلی ممنون می شم.

  17. #17
    کاربر تازه وارد آواتار netspc
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    India
    پست
    81
    آسون ترین راه توی داس برای چاپ ،زدن دکمه print screen هست

  18. #18
    در چنین مواقعی، عقل سلیم حکم می کنه که سوالت رو در فوروم های مایکروسافت مطرح کنی.

  19. #19

    نقل قول: چاپ با چاپگرهای تحویلداری بانک (generic)

    سلام

    برای پرفراژ قبض رسید فروشگاهی احتیاج به چاپ با پرینتر پرفراژی(Pass Book)دارم
    مدل پرینتر مهم نیست (چون هنوز سفارش ندادند )آیا کسی نمونه کدی داره؟

    با تشکر

تاپیک های مشابه

  1. آشنایی با generic
    نوشته شده توسط marzban در بخش C#‎‎
    پاسخ: 8
    آخرین پست: شنبه 13 مرداد 1386, 23:37 عصر
  2. کلاس Generic
    نوشته شده توسط amin_679 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 19 خرداد 1386, 15:53 عصر
  3. درباره ی generic
    نوشته شده توسط WindowsXp در بخش VB.NET
    پاسخ: 3
    آخرین پست: چهارشنبه 15 فروردین 1386, 12:08 عصر
  4. Generic Type
    نوشته شده توسط roxen13 در بخش برنامه‌نویسی جاوا
    پاسخ: 2
    آخرین پست: چهارشنبه 08 آذر 1385, 23:11 عصر
  5. Generic Types چیست؟
    نوشته شده توسط محمد عرب در بخش VB.NET
    پاسخ: 5
    آخرین پست: پنج شنبه 17 فروردین 1385, 15:18 عصر

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

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