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

نام تاپیک: استفاده از فونت های عربی - فارسی در ویندوز 7

  1. #1
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    Lightbulb استفاده از فونت های عربی - فارسی در ویندوز 7

    سلام

    نرم افزاری که با .Net Framework در ویندوز 7 برای فونت آزمایش کردم بالاخره با این روش خطاش برطرف شده و اجرا شد....

    Untitled.jpg

    استفاده از کلاس PrivateFontCollection:


    Imports System.Drawing.Text
    Public Class Form1
    Dim Collection As New PrivateFontCollection


    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    For Each File As String In IO.Directory.GetFiles(".\Fonts", "*.ttf")
    Collection.AddFontFile(File)
    Next
    Me.Font = New Font(Collection.Families(0), 12, FontStyle.Bold)
    Me.Label2.Font = New Font(Collection.Families(1), 12, FontStyle.Bold)
    End Sub
    End Class
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    سلام

    البته مشخص نکردین که مشکل چی بوده،
    و این فونت عربی-فارسی چی هست (شاید یونیکد نیستن مثل فونت های سری B)،

    ولی تا جایی که یادمه (از زمان xp) این private font ها فقط در نمایش دیده میشن و قابل چاپ نیستن.

  3. #3
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام

    البته مشخص نکردین که مشکل چی بوده،
    و این فونت عربی-فارسی چی هست (شاید یونیکد نیستن مثل فونت های سری B)،

    ولی تا جایی که یادمه (از زمان xp) این private font ها فقط در نمایش دیده میشن و قابل چاپ نیستن.
    سلام

    برای مثال omnes arabic و Baloo Bhaijaan2

    و هر فونت فارسی هست. برای چاپ از HTML استفاده می کنم که مشکلی بافونت ها نداره.

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    سلام دوباره

    پس شاید نیاز باشه برنامه تون رو یه بازنگری بکنین،
    این دو فونت در xp هم مشکلی ندارن.

  5. #5
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام دوباره

    پس شاید نیاز باشه برنامه تون رو یه بازنگری بکنین،
    این دو فونت در xp هم مشکلی ندارن.
    نرم افزار رو با VS 2010 نوشتم و در ویندوز 7 هم از سیستم خودم و هم از سیستم کاربر همون خطا داشت و با حذف فئونت ها اجرا می شد البته فونت انگلیسی رو پشتیبانی می کنه

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

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

  7. #7
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    این هم سوس کد PrivateFontProvider:


    Imports System.ComponentModel, System.Drawing.Text
    <ProvideProperty("PrivateFont", GetType(Component))>
    <ProvideProperty("PrivateFontSize", GetType(Component))>
    <ProvideProperty("PrivateFontStyle", GetType(Component))>
    Public Class PrivateFontProvider
    Implements ISupportInitialize
    Implements IExtenderProvider
    Private PrivateFontsValue As New PrivateFontCollection
    <Browsable(False)>
    Public ReadOnly Property PrivateFonts() As PrivateFontCollection
    Get
    Return PrivateFontsValue
    End Get
    End Property
    Private FontDirectoryValue As String = ""
    Public Property FontDirectory() As String
    Get
    Return FontDirectoryValue
    End Get
    Set(ByVal value As String)
    FontDirectoryValue = value
    End Set
    End Property
    Protected Friend ComponentFonts As New Dictionary(Of Component, String)
    Protected Friend ComponentFontSizes As New Dictionary(Of Component, Single)
    Protected Friend ComponentFontStyles As New Dictionary(Of Component, FontStyle)
    Public Sub SetPrivateFont(Component As Component, Name As String)
    If ComponentFonts.ContainsKey(Component) Then
    ComponentFonts(Component) = Name
    ResetFont(Component, Name)
    Else
    ComponentFonts.Add(Component, Name)
    End If
    End Sub
    Public Sub SetPrivateFontSize(Component As Component, Optional Size As Single = 11)
    If ComponentFontSizes.ContainsKey(Component) Then
    ComponentFontSizes(Component) = Size
    ResetFont(Component, ComponentFonts(Component))
    Else
    ComponentFontSizes.Add(Component, Size)
    End If
    End Sub
    Public Sub SetPrivateFontStyle(Component As Component, Style As FontStyle)
    If ComponentFontStyles.ContainsKey(Component) Then
    ComponentFontStyles(Component) = Style
    ResetFont(Component, ComponentFonts(Component))
    Else
    ComponentFontStyles.Add(Component, Style)
    End If
    End Sub
    Public Function GetPrivateFont(Component As Component) As String
    If ComponentFonts.ContainsKey(Component) Then
    Return ComponentFonts(Component)
    End If
    Return ""
    End Function
    Public Function GetPrivateFontSize(Component As Component) As Single
    If ComponentFontSizes.ContainsKey(Component) Then
    Return ComponentFontSizes(Component)
    End If
    Return 11
    End Function
    Public Function GetPrivateFontStyle(Component As Component) As FontStyle
    If ComponentFontStyles.ContainsKey(Component) Then
    Return ComponentFontStyles(Component)
    End If
    Return FontStyle.Regular
    End Function
    Public Sub EndInit() Implements System.ComponentModel.ISupportInitialize.EndInit
    'If Me.Fonts.Count = 0 Then Exit Sub
    If Me.FontDirectory.Length = 0 Then Exit Sub
    If IO.Directory.Exists(Me.FontDirectory) = False Then Exit Sub
    For Each File As String In IO.Directory.GetFiles(Me.FontDirectory, "*.ttf")
    Me.PrivateFonts.AddFontFile(File)
    Application.DoEvents()
    Next
    For Each ComponentFont As KeyValuePair(Of Component, String) In Me.ComponentFonts
    ResetFont(ComponentFont.Key, ComponentFont.Value)
    Next
    End Sub
    Sub ResetFont(Component As Component, FontName As String)
    Dim FontSize As Single = Me.ComponentFontSizes(Component)
    Dim FontStyle As FontStyle = Me.ComponentFontStyles(Component)
    If TypeOf (Component) Is ToolStrip Then
    DirectCast(Component, ToolStrip).Font =
    New Font(FontName, FontSize, FontStyle)
    ElseIf TypeOf (Component) Is Control Then
    DirectCast(Component, Control).Font =
    New Font(FontName, FontSize, FontStyle)
    End If
    End Sub
    Public Function CanExtend(extendee As Object) As Boolean Implements System.ComponentModel.IExtenderProvider.CanExtend
    Return CBool(TypeOf (extendee) Is ToolStrip Or TypeOf (extendee) Is Control)
    End Function
    Public Sub BeginInit() Implements System.ComponentModel.ISupportInitialize.BeginInit
    End Sub
    End Class


    طریقه استفاده یک Component Class با نام privateFontProvider ایجاد و کد های مربوطه رو جایگزین کرده و پرژو Build شود....
    سورس پروژه در پست اول موجود است....


    Screenshot 2024-11-25 175744.png

    Screenshot 2024-11-25 183818.png

    Screenshot 2024-11-25 184000.png
    آخرین ویرایش به وسیله ROSTAM2 : دوشنبه 05 آذر 1403 در 22:42 عصر

  8. #8
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,022

    نقل قول: استفاده از فونت های عربی - فارسی در ویندوز 7

    ..... حذف شود ....

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

  1. سوال: کنترل ویندوز با استفاده از سی شارپ
    نوشته شده توسط saeed27saeed در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 23 آبان 1395, 10:24 صبح
  2. پاسخ: 4
    آخرین پست: پنج شنبه 28 دی 1391, 10:19 صبح
  3. آیا از ویندوز فارسی استفاده میکنید؟
    نوشته شده توسط Hossein Bazyan در بخش گفتگوی عمومی کامپیوتر و فناوری اطلاعات
    پاسخ: 9
    آخرین پست: یک شنبه 26 اردیبهشت 1389, 04:51 صبح
  4. رایت سی دی با استفاده از ویندوز XP
    نوشته شده توسط Morteza Manafpour در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 10 آذر 1386, 08:39 صبح
  5. ابزار ویژه فارسی نویسی در VCL.NET مستقل از ویندوز
    نوشته شده توسط Dr.Behnoud در بخش برنامه نویسی در Delphi Prism
    پاسخ: 6
    آخرین پست: دوشنبه 06 مهر 1383, 11:50 صبح

برچسب های این تاپیک

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

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