ลองใช้ Custom Fonts (เช่น ภาษาไทย) ใน jsPDF

สำหรับ Blog นี้เคยเขียน Version English ไว้แล้วครับ สามารถไปอ่านได้เลย ถ้าสนใจภาษาไทยอ่านต่อได้ใน Blog นี้ครับ ปกติแล้วเจ้า jsPDF มันจะรองรับ Font 14 ตัวเป็นมาตรฐาน ดังนี้ครับ ถ้าต้องการใช้ font ที่รองรับอยู่แล้ว เราเรียกใช้ method setFont() แต่ถ้าต้องการ font อื่นๆ เช่น Kanit Regular ลองมาทำด้วยกันครับ ลองใช้ Custom Fonts (เช่น ภาษาไทย) ใน jsPDF NOTE: เลือกไฟล์อย่างเดียวครับ ที่เหลือมันจะเติมให้หมดเลย  font style / Module format Reference

อย่าล้อเล่นกับระบบ D-MyTax

มาจดไว้ เพราะเมื่อวันที่ 25-Jan-2025 ได้ลองยื่นภาษีไป เพราะผมลองตรวจข้อมูลจาก iTax แล้ว พบว่าตัวเลขมันตรงกับระบบ D-MyTax ส่วนลดต่างๆมาครบ ต่างกันที่รายได้ เหมือนจะขาดไป 1 เดือนนิดๆ เลยตัดสินใจแก้ข้อมูล และยื่นเลย ไม่อยากรอเอกสาร และลองไม่ Upload เอกสารที่เตรียมไว้แล้วด้วย ไหนๆ มันมีระบบ D-MyTax มาเติมข้อมูลแล้ว รู้หมด แม้กระทั่งซื่อยาพาราที่ไหน 55 ท้าทายระบบนั้นเองง และวันเวลาผ่านไป 3 สัปดาห์ มันยังค้างในส่วน วิเคราะห์แบบ ซึ่งคนรู้จักหลายคนยื่น 31-Jan-2025 + Upload เอกสาร วันที่ 2 หรือ 3-Feb-2025 ก็ได้คืนภาษีกันแล้ว และใช่ครับ ขนาดน้องที่ยื่นวันที่ 13-Feb-2025 > 14-Feb-2025 ได้เงินคืนแล้วครับ จุดร่วมที่เหมือนกัน มีเอกสารอะไร เทใส่ไปให้หมด หลังจากรู้แล้ว เราลองกับระบบลอง Update เอกสาร เผื่อทางสรรพากรเค้าอาจจะเหมือนโฆษณานี้ ตัดสินใจไว้แล้ว เราต้องเดาใจนิดหน่อย ว่าและในคืนวันที่ 15-Feb-2025 เลยเอาเอกสารที่เกี่ยวข้องทั้งหมด เกือบ 100 ไฟล์ Slip เงินเดือน + ทวี 50 + ssf rmf ประกัน + ใบเสร็จต่างๆ โยนขึ้นไปเลย และผลปรากฏว่าวันที่ 16-Feb-2025 พิจารณาคืนภาษี แล้วครับ จากนั้นก็รออีก 2 วันทำการระบบจะเปลี่ยนจากพิจารณาคืนภาษี มาเป็นส่งคืนภาษี 18-FEB-2025 และเราจะได้เงินคืนในวันรุ่งขึ้น หรือป่าวนะ ลองดูกันครับ รออีก 2 วันทำการ เงินเข้าแล้วครับ 20-FEB-2025 ได้ข้อสรุปแล้วว่า – มีเอกสารอะไร ให้ยื่นประกอบ ไปก่อนด้วยเลย แม้ว่าระบบมันจะมีให้ครบก็ยื่นไปด้วยครับ-…

Data Sci Boot Camp Batch#11 : R Data Transformation

