Hantera PowerPoint-textstycken i Python
Översikt
Aspose.Slides för Python via .NET representerar text som en hierarki av textramar, stycken och portioner:
- TextFrame representerar textbehållaren i en form och ger åtkomst till dess styckesamling.
- Paragraph representerar ett stycke i en textram och ger åtkomst till dess portioner och styckesnivåformatering.
- Portion representerar ett textavsnitt inom ett stycke. Varje portion kan ha egen text och teckennivåformatering.
Ett stycke kan därför innehålla text med olika teckensnitt, färger, storlekar och annan formatering genom att använda flera portioner.
Skapa och formatera stycken
Skapa stycken med flera portioner
Följande steg skapar en textram med tre stycken, var och en innehållande tre portioner:
- Skapa en instans av klassen Presentation.
- Kom åt den relevanta bilden via dess index.
- Lägg till en rektangulär AutoShape på bilden.
- Kom åt formens TextFrame.
- Använd standardstycket och lägg till två ytterligare Paragraph-objekt i textramen.
- Lägg till tillräckligt med Portion-objekt så att varje stycke innehåller tre portioner. Standardstycket innehåller redan en tom portion.
- Ange texten för varje portion.
- Applicera teckennivåformatering via Portion.portion_format.
- Spara den modifierade presentationen.
Detta Python‑exempel implementerar stegen:
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, 150, 300, 150)
text_frame = shape.text_frame
first_paragraph = text_frame.paragraphs[0]
first_paragraph.portions.add(slides.Portion())
first_paragraph.portions.add(slides.Portion())
second_paragraph = slides.Paragraph()
second_paragraph.portions.add(slides.Portion())
second_paragraph.portions.add(slides.Portion())
second_paragraph.portions.add(slides.Portion())
text_frame.paragraphs.add(second_paragraph)
third_paragraph = slides.Paragraph()
third_paragraph.portions.add(slides.Portion())
third_paragraph.portions.add(slides.Portion())
third_paragraph.portions.add(slides.Portion())
text_frame.paragraphs.add(third_paragraph)
for paragraph_index in range(text_frame.paragraphs.count):
paragraph = text_frame.paragraphs[paragraph_index]
for portion_index in range(paragraph.portions.count):
portion = paragraph.portions[portion_index]
portion.text = f"Portion {paragraph_index + 1}.{portion_index + 1}"
if portion_index == 0:
portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
portion.portion_format.fill_format.solid_fill_color.color = draw.Color.red
portion.portion_format.font_bold = slides.NullableBool.TRUE
portion.portion_format.font_height = 15
elif portion_index == 1:
portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
portion.portion_format.fill_format.solid_fill_color.color = draw.Color.blue
portion.portion_format.font_italic = slides.NullableBool.TRUE
portion.portion_format.font_height = 18
presentation.save("paragraphs_with_portions.pptx", slides.export.SaveFormat.PPTX)
Skapa punktlistor och numrerade listor
Skapa en punkt- eller numrerad lista
Punkttecken och numrering gör relaterade objekt enklare att skanna. I Aspose.Slides definieras listinställningar via BulletFormat.
- Skapa en instans av klassen Presentation.
- Kom åt den relevanta bilden via dess index.
- Lägg till en AutoShape på den valda bilden.
- Kom åt formens TextFrame.
- Ta bort standardstycket från textramen.
- Skapa ett Paragraph för en symbolpunkt.
- Ange BulletFormat.type till BulletType.SYMBOL och ange punkttecknet.
- Ange styckets text, indrag, färg på punkttecknet och punktens höjd.
- Lägg till stycket i textramen.
- Skapa ett andra stycke och ange BulletFormat.type till BulletType.NUMBERED.
- Konfigurera den numrerade punktstilen och lägg till stycket i textramen.
- Spara presentationen.
Detta Python‑exempel skapar en symbolpunkt och en numrerad punkt:
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, 200, 200, 400, 200)
text_frame = shape.text_frame
text_frame.paragraphs.clear()
symbol_paragraph = slides.Paragraph()
symbol_paragraph.text = "Welcome to Aspose.Slides"
symbol_paragraph.paragraph_format.bullet.type = slides.BulletType.SYMBOL
symbol_paragraph.paragraph_format.bullet.char = chr(0x2022)
symbol_paragraph.paragraph_format.indent = 25
symbol_paragraph.paragraph_format.bullet.color.color_type = slides.ColorType.RGB
symbol_paragraph.paragraph_format.bullet.color.color = draw.Color.black
symbol_paragraph.paragraph_format.bullet.is_bullet_hard_color = slides.NullableBool.TRUE
symbol_paragraph.paragraph_format.bullet.height = 100
text_frame.paragraphs.add(symbol_paragraph)
numbered_paragraph = slides.Paragraph()
numbered_paragraph.text = "This is a numbered item"
numbered_paragraph.paragraph_format.bullet.type = slides.BulletType.NUMBERED
numbered_paragraph.paragraph_format.bullet.numbered_bullet_style = slides.NumberedBulletStyle.BULLET_CIRCLE_NUM_WD_BLACK_PLAIN
numbered_paragraph.paragraph_format.indent = 25
numbered_paragraph.paragraph_format.bullet.color.color_type = slides.ColorType.RGB
numbered_paragraph.paragraph_format.bullet.color.color = draw.Color.black
numbered_paragraph.paragraph_format.bullet.is_bullet_hard_color = slides.NullableBool.TRUE
numbered_paragraph.paragraph_format.bullet.height = 100
text_frame.paragraphs.add(numbered_paragraph)
presentation.save("bulleted_and_numbered_list.pptx", slides.export.SaveFormat.PPTX)
Använd bildpunkter
Bildpunkter låter dig använda en anpassad bild istället för en symbol eller ett nummer.
- Skapa en instans av klassen Presentation.
- Kom åt den relevanta bilden via dess index.
- Lägg till en AutoShape och kom åt dess TextFrame.
- Ta bort standardstycket från textramen.
- Läs in punktbilden och lägg till den i presentationens bildsamling som en PPImage.
- Skapa ett Paragraph och ange dess text.
- Ange BulletFormat.type till BulletType.PICTURE.
- Tilldela bilden via BulletFormat.picture och ange punktens höjd.
- Lägg till stycket i textramen.
- Spara den modifierade presentationen.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with slides.Images.from_file("bullets.png") as bullet_image:
presentation_image = presentation.images.add_image(bullet_image)
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 400, 200)
text_frame = shape.text_frame
text_frame.paragraphs.clear()
paragraph = slides.Paragraph()
paragraph.text = "Welcome to Aspose.Slides"
paragraph.paragraph_format.bullet.type = slides.BulletType.PICTURE
paragraph.paragraph_format.bullet.picture.image = presentation_image
paragraph.paragraph_format.bullet.height = 100
text_frame.paragraphs.add(paragraph)
presentation.save("picture_bullet.pptx", slides.export.SaveFormat.PPTX)
presentation.save("picture_bullet.ppt", slides.export.SaveFormat.PPT)
Skapa en flernivålista
Ange ParagraphFormat.depth för att placera stycken på olika nivåer i en lista. Toppnivån har djupet 0.
- Skapa en Presentation och kom åt en bild.
- Lägg till en AutoShape och rensa standardstycket från dess textram.
- Skapa fyra stycken och konfigurera deras punkt‑symboler.
- Ange deras ParagraphFormat.depth-värden till
0,1,2och3. - Lägg till styckena i textramen och spara presentationen.
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, 200, 200, 400, 200)
text_frame = shape.text_frame
text_frame.paragraphs.clear()
first_paragraph = slides.Paragraph()
first_paragraph.text = "Content"
first_paragraph.paragraph_format.bullet.type = slides.BulletType.SYMBOL
first_paragraph.paragraph_format.bullet.char = chr(0x2022)
first_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
first_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
first_paragraph.paragraph_format.depth = 0
second_paragraph = slides.Paragraph()
second_paragraph.text = "Second level"
second_paragraph.paragraph_format.bullet.type = slides.BulletType.SYMBOL
second_paragraph.paragraph_format.bullet.char = "-"
second_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
second_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
second_paragraph.paragraph_format.depth = 1
third_paragraph = slides.Paragraph()
third_paragraph.text = "Third level"
third_paragraph.paragraph_format.bullet.type = slides.BulletType.SYMBOL
third_paragraph.paragraph_format.bullet.char = chr(0x2022)
third_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
third_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
third_paragraph.paragraph_format.depth = 2
fourth_paragraph = slides.Paragraph()
fourth_paragraph.text = "Fourth level"
fourth_paragraph.paragraph_format.bullet.type = slides.BulletType.SYMBOL
fourth_paragraph.paragraph_format.bullet.char = "-"
fourth_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
fourth_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
fourth_paragraph.paragraph_format.depth = 3
text_frame.paragraphs.add(first_paragraph)
text_frame.paragraphs.add(second_paragraph)
text_frame.paragraphs.add(third_paragraph)
text_frame.paragraphs.add(fourth_paragraph)
presentation.save("multilevel_list.pptx", slides.export.SaveFormat.PPTX)
Starta numrerade listobjekt vid anpassade värden
Använd BulletFormat.numbered_bullet_start_with för att ange det inledande numret som visas för ett numrerat stycke.
- Skapa en Presentation och lägg till en AutoShape på en bild.
- Rensa standardstycket från formens textram.
- Skapa tre numrerade stycken.
- Ange BulletFormat.numbered_bullet_start_with till
2,3och7för respektive stycke. - Lägg till styckena i textramen och spara presentationen.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 400, 200)
text_frame = shape.text_frame
text_frame.paragraphs.clear()
first_paragraph = slides.Paragraph()
first_paragraph.text = "Start at 2"
first_paragraph.paragraph_format.bullet.type = slides.BulletType.NUMBERED
first_paragraph.paragraph_format.bullet.numbered_bullet_start_with = 2
text_frame.paragraphs.add(first_paragraph)
second_paragraph = slides.Paragraph()
second_paragraph.text = "Start at 3"
second_paragraph.paragraph_format.bullet.type = slides.BulletType.NUMBERED
second_paragraph.paragraph_format.bullet.numbered_bullet_start_with = 3
text_frame.paragraphs.add(second_paragraph)
third_paragraph = slides.Paragraph()
third_paragraph.text = "Start at 7"
third_paragraph.paragraph_format.bullet.type = slides.BulletType.NUMBERED
third_paragraph.paragraph_format.bullet.numbered_bullet_start_with = 7
text_frame.paragraphs.add(third_paragraph)
presentation.save("custom_numbered_list.pptx", slides.export.SaveFormat.PPTX)
Styr styckeutformning och slutegenskaper
Ställ in indrag för första raden
Använd egenskapen ParagraphFormat.indent för att kontrollera indraget för den första raden i ett stycke. Denna egenskap flyttar endast den första raden i förhållande till styckets vänstermarginal. Ett positivt värde skjuter den första raden åt höger, medan de återstående raderna förblir justerade med styckets kropp. Använd ParagraphFormat.margin_left när du behöver flytta hela stycket. Använd ParagraphFormat.indent när du bara behöver flytta den första raden. Exemplet nedan skapar flera stycken och tillämpar olika ParagraphFormat.indent‑värden för att demonstrera hur indrag för första raden påverkar styckeutformningen.
- Skapa en instans av klassen Presentation.
- Kom åt målbilden.
- Lägg till en rektangulär AutoShape på bilden.
- Kom åt formens TextFrame och ta bort standardstycket.
- Skapa flera stycken och ange olika ParagraphFormat.indent‑värden för dem.
- Lägg till styckena i textramen.
- Spara den modifierade presentationen.
Den här koden visar hur du anger ett styckeindrag:
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, 420, 220)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.fill_type = slides.FillType.SOLID
shape.line_format.fill_format.solid_fill_color.color = draw.Color.gray
text_frame = shape.text_frame
text_frame.text_frame_format.autofit_type = slides.TextAutofitType.SHAPE
text_frame.paragraphs.clear()
first_paragraph = slides.Paragraph()
first_paragraph.text = "No first-line indent. Wrapped lines start at the same position as the first line."
first_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
first_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
first_paragraph.paragraph_format.margin_left = 20
first_paragraph.paragraph_format.indent = 0
second_paragraph = slides.Paragraph()
second_paragraph.text = "First-line indent of 20 points. The first line moves to the right, while wrapped lines remain aligned to the paragraph body."
second_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
second_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
second_paragraph.paragraph_format.margin_left = 20
second_paragraph.paragraph_format.indent = 20
third_paragraph = slides.Paragraph()
third_paragraph.text = "First-line indent of 40 points. This paragraph shows a larger first-line offset to make the effect easier to see."
third_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
third_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
third_paragraph.paragraph_format.margin_left = 20
third_paragraph.paragraph_format.indent = 40
text_frame.paragraphs.add(first_paragraph)
text_frame.paragraphs.add(second_paragraph)
text_frame.paragraphs.add(third_paragraph)
presentation.save("paragraph_indent.pptx", slides.export.SaveFormat.PPTX)
Resultatet:

Ställ in hängande indrag
Ett hängande indrag är en styckeutformning där den första raden börjar till vänster om de återstående raderna. I Aspose.Slides skapar du denna effekt med egenskapen ParagraphFormat.indent. Ange indent till ett negativt värde för att flytta den första raden åt vänster i förhållande till styckets kropp. I praktiken definierar ParagraphFormat.margin_left den vänstra positionen för styckets kropp, och ParagraphFormat.indent definierar positionen för den första raden i förhållande till den marginalen. För att skapa ett hängande indrag, ange ett positivt margin_left‑värde och ett negativt indent‑värde. Denna formatering är användbar för bibliografier, referenser, förklaringsordboksinlägg och andra stycken där radbrytna rader måste justeras under styckets kropp snarare än under den första tecknet i första raden.
- Skapa en instans av klassen Presentation.
- Kom åt målbilden.
- Lägg till en rektangulär AutoShape på bilden.
- Kom åt formens TextFrame och ta bort standardstycket.
- Skapa stycken och ange ett positivt ParagraphFormat.margin_left‑värde för varje stycke.
- Ange ett negativt ParagraphFormat.indent‑värde för att skapa hängande indrag.
- Lägg till styckena i textramen.
- Spara den modifierade presentationen.
Den här koden visar hur du anger ett hängande indrag för ett stycke:
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, 420, 220)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.fill_type = slides.FillType.SOLID
shape.line_format.fill_format.solid_fill_color.color = draw.Color.gray
text_frame = shape.text_frame
text_frame.text_frame_format.autofit_type = slides.TextAutofitType.SHAPE
text_frame.paragraphs.clear()
first_paragraph = slides.Paragraph()
first_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."
first_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
first_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
first_paragraph.paragraph_format.margin_left = 40
first_paragraph.paragraph_format.indent = -20
second_paragraph = slides.Paragraph()
second_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."
second_paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
second_paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.black
second_paragraph.paragraph_format.margin_left = 60
second_paragraph.paragraph_format.indent = -30
text_frame.paragraphs.add(first_paragraph)
text_frame.paragraphs.add(second_paragraph)
presentation.save("hanging_indent.pptx", slides.export.SaveFormat.PPTX)
Resultatet:

Ställ in slutegenskaper för styckeavsnitt
Egenskapen Paragraph.end_paragraph_portion_format styr formateringen av styckeavslutstecknet. Följande exempel tilldelar en teckenstorlek och ett latinskt typsnitt till avslutstecknet för det andra stycket:
- Läs in en Presentation och kom åt en bild.
- Lägg till en AutoShape och rensa dess standardstycke.
- Skapa två stycken och lägg till textportioner i dem.
- Skapa ett PortionFormat för det andra styckets avslutstecken.
- Ange PortionFormat.font_height och PortionFormat.latin_font.
- Tilldela formatet till Paragraph.end_paragraph_portion_format och spara presentationen.
import aspose.slides as slides
with slides.Presentation("Test.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 10, 200, 250)
text_frame = shape.text_frame
text_frame.paragraphs.clear()
first_paragraph = slides.Paragraph()
first_paragraph.portions.add(slides.Portion("Sample text"))
second_paragraph = slides.Paragraph()
second_paragraph.portions.add(slides.Portion("Sample text 2"))
end_paragraph_format = slides.PortionFormat()
end_paragraph_format.font_height = 48
end_paragraph_format.latin_font = slides.FontData("Times New Roman")
second_paragraph.end_paragraph_portion_format = end_paragraph_format
text_frame.paragraphs.add(first_paragraph)
text_frame.paragraphs.add(second_paragraph)
presentation.save("end_paragraph_format.pptx", slides.export.SaveFormat.PPTX)
Räkna renderade rader
För stycke‑regler som påverkar automatisk radbrytning och interpunktion i radslut, se Styr radbrytning och Styr hängande interpunktion. Använd Paragraph.get_lines_count för att räkna antalet rader som upptas av ett stycke efter textlayout, inklusive automatisk radbrytning. Detta är användbart vid kontroll av textlängd och layout i presentationsmallar. Ett stycke är ett objekt i TextFrame.paragraphs, och det kan uppta flera renderade rader. Ett explicit radbrytning inom ett stycke tvingar en ny rad utan att skapa ett nytt stycke. Automatisk radbrytning skapar rader baserat på den tillgängliga bredden utan att infoga explicita radbrytningstecken i texten. Att räkna stycken eller radbrytningstecken ger därför inte det renderade radantalet. Följande exempel skapar en textform, räknar dess rader, smalnar av formen och ersätter sedan texten med en kortare sträng. Radbrytning är aktiverad och autofit avaktiverad så att formens bredd styr radbrytning utan att automatiskt krympa texten eller ändra formens storlek. Formens dimensioner är i punkter. Slutligen lägger exemplet till ett ytterligare stycke och summerar radantalet över textramen.
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, 400, 200)
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
paragraph = text_frame.paragraphs[0]
paragraph.paragraph_format.default_portion_format.font_height = 20
paragraph.text = "This text demonstrates how automatic wrapping changes the number of rendered lines."
print(f"Original width: {paragraph.get_lines_count()}")
shape.width = 150
print(f"Narrower shape: {paragraph.get_lines_count()}")
paragraph.text = "Short text."
print(f"Shorter text: {paragraph.get_lines_count()}")
second_paragraph = slides.Paragraph()
second_paragraph.text = "Another paragraph."
second_paragraph.paragraph_format.default_portion_format.font_height = 20
text_frame.paragraphs.add(second_paragraph)
total_line_count = 0
for current_paragraph in text_frame.paragraphs:
total_line_count += current_paragraph.get_lines_count()
print(f"Total lines in the text frame: {total_line_count}")
Med denna text och dessa dimensioner ökar radantalet när formen smalnas, medan ersättning av texten med den korta strängen minskar det. Exakta siffror kan variera beroende på teckensnittstillgänglighet och -ersättning, teckensnittsstorlek, marginaler, indrag, radbrytning och autofit‑inställningar. Använd de teckensnitt och layoutinställningar som är avsedda för målmiljön när du kontrollerar en mall. Radantalet ensamt avgör inte om texten överskrider sin behållare. Tillgänglig höjd, radhöjder, stycke‑ och radavstånd samt autofit‑beteende spelar också roll; även en enda rad kan överstiga den tillgängliga bredden när radbrytning är inaktiverad.
Importera och exportera styckeinnehåll
Importera HTML‑text till stycken
Använd ParagraphCollection.add_from_html för att konvertera HTML‑markup till stycken och portioner i en textram.
- Skapa en instans av klassen Presentation.
- Kom åt en bild och lägg till en AutoShape.
- Kom åt formens TextFrame och rensa dess standardstycke.
- Läs in käll‑HTML‑filen.
- Skicka HTML‑strängen till ParagraphCollection.add_from_html.
- Spara den modifierade presentationen.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape_width = presentation.slide_size.size.width - 20
shape_height = presentation.slide_size.size.height - 20
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 10, shape_width, shape_height)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.text_frame.paragraphs.clear()
with open("file.html", "r", encoding="utf-8") as html_stream:
html = html_stream.read()
shape.text_frame.paragraphs.add_from_html(html)
presentation.save("html_text.pptx", slides.export.SaveFormat.PPTX)
Exportera stycketext till HTML
Använd ParagraphCollection.export_to_html för att exportera ett valt intervall av stycken som HTML.
- Skapa en instans av klassen Presentation och läs in önskad presentation.
- Kom åt bilden och hitta den AutoShape som innehåller texten.
- Kom åt formens TextFrame.
- Anropa ParagraphCollection.export_to_html med start‑stycke‑indexet och antalet stycken som ska exporteras.
- Skriv den returnerade HTML‑strängen till en fil.
import aspose.slides as slides
with slides.Presentation("ExportingHTMLText.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
if isinstance(shape, slides.AutoShape) and shape.text_frame is not None:
paragraphs = shape.text_frame.paragraphs
html = paragraphs.export_to_html(0, paragraphs.count, None)
with open("paragraphs.html", "w", encoding="utf-8") as html_stream:
html_stream.write(html)
else:
print("The first shape is not a text shape.")
Rendera ett stycke som en bild
Paragraph tillhandahåller metoden get_image för att rendera ett enskilt stycke direkt. Metoden returnerar en IImage som du kan spara till en fil eller ström med IImage.save. Du behöver inte rendera den omgivande formen eller beskära en bitmap manuellt. get_image‑metoden kan returnera None om stycket inte kan hittas i sin föräldrakollektion, saknar giltiga renderingsgränser, eller inte kan renderas. Kontrollera resultatet innan du sparar det och använd den returnerade bilden som en context manager för att frigöra dess resurser.
Rendera ett stycke i standardskala
Låt oss anta att vi har en presentationsfil kallad sample.pptx med en bild, där den första formen är en textruta som innehåller tre stycken.

Följande exempel renderar det andra stycket i en vanlig textruta i standardskala och sparar den returnerade bilden i PNG‑format:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
shape = presentation.slides[0].shapes[0]
if isinstance(shape, slides.AutoShape) and shape.text_frame is not None and shape.text_frame.paragraphs.count > 1:
paragraph = shape.text_frame.paragraphs[1]
paragraph_image = paragraph.get_image()
if paragraph_image is not None:
with paragraph_image:
paragraph_image.save("paragraph.png", slides.ImageFormat.PNG)
else:
print("The paragraph could not be rendered.")
else:
print("The expected text shape or paragraph was not found.")
Resultatet:

Rendera ett stycke i en tabellcell med skalning
Lämna horisontella och vertikala skalningsfaktorer till get_image för att kontrollera storleken på det renderade stycket. Följande exempel skapar en tabell, renderar stycket i dess första cell med dubbelt så stor bredd och höjd som standard, och sparar resultatet som en PNG‑bild:
import aspose.slides as slides
scale_x = 2
scale_y = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(50, 50, [300], [80])
paragraph = table.rows[0][0].text_frame.paragraphs[0]
paragraph.text = "Text in a table cell"
paragraph_image = paragraph.get_image(scale_x, scale_y)
if paragraph_image is not None:
with paragraph_image:
paragraph_image.save("table_paragraph.png", slides.ImageFormat.PNG)
else:
print("The paragraph could not be rendered.")
En skalningsfaktor på 1 behåller den axeln vid sin standardpixelstorlek. Till exempel ger 2 för båda faktorerna en bild vars bredd och höjd är ungefär dubbelt så stora som standardmåtten, vilket resulterar i fyra gånger så många pixlar. Större faktorer ger vanligtvis skarpare text för zoom eller högupplöst utskrift, men de ökar också minnesbruk och filstorlek. Faktorer under 1 ger mindre bilder med mindre detalj. Använd lika faktorer för att bevara styckets bildförhållande; olika horisontella och vertikala faktorer sträcker utdata oberoende. Att rendera en hel form med Shape.get_image är fortfarande användbart när utskriften måste inkludera formens fyllning, kant eller annan visuell kontext. För en bild som endast visar ett stycke, använd Paragraph.get_image.
FAQ
Kan jag helt inaktivera radbrytning i en textram?
Ja. Ange TextFrameFormat.wrap_text för att inaktivera radbrytning så att rader inte bryts vid textrammens kanter.
Hur kan jag få de exakta gränserna på bilden för ett specifikt stycke?
Använd Paragraph.get_rect för att hämta styckets omgivande rektangel. Portion.get_rect ger gränserna för en enskild portion.
Var styrs styckejustering (vänster, höger, centrerat eller marginaljusterat)?
ParagraphFormat.alignment är en inställning på styckennivå och tillämpas på hela stycket oavsett individuell portionsformatering. För att vertikalt justera portioner med olika teckensnittsstorlekar inom varje rad, se Justera teckensnitt inom en rad.
Kan jag ange korrekturspråket för en del av ett stycke?
Ja. Ange PortionFormat.language_id för enskilda portioner, så att ett stycke kan innehålla text på flera språk.