ฟอนต์ฟอรั่ม

สำหรับคนทำฟอนต์ => เทคนิคฟอนต์ => โพสต์ถูกเริ่มโดย: Jipatype เมื่อ 29 ส.ค. 2024, 09:44 น.

ชื่อเรื่อง: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: Jipatype เมื่อ 29 ส.ค. 2024, 09:44 น.
สำหรับท่านใดที่รู้จักผม คงน่าจะรู้ว่าผมทำแอปพลิเคชันให้เช่าฟอนต์อยู่ ก็ขอบอกตรง ๆ ว่ามันได้สวยงามอะไรไม่ได้รายได้ดีอะไร  ถ้าให้ผมเดาคงเป็นเพราะ


ผมเอาโค้ดที่เป็นแกนกลางสำคัญมาแบ่งปันให้เป็นแนวทางในอนาคตสำหรับคนที่น่าจะทำได้ดีกว่าผม โค้ดเขียนด้วยภาษา Dart เรียกใช้ Native Api ของ MacOS และ WindowsOS ในการติดตั้งฟอนต์ โดยที่ฟอนต์ไม่จำเป็นจะต้องอยู่ที่โฟลเดอร์ฟอนต์ของระบบปฎิบัติการ เราจะเอาไฟล์ฟอนต์ซ้อนไว้ที่ไหนก็ได้แล้วแต่เลย ผมเลือกใช้ภาษา Dart เพาะสามารถเรียกใช้ Native Api ของแต่ละระบบให้อยู่ในโค้ดชุดเดียวกันได้โดยที่เราไม่ต้องเขียนแยก และเป็นภาษาแบบ VM ช่วยลดปัญหาความเข้ากันได้ของระบบที่แตกต่างกัน และมันเข้าใจง่ายดี

ส่วนแอปพลิเคชัน (Client App) อันนี้แล้วแต่เลย จะเขียนด้วย Flutter ก็ได้ หรือ Electron แบบผม

ส่วนระบบหลังบ้าน (Backend Server) แล้วแต่จะออกแบบยังไงก็ได้จะเป็น License Key Base (แบบผม) หรือ Login Email Base บางที่อาจจะทำแบบให้ใช้ก่อนจ่ายที่หลังจับเวลาตอนเปิดใช้งาน ว่าเปิดใช้ข้างไว้นานเท่าไหล่แล้วมาคิดเงินที่หลัง

โค้ดผมไม่ได้เขียนเองแบบ 100% มีการใช้ Chat Ai ช่วยบ้าง สำหรับโปรแกรมเมอร์ที่มาเห็นโค้ดผมแล้วร้อง Eww~~ ผมไม่ได้จบวิทยาการคอมมาโดยตรงสงสารผมเถอะนะ :44:

มาเริ่มกันดีกว่า

วิธีการใช้งาน
font_manager.exe <command> <font_path>
ตัวอย่าง
font_manager.exe --register /path/to/font.otf //สำหรับติดตั้งฟอนต์
font_manager.exe --register-json /path/to/file.json //สำหรับติดตั้งฟอนต์ตามรายการใน json ไฟล์
font_manager.exe --unregister /path/to/font.otf  //ถอนการติดตั้งฟอนต์
font_manager.exe --unregister-all /path/to/directory //ถอนการติดตั้งฟอนต์ทั้งหมดในโฟลเดอร์
font_manager.exe --unregister-json /path/to/file.json //ถอนการติดตั้งฟอนต์ตามรายการใน json ไฟล์

json file schema

{
"fontPaths" : ["/path/to/font.otf", ....]
}

Native Api
MacOS : CTFontManagerRegisterFontsForURL
https://developer.apple.com/documentation/coretext/1499468-ctfontmanagerregisterfontsforurl
MacOS : CTFontManagerUnregisterFontsForURL
https://developer.apple.com/documentation/coretext/1499496-ctfontmanagerunregisterfontsforu
WindowsOS : AddFontResourceW
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-addfontresourcew
WindowsOS : RemoveFontResourceW
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-removefontresourcew
WindowsOS : PostMessageW // For refresh font
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-postmessagew

*Api ของ WindowsOS ทำงานค่อนค้างช้า

ตัวอย่างโค้ด:
(http://img3.f0nt.com/29/ac5aaab98b22285f945102f563618ba2.png)
ผมเหนื่อยมาก
ชื่อเรื่อง: ตอบ: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: uvSOV เมื่อ 29 ส.ค. 2024, 10:32 น.
เก่งมาก..แมว  :12:

(http://img3.f0nt.com/26/a28096d8dab7ccf42f112cd809cb3618.jpg)
ชื่อเรื่อง: ตอบ: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: iannnnn เมื่อ 29 ส.ค. 2024, 10:49 น.
โปรแกรมนี้ทำงานแบบไม่ต้องติดตั้งตัวไฟล์ฟอนต์จริงๆ เป็นไฟล์ๆ แต่สตรีมลงมาจากเซิฟเวอร์ใช่ไหมครับ
ชื่อเรื่อง: ตอบ: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: Jipatype เมื่อ 29 ส.ค. 2024, 11:30 น.
อ้างคำพูดจาก: iannnnn เมื่อ 29 ส.ค. 2024, 10:49 น.
โปรแกรมนี้ทำงานแบบไม่ต้องติดตั้งตัวไฟล์ฟอนต์จริงๆ เป็นไฟล์ๆ แต่สตรีมลงมาจากเซิฟเวอร์ใช่ไหมครับ

ถ้าแอปผมก็เป็นการสตรีมลงมาจากเซิฟเวอร์ครับ คล้าย Adobe Font, ตัว Adobe Font เองก็ต้องโหลดฟอนต์จากเซิฟเวอร์มาติดตั้งหรือมีไฟล์อยู่ในเครื่องผู้ใช้เช่นเดียวกันครับ เพียงแค่เขาซ้อนเอาไว้

ส่วนโค้ดที่ผมแจกนี้เป็นแค่ส่วนหนึ่งเท่านั้นครับสำหรับติดตั้งหรือทำให้โปรแกรมอื่นๆ เช่น Adobe Photoshop เห็นฟอนต์เรา
ชื่อเรื่อง: ตอบ: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: คุณชาย ( 737 ) เมื่อ 29 ส.ค. 2024, 12:01 น.
 :12:
ชื่อเรื่อง: ตอบ: [Programing] แบ่งปันโค้ดติดตั้งฟอนต์
โพสต์โดย: iannnnn เมื่อ 29 ส.ค. 2024, 22:31 น.
:25: