ไลบรารี Ruby โอเพ่นซอร์สสำหรับสร้างไฟล์ Word DOCX
API Ruby ฟรีที่ทรงพลังซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สร้างเอกสาร Word DOCX ได้อย่างง่ายดาย มันอนุญาตให้ออกแบบเอกสาร's Layout, Apply Styles, and Use Mail Merge Fields as Placeholders for Dynamic Content.
ไลบรารี Sablon คืออะไร?
ในโลกของการพัฒนาซอฟต์แวร์ การสร้างเอกสารไดนามิก เช่น รายงาน, ใบแจ้งหนี้ หรือจดหมาย เป็นความต้องการทั่วไป แม้ว่าหลายไลบรารีสามารถสร้างเอกสารตั้งแต่ต้นได้ แต่บ่อยครั้งต้องใช้ความพยายามเรียนรู้สูงและการเขียนโค้ดที่ซับซ้อนเพื่อให้รูปแบบถูกต้อง นี่คือจุดที่ Sablon ไลบรารี Ruby โอเพ่นซอร์สที่ทรงพลังเข้ามาช่วย Sablon ปฏิวัติการสร้างเอกสารโดยใช้ความคุ้นเคยของ Microsoft Word และพลังของ Ruby ทำให้คุณสร้างเอกสารที่ซับซ้อนและสวยงามได้ด้วยความพยายามเพียงเล็กน้อย มันสนับสนุนคุณลักษณะต่าง ๆ เช่น การสร้าง Word Docx, การแทรกเนื้อหาโดยใช้ฟิลด์ MailMerge, การสนับสนุนการจัดรูปแบบขั้นสูง, การเพิ่มหมายเหตุในเทมเพลต, การแปลง HTML & CSS ที่กำหนดค่าได้ และอื่น ๆ อีกมาก
ในแกนหลัก Sablon เป็นตัวประมวลผลเทมเพลตเอกสารสำหรับไฟล์ .docx มันใช้ความสามารถ Mail Merge ในตัวของ Word ทำให้คุณสามารถสร้างเทมเพลตในสภาพแวดล้อมที่คุ้นเคย คุณสามารถออกแบบเค้าโครงเอกสาร, ใช้สไตล์, และใช้ฟิลด์ Mail Merge เป็นตัวแทนสำหรับเนื้อหาแบบไดนามิก จากนั้น Sablon จะรับเทมเพลตนี้และบริบทข้อมูล (Ruby hash) เพื่อสร้างเอกสาร Word ที่เต็มด้วยข้อมูล วิธีนี้ทำให้ชั้นการนำเสนอ (เทมเพลต Word) แยกจากชั้นข้อมูล (โค้ด Ruby ของคุณ) ทำให้กระบวนการสร้างเอกสารสะอาดและดูแลได้ง่าย ไวยากรณ์ของมันเป็นธรรมชาติสำหรับผู้ที่คุ้นเคยกับ Ruby และภาษาเทมเพลต มันเป็นมิตรต่อคุณนักออกแบบ เนื้อหาและการออกแบบแยกจากกันอย่างสมบูรณ์ นักออกแบบสามารถทำงานโดยตรงใน Word โดยไม่ต้องเขียนโค้ด
เริ่มต้นใช้งาน Sablon
วิธีแนะนำในการติดตั้ง Sablon คือใช้ RubyGems กรุณาใช้คำสั่งต่อไปนี้สำหรับการติดตั้งที่ราบรื่น
การแทรกเนื้อหาด้วยฟิลด์ Word ผ่าน Ruby
ฟังก์ชันพื้นฐานที่สุดคือการแทรกเนื้อหาแบบไดนามิก ไลบรารี Ruby โอเพ่นซอร์ส Sablon ใช้ไวยากรณ์ฟิลด์ในตัวของ Word เพื่อกำหนดตัวแทน ในเทมเพลต Word ของคุณ คุณใส่โค้ดฟิลด์ในตำแหน่งที่ต้องการเนื้อหาแบบไดนามิก Sablon จะเปลี่ยนฟิลด์นั้นเป็นค่าที่คุณกำหนด ตัวอย่างต่อไปนี้สาธิตว่าผู้พัฒนาซอฟต์แวร์สามารถแทรกเนื้อหาเพื่อทักทายผู้ใช้แบบไดนามิกได้อย่างไร
วิธีแทรกเนื้อหาข้อความแบบไดนามิกเข้าไฟล์ Word Docs ผ่าน Ruby?
require 'sablon'
template = Sablon.template(File.expand_path('~/template.docx'))
context = {
name: "Sarah Connor"
}
template.render_to_file(File.expand_path('~/output.docx'), context)
Template:
Hello, «name»! Welcome to our platform.
Output:
Hello, Sarah Connor! Welcome to our platform.
การแปลง HTML เป็น WordML
หนึ่งในคุณลักษณะเด่นของ Sablon คือความสามารถในการแปลง HTML เป็น WordProcessingML (รูปแบบ XML ที่ใช้ในไฟล์ .docx) ซึ่งเป็นประโยชน์อย่างมากเมื่อคุณต้องการแทรกเนื้อหา Rich Text เช่น ย่อหน้าแบบจัดรูปแบบ, รายการ, หรือ ตาราง จากฐานข้อมูลหรือโปรแกรมแก้ไขข้อความที่มีรูปแบบ Sablon จะเปลี่ยนสตริง HTML ให้เป็นส่วนที่จัดรูปแบบอย่างเหมาะสมในเอกสาร Word โดยคงหัวข้อ, ข้อความตัวหนาและเอียง, และรูปแบบรายการไว้ นี่คือตัวอย่างง่ายที่แสดงวิธีโหลดเทมเพลตที่มีอยู่และแปลงเนื้อหา HTML เป็นไฟล์ Word Docx ภายในแอปพลิเคชัน Ruby
วิธีแปลงเนื้อหา HTML เป็นไฟล์ Word Docx ผ่านไลบรารี Ruby?
require "sablon"
template = Sablon.template(File.expand_path("template.docx"))
html_content = "นี่คือหัวข้อย่อย
นี่คือย่อหน้าที่มีข้อความ ตัวหนา และ ตัวเอียง
- รายการแรก
- รายการที่สอง
"
context = {
article_content: Sablon.content(:html, html_content)
}
template.render_to_file(File.expand_path("output.docx"), context)
Conditional Rendering
การแทรกรูปภาพแบบไดนามิกผ่าน Ruby
ไลบรารี Sablon แบบโอเพ่นซอร์สได้รวมฟีเจอร์ที่เป็นประโยชน์สำหรับการแทรกรูปภาพแบบไดนามิกในเอกสาร Word Docx โดยใช้ไลบรารี Ruby เพียงไม่กี่บรรทัดของโค้ด นักพัฒนาสามารถแทรกรูปภาพแบบไดนามิกลงในเอกสารของคุณได้ คุณสามารถระบุไฟล์รูปภาพและ Sablon จะฝังมันลงในเอกสาร ตัวอย่างต่อไปนี้สาธิตวิธีทำการแทรกรูปภาพแบบไดนามิกในเอกสาร Word
วิธีแทรกรูปภาพแบบไดนามิกเข้า Word Docx ผ่านไลบรารี Ruby?
// You would have a placeholder image in your template with a special filename like «=company_logo».
context = {
company_logo: Sablon.content(:image, "path/to/your/logo.png")
}
การเรนเดอร์แบบมีเงื่อนไขผ่าน Ruby
ไลบรารี Sablon รองรับบล็อกเงื่อนไข, ทำให้ผู้ใช้สามารถแสดงหรือซ่อนส่วนของเอกสาร Word ขึ้นอยู่กับการมีอยู่หรือค่าของตัวแปร ซึ่งเหมาะอย่างยิ่งสำหรับการปรับเอกสารตามเงื่อนไขเฉพาะ ตัวอย่างต่อไปนี้แสดงว่าผู้ใช้สามารถตั้งคำสั่งเพื่อซ่อนหรือแสดงข้อมูลเฉพาะในเอกสาร Word ได้อย่างไร หาก show_extra_info เป็น true เนื้อหาระหว่างแท็ก if และ endIf จะถูกรวมในเอกสารสุดท้าย หากเป็น false หรือ nil เนื้อหานั้นจะถูกลบออก
วิธีแสดงหรือซ่อนส่วนของเอกสาร Word Docx ด้วย Ruby?
context = {
show_extra_info: true # or false
}