• Thứ Hai, 25/12/2006 16:24 (GMT+7)

    Tự động cài đặt font trong tài liệu Word

    Microsoft Word cho phép chúng ta nhúng phông chữ chung với tài liệu để đảm bảo hiển thị đúng trên các máy tính khác. Cách thức hiện như sau:

    - Vào menu File> Save as, trong mục Tools chọn chức năng Save Options.

    - Xuất hiện hộp thoại Save, đánh dấu chọn mục Embed TrueType fonts (Hình 1) rồi nhấn OK để lưu trữ tài liệu.

    Lúc này, các phông chữ cần thiết sẽ được “nhúng” vào tài liệu của bạn.

     

    Hình 1

    Tuy nhiên với cách làm như trên, các phông chữ cần thiết luôn được lưu trữ cùng với mọi tài liệu của bạn, giả sử bạn có 100 tài liệu sử dụng phông chữ VNI-Viettay thì phông này sẽ được nhúng đúng 100 lần trong 100 tài liệu đó gây lãng phí vô ích.

    Có một cách khác tiết kiệm và hiệu quả hơn:

    - Tạo một thư mục tên là fonts đặt cùng thư mục với tài liệu Word của bạn.

    - Sao chép các phông chữ cần thiết vào thư mục fonts vừa tạo.

    - Mở tài liệu Word, nhấn tổ hợp phím Alt+F11 hoặc vào menu Tools > Macro > Visual Basic Editor để mở cửa sổ Microsoft Visual Basic. Bạn nhấn đúp chuột vào mục Project (<ten_tai_lieu_cua_ban>) > Microsoft Word Objects > This Document để mở cửa sổ soạn thảo lệnh và nhập vào đoạn mã sau:

    ‘Các khai báo

    Private Declare Function AddFontResource Lib “gdi32” Alias “AddFontResourceA” (ByVal lpFileName As String) As Long

    Private Declare Function RemoveFontResource Lib “gdi32” Alias “RemoveFontResourceA” (ByVal lpFileName As String) As Long

    Private Declare Function SendMessage Lib “user32” Alias “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long

    Private Declare Function GetActiveWindow Lib “user32” () As Long

    Private Const WM_FONTCHANGE = &H1D

    ‘Tự động cài đặt phông chữ khi tài liệu được mở

    Private Sub Document_Open()

    Dim File As String

    File = Dir$(ThisDocument.Path & “\fonts\” & “*.ttf”)

    Do While Len(File)

    AddFontResource(ThisDocument.Path & “\fonts\” & File)

    File = Dir$

    Loop

    SendMessage(GetActiveWindow, WM_FONTCHANGE, 0, 0)

    End Sub

    ‘Gỡ bỏ các phông chữ khi đóng tài liệu

    Private Sub Document_Close()

    Dim File As String

    File = Dir$(ThisDocument.Path & “\fonts\” & “*.ttf”)

    Do While Len(File)

    RemoveFontResource(ThisDocument.Path & “\fonts\” & File)

    File = Dir$

    Loop

    End Sub

    Lưu đoạn mã lệnh và đóng cửa sổ Microsoft Visual Basic. Đóng và mở lại tài liệu Word để các thay đổi có hiệu lực.

    Như vậy khi bạn mở tài liệu của mình trên máy tính khác, chương trình sẽ tự động cài đặt các phông chữ trong thư mục fonts lên máy tính để bạn làm việc.

    Ghi chú: Để đoạn mã lệnh trên được thực hiện, bạn phải thiết lập chế độ Security của Word là Medium (vào menu Tools > Macro > Security, chọn thẻ Security Level và chọn mục Medium). Khi mở tài liệu, Word sẽ hiện hộp thông báo Security Warning, bạn chọn Enable Macros để chương trình cài đặt phông thực thi.

    Bạn có thể cải tiến bằng cách viết riêng một tài liệu Word chỉ cho mục đích cài đặt phông chữ và một tài liệu khác cho mục đích gỡ bỏ các phông chữ vừa cài.

    Ưu điểm của cách làm này là tiết kiệm được dung lượng lưu trữ nếu có nhiều tài liệu sử dụng chung một số font chữ nào đó (có ích khi bạn cần lưu trữ các tài liệu lên đĩa CD chẳng hạn) và bạn cũng dễ dàng quản lý các font chữ hơn.

    Nguyễn Công Minh

    ID: A0612_133