Formattare il testo della presentazione in Python
Panoramica
Questo articolo mostra come formattare il testo in presentazioni PowerPoint e OpenDocument utilizzando Aspose.Slides per Python tramite .NET. Copre i colori di sfondo, la trasparenza, la spaziatura dei caratteri, le proprietà dei font, la rotazione, la spaziatura dei paragrafi, il comportamento di adattamento automatico, l’ancoraggio del testo, le tabulazioni e le impostazioni della lingua.
Salvo diversa indicazione, gli esempi utilizzano sample.pptx. La prima forma nella sua prima diapositiva è una casella di testo, e il suo primo paragrafo contiene il testo mostrato di seguito. Sia gli indici delle diapositive che delle forme iniziano da zero. Gli esempi che selezionano parti in grassetto usano la formattazione effettiva, inclusa la formattazione in grassetto ereditata:

Per trovare e evidenziare testo letterale o corrispondenze di espressioni regolari, vedi Cerca e sostituisci testo.
Imposta colore di sfondo del testo
Usa ParagraphFormat.default_portion_format per impostare il colore di evidenziazione predefinito per un paragrafo, oppure usa BasePortionFormat.highlight_color per singole porzioni di testo.
Il seguente esempio imposta un’evidenziazione grigio chiaro come predefinita per il primo paragrafo. I colori di evidenziazione espliciti su singole porzioni hanno la precedenza su questo valore predefinito:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Imposta il colore di evidenziazione per l'intero paragrafo.
paragraph.paragraph_format.default_portion_format.highlight_color.color = draw.Color.light_gray
presentation.save("gray_paragraph.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

L’esempio di codice seguente dimostra come impostare il colore di sfondo per porzioni di testo con un font in grassetto:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Imposta il colore di evidenziazione per la porzione di testo.
portion.portion_format.highlight_color.color = draw.Color.light_gray
presentation.save("gray_text_portions.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Allinea paragrafi di testo
Usa ParagraphFormat.alignment per impostare l’allineamento del paragrafo all’interno di un riquadro di testo. Il valore può essere centrato, allineato a sinistra, allineato a destra, giustificato, ecc.
Il seguente esempio di codice mostra come allineare il paragrafo al centro:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Imposta l'allineamento del paragrafo al centro.
paragraph.paragraph_format.alignment = slides.TextAlignment.CENTER
presentation.save("aligned_paragraph.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Allinea i font all’interno di una riga
Usa ParagraphFormat.font_alignment per allineare verticalmente le porzioni di testo di diverse dimensioni di font all’interno di una riga. Questa impostazione si applica all’intero paragrafo e controlla l’allineamento all’interno di ciascuna delle sue righe.
Il seguente esempio autonomo crea quattro caselle di testo etichettate su una diapositiva. Ogni paragrafo contiene lo stesso testo a 18, 36 e 54 punti, con un diverso allineamento del font. Usa Arial, disabilita l’adattamento automatico e l’andare a capo, e mantiene i riquadri di testo sufficientemente grandi per una singola riga.
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
alignments = [slides.FontAlignment.BASELINE, slides.FontAlignment.TOP, slides.FontAlignment.CENTER, slides.FontAlignment.BOTTOM]
font_sizes = [18, 36, 54]
for i, alignment in enumerate(alignments):
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 30, 20 + i * 130, 660, 120)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.fill_type = slides.FillType.NO_FILL
text_frame = shape.text_frame
text_frame.text_frame_format.anchoring_type = slides.TextAnchorType.TOP
text_frame.text_frame_format.autofit_type = slides.TextAutofitType.NONE
text_frame.text_frame_format.wrap_text = slides.NullableBool.FALSE
label = text_frame.paragraphs[0]
label.text = alignment.name.title()
label.paragraph_format.alignment = slides.TextAlignment.LEFT
label.paragraph_format.default_portion_format.font_height = 14
label.paragraph_format.default_portion_format.latin_font = slides.FontData("Arial")
label.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
label.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.gray
paragraph = slides.Paragraph()
paragraph.paragraph_format.font_alignment = alignment
paragraph.paragraph_format.alignment = slides.TextAlignment.LEFT
paragraph.paragraph_format.default_portion_format.latin_font = slides.FontData("Arial")
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.black
for font_size in font_sizes:
portion = slides.Portion("Ag ")
portion.portion_format.font_height = font_size
paragraph.portions.add(portion)
text_frame.paragraphs.add(paragraph)
presentation.save("font_alignment.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

L’allineamento del font utilizza metriche del font, quindi i bordi visibili delle singole lettere non coincidono necessariamente esattamente. L’esempio include sia una lettera maiuscola che un discendente per mostrare la differenza tra l’allineamento baseline e bottom. La disponibilità e la sostituzione dei font, i caratteri usati e la differenza di dimensioni dei font influenzano il risultato. Le dimensioni del riquadro, i margini, l’interlinea, l’andare a capo e l’adattamento automatico influiscono anche sul layout; usa gli stessi font e impostazioni di layout quando confronti le modalità.
Questa impostazione differisce da ParagraphFormat.alignment, che controlla l’allineamento orizzontale del paragrafo, e da TextFrameFormat.anchoring_type, che posiziona verticalmente il blocco di testo all’interno della forma. La formattazione apice e pedice tramite BasePortionFormat.escapement sposta le singole porzioni rispetto alla baseline invece di impostare l’allineamento del font per le righe del paragrafo.
Imposta trasparenza per il testo
La trasparenza del testo è controllata tramite il componente alfa del colore assegnato a BasePortionFormat.fill_format. Negli esempi seguenti, alpha = 50 è un valore ARGB del canale alfa su scala 0–255, non una percentuale di trasparenza.
L’esempio di codice seguente mostra come applicare la trasparenza all'intero paragrafo:
import aspose.pydrawing as draw
import aspose.slides as slides
alpha = 50
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Imposta un riempimento nero semitrasparente per il testo.
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)
Il risultato:

Il seguente esempio di codice mostra come applicare la trasparenza a porzioni di testo con un font in grassetto:
import aspose.pydrawing as draw
import aspose.slides as slides
alpha = 50
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Imposta la trasparenza della porzione di testo.
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)
Il risultato:

Imposta spaziatura dei caratteri per il testo
Usa BasePortionFormat.spacing per espandere o comprimere la spaziatura tra i caratteri in una casella di testo. Gli esempi aggiungono 3 punti di spaziatura; valori negativi comprimono il testo.
Il seguente codice Python mostra come espandere la spaziatura dei caratteri nell'intero paragrafo:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Nota: Usa valori negativi per comprimere la spaziatura dei caratteri.
paragraph.paragraph_format.default_portion_format.spacing = 3 # Espandi la spaziatura dei caratteri.
presentation.save("character_spacing_in_paragraph.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

L’esempio di codice seguente mostra come espandere la spaziatura dei caratteri in porzioni di testo con un font in grassetto:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Nota: Usa valori negativi per comprimere la spaziatura dei caratteri.
portion.portion_format.spacing = 3 # Espandi la spaziatura dei caratteri.
presentation.save("character_spacing_in_text_portions.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Disattiva il kerning per font specifici
In alcuni casi, il testo renderizzato da Aspose.Slides può apparire leggermente più stretto rispetto allo stesso testo visualizzato in PowerPoint. Ciò può accadere perché PowerPoint può ignorare i dati di kerning per alcuni font, anche quando il font contiene informazioni di kerning valide e il kerning è abilitato nelle impostazioni di PowerPoint.
Per rendere l’output renderizzato più vicino a PowerPoint in tali casi, è possibile disattivare il kerning per le porzioni di testo che utilizzano il font interessato. Imposta BasePortionFormat.kerning_minimal_size a un valore superiore alla dimensione reale del font. Questo esempio richiede “presentation.pptx” con una casella di testo come prima forma nella prima diapositiva. Verifica i nomi dei font effettivi, inclusi i font ereditati, e imposta una soglia di 100 punti per le porzioni che usano Roboto. Questo disattiva il kerning per le porzioni corrispondenti con una dimensione del font inferiore a 100 punti:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
target_font = "Roboto"
for paragraph in auto_shape.text_frame.paragraphs:
for portion in paragraph.portions:
text_format = portion.portion_format.get_effective()
fonts = (text_format.latin_font, text_format.east_asian_font, text_format.complex_script_font)
uses_target_font = any(font is not None and font.font_name == target_font for font in fonts)
if uses_target_font:
portion.portion_format.kerning_minimal_size = 100
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Per il testo corrispondente al di sotto della soglia, questa impostazione impedisce il kerning e può aiutare ad allineare il rendering di Aspose.Slides all’output visivo di PowerPoint per i font influenzati da questo comportamento specifico di PowerPoint.
Gestisci proprietà dei font del testo
Le proprietà dei font possono essere impostate a livello di paragrafo tramite ParagraphFormat.default_portion_format o su singole porzioni tramite PortionFormat.
Il seguente esempio imposta il font predefinito del primo paragrafo a Times New Roman 12 punti con formattazione in grassetto, corsivo e sottolineatura tratteggiata. La formattazione esplicita su singole porzioni ha precedenza su questi valori predefiniti.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
# Imposta le proprietà del font per il paragrafo.
portion_format = paragraph.paragraph_format.default_portion_format
portion_format.font_height = 12
portion_format.font_bold = slides.NullableBool.TRUE
portion_format.font_italic = slides.NullableBool.TRUE
portion_format.font_underline = slides.TextUnderlineType.DOTTED
portion_format.latin_font = slides.FontData("Times New Roman")
presentation.save("font_properties_for_paragraph.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Il seguente esempio applica Times New Roman 13 punti, formattazione in corsivo e una sottolineatura tratteggiata alle porzioni la cui formattazione effettiva è in grassetto:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
for portion in paragraph.portions:
if portion.portion_format.get_effective().font_bold:
# Imposta le proprietà del font per la porzione di testo.
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)
Il risultato:

Imposta rotazione del testo
Usa TextFrameFormat.text_vertical_type per impostare un orientamento del testo predefinito all’interno di una forma.
Il seguente esempio di codice imposta l’orientamento del testo nella forma a TextVerticalType.VERTICAL270, che ruota il testo di 90 gradi in senso antiorario:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
auto_shape.text_frame.text_frame_format.text_vertical_type = slides.TextVerticalType.VERTICAL270
presentation.save("text_rotation.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Imposta rotazione personalizzata per i riquadri di testo
Usa TextFrameFormat.rotation_angle per impostare un angolo di rotazione personalizzato per un TextFrame.
L’esempio di codice seguente ruota il riquadro di testo di 3 gradi in senso orario all’interno della forma:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
auto_shape.text_frame.text_frame_format.rotation_angle = 3
presentation.save("custom_text_rotation.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Imposta interlinea dei paragrafi
Aspose.Slides fornisce ParagraphFormat.space_after, ParagraphFormat.space_before, e ParagraphFormat.space_within per controllare la spaziatura dei paragrafi. Queste proprietà sono usate come segue:
- Usa un valore positivo per specificare l’interlinea come percentuale dell’altezza della linea.
- Usa un valore negativo per specificare l’interlinea in punti.
Il seguente esempio imposta la spaziatura all’interno del primo paragrafo al 200% dell’altezza della linea (interlinea doppia):
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
paragraph = auto_shape.text_frame.paragraphs[0]
paragraph.paragraph_format.space_within = 200
presentation.save("line_spacing.pptx", slides.export.SaveFormat.PPTX)
Il risultato:

Controlla interruzione di riga
Le regole di interruzione di riga dei paragrafi sono utili in blocchi di testo stretti e presentazioni che mescolano testo latino e asiatico orientale. Le seguenti proprietà appartengono a ParagraphFormat, pertanto si applicano a un intero paragrafo:
- latin_line_break controlla le regole di interruzione di riga per il testo latino. In testo misto, modificarla può anche cambiare dove il testo e la punteggiatura asiatica orientale adiacenti vanno a capo.
- east_asian_line_break controlla le regole di interruzione di riga per il testo asiatico orientale, inclusi i vincoli sui caratteri all’inizio e alla fine di una riga.
Queste regole non sostituiscono TextFrameFormat.wrap_text, che consente l’andare a capo automatico all’interno di un riquadro di testo. Influenzano il layout quando avviene il wrapping; non inseriscono caratteri di interruzione di riga. Un’interruzione di riga esplicita forza una nuova linea all’interno del paragrafo indipendentemente dalla larghezza disponibile.
Il seguente esempio autonomo crea un blocco di testo stretto contenente testo cinese e latino. Imposta entrambe le proprietà di interruzione di riga esplicitamente e salva “line_breaking.pptx”. Per sperimentare una delle regole, cambia il valore di quella proprietà mantenendo l’altra impostazione invariata. L’esempio usa Arial 24 punti e SimSun con una larghezza del riquadro di 160 punti e margini orizzontali del riquadro di testo pari a zero. TextFrameFormat.autofit_type è impostato a TextAutofitType.NONE così che la dimensione del testo e le dimensioni del riquadro rimangano fisse.
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 160, 300)
shape.fill_format.fill_type = slides.FillType.NO_FILL
text_frame = shape.text_frame
text_frame.text_frame_format.wrap_text = slides.NullableBool.TRUE
text_frame.text_frame_format.autofit_type = slides.TextAutofitType.NONE
text_frame.text_frame_format.margin_left = 0
text_frame.text_frame_format.margin_right = 0
paragraph = text_frame.paragraphs[0]
paragraph.text = "中文排版测试,PowerPoint 中文演示。"
paragraph_format = paragraph.paragraph_format
paragraph_format.alignment = slides.TextAlignment.LEFT
paragraph_format.default_portion_format.font_height = 24
paragraph_format.default_portion_format.latin_font = slides.FontData("Arial")
paragraph_format.default_portion_format.east_asian_font = slides.FontData("SimSun")
paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
paragraph_format.latin_line_break = slides.NullableBool.FALSE
paragraph_format.east_asian_line_break = slides.NullableBool.TRUE
presentation.save("line_breaking.pptx", slides.export.SaveFormat.PPTX)
Controlla punteggiatura sospesa
ParagraphFormat.hanging_punctuation consente alla punteggiatura idonea di estendersi oltre il bordo destro della linea di testo invece di occupare la riga successiva. Si applica all’intero paragrafo ed è diversa da una rientranza sospesa.
Il seguente esempio autonomo abilita la punteggiatura sospesa in un riquadro di testo largo 100 punti e salva “hanging_punctuation.pptx”. Con Arial 24 punti e margini orizzontali del riquadro di testo pari a zero, il punto finale rimane dopo “sentence” e si estende al di là del bordo destro del testo. Imposta la proprietà a NullableBool.FALSE per confrontare: con queste impostazioni, il punto occupa una riga separata. Il wrapping è abilitato e l’adattamento automatico è disabilitato per mantenere fissa la larghezza disponibile.
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 100, 200)
shape.fill_format.fill_type = slides.FillType.NO_FILL
text_frame = shape.text_frame
text_frame.text_frame_format.wrap_text = slides.NullableBool.TRUE
text_frame.text_frame_format.autofit_type = slides.TextAutofitType.NONE
text_frame.text_frame_format.margin_left = 0
text_frame.text_frame_format.margin_right = 0
paragraph = text_frame.paragraphs[0]
paragraph.text = "Simple text, next sentence."
paragraph_format = paragraph.paragraph_format
paragraph_format.alignment = slides.TextAlignment.LEFT
paragraph_format.default_portion_format.font_height = 24
paragraph_format.default_portion_format.latin_font = slides.FontData("Arial")
paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
paragraph_format.hanging_punctuation = slides.NullableBool.TRUE
presentation.save("hanging_punctuation.pptx", slides.export.SaveFormat.PPTX)
Non tutti i segni di punteggiatura possono sospendersi. Il risultato visibile dipende da font e condizioni di layout: cambiare il font, la larghezza disponibile, i margini o le impostazioni di adattamento automatico può rimuovere la differenza visibile.
Imposta tipo di adattamento automatico per i riquadri di testo
TextFrameFormat.autofit_type determina come il testo si comporta quando supera i confini del suo contenitore. Usalo per controllare se il testo si riduce, trabocca o ridimensiona automaticamente la forma. Il seguente esempio configura la forma per ridimensionarsi in modo da adattarsi al suo testo e salva il risultato in “autofit_type.pptx”.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
auto_shape.text_frame.text_frame_format.autofit_type = slides.TextAutofitType.SHAPE
presentation.save("autofit_type.pptx", slides.export.SaveFormat.PPTX)
Per contare le linee dopo il wrapping automatico e vedere come la larghezza del testo o della forma modifica il risultato, vedi Conta le linee renderizzate. Il conteggio delle linee da solo non indica se il testo supera il contenitore.
Imposta ancoraggio dei riquadri di testo
TextFrameFormat.anchoring_type definisce come il testo è posizionato verticalmente all’interno di una forma, ad esempio in alto, al centro o in basso. Il seguente esempio ancora il testo al bordo inferiore della prima forma e salva il risultato in “text_anchor.pptx”.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.shapes[0]
auto_shape.text_frame.text_frame_format.anchoring_type = slides.TextAnchorType.BOTTOM
presentation.save("text_anchor.pptx", slides.export.SaveFormat.PPTX)
Imposta tabulazione del testo
Usa ParagraphFormat.default_tab_size e ParagraphFormat.tabs per configurare le tabulazioni in un paragrafo. Il seguente esempio imposta l’intervallo di tabulazione predefinito a 100 punti e aggiunge una tabulazione allineata a sinistra a 30 punti. Queste impostazioni influiscono sul testo contenente caratteri di tabulazione.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.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)
Il risultato:

Imposta lingua di correzione
Aspose.Slides fornisce BasePortionFormat.language_id, che consente di impostare la lingua di correzione per una porzione di testo. La lingua di correzione determina la lingua utilizzata per i controlli ortografici e grammaticali in PowerPoint.
Il seguente esempio richiede “presentation.pptx” con una casella di testo come prima forma nella prima diapositiva e almeno un paragrafo. Sostituisce il contenuto del primo paragrafo con “1。”, imposta SimSun come font e assegna la lingua di correzione cinese semplificata (zh-CN). Salva il risultato in “proofing_language.pptx”:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.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
# Imposta la lingua di correzione a cinese semplificato.
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)
Imposta lingua predefinita
Usa LoadOptions.default_text_language per definire la lingua predefinita per il testo creato durante il caricamento o la creazione di una presentazione. Il seguente esempio crea una presentazione con l’inglese statunitense come lingua di testo predefinita, aggiunge una casella di testo e stampa en-US per la sua prima porzione di testo.
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]
# Aggiungi una nuova forma rettangolare con testo.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 50)
shape.text_frame.text = "Sample text"
# Verifica la lingua della prima porzione.
portion = shape.text_frame.paragraphs[0].portions[0]
print(portion.portion_format.language_id)
Imposta stile di testo predefinito
Per applicare la formattazione di testo predefinita a livello di presentazione, usa Presentation.default_text_style.
Il seguente esempio imposta un font in grassetto da 14 punti come predefinito per i paragrafi di livello superiore in una nuova presentazione e la salva in “default_text_style.pptx”. Il testo può ereditare questi valori predefiniti a meno che una formattazione più specifica non li sovrascriva.
import aspose.slides as slides
with slides.Presentation() as presentation:
# Ottieni il formato del paragrafo di livello superiore.
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)
Estrai testo con effetto tutto maiuscolo
In PowerPoint, applicare l’effetto font All Caps fa apparire il testo in maiuscolo sulla diapositiva anche se è stato originariamente digitato in minuscolo. Quando si recupera una tale porzione di testo con Aspose.Slides, la libreria restituisce il testo esattamente come è stato inserito. Per corrispondere al testo visualizzato, verifica TextCapType e converte la stringa restituita in maiuscolo quando il valore è ALL.
Questo esempio richiede “sample2.pptx” con una casella di testo come prima forma nella prima diapositiva. La prima porzione del primo paragrafo contiene “Hello, Aspose!” con l’effetto All Caps applicato, come mostrato di seguito.

L’esempio di codice seguente mostra come estrarre il testo con l’effetto All Caps applicato:
import aspose.slides as slides
with slides.Presentation("sample2.pptx") as presentation:
slide = presentation.slides[0]
auto_shape = slide.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
Come modifico il testo in una tabella su una diapositiva?
Per modificare il testo in una tabella su una diapositiva, usa Table. Itera attraverso le celle e aggiorna ciascuna cella tramite Cell.text_frame e la formattazione del paragrafo tramite Paragraph.paragraph_format.
Come applico un colore sfumato al testo su una diapositiva PowerPoint?
Per applicare un colore sfumato al testo, usa BasePortionFormat.fill_format. Imposta FillFormat.fill_type a FillType.GRADIENT e configura le fermate del gradiente, la direzione e la trasparenza.