พื้นฐาน R สามารถอ่าน Blog ตอนก่อนหน้าได้น้า สำหรับวันนี้แอดทอยมา Recap จากที่เรียน On Demand ในเรือง Data Transformation ผมมีจดๆมาตามนี้น้า Glue Package Glue เป็น package ที่ทำหน้าต่อต่อคำ แบบเดียวกับ paste หรือ paste0 ผมชอบแบบนี้นะ เหมือน C# String interpolation แบบ $”Hello, {name}! Today is {date.DayOfWeek}, it’s {date:HH:mm} now.” Recap Data Frame Func best practice: move rownames to col name จะได้ manage สะดวก dplyr – data transformation – Data Pipeline เราสามารถให้ output ของแต่ละคำสั่ง มันส่งต่อกันไปได้เรื่อยๆ เหมือนสายก่ารผลิด โดยจะเรียกว่า Pipeline – select ดึงข้อมูลออกมาจาก Data Frame โดยมีหลายแบบ อารมณ์เหมือน SQL SELECT – filter – mutate (Create New Column – arrange – sort data เหมือน SQL Order By ปกติจะเรียงจากน้อยไปมาก ถ้าต้องการจากมากไปน้อยใช้ desc() – summarise สรุปข้อมูลทางสถิติ – Function อื่นๆ…

[EXCEL] แสดงหัวตารางทุกหน้าตอน Print

สำหรับวันนี้มา Blog ในส่วนของ Office Skill ครับ พอดีเจอปัญหาว่ามี Excel ที่ต้อง Print หลาย 10 หน้าถึงจะครบ แล้วดูรู้เรื่อง แต่ทว่าหัวตารางมันหายไป วันนี้จะมาเขียนวิธีกันครับ BEFORE: อันนี้จะตัว Excel ก่อนการแก้ไข ลองปรับ View เป็น Page Layout จะเห็นว่า Cell สีเหลือง แสดงเฉพาะส่วนของ Row แรกๆเท่านัั้น ถ้าเกินหน้าที่ 5 ไปไม่แสดงแล้ว มาลุยกันครับ ปรับ Excel ให้แสดงหัวตารางทุกหน้าตอน Print AFTER: หลังปรับแล้วจะเห็นว่าตรง Cell สีเหลือง แสดงทุกหน้าแล้วครับ Reference

ลองเขียน C# WebAPI เรียกใช้ Azure Document Intelligent อ่านใบเสร็จ

จาก Blog ที่แล้วผมได้แนะนำ รายละเอียดเต็มๆจาก Blog ด้านล่างเลยครับ ก่อนจะเริ่มกัน ผมลองสร้าง WebAPI แบบง่าย เปิด API ให้ Upload File ตัว pdf โยนเข้าไป จากนั้นฝั่ง WebAPI เข้าไปทำหน้าที่ติดต่อกับ Azure Document Intelligent และส่งผลลัพธ์ตามแต่ละ Endpoint กลับมาครับ การทดสอบสามารถใช้ Postman / REST Client เลือก form-data ชื่อ field “file” และก็โยนใบเสร็จเข้าไปได้เลยครับ ใน Repo ผมจะมีตัวอย่างแบบที่ใช้ REST Client ไฟล์ .http C# + Azure Document Intelligent REST API อันนี้เหมือนอันที่แล้วเลย จากเดิมเรา Manual ยิง REST จาก curl / postman มาเป็น Coding แทนครับ ผมทำ API ง่ายๆ เลย โดยมี Step คร่าวๆ ตามนี้ ส่วนตรงนี้ API Version ดูจาก doc Document Models – Analyze Document ปล. ผม เพิ่งรู้ว่ามี Version ใหม่ตอนเขียน Blog เนี่ยแหละ ลองยิง REST API ตอนนี้ผลลัพธ์ที่ได้จะมาเยอะๆ เหมือนกันที่ลองใน Blog ก่อนหน้า อันนี้ง่ายขึ้นด้วย ไม่ต้องมาแปลง base64 แล้ว…

ICMM2025 กลับมาวิ่งในรอบหลายปี

สำหรับงานนี้จริงๆไม่ได้สมัครเองนะ เหมือนที่ทำงานน้อง เค้ามีโควต้าให้ใส่ชื่อญาติเข้าไป น้องผมเลยใส่ชื่อเข้าไปให้ครับ เลยได้มาวิ่งงานนี้ครับ ^__^ เนื่องจากไม่ได้วิ่งมาหลายปี และยอมรับเลยว่าหลังจากติด COVID ไปรอบนึงหายใจ มันไม่เหมือนเดิมแล้ว เมื่อก่อนใส่หน้ากากวิ่งได้ชิวๆ ตอนนี้หายใจไม่ออกแทน การเตรียมตัว หลังจากรู้ข่าวจากน้องแล้ว มาลองวิ่ง ประมาณ 4-6 km แล้วที่ฟิตเนส ซึ่งถ้ารถเมล์ มาไวก็วิ่งเยอะหน่อย ถ้ามาข้าวิ่งประมาณ 30 นาทีครับ 3-4 วันต่อ Week ครับ วันรับเสื้อ (2025-02-08) เรียกว่าโชคดีมากที่รถไฟฟ้าสายสีน้ำเงินเสร็จแล้ว นั่งจาก MRT บางขุนนนท์ > MRT สามย่าน 35-40 นาที เมื่อก่อน ถ้านั่งรถเมล์สาย 40 (4-39) นอนไปยาวๆ เกือบๆ 2 ชม กว่าจะมาถึงแถวสามย่าน มาถึงก็แจ้งข้อมูลกับน้อง Staff รับเสื้อ และกลับ ตอนเดินกลับ เห็น View แล้วแแล้ว เพลงนี้เกือบ 10 ปีแล้วเหรอเนี่ย Taylor Swift Medley | BILLbilly01 ft. King and Image ก่อนกลับมีแวะไปทำบุญโรงศพตรงวัดหัวลำโพง มีคนทักเหมือนกันว่า จะตกเป็นแพะรับบาป ต้องรับภาระหรือรับผิดจากสิ่งที่เราไม่ได้ทำ แวะสักนิดเพื่อความสบายใจครับ กลิ้งจริง (2025-02-09) งานนี้เรียกว่าเป็นงานวิ่งแรกที่ต้องออกมาที่จัดงานด้วยตัวเอง ถ้าไป Blog ก่อนๆ จะมีน้องมาส่ง รอบนี้ไม่มีครับ และดูค่า PM2.5 ด้วยยังโอเคอยู่เลยออกมาครับ เลยเผื่อเวลาสักหน่อยออกมาตอน ตี 4 มีแมวมารอส่งเลยเลยครับ และปีนี้เอามือถือไปอย่างเดียวไม่ได้หยิบ Tablet ไปด้วยนะ กว่าจะออกมาถนนใหญ่ มีรถรอมอเตอร์ไซต์ประมาณ 30 นาทีครับ 15 บาท พอมาถนนใหญ่ได้นั่ง Taxi…

Data Sci Boot Camp Batch#11 : R Programming 101

สำหรับ Week นี้เป็นการเรียนภาษา R โดย Recap ที่เรียนๆมาตามนี้ครับ ภาษา R ภาษา R เป็นภาษาที่มีอายุมานานแล้ว พอกับ Python นี่แหละ ภาษา R ตัวเล่นกับ Data ได้ไว แอดทอยมีคำกล่าว R is a fast data cuching language R เป็นภาษาที่ Case Sensitive โดย Tools เขียน R online มีหลายตัว เช่น หากไม่ได้ใช้บน Cloud ใช้ตัว R-Studio ได้นะ เหมือน posit.cloud Delete บน posit cloud ไม่มีใน Recycle Bin นะ ถ้า Run Local มีนะ ระวังเรื่องการลบด้วย ถ้าสงสัยอะไรเกี่ยวกับ Syntax ของ R ใช้คำสั่งตามนี้ Variable (ตัวแปร) มันจะกลับสาย Dev ปกติใช้เท่ากับ = แต่ใน R จะเป็น <- หรือ -> การตั้งชื่อตัวแปร เหมือนกันหลายภาษาเลย ใน R เราสามารถคุม Flow ของตัวแปรได้ จากเดิมที่เราประกาศ x / y ไว้ ถ้างานนั้นจบแล้ว เราสามารถเอาตัวแปรที่ไม่ใช้ออกได้ ใช้ function rm(<varaible_name>) เช่น rm(x) / rm(y) เอาตัวแปร x y…

Starbucks TH E-tax / E-receipt

If you buy food/beverage or merchandise and the button of you receipt you will see an QR Code like this Here Is A Step to Starbucks TH E-tax / E-receipt เจอฝรั่งน่าจะกดให้แฟน เลยคิดว่าเขียน Blog ได้ 55