Format Teks Presentasi di Python
Gambaran Umum
Artikel ini menunjukkan cara memformat teks dalam presentasi PowerPoint dan OpenDocument menggunakan Aspose.Slides untuk Python via .NET. Artikel ini mencakup warna latar belakang, transparansi, spasi karakter, properti font, rotasi, spasi paragraf, perilaku autofit, penempatan teks, tab stop, dan pengaturan bahasa.
Dalam contoh di bawah, kami akan menggunakan file bernama “sample.pptx”, yang berisi satu kotak teks pada slide pertama dengan teks berikut:

Untuk menemukan dan menyorot teks literal atau kecocokan ekspresi reguler, lihat Cari dan Ganti Teks.
Set Warna Latar Belakang Teks
Gunakan ParagraphFormat.default_portion_format untuk mengatur warna sorotan default untuk sebuah paragraf, atau gunakan PortionFormat.highlight_color untuk bagian teks individu.
Contoh kode berikut menunjukkan cara mengatur warna latar belakang untuk seluruh paragraf:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Atur warna sorotan untuk seluruh paragraf.
paragraph.paragraph_format.default_portion_format.highlight_color.color = draw.Color.light_gray
presentation.save("gray_paragraph.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Contoh kode di bawah ini menunjukkan cara mengatur warna latar belakang untuk bagian teks dengan font tebal:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Atur warna sorotan untuk bagian teks.
portion.portion_format.highlight_color.color = draw.Color.light_gray
presentation.save("gray_text_portions.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Ratakan Paragraf Teks
Gunakan ParagraphFormat.alignment untuk mengatur perataan paragraf dalam sebuah bingkai teks. Nilainya dapat berupa tengah, rata kiri, rata kanan, rata kanan-kiri, dan sebagainya.
Contoh kode berikut menunjukkan cara meratakan paragraf ke tengah:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Atur perataan paragraf ke tengah.
paragraph.paragraph_format.alignment = slides.TextAlignment.CENTER
presentation.save("aligned_paragraph.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Transparansi untuk Teks
Transparansi teks diatur melalui komponen alfa dari warna yang ditetapkan ke PortionFormat.fill_format. Pada contoh di bawah, alpha = 50 adalah nilai saluran alfa ARGB pada skala 0-255, bukan persentase transparansi.
Contoh kode di bawah ini menunjukkan cara menerapkan transparansi pada seluruh paragraf:
import aspose.pydrawing as draw
import aspose.slides as slides
alpha = 50
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Atur warna isi teks menjadi warna transparan.
paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.from_argb(alpha, draw.Color.black)
presentation.save("transparent_paragraph.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Contoh kode berikut menunjukkan cara menerapkan transparansi pada bagian teks dengan font tebal:
import aspose.pydrawing as draw
import aspose.slides as slides
alpha = 50
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Atur transparansi bagian teks.
portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
portion.portion_format.fill_format.solid_fill_color.color = draw.Color.from_argb(alpha, draw.Color.black)
presentation.save("transparent_text_portions.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Jarak Karakter untuk Teks
Gunakan BasePortionFormat.spacing untuk memperluas atau mengurangi jarak antar karakter dalam sebuah kotak teks.
Kode Python berikut menunjukkan cara memperluas jarak karakter dalam seluruh paragraf:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Catatan: Gunakan nilai negatif untuk mengompres jarak karakter.
paragraph.paragraph_format.default_portion_format.spacing = 3 # Perluas jarak karakter.
presentation.save("character_spacing_in_paragraph.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Contoh kode di bawah ini menunjukkan cara memperluas jarak karakter dalam bagian teks dengan font tebal:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Catatan: Gunakan nilai negatif untuk mengompres jarak karakter.
portion.portion_format.spacing = 3 # Perluas jarak karakter.
presentation.save("character_spacing_in_text_portions.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Nonaktifkan Kerning untuk Font Tertentu
Dalam beberapa kasus, teks yang dirender oleh Aspose.Slides dapat terlihat sedikit lebih rapat dibandingkan teks yang sama ditampilkan di PowerPoint. Hal ini dapat terjadi karena PowerPoint mungkin mengabaikan data kerning untuk font tertentu, bahkan ketika font tersebut memiliki informasi kerning yang valid dan kerning diaktifkan dalam pengaturan PowerPoint.
Untuk membuat output yang dirender lebih mendekati PowerPoint dalam kasus seperti itu, Anda dapat menonaktifkan kerning untuk bagian teks yang menggunakan font yang terpengaruh. Atur BasePortionFormat.kerning_minimal_size ke nilai yang jauh lebih besar daripada ukuran font sebenarnya:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
target_font = "Roboto"
for paragraph in auto_shape.text_frame.paragraphs:
for portion in paragraph.portions:
latin_font = portion.portion_format.latin_font
east_asian_font = portion.portion_format.east_asian_font
complex_script_font = portion.portion_format.complex_script_font
if ((latin_font is not None and latin_font.font_name == target_font) or
(east_asian_font is not None and east_asian_font.font_name == target_font) or
(complex_script_font is not None and complex_script_font.font_name == target_font)):
portion.portion_format.kerning_minimal_size = 100
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Kelola Properti Font Teks
Properti font dapat diatur pada tingkat paragraf melalui ParagraphFormat.default_portion_format atau pada bagian individual melalui PortionFormat.
Kode berikut mengatur font dan gaya teks untuk seluruh paragraf: ini menerapkan ukuran font, tebal, miring, garis bawah bertitik, dan font Times New Roman ke semua bagian dalam paragraf.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Atur properti font untuk paragraf.
paragraph.paragraph_format.default_portion_format.font_height = 12
paragraph.paragraph_format.default_portion_format.font_bold = slides.NullableBool.TRUE
paragraph.paragraph_format.default_portion_format.font_italic = slides.NullableBool.TRUE
paragraph.paragraph_format.default_portion_format.font_underline = slides.TextUnderlineType.DOTTED
paragraph.paragraph_format.default_portion_format.latin_font = slides.FontData("Times New Roman")
presentation.save("font_properties_for_paragraph.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Contoh kode di bawah ini menerapkan properti serupa ke bagian teks dengan font tebal:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Atur properti font untuk bagian teks.
portion.portion_format.font_height = 13
portion.portion_format.font_italic = slides.NullableBool.TRUE
portion.portion_format.font_underline = slides.TextUnderlineType.DOTTED
portion.portion_format.latin_font = slides.FontData("Times New Roman")
presentation.save("font_properties_for_text_portions.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Rotasi Teks
Gunakan TextFrameFormat.text_vertical_type untuk mengatur orientasi teks yang telah ditentukan sebelumnya dalam sebuah bentuk.
Contoh kode berikut mengatur orientasi teks dalam bentuk menjadi VERTICAL270, yang memutar teks 90 derajat berlawanan arah jarum jam:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
auto_shape.text_frame.text_frame_format.text_vertical_type = slides.TextVerticalType.VERTICAL270
presentation.save("text_rotation.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Rotasi Kustom untuk Bingkai Teks
Gunakan TextFrameFormat.rotation_angle untuk mengatur sudut rotasi kustom untuk sebuah TextFrame.
Contoh kode di bawah memutar bingkai teks sebesar 3 derajat searah jarum jam dalam bentuk:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
auto_shape.text_frame.text_frame_format.rotation_angle = 3
presentation.save("custom_text_rotation.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Jarak Baris Paragraf
Aspose.Slides menyediakan ParagraphFormat.space_after, ParagraphFormat.space_before, dan ParagraphFormat.space_within untuk mengontrol jarak paragraf. Properti-properti ini digunakan sebagai berikut:
- Gunakan nilai positif untuk menentukan jarak baris sebagai persentase dari tinggi baris.
- Gunakan nilai negatif untuk menentukan jarak baris dalam poin.
Contoh kode berikut menunjukkan cara menentukan jarak baris dalam paragraf:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
paragraph.paragraph_format.space_within = 200
presentation.save("line_spacing.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Tipe Autofit untuk Bingkai Teks
TextFrameFormat.autofit_type menentukan bagaimana teks berperilaku ketika melebihi batas kontainernya. Gunakan untuk mengontrol apakah teks menyusut, meluap, atau secara otomatis mengubah ukuran bentuk.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
auto_shape.text_frame.text_frame_format.autofit_type = slides.TextAutofitType.SHAPE
presentation.save("autofit_type.pptx", slides.export.SaveFormat.PPTX)
Set Jangkar Bingkai Teks
TextFrameFormat.anchoring_type mendefinisikan bagaimana teks diposisikan secara vertikal di dalam sebuah bentuk, misalnya di atas, tengah, atau bawah.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
auto_shape.text_frame.text_frame_format.anchoring_type = slides.TextAnchorType.BOTTOM
presentation.save("text_anchor.pptx", slides.export.SaveFormat.PPTX)
Set Tabulasi Teks
Gunakan ParagraphFormat.default_tab_size dan ParagraphFormat.tabs untuk mengonfigurasi tab stop dalam sebuah paragraf.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
paragraph.paragraph_format.default_tab_size = 100
paragraph.paragraph_format.tabs.add(30, slides.TabAlignment.LEFT)
presentation.save("paragraph_tabs.pptx", slides.export.SaveFormat.PPTX)
Hasil:

Set Bahasa Pemeriksaan
Aspose.Slides menyediakan PortionFormat.language_id, yang memungkinkan Anda mengatur bahasa pemeriksaan untuk sebuah bagian teks. Bahasa pemeriksaan menentukan bahasa yang digunakan untuk pemeriksaan ejaan dan tata bahasa di PowerPoint.
Contoh kode berikut menunjukkan cara mengatur bahasa pemeriksaan untuk sebuah bagian teks:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
paragraph.portions.clear()
font = slides.FontData("SimSun")
text_portion = slides.Portion()
text_portion.portion_format.complex_script_font = font
text_portion.portion_format.east_asian_font = font
text_portion.portion_format.latin_font = font
# Atur Id bahasa pemeriksaan.
text_portion.portion_format.language_id = "zh-CN"
text_portion.text = "1。"
paragraph.portions.add(text_portion)
presentation.save("proofing_language.pptx", slides.export.SaveFormat.PPTX)
Set Bahasa Default
Gunakan LoadOptions.default_text_language untuk menentukan bahasa default untuk teks yang dibuat saat memuat atau membuat presentasi.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.default_text_language = "en-US"
with slides.Presentation(load_options) as presentation:
slide = presentation.slides[0]
# Tambahkan bentuk persegi panjang baru dengan teks.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 50)
shape.text_frame.text = "Sample text"
# Periksa bahasa bagian pertama.
portion = shape.text_frame.paragraphs[0].portions[0]
print(portion.portion_format.language_id)
Set Gaya Teks Default
Untuk menerapkan format teks default pada tingkat presentasi, gunakan Presentation.default_text_style.
Contoh kode berikut menunjukkan cara mengatur font tebal default dengan ukuran 14 pt untuk semua teks di seluruh slide dalam presentasi baru.
import aspose.slides as slides
with slides.Presentation() as presentation:
# Dapatkan format paragraf tingkat atas.
paragraph_format = presentation.default_text_style.get_level(0)
if paragraph_format is not None:
paragraph_format.default_portion_format.font_height = 14
paragraph_format.default_portion_format.font_bold = slides.NullableBool.TRUE
presentation.save("default_text_style.pptx", slides.export.SaveFormat.PPTX)
Ekstrak Teks dengan Efek Semua Huruf Kapital
Di PowerPoint, menerapkan efek font All Caps membuat teks muncul dalam huruf kapital pada slide meskipun teks tersebut awalnya diketik dengan huruf kecil. Ketika Anda mengambil bagian teks seperti itu dengan Aspose.Slides, perpustakaan mengembalikan teks persis seperti yang dimasukkan. Untuk mencocokkan teks yang ditampilkan, periksa TextCapType dan ubah string yang dikembalikan menjadi huruf kapital ketika nilainya ALL.
Misalkan kita memiliki kotak teks berikut pada slide pertama file sample2.pptx.

Contoh kode di bawah ini menunjukkan cara mengekstrak teks dengan efek All Caps yang diterapkan:
import aspose.slides as slides
with slides.Presentation("sample2.pptx") as presentation:
auto_shape = presentation.slides[0].shapes[0]
text_portion = auto_shape.text_frame.paragraphs[0].portions[0]
print("Original text:", text_portion.text)
text_format = text_portion.portion_format.get_effective()
if text_format.text_cap_type == slides.TextCapType.ALL:
text = text_portion.text.upper()
print("All-Caps effect:", text)
Output:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
FAQ
Bagaimana cara memodifikasi teks dalam tabel pada slide?
Untuk memodifikasi teks dalam tabel pada slide, gunakan Table. Iterasi melalui sel-sel dan perbarui setiap sel melalui Cell.text_frame serta pemformatan paragraf melalui Paragraph.paragraph_format.
Bagaimana cara menerapkan warna gradien pada teks di slide PowerPoint?
Untuk menerapkan warna gradien pada teks, gunakan PortionFormat.fill_format. Atur FillFormat.fill_type ke FillType.GRADIENT dan konfigurasikan titik-titik gradien, arah, serta transparansi.