จัดการข้อความในงานนำเสนอใน Node.js ผ่าน .NET
ภาพรวม
ใน Aspose.Slides ข้อความบนสไลด์เป็นส่วนหนึ่งของรูปทรง รูปร่างอัตโนมัติ เช่น สี่เหลี่ยม มีกรอบข้อความ; กรอบข้อความมีย่อหน้าต่าง ๆ และแต่ละย่อหน้ามีส่วนย่อย (portion) ซึ่งเป็นชุดข้อความที่มีการจัดรูปแบบเดียวกัน คุณสามารถเปลี่ยนข้อความได้ผ่านกรอบข้อความและเปลี่ยนแบบอักษรได้ผ่านการจัดรูปแบบของส่วนย่อย
บทความนี้เพิ่มกล่องข้อความลงในสไลด์และบันทึกพรีเซนเทชัน จากนั้นเปิดไฟล์ที่บันทึกและเปลี่ยนข้อความของกล่องข้อความ, ขนาดแบบอักษร, และรูปแบบตัวหนา
ตัวอย่างต้องการให้ตั้งค่าโครงการตามที่อธิบายไว้ใน Installation. บันทึกแต่ละตัวอย่างเป็นไฟล์ .js ในโฟลเดอร์โครงการและเรียกใช้จากโฟลเดอร์นั้นด้วย node.
Note
Aspose.Slides สำหรับ Node.js ผ่าน .NET ไม่มีเอกสารอ้างอิง API ของตนเอง มันเป็นการสังเคราะห์ API ของ Aspose.Slides สำหรับ .NET ด้วยชื่อแบบ camelCase ดังนั้นลิงก์ API ในบทความนี้จะแสดงคลาสและสมาชิกที่สอดคล้องใน Aspose.Slides for .NET API reference.เพิ่มกล่องข้อความ
เพื่อเพิ่มกล่องข้อความ ให้เพิ่มรูปร่างอัตโนมัติลงในสไลด์ด้วยเมธอด addAutoShape และใส่ข้อความด้วยเมธอด addTextFrame. ตัวอย่างต่อไปนี้เพิ่มสี่เหลี่ยมลงในสไลด์แรกของพรีเซนเทชันใหม่และบันทึกพรีเซนเทชันเป็น text-box.pptx:
const { Presentation, ShapeType, SaveFormat } = require("aspose.slides.via.net");
const presentation = new Presentation();
try {
const slide = presentation.slides.get(0);
// ตำแหน่ง (x, y) และขนาด (width, height) มีหน่วยเป็นพอยต์.
const textBox = slide.shapes.addAutoShape(ShapeType.Rectangle, 100, 100, 500, 80);
textBox.addTextFrame("Quarterly report");
presentation.save("text-box.pptx", SaveFormat.Pptx);
console.log("Saved text-box.pptx");
} finally {
presentation.dispose();
}
สไลด์ใน text-box.pptx มีสี่เหลี่ยมที่กว้าง 500 พอยต์และสูง 80 พอยต์ พร้อมข้อความ “Quarterly report” ด้วยแบบอักษรและขนาดเริ่มต้น ตัวอย่างต่อไปจะเปลี่ยนกล่องข้อความนี้
เปลี่ยนข้อความและการจัดรูปแบบของมัน
ตัวอย่างต่อไปนี้เปิดไฟล์ text-box.pptx ซึ่งสร้างจากตัวอย่างก่อนหน้าและดึงรูปร่างแรกบนสไลด์แรก รูปร่างเช่นรูปภาพและตารางไม่มีกรอบข้อความดังนั้นตัวอย่างจะตรวจสอบว่ารูปร่างเป็น AutoShape ก่อนที่จะใช้ textFrame ของรูปร่างนั้น แล้วทำตามขั้นตอนต่อไปนี้:
- มันแทนที่ข้อความโดยใช้คุณสมบัติ text ของกรอบข้อความ หลังจากนั้นกรอบข้อความจะมีหนึ่งย่อหน้าที่มีหนึ่งส่วน
- มันดึงส่วนนั้นจากคอลเลกชัน paragraphs และ portions แล้วอ่าน portionFormat ของมัน
- มันกำหนดค่า fontHeight, ขนาดแบบอักษรเป็นพอยต์, และ fontBold, ซึ่งรับค่า NullableBool
const { Presentation, AutoShape, NullableBool, SaveFormat } = require("aspose.slides.via.net");
const presentation = new Presentation("text-box.pptx");
try {
const shape = presentation.slides.get(0).shapes.get(0);
if (shape instanceof AutoShape) {
const textFrame = shape.textFrame;
textFrame.text = "Quarterly report: third quarter";
const portionFormat = textFrame.paragraphs.get(0).portions.get(0).portionFormat;
portionFormat.fontHeight = 32;
portionFormat.fontBold = NullableBool.True;
presentation.save("text-box-updated.pptx", SaveFormat.Pptx);
console.log("Saved text-box-updated.pptx");
} else {
console.log("The first shape on the first slide is not an AutoShape.");
}
} finally {
presentation.dispose();
}
ใน text-box-updated.pptx กล่องข้อความจะแสดง “Quarterly report: third quarter” ด้วยแบบอักษรตัวหนาขนาด 32 พอยต์ เพราะข้อความใหม่เป็นส่วนเดียวสองคุณสมบัติจัดรูปแบบจึงใช้กับทั้งหมด หากไม่มีใบอนุญาต การบันทึกทุกครั้งจะเพิ่มลายน้ำการประเมินผล เนื่องจาก text-box.pptx ถูกบันทึกในโหมดการประเมิน text-box-updated.pptx จึงมีลายน้ำสองครั้ง; ดูที่ Evaluate Aspose.Slides.
FAQ
ทำไม fontBold ถึงรับค่า NullableBool แทน true หรือ false?
ส่วนหนึ่งอาจไม่กำหนดค่าคุณสมบัติโดยปล่อยให้เป็น undefined และสืบทอดจากย่อหน้า, รูปร่าง, หรือเลย์เอาต์และมาสเตอร์ของสไลด์ NullableBool.NotDefined หมายถึง “สืบทอด”, ในขณะที่ NullableBool.True และ NullableBool.False จะทับค่าที่สืบทอด การกำหนดค่า true หรือ false จะทำให้เกิดข้อผิดพลาด เหตุผลเดียวกันทำให้ fontHeight คืนค่า NaN เมื่อส่วนสืบทอดขนาดแบบอักษร
ฉันจะเปลี่ยนสีข้อความได้อย่างไร?
กำหนดการเติมของ portionFormat: ตั้งค่า FillType.Solid ให้กับ portionFormat.fillFormat.fillType แล้วตั้งค่าสี เช่น "#FF0000" ให้กับ portionFormat.fillFormat.solidFillColor.color. เพิ่ม FillType ไปยังชื่อที่คุณนำเข้าจากแพ็กเกจ
ฉันจะจัดรูปแบบเฉพาะส่วนของข้อความได้อย่างไร?
การจัดรูปแบบเป็นของแต่ละ portion ดังนั้นให้แยกส่วนของข้อความนั้นเป็น portion ของตัวเอง สร้าง portion ด้วย Portion.CreatePortionFromText, เพิ่มเข้าไปในย่อหน้าด้วยเมธอด add ของคอลเลกชัน portions ของย่อหน้า, จากนั้นกำหนด portionFormat ของ portion ใหม่. เพิ่ม Portion ไปยังชื่อที่คุณนำเข้าจากแพ็กเกจ
ทำไมการอ่านข้อความจึงคืนค่า “… text has been truncated due to evaluation version limitation”?
หากไม่มีใบอนุญาต Aspose.Slides จะคืนค่าเฉพาะห้าตัวอักษรแรกของข้อความที่ยาวกว่าเมื่อคุณอ่าน เช่น textFrame.text แล้วตามด้วยข้อความแจ้งนี้ ข้อความที่คุณเขียนจะถูกบันทึกเต็มรูปแบบ ให้ใช้ใบอนุญาตตามที่อธิบายใน Licensing เพื่ออ่านข้อความทั้งหมด