View Full Version : مشکل چاپ فارسی بدون استفاده از چیزی
  
Ich
یک شنبه 02 اسفند 1383, 06:29 صبح
سلام
راستش یه مشکل عجیب پیش اومده.
من یه تابع نوشتم که چند تا متن فارسی رو چاپ میکنه تا قبل هم درست بود. اما وقتی که تو تنظیمات ویندوز دست آوردم به هم ریخت و البته دوباره تنظیمات رو درست کردم. اما آلان حروف فارسی رو به صورت یه کارکتر دیگه نشون میده مثل اینکه اصلا فونش رو نخونده.
جالب اینجاست که یه تابع دیگه هم نوشتم. اون تابع درست کار میکنه اما اگه تابع قبلی رو قبل از اون اجرا کنم اون تابع دوم نیز به هم میریزه. و تا ویندوز رست نشه تابع دوم جواب نمی ده.
لطفا اگه مشکل رو می دونید سریع جواب بدید.
ممنون از همگی
ehsan707
یک شنبه 02 اسفند 1383, 09:27 صبح
rain tax
ساران سافت
یک شنبه 02 اسفند 1383, 12:06 عصر
فونتت رو عوض کن با دستور
printer.font
 ببین آیا جواب میدهد یا نه؟ :wink:
Ich
یک شنبه 02 اسفند 1383, 18:58 عصر
همونطور که گفتم فونت رو عوض میکنم اما انگار کار نمی ده!!!!:cry:
بابک زواری
دوشنبه 03 اسفند 1383, 21:36 عصر
اگر میتونی سورست رو بذار تا یک نگاهی بکنیم 
در ضمن دقت کن ببین کدپیج رو دستکاری نکردی ؟
Ich
دوشنبه 03 اسفند 1383, 22:19 عصر
ببخشید :sorry: . اما به 2 دلیل نمیتونم سورس رو بزارم یکی اینکه حجمش بالاست دوم اینکه تجاری هست(خودتون خبر دارید که)
اما تابع رو در زیر مینویسم ببینید مشکلش چی هست:
Public Sub PrintCon2(lngID As Long)
Set objRS(0) = New Recordset
objRS(0).Open "tbl_Contract", objConn, adOpenDynamic, adLockReadOnly
objRS(0).Find "ID=" & lngID
If Not objRS(0).EOF Then
    Printer.FontBold = False
    Printer.FontItalic = False
    Printer.PrintQuality = vbPRPQDraft
    Printer.PaperSize = vbPRPSA4
    Printer.Scale (1, 1)-(620, 877)
    Printer.RightToLeft = True
    Printer.PaintPicture LoadResPicture(812, vbResBitmap), 1, 1, 2480, 3508
    Printer.FontName = "Tahoma"
    Printer.FontSize = 12
    Printer.CurrentY = 400
    Printer.CurrentX = 1950
    Printer.Print CStr(lngID);
    Printer.CurrentX = 200
    If GetDateMode = False Then
        Printer.Print SDate(objRS(0)("Date"))
    Else
        Printer.Print objRS(0)("Date")
    End If
    Printer.CurrentY = 925
    Printer.CurrentX = 1650
    Printer.Print objRS(0)("imgFee")
    Printer.CurrentY = 985
    Printer.CurrentX = 1650
    Printer.Print objRS(0)("movFee")
    Printer.CurrentY = 1045
    Printer.CurrentX = 1650
    Printer.Print objRS(0)("GotFee")
    Printer.CurrentY = 1095
    Printer.CurrentX = 1600
    Printer.Print objRS(0)("Payer")
    Printer.CurrentY = 1155
    Printer.CurrentX = 1600
    Printer.Print objRS(0)("SPMode")
    Printer.CurrentY = 1880
    Printer.CurrentX = 1870
    Printer.Print objRS(0)("Name")
    For R = 1 To 4
        Printer.CurrentY = ((R - 1) * 80) + 2120
        Printer.CurrentX = 2030
        Printer.Print objRS(0)("PName" & R)
    Next R
    Printer.EndDoc
End If
objRS(0).Close
Set objRS(0) = Nothing
End Sub
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.