Meningkatkan Presentasi Anda dengan AutoFit di .NET

Pendahuluan

Secara default, ketika Anda menambahkan kotak teks, Microsoft PowerPoint menggunakan pengaturan Resize shape to fit text untuk kotak teks—ini secara otomatis mengubah ukuran kotak teks untuk memastikan teksnya selalu muat di dalamnya.

Kotak teks di PowerPoint

  • Ketika teks dalam kotak teks menjadi lebih panjang atau lebih besar, PowerPoint secara otomatis memperbesar kotak teks—meningkatkan tinggiannya—untuk menampung lebih banyak teks.
  • Ketika teks dalam kotak teks menjadi lebih pendek atau lebih kecil, PowerPoint secara otomatis memperkecil kotak teks—mengurangi tinggiannya—untuk menghilangkan ruang berlebih.

Di PowerPoint, ada empat parameter atau opsi penting yang mengendalikan perilaku autofit untuk kotak teks:

  • Do not Autofit
  • Shrink text on overflow
  • Resize shape to fit text
  • Wrap text in shape

Opsi autofit di PowerPoint

Aspose.Slides for .NET menyediakan opsi serupa—properti di bawah kelas TextFrameFormat—yang memungkinkan Anda mengontrol perilaku autofit untuk kotak teks dalam presentasi.

Resize a Shape to Fit Text

Jika Anda menginginkan teks dalam sebuah kotak selalu muat ke dalam kotak tersebut setelah perubahan teks, Anda harus menggunakan opsi Resize shape to fit text. Untuk menentukan pengaturan ini, atur properti AutofitType dari kelas TextFrameFormat menjadi Shape.

Resize shape to fit text

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.Shape;

    presentation.Save("output_presentation.pptx", SaveFormat.Pptx);
}

Jika teks menjadi lebih panjang atau lebih besar, kotak teks akan secara otomatis diubah ukurannya (tinggiannya ditambah) untuk memastikan semua teks muat di dalamnya. Jika teks menjadi lebih pendek, sebaliknya terjadi.

Do Not Autofit

Jika Anda ingin kotak teks atau bentuk mempertahankan dimensinya apa pun perubahan pada teks yang dikandungnya, Anda harus menggunakan opsi Do not Autofit. Untuk menentukan pengaturan ini, atur properti AutofitType dari kelas TextFrameFormat menjadi None.

Pengaturan “Do not Autofit” di PowerPoint

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.None;

    presentation.Save("output_presentation.pptx", SaveFormat.Pptx);
}

Ketika teks menjadi terlalu panjang untuk kotaknya, teks akan meluber keluar.

Shrink Text on Overflow

Jika teks menjadi terlalu panjang untuk kotaknya, melalui opsi Shrink text on overflow, Anda dapat menentukan bahwa ukuran dan spasi teks harus diperkecil agar muat di dalam kotaknya. Untuk menentukan pengaturan ini, atur properti AutofitType dari kelas TextFrameFormat menjadi Normal.

Pengaturan “Shrink text on overflow” di PowerPoint

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.Normal;

    presentation.Save("output_presentation.pptx", SaveFormat.Pptx);
}

Wrap Text

Jika Anda ingin teks dalam sebuah bentuk dibungkus di dalam bentuk tersebut ketika teks melampaui batas bentuk (hanya lebar), Anda harus menggunakan parameter Wrap text in shape. Untuk menentukan pengaturan ini, atur properti WrapText dari kelas TextFrameFormat menjadi NullableBool.True.

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.WrapText = NullableBool.True;

    presentation.Save("output_presentation.pptx", SaveFormat.Pptx);
}

Tanya Jawab

Apakah margin internal frame teks memengaruhi AutoFit?

Ya. Padding (margin internal) mengurangi area yang dapat digunakan untuk teks, sehingga AutoFit akan aktif lebih awal—memperkecil font atau mengubah ukuran bentuk lebih cepat. Periksa dan sesuaikan margin sebelum mengatur AutoFit.

Bagaimana AutoFit berinteraksi dengan pemecahan baris manual dan lunak?

Pemecahan baris paksa tetap ada, dan AutoFit menyesuaikan ukuran font serta spasi di sekitarnya. Menghapus pemecahan baris yang tidak diperlukan sering mengurangi seberapa agresif AutoFit harus memperkecil teks.

Apakah mengubah font tema atau memicu substitusi font memengaruhi hasil AutoFit?

Ya. Mengganti ke font dengan metrik glyph yang berbeda mengubah lebar/tinggi teks, yang dapat mengubah ukuran font akhir dan pembungkus baris. Setelah setiap perubahan atau substitusi font, periksa kembali slide.