Categories
Phần mềm

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

Computer trivia: What IBM supercomputer became a weather forecaster for the Atlanta Olympics after losing an epic chess match to Garry Kasparov?
Answer: Deep Blue.

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

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