Kelola Paragraf Teks PowerPoint di .NET
Gambaran Umum
Aspose.Slides untuk .NET merepresentasikan teks sebagai hierarki bingkai teks, paragraf, dan bagian:
- ITextFrame merepresentasikan wadah teks dalam sebuah bentuk dan menyediakan akses ke koleksi paragrafnya.
- IParagraph merepresentasikan satu paragraf dalam bingkai teks dan menyediakan akses ke bagiannya serta pemformatan tingkat paragraf.
- IPortion merepresentasikan urutan teks dalam sebuah paragraf. Setiap bagian dapat memiliki teks dan pemformatan tingkat karakter masing‑masing.
Dengan demikian, sebuah paragraf dapat berisi teks dengan font, warna, ukuran, dan pemformatan lain yang berbeda dengan menggunakan beberapa bagian.
Buat dan Format Paragraf
Buat Paragraf dengan Beberapa Bagian
Langkah‑langkah berikut membuat sebuah bingkai teks dengan tiga paragraf, masing‑masing berisi tiga bagian:
- Buat sebuah instance dari kelas Presentation.
- Akses referensi slide yang relevan melalui indeksnya.
- Tambahkan sebuah IAutoShape berbentuk persegi panjang ke slide.
- Akses ITextFrame dari bentuk tersebut.
- Gunakan paragraf default dan tambahkan dua objek IParagraph lagi ke bingkai teks.
- Tambahkan cukup objek IPortion untuk setiap paragraf agar berisi tiga bagian. Paragraf default sudah berisi satu bagian kosong.
- Atur teks masing‑masing bagian.
- Terapkan pemformatan tingkat karakter melalui IPortion.PortionFormat.
- Simpan presentasi yang telah dimodifikasi.
Contoh C# berikut mengimplementasikan langkah‑langkah tersebut:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 150, 300, 150);
var textFrame = shape.TextFrame;
var firstParagraph = textFrame.Paragraphs[0];
firstParagraph.Portions.Add(new Portion());
firstParagraph.Portions.Add(new Portion());
var secondParagraph = new Paragraph();
secondParagraph.Portions.Add(new Portion());
secondParagraph.Portions.Add(new Portion());
secondParagraph.Portions.Add(new Portion());
textFrame.Paragraphs.Add(secondParagraph);
var thirdParagraph = new Paragraph();
thirdParagraph.Portions.Add(new Portion());
thirdParagraph.Portions.Add(new Portion());
thirdParagraph.Portions.Add(new Portion());
textFrame.Paragraphs.Add(thirdParagraph);
var paragraphCount = textFrame.Paragraphs.Count;
for (var paragraphIndex = 0; paragraphIndex < paragraphCount; paragraphIndex++)
{
var paragragaph = textFrame.Paragraphs[paragraphIndex];
var portionCount = paragragaph.Portions.Count;
for (var portionIndex = 0; portionIndex < portionCount; portionIndex++)
{
var portion = paragragaph.Portions[portionIndex];
portion.Text = $"Portion {paragraphIndex + 1}.{portionIndex + 1}";
if (portionIndex == 0)
{
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Red;
portion.PortionFormat.FontBold = NullableBool.True;
portion.PortionFormat.FontHeight = 15;
}
else if (portionIndex == 1)
{
portion.PortionFormat.FillFormat.FillType = FillType.Solid;
portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Blue;
portion.PortionFormat.FontItalic = NullableBool.True;
portion.PortionFormat.FontHeight = 18;
}
}
}
presentation.Save("paragraphs_with_portions.pptx", SaveFormat.Pptx);
Buat Daftar Bullet dan Bernomor
Buat Daftar Bullet atau Bernomor
Bullet dan penomoran memudahkan penelusuran item terkait. Pada Aspose.Slides, pengaturan daftar didefinisikan melalui IBulletFormat.
- Buat sebuah instance dari kelas Presentation.
- Akses referensi slide yang relevan melalui indeksnya.
- Tambahkan sebuah IAutoShape ke slide yang dipilih.
- Akses ITextFrame.
- Hapus paragraf default dari bingkai teks.
- Buat sebuah Paragraph untuk bullet simbol.
- Atur IBulletFormat.Type menjadi BulletType.Symbol dan tentukan karakter bullet.
- Atur teks paragraf, indentasi, warna bullet, dan tinggi bullet.
- Tambahkan paragraf ke bingkai teks.
- Buat paragraf kedua dan atur IBulletFormat.Type menjadi BulletType.Numbered.
- Konfigurasikan gaya bullet bernomor dan tambahkan paragraf ke bingkai teks.
- Simpan presentasi.
Contoh C# berikut membuat bullet simbol dan bullet bernomor:
using System;
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
var textFrame = shape.TextFrame;
textFrame.Paragraphs.Clear();
var symbolParagraph = new Paragraph { Text = "Welcome to Aspose.Slides" };
symbolParagraph.ParagraphFormat.Bullet.Type = BulletType.Symbol;
symbolParagraph.ParagraphFormat.Bullet.Char = Convert.ToChar(0x2022);
symbolParagraph.ParagraphFormat.Indent = 25;
symbolParagraph.ParagraphFormat.Bullet.Color.ColorType = ColorType.RGB;
symbolParagraph.ParagraphFormat.Bullet.Color.Color = Color.Black;
symbolParagraph.ParagraphFormat.Bullet.IsBulletHardColor = NullableBool.True;
symbolParagraph.ParagraphFormat.Bullet.Height = 100;
textFrame.Paragraphs.Add(symbolParagraph);
var numberedParagraph = new Paragraph { Text = "This is a numbered item" };
numberedParagraph.ParagraphFormat.Bullet.Type = BulletType.Numbered;
numberedParagraph.ParagraphFormat.Bullet.NumberedBulletStyle = NumberedBulletStyle.BulletCircleNumWDBlackPlain;
numberedParagraph.ParagraphFormat.Indent = 25;
numberedParagraph.ParagraphFormat.Bullet.Color.ColorType = ColorType.RGB;
numberedParagraph.ParagraphFormat.Bullet.Color.Color = Color.Black;
numberedParagraph.ParagraphFormat.Bullet.IsBulletHardColor = NullableBool.True;
numberedParagraph.ParagraphFormat.Bullet.Height = 100;
textFrame.Paragraphs.Add(numberedParagraph);
presentation.Save("bulleted_and_numbered_list.pptx", SaveFormat.Pptx);
Gunakan Bullet Gambar
Bullet gambar memungkinkan Anda menggunakan gambar khusus alih‑alih simbol atau nomor.
- Buat sebuah instance dari kelas Presentation.
- Akses referensi slide yang relevan melalui indeksnya.
- Tambahkan sebuah IAutoShape dan akses ITextFrame.
- Hapus paragraf default dari bingkai teks.
- Muat gambar bullet dan tambahkan ke koleksi gambar presentasi sebagai IPPImage.
- Buat sebuah Paragraph dan atur teksnya.
- Atur IBulletFormat.Type menjadi BulletType.Picture.
- Tetapkan gambar melalui IBulletFormat.Picture dan atur tinggi bullet.
- Tambahkan paragraf ke bingkai teks.
- Simpan presentasi yang telah dimodifikasi.
Contoh C# berikut membuat bullet gambar:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
using var bulletImage = Images.FromFile("bullets.png");
var presentationImage = presentation.Images.AddImage(bulletImage);
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
var textFrame = shape.TextFrame;
textFrame.Paragraphs.Clear();
var paragraph = new Paragraph { Text = "Welcome to Aspose.Slides" };
paragraph.ParagraphFormat.Bullet.Type = BulletType.Picture;
paragraph.ParagraphFormat.Bullet.Picture.Image = presentationImage;
paragraph.ParagraphFormat.Bullet.Height = 100;
textFrame.Paragraphs.Add(paragraph);
presentation.Save("picture_bullet.pptx", SaveFormat.Pptx);
presentation.Save("picture_bullet.ppt", SaveFormat.Ppt);
Buat Daftar Multilevel
Atur IParagraphFormat.Depth untuk menempatkan paragraf pada level daftar yang berbeda. Level teratas memiliki kedalaman 0.
- Buat sebuah Presentation dan akses sebuah slide.
- Tambahkan sebuah IAutoShape dan bersihkan paragraf default dari bingkai teksnya.
- Buat empat paragraf dan konfigurasikan simbol bullet masing‑masing.
- Atur nilai IParagraphFormat.Depth mereka menjadi
0,1,2, dan3. - Tambahkan paragraf ke bingkai teks dan simpan presentasi.
Contoh C# berikut membuat daftar bullet empat level:
using System;
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
var textFrame = shape.TextFrame;
textFrame.Paragraphs.Clear();
var firstParagraph = new Paragraph { Text = "Content" };
firstParagraph.ParagraphFormat.Bullet.Type = BulletType.Symbol;
firstParagraph.ParagraphFormat.Bullet.Char = Convert.ToChar(0x2022);
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
firstParagraph.ParagraphFormat.Depth = 0;
var secondParagraph = new Paragraph { Text = "Second level" };
secondParagraph.ParagraphFormat.Bullet.Type = BulletType.Symbol;
secondParagraph.ParagraphFormat.Bullet.Char = '-';
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
secondParagraph.ParagraphFormat.Depth = 1;
var thirdParagraph = new Paragraph { Text = "Third level" };
thirdParagraph.ParagraphFormat.Bullet.Type = BulletType.Symbol;
thirdParagraph.ParagraphFormat.Bullet.Char = Convert.ToChar(0x2022);
thirdParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
thirdParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
thirdParagraph.ParagraphFormat.Depth = 2;
var fourthParagraph = new Paragraph { Text = "Fourth level" };
fourthParagraph.ParagraphFormat.Bullet.Type = BulletType.Symbol;
fourthParagraph.ParagraphFormat.Bullet.Char = '-';
fourthParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
fourthParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
fourthParagraph.ParagraphFormat.Depth = 3;
textFrame.Paragraphs.Add(firstParagraph);
textFrame.Paragraphs.Add(secondParagraph);
textFrame.Paragraphs.Add(thirdParagraph);
textFrame.Paragraphs.Add(fourthParagraph);
presentation.Save("multilevel_list.pptx", SaveFormat.Pptx);
Mulai Item Daftar Bernomor dengan Nilai Kustom
Gunakan IBulletFormat.NumberedBulletStartWith untuk menetapkan nomor awal yang ditampilkan untuk paragraf bernomor.
- Buat sebuah Presentation dan tambahkan sebuah IAutoShape ke sebuah slide.
- Bersihkan paragraf default dari bingkai teks bentuk.
- Buat tiga paragraf bernomor.
- Atur IBulletFormat.NumberedBulletStartWith menjadi
2,3, dan7untuk paragraf masing‑masing. - Tambahkan paragraf ke bingkai teks dan simpan presentasi.
Contoh C# berikut menetapkan nomor awal kustom untuk setiap paragraf:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
var textFrame = shape.TextFrame;
textFrame.Paragraphs.Clear();
var firstParagraph = new Paragraph { Text = "Start at 2" };
firstParagraph.ParagraphFormat.Bullet.Type = BulletType.Numbered;
firstParagraph.ParagraphFormat.Bullet.NumberedBulletStartWith = 2;
textFrame.Paragraphs.Add(firstParagraph);
var secondParagraph = new Paragraph { Text = "Start at 3" };
secondParagraph.ParagraphFormat.Bullet.Type = BulletType.Numbered;
secondParagraph.ParagraphFormat.Bullet.NumberedBulletStartWith = 3;
textFrame.Paragraphs.Add(secondParagraph);
var thirdParagraph = new Paragraph { Text = "Start at 7" };
thirdParagraph.ParagraphFormat.Bullet.Type = BulletType.Numbered;
thirdParagraph.ParagraphFormat.Bullet.NumberedBulletStartWith = 7;
textFrame.Paragraphs.Add(thirdParagraph);
presentation.Save("custom_numbered_list.pptx", SaveFormat.Pptx);
Kontrol Tata Letak Paragraf dan Properti Akhir
Atur Inden Baris Pertama
Gunakan properti IParagraphFormat.Indent untuk mengontrol inden baris pertama sebuah paragraf. Properti ini memindahkan hanya baris pertama relatif terhadap margin kiri paragraf. Nilai positif menggeser baris pertama ke kanan, sementara baris lainnya tetap rata dengan isi paragraf.
Gunakan IParagraphFormat.MarginLeft ketika Anda perlu memindahkan seluruh paragraf. Gunakan IParagraphFormat.Indent ketika Anda hanya perlu memindahkan baris pertama.
Contoh di bawah ini membuat beberapa paragraf dan menerapkan nilai IParagraphFormat.Indent yang berbeda untuk menunjukkan bagaimana inden baris pertama memengaruhi tata letak paragraf.
- Buat sebuah instance dari kelas Presentation.
- Akses slide target.
- Tambahkan sebuah IAutoShape berbentuk persegi panjang ke slide.
- Akses ITextFrame bentuk dan hapus paragraf default.
- Buat beberapa paragraf dan atur nilai Indent yang berbeda untuk masing‑masing.
- Tambahkan paragraf ke bingkai teks.
- Simpan presentasi yang telah dimodifikasi.
Kode ini menunjukkan cara mengatur inden paragraf:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 420, 220);
shape.FillFormat.FillType = FillType.NoFill;
shape.LineFormat.FillFormat.FillType = FillType.Solid;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.Gray;
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.Shape;
textFrame.Paragraphs.Clear();
var firstParagraph = new Paragraph { Text = "No first-line indent. Wrapped lines start at the same position as the first line." };
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
firstParagraph.ParagraphFormat.MarginLeft = 20;
firstParagraph.ParagraphFormat.Indent = 0;
var secondParagraph = new Paragraph { Text = "First-line indent of 20 points. The first line moves to the right, while wrapped lines remain aligned to the paragraph body." };
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
secondParagraph.ParagraphFormat.MarginLeft = 20;
secondParagraph.ParagraphFormat.Indent = 20;
var thirdParagraph = new Paragraph { Text = "First-line indent of 40 points. This paragraph shows a larger first-line offset to make the effect easier to see." };
thirdParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
thirdParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
thirdParagraph.ParagraphFormat.MarginLeft = 20;
thirdParagraph.ParagraphFormat.Indent = 40;
textFrame.Paragraphs.Add(firstParagraph);
textFrame.Paragraphs.Add(secondParagraph);
textFrame.Paragraphs.Add(thirdParagraph);
presentation.Save("paragraph_indent.pptx", SaveFormat.Pptx);
Hasilnya:

Atur Inden Gantung
Inden gantung adalah tata letak paragraf di mana baris pertama mulai lebih ke kiri dibandingkan baris‑baris berikutnya. Pada Aspose.Slides, Anda membuat efek ini dengan properti IParagraphFormat.Indent. Atur Indent ke nilai negatif untuk memindahkan baris pertama ke kiri relatif terhadap isi paragraf.
Dalam praktiknya, IParagraphFormat.MarginLeft menentukan posisi kiri isi paragraf, dan IParagraphFormat.Indent menentukan posisi baris pertama relatif terhadap margin tersebut. Untuk membuat inden gantung, atur nilai MarginLeft positif dan nilai Indent negatif.
Pemformatan ini berguna untuk bibliografi, referensi, entri glosarium, dan paragraf lain di mana baris yang dibungkus harus rata di bawah isi paragraf, bukan di bawah karakter pertama baris pertama.
- Buat sebuah instance dari kelas Presentation.
- Akses slide target.
- Tambahkan sebuah IAutoShape berbentuk persegi panjang ke slide.
- Akses ITextFrame bentuk dan hapus paragraf default.
- Buat paragraf dan atur nilai MarginLeft positif untuk setiap paragraf.
- Atur nilai Indent negatif untuk menciptakan efek inden gantung.
- Tambahkan paragraf ke bingkai teks.
- Simpan presentasi yang telah dimodifikasi.
Kode ini menunjukkan cara mengatur inden gantung untuk sebuah paragraf:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 420, 220);
shape.FillFormat.FillType = FillType.NoFill;
shape.LineFormat.FillFormat.FillType = FillType.Solid;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.Gray;
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.Shape;
textFrame.Paragraphs.Clear();
var firstParagraph = new Paragraph { Text = "A hanging indent is created by combining a positive left margin with a negative indent. The first line starts to the left, while wrapped lines align with the paragraph body." };
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
firstParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
firstParagraph.ParagraphFormat.MarginLeft = 40;
firstParagraph.ParagraphFormat.Indent = -20;
var secondParagraph = new Paragraph { Text = "This second example uses a deeper hanging indent so the difference between the first line and the wrapped lines is easier to compare." };
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillType.Solid;
secondParagraph.ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
secondParagraph.ParagraphFormat.MarginLeft = 60;
secondParagraph.ParagraphFormat.Indent = -30;
textFrame.Paragraphs.Add(firstParagraph);
textFrame.Paragraphs.Add(secondParagraph);
presentation.Save("hanging_indent.pptx", SaveFormat.Pptx);
Hasilnya:

Atur Properti Jalankan Akhir Paragraf
Properti IParagraph.EndParagraphPortionFormat mengontrol pemformatan tanda akhir paragraf. Contoh berikut menetapkan ukuran font dan font Latin untuk tanda akhir paragraf kedua:
- Muat sebuah Presentation dan akses sebuah slide.
- Tambahkan sebuah IAutoShape dan bersihkan paragraf defaultnya.
- Buat dua paragraf dan tambahkan bagian‑bagian teks ke masing‑masing.
- Buat sebuah PortionFormat untuk tanda akhir paragraf kedua.
- Atur IBasePortionFormat.FontHeight dan IBasePortionFormat.LatinFont.
- Tetapkan format ke IParagraph.EndParagraphPortionFormat dan simpan presentasi.
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("Test.pptx");
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 200, 250);
var textFrame = shape.TextFrame;
textFrame.Paragraphs.Clear();
var firstParagraph = new Paragraph();
firstParagraph.Portions.Add(new Portion("Sample text"));
var secondParagraph = new Paragraph();
secondParagraph.Portions.Add(new Portion("Sample text 2"));
var endParagraphFormat = new PortionFormat();
endParagraphFormat.FontHeight = 48;
endParagraphFormat.LatinFont = new FontData("Times New Roman");
secondParagraph.EndParagraphPortionFormat = endParagraphFormat;
textFrame.Paragraphs.Add(firstParagraph);
textFrame.Paragraphs.Add(secondParagraph);
presentation.Save("end_paragraph_format.pptx", SaveFormat.Pptx);
Hitung Baris yang Dihasilkan
Untuk aturan paragraf yang memengaruhi pembungkusan otomatis dan tanda baca pada akhir baris, lihat Control Line Breaking dan Control Hanging Punctuation.
Gunakan IParagraph.GetLinesCount untuk menghitung baris yang ditempati oleh sebuah paragraf setelah tata letak teks, termasuk pembungkusan otomatis. Ini berguna saat memeriksa panjang teks dan tata letak dalam templat presentasi.
Paragraf adalah satu item dalam ITextFrame.Paragraphs, dan dapat menempati beberapa baris yang dihasilkan. Pemutusan baris eksplisit dalam sebuah paragraf memaksa baris baru tanpa membuat paragraf lain. Pembungkusan otomatis membuat baris berdasarkan lebar yang tersedia tanpa menyisipkan pemutusan baris eksplisit ke dalam teks. Karena itu, menghitung paragraf atau karakter pemutusan baris tidak memberikan jumlah baris yang dihasilkan.
Contoh berikut membuat sebuah bentuk teks, menghitung barisnya, mempersempit bentuk, lalu mengganti teks dengan string yang lebih pendek. Pembungkusan diaktifkan dan autofit dinonaktifkan sehingga lebar bentuk mengontrol pembungkusan tanpa secara otomatis mengecilkan teks atau mengubah ukuran bentuk. Dimensi bentuk dalam poin. Akhirnya, contoh menambahkan paragraf lain dan menjumlahkan jumlah baris di seluruh bingkai teks.
using System;
using Aspose.Slides;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 200);
var textFrame = shape.TextFrame;
textFrame.TextFrameFormat.WrapText = NullableBool.True;
textFrame.TextFrameFormat.AutofitType = TextAutofitType.None;
var paragraph = textFrame.Paragraphs[0];
paragraph.ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
paragraph.Text = "This text demonstrates how automatic wrapping changes the number of rendered lines.";
Console.WriteLine($"Original width: {paragraph.GetLinesCount()}");
shape.Width = 150;
Console.WriteLine($"Narrower shape: {paragraph.GetLinesCount()}");
paragraph.Text = "Short text.";
Console.WriteLine($"Shorter text: {paragraph.GetLinesCount()}");
var secondParagraph = new Paragraph { Text = "Another paragraph." };
secondParagraph.ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
textFrame.Paragraphs.Add(secondParagraph);
var totalLineCount = 0;
foreach (var currentParagraph in textFrame.Paragraphs)
{
totalLineCount += currentParagraph.GetLinesCount();
}
Console.WriteLine($"Total lines in the text frame: {totalLineCount}");
Dengan teks dan dimensi ini, mempersempit bentuk meningkatkan jumlah baris, sementara mengganti teks dengan string pendek menguranginya. Jumlah pasti dapat bervariasi tergantung pada ketersediaan dan substitusi font, ukuran font, margin, indentasi, pembungkusan, dan pengaturan autofit. Gunakan font dan pengaturan tata letak yang dimaksudkan untuk lingkungan target saat memeriksa sebuah templat.
Jumlah baris saja tidak menentukan apakah teks meluap dari wadahnya. Tinggi yang tersedia, tinggi baris, jarak paragraf dan baris, serta perilaku autofit juga penting; bahkan satu baris dapat melebihi lebar yang tersedia ketika pembungkusan dinonaktifkan.
Impor dan Ekspor Konten Paragraf
Impor Teks HTML ke dalam Paragraf
Gunakan ParagraphCollection.AddFromHtml untuk mengonversi markup HTML menjadi paragraf dan bagian dalam sebuah bingkai teks.
- Buat sebuah instance dari kelas Presentation.
- Akses sebuah slide dan tambahkan sebuah IAutoShape.
- Akses ITextFrame bentuk dan bersihkan paragraf defaultnya.
- Baca file HTML sumber.
- Berikan string HTML ke ParagraphCollection.AddFromHtml.
- Simpan presentasi yang telah dimodifikasi.
Contoh C# berikut mengimpor HTML ke dalam sebuah bingkai teks:
using System.IO;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shapeWidth = presentation.SlideSize.Size.Width - 20;
var shapeHeight = presentation.SlideSize.Size.Height - 20;
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, shapeWidth, shapeHeight);
shape.FillFormat.FillType = FillType.NoFill;
shape.TextFrame.Paragraphs.Clear();
using var reader = new StreamReader("file.html");
var html = reader.ReadToEnd();
shape.TextFrame.Paragraphs.AddFromHtml(html);
presentation.Save("html_text.pptx", SaveFormat.Pptx);
Ekspor Teks Paragraf ke HTML
Gunakan ParagraphCollection.ExportToHtml untuk mengekspor rentang paragraf terpilih sebagai HTML.
- Buat sebuah instance dari kelas Presentation dan muat presentasi yang diinginkan.
- Akses slide dan temukan IAutoShape yang berisi teks.
- Akses ITextFrame.
- Panggil ParagraphCollection.ExportToHtml dengan indeks paragraf awal dan jumlah paragraf yang akan diekspor.
- Tulis string HTML yang dikembalikan ke sebuah file.
Contoh C# berikut mengekspor semua paragraf dari bentuk teks pertama:
using System;
using System.IO;
using System.Text;
using Aspose.Slides;
using var presentation = new Presentation("ExportingHTMLText.pptx");
var shape = presentation.Slides[0].Shapes[0];
if (shape is IAutoShape textShape && textShape.TextFrame != null)
{
var paragraphs = textShape.TextFrame.Paragraphs;
var html = paragraphs.ExportToHtml(0, paragraphs.Count, null);
using var writer = new StreamWriter("paragraphs.html", false, Encoding.UTF8);
writer.Write(html);
}
else
{
Console.WriteLine("The first shape is not a text shape.");
}
Render Paragraf sebagai Gambar
IParagraph.GetImage merender sebuah paragraf individual secara langsung dan mengembalikan sebuah IImage. Simpan hasilnya ke file atau stream dengan IImage.Save. Anda tidak perlu merender bentuk yang berisi atau memotong bitmap secara manual.
IParagraph.GetImage dapat mengembalikan null jika paragraf tidak dapat ditemukan dalam koleksi induknya, tidak memiliki batas rendering yang valid, atau tidak dapat dirender. Periksa hasilnya sebelum menyimpannya dan buang gambar yang dikembalikan setelah digunakan.
Render Paragraf pada Skala Default
Misalkan kami memiliki file presentasi bernama sample.pptx dengan satu slide, di mana bentuk pertama adalah kotak teks yang berisi tiga paragraf.

Contoh berikut merender paragraf kedua dalam bentuk teks reguler pada skala default dan menyimpan gambar yang dikembalikan dalam format PNG. Deklarasi using memastikan gambar dibuang dengan benar.
using System;
using Aspose.Slides;
using var presentation = new Presentation("sample.pptx");
var shape = presentation.Slides[0].Shapes[0];
if (shape is IAutoShape textShape &&
textShape.TextFrame != null &&
textShape.TextFrame.Paragraphs.Count > 1)
{
var paragraph = textShape.TextFrame.Paragraphs[1];
using var paragraphImage = paragraph.GetImage();
if (paragraphImage != null)
{
paragraphImage.Save("paragraph.png", ImageFormat.Png);
}
else
{
Console.WriteLine("The paragraph could not be rendered.");
}
}
else
{
Console.WriteLine("The expected text shape or paragraph was not found.");
}
Hasilnya:

Render Paragraf dalam Sel Tabel dengan Skala
Gunakan overload IParagraph.GetImage yang menerima parameter float scaleX dan float scaleY untuk mengatur faktor skala horizontal dan vertikal. Contoh berikut membuat sebuah tabel, merender paragraf di sel pertamanya dengan lebar dan tinggi dua kali lipat ukuran default, dan menyimpan hasilnya sebagai gambar PNG.
using System;
using Aspose.Slides;
var scaleX = 2f;
var scaleY = 2f;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var table = slide.Shapes.AddTable(50, 50, new[] { 300d }, new[] { 80d });
var paragraph = table[0, 0].TextFrame.Paragraphs[0];
paragraph.Text = "Text in a table cell";
using var paragraphImage = paragraph.GetImage(scaleX, scaleY);
if (paragraphImage != null)
{
paragraphImage.Save("table_paragraph.png", ImageFormat.Png);
}
else
{
Console.WriteLine("The paragraph could not be rendered.");
}
Faktor skala 1 menjaga sumbu tersebut pada ukuran piksel defaultnya. Misalnya, 2 untuk kedua faktor menghasilkan gambar dengan lebar dan tinggi kira‑kiranya dua kali dimensi default, menghasilkan empat kali lebih banyak piksel. Faktor yang lebih besar umumnya menghasilkan teks yang lebih tajam untuk memperbesar atau output resolusi tinggi, tetapi juga meningkatkan penggunaan memori dan ukuran file. Faktor di bawah 1 menghasilkan gambar lebih kecil dengan detail lebih sedikit. Gunakan faktor yang sama untuk mempertahankan rasio aspek paragraf; faktor horizontal dan vertikal yang berbeda akan meregangkan output secara terpisah.
Merender seluruh bentuk dengan IShape.GetImage tetap berguna ketika output harus mencakup isian bentuk, batas, atau konteks visual lainnya. Untuk gambar hanya paragraf, gunakan IParagraph.GetImage.
FAQ
Apakah saya dapat menonaktifkan sepenuhnya pembungkusan baris di dalam bingkai teks?
Ya. Atur ITextFrameFormat.WrapText untuk menonaktifkan pembungkusan sehingga baris tidak terputus di tepi bingkai teks.
Bagaimana cara mendapatkan batas tepat pada slide untuk paragraf tertentu?
Gunakan IParagraph.GetRect untuk mengambil persegi panjang pembatas paragraf. IPortion.GetRect memberikan batas bagian individual.
Di mana pengaturan perataan paragraf (kiri, kanan, tengah, atau rata) dikendalikan?
IParagraphFormat.Alignment adalah pengaturan tingkat paragraf dan berlaku untuk seluruh paragraf terlepas dari pemformatan bagian individual.
Apakah saya dapat mengatur bahasa pemeriksaan ejaan untuk sebagian paragraf?
Ya. Atur IBasePortionFormat.LanguageId untuk bagian individual, sehingga satu paragraf dapat berisi teks dalam beberapa bahasa.