Cara Memformat Teks dalam .NET

Cara Memformat Teks dalam .NET

Aspose.Slides FOSS for .NET provides fine-grained text formatting through the PortionFormat class. A Portion adalah unit teks bebas terkecil; ia memetakan kepada satu rentetan pemformatan dalam perenggan. Panduan ini menunjukkan cara untuk menerapkan pemformatan tebal, condong, saiz fon, dan warna pada teks dalam persembahan.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

dotnet add package Aspose.Slides.Foss

Langkah 2: Tambah Bentuk dengan Bingkai Teks

Sebelum memformat teks, bentuk mesti mengandungi satu TextFrame. Gunakan shape.AddTextFrame() untuk membuat satu.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Default text: will be formatted");
prs.Save("output.pptx", SaveFormat.Pptx);

Langkah 3: Akses TextFrame

shape.AddTextFrame() mengembalikan TextFrame objek. Anda juga boleh mengambilnya kemudian melalui shape.TextFrame.

var tf = shape.TextFrame;          // if the frame already exists
var tf = shape.AddTextFrame("");   // creates a new frame

A TextFrame mengandungi senarai Paragraph objek (tf.Paragraphs). Setiap Paragraph mengandungi Portion objek (paragraph.Portions).


Langkah 4: Terapkan Pemformatan Tebal dan Condong

Gunakan PortionFormat.FontBold dan PortionFormat.FontItalic. Sifat-sifat ini menerima NullableBool.True, NullableBool.False, atau NullableBool.NotDefined (warisi dari master).

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Bold and italic text");

var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontBold = NullableBool.True;
fmt.FontItalic = NullableBool.True;

prs.Save("bold-italic.pptx", SaveFormat.Pptx);

Langkah 5: Tetapkan Saiz Fon dan Warna

Tetapkan PortionFormat.FontHeight untuk saiz (dalam mata) dan gunakan FillFormat untuk warna.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Large corporate-blue heading");

var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;                          // 32pt font
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);

prs.Save("colored-text.pptx", SaveFormat.Pptx);

Color.FromArgb(alpha, red, green, blue) menerima nilai 0-255 untuk setiap saluran.


Langkah 6: Pelbagai Bahagian dalam Satu Perenggan

Satu perenggan tunggal boleh mengandungi pelbagai bahagian dengan pemformatan yang berbeza. Tambah yang baru Portion kepada perenggan Portions koleksi:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 100);
var tf = shape.AddTextFrame("");  // start with empty frame

var paragraph = tf.Paragraphs[0];

// First portion: normal text
var portion1 = paragraph.Portions[0];
portion1.Text = "Normal text followed by ";
portion1.PortionFormat.FontHeight = 20;

// Second portion: bold red text
var portion2 = new Portion();
portion2.Text = "bold red text";
portion2.PortionFormat.FontHeight = 20;
portion2.PortionFormat.FontBold = NullableBool.True;
portion2.PortionFormat.FillFormat.FillType = FillType.Solid;
portion2.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);
paragraph.Portions.Add(portion2);

prs.Save("mixed-format.pptx", SaveFormat.Pptx);

Isu Umum dan Penyelesaian

Teks muncul hitam walaupun selepas menetapkan warna

Pastikan FillFormat.FillType = FillType.Solid ditetapkan sebelum menetapkan warna. Tanpa menetapkan jenis isi, perubahan warna mungkin tidak memberi kesan.

NullableBool.True vs true

PortionFormat.FontBold menjangka NullableBool.True, bukan C# true. Menetapkan C# true tidak akan disusun kerana jenisnya tidak serasi.

Font tidak muncul dalam fail yang disimpan

Yang LatinFont sifat menetapkan keluarga fon Latin. Jika tidak ditetapkan, fon tema persembahan akan digunakan. Fon tersuai mesti disematkan atau tersedia pada mesin penonton.


Soalan Lazim

Bagaimana saya menukar keluarga fon?

Tetapkan PortionFormat.LatinFont:

fmt.LatinFont = new FontData("Arial");

FontData menerima nama keluarga fon sebagai rentetan.

Bagaimana saya menetapkan penjajaran perenggan?

Gunakan ParagraphFormat.Alignment:

tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;

Nilai yang disokong: Left, Center, Right, Justify.

Bagaimana saya menetapkan jarak baris?

Gunakan ParagraphFormat.SpaceBefore (titik sebelum perenggan) atau ParagraphFormat.SpaceAfter titik selepas perenggan:

tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12;   // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6;     // 6pt after

Lihat Juga

 Bahasa Melayu