PDA

View Full Version : مشکل چاپ فارسی بدون استفاده از چیزی



Ich
یک شنبه 02 اسفند 1383, 05:29 صبح
سلام
راستش یه مشکل عجیب پیش اومده.
من یه تابع نوشتم که چند تا متن فارسی رو چاپ میکنه تا قبل هم درست بود. اما وقتی که تو تنظیمات ویندوز دست آوردم به هم ریخت و البته دوباره تنظیمات رو درست کردم. اما آلان حروف فارسی رو به صورت یه کارکتر دیگه نشون میده مثل اینکه اصلا فونش رو نخونده.
جالب اینجاست که یه تابع دیگه هم نوشتم. اون تابع درست کار میکنه اما اگه تابع قبلی رو قبل از اون اجرا کنم اون تابع دوم نیز به هم میریزه. و تا ویندوز رست نشه تابع دوم جواب نمی ده.
لطفا اگه مشکل رو می دونید سریع جواب بدید.
ممنون از همگی

ehsan707
یک شنبه 02 اسفند 1383, 08:27 صبح
rain tax

ساران سافت
یک شنبه 02 اسفند 1383, 11:06 صبح
فونتت رو عوض کن با دستور
printer.font
ببین آیا جواب میدهد یا نه؟ :wink:

Ich
یک شنبه 02 اسفند 1383, 17:58 عصر
همونطور که گفتم فونت رو عوض میکنم اما انگار کار نمی ده!!!!:cry:

بابک زواری
دوشنبه 03 اسفند 1383, 20:36 عصر
اگر میتونی سورست رو بذار تا یک نگاهی بکنیم
در ضمن دقت کن ببین کدپیج رو دستکاری نکردی ؟

Ich
دوشنبه 03 اسفند 1383, 21: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