Správa textových odstavců PowerPointu na Androidu
Úvod
Aspose.Slides poskytuje všechny rozhraní a třídy, které potřebujete pro práci s texty, odstavci a částmi PowerPointu v jazyce Java.
- Aspose.Slides poskytuje rozhraní ITextFrame , které vám umožní přidávat objekty představující odstavec. Objekt
ITextFamemůže obsahovat jeden nebo více odstavců (každý odstavec je vytvořen pomocí návratového znaku). - Aspose.Slides poskytuje rozhraní IParagraph , které vám umožní přidávat objekty představující části. Objekt
IParagraphmůže mít jednu nebo více částí (kolekci objektů iPortions). - Aspose.Slides poskytuje rozhraní IPortion , které vám umožní přidávat objekty představující texty a jejich formátovací vlastnosti.
Objekt IParagraph je schopen zpracovávat texty s různými formátovacími vlastnostmi prostřednictvím svých podřízených objektů IPortion.
Přidání více odstavců obsahujících více textových částí
Tyto kroky vám ukážou, jak přidat textový rámec obsahující 3 odstavce a každý odstavec obsahující 3 části:
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte na snímek obdélníkový IAutoShape.
- Získejte ITextFrame spojený s IAutoShape.
- Vytvořte dva objekty IParagraph , a přidejte je do kolekce
IParagraphsv ITextFrame. - Vytvořte tři objekty IPortion pro každý nový
IParagraph(dvě objekty Portion pro výchozí odstavec) a přidejte každý objektIPortiondo kolekce IPortion každéhoIParagraph. - Nastavte text pro každou část.
- Použijte požadované formátovací vlastnosti na každou část pomocí formátovacích vlastností nabízených objektem
IPortion. - Uložte upravenou prezentaci.
Tento Java kód je implementací kroků pro přidání odstavců obsahujících části:
// Vytvořte instanci třídy Presentation, která představuje soubor PPTX
Presentation pres = new Presentation();
try {
// Přístup k prvnímu snímku
ISlide slide = pres.getSlides().get_Item(0);
// Přidejte AutoShape typu Obdélník
IAutoShape ashp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 300, 150);
// Získejte TextFrame AutoShape
ITextFrame tf = ashp.getTextFrame();
// Vytvořte odstavce a části s různými formáty textu
IParagraph para0 = tf.getParagraphs().get_Item(0);
IPortion port01 = new Portion();
IPortion port02 = new Portion();
para0.getPortions().add(port01);
para0.getPortions().add(port02);
IParagraph para1 = new Paragraph();
tf.getParagraphs().add(para1);
IPortion port10 = new Portion();
IPortion port11 = new Portion();
IPortion port12 = new Portion();
para1.getPortions().add(port10);
para1.getPortions().add(port11);
para1.getPortions().add(port12);
IParagraph para2 = new Paragraph();
tf.getParagraphs().add(para2);
IPortion port20 = new Portion();
IPortion port21 = new Portion();
IPortion port22 = new Portion();
para2.getPortions().add(port20);
para2.getPortions().add(port21);
para2.getPortions().add(port22);
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
IPortion portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j);
portion.setText("Portion0" + j);
if (j == 0) {
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.RED);
portion.getPortionFormat().setFontBold(NullableBool.True);
portion.getPortionFormat().setFontHeight(15);
} else if (j == 1) {
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
portion.getPortionFormat().setFontItalic(NullableBool.True);
portion.getPortionFormat().setFontHeight(18);
}
}
}
// Uložte PPTX na disk
pres.save("multiParaPort_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Správa odrážek odstavců
Seznamy s odrážkami vám pomáhají rychle a efektivně organizovat a prezentovat informace. Odstavce s odrážkami jsou vždy snazší číst a pochopit.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte na vybraný snímek autoshape.
- Získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Vytvořte první odstavec pomocí třídy Paragraph.
- Nastavte typ odrážky
Typeodstavce naSymbola nastavte znak odrážky. - Nastavte
Textodstavce. - Nastavte
Indentodstavce pro odrážku. - Nastavte barvu odrážky.
- Nastavte výšku odrážky.
- Přidejte nový odstavec do kolekce odstavců
TextFrame. - Přidejte druhý odstavec a opakujte postup uvedený v krocích 7 až 13.
- Uložte prezentaci.
Tento Java kód vám ukazuje, jak přidat odrážku odstavce:
// Vytvoří instanci třídy Presentation, která představuje soubor PPTX
Presentation pres = new Presentation();
try {
// Přistupuje k prvnímu snímku
ISlide slide = pres.getSlides().get_Item(0);
// Přidá a přistoupí k Autoshape
IAutoShape aShp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Přistupuje k textovému rámci autoshape
ITextFrame txtFrm = aShp.getTextFrame();
// Odstraní výchozí odstavec
txtFrm.getParagraphs().removeAt(0);
// Vytvoří odstavec
Paragraph para = new Paragraph();
// Nastaví styl odrážky odstavce a symbol
para.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para.getParagraphFormat().getBullet().setChar((char)8226);
// Nastaví text odstavce
para.setText("Welcome to Aspose.Slides");
// Nastaví odsazení odrážky
para.getParagraphFormat().setIndent(25);
// Nastaví barvu odrážky
para.getParagraphFormat().getBullet().getColor().setColorType(ColorType.RGB);
para.getParagraphFormat().getBullet().getColor().setColor(Color.BLACK);
para.getParagraphFormat().getBullet().setBulletHardColor(NullableBool.True); // nastavit IsBulletHardColor na true pro použití vlastní barvy odrážky
// Nastaví výšku odrážky
para.getParagraphFormat().getBullet().setHeight(100);
// Přidá odstavec do textového rámce
txtFrm.getParagraphs().add(para);
// Vytvoří druhý odstavec
Paragraph para2 = new Paragraph();
// Nastaví typ a styl odrážky odstavce
para2.getParagraphFormat().getBullet().setType(BulletType.Numbered);
para2.getParagraphFormat().getBullet().setNumberedBulletStyle(NumberedBulletStyle.BulletCircleNumWDBlackPlain);
// Přidá text odstavce
para2.setText("This is numbered bullet");
// Nastaví odsazení odrážky
para2.getParagraphFormat().setIndent(25);
para2.getParagraphFormat().getBullet().getColor().setColorType(ColorType.RGB);
para2.getParagraphFormat().getBullet().getColor().setColor(Color.BLACK);
para2.getParagraphFormat().getBullet().setBulletHardColor(NullableBool.True); // nastavit IsBulletHardColor na true pro použití vlastní barvy odrážky
// Nastaví výšku odrážky
para2.getParagraphFormat().getBullet().setHeight(100);
// Přidá odstavec do textového rámce
txtFrm.getParagraphs().add(para2);
// Uloží upravenou prezentaci
pres.save("Bullet_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Správa obrázkových odrážek
Seznamy s odrážkami vám pomáhají rychle a efektivně organizovat a prezentovat informace. Odrážky s obrázky jsou snadno čitelné a pochopitelné.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte na snímek autoshape.
- Získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Vytvořte první odstavec pomocí třídy Paragraph.
- Načtěte obrázek do IPPImage.
- Nastavte typ odrážky na Picture a nastavte obrázek.
- Nastavte
Textodstavce. - Nastavte
Indentodstavce pro odrážku. - Nastavte barvu odrážky.
- Nastavte výšku odrážky.
- Přidejte nový odstavec do kolekce odstavců
TextFrame. - Přidejte druhý odstavec a opakujte postup podle předchozích kroků.
- Uložte upravenou prezentaci.
Tento Java kód vám ukazuje, jak přidávat a spravovat obrázkové odrážky:
// Vytvoří instanci třídy Presentation, která představuje soubor PPTX
Presentation presentation = new Presentation();
try {
// Přistupuje k prvnímu snímku
ISlide slide = presentation.getSlides().get_Item(0);
// Vytvoří obrázek pro odrážky
IPPImage picture;
IImage image = Images.fromFile("bullets.png");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
// Přidá a získá autoshape
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Přistupuje k textovému rámci autoshape
ITextFrame textFrame = autoShape.getTextFrame();
// Odstraní výchozí odstavec
textFrame.getParagraphs().removeAt(0);
// Vytvoří nový odstavec
Paragraph paragraph = new Paragraph();
paragraph.setText("Welcome to Aspose.Slides");
// Nastaví styl odrážky odstavce a obrázek
paragraph.getParagraphFormat().getBullet().setType(BulletType.Picture);
paragraph.getParagraphFormat().getBullet().getPicture().setImage(picture);
// Nastaví výšku odrážky
paragraph.getParagraphFormat().getBullet().setHeight(100);
// Přidá odstavec do textového rámce
textFrame.getParagraphs().add(paragraph);
// Uloží prezentaci jako soubor PPTX
presentation.save("ParagraphPictureBulletsPPTX_out.pptx", SaveFormat.Pptx);
// Uloží prezentaci jako soubor PPT
presentation.save("ParagraphPictureBulletsPPT_out.ppt", SaveFormat.Ppt);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Správa vícestupňových odrážek
Seznamy s odrážkami vám pomáhají rychle a efektivně organizovat a prezentovat informace. Vícestupňové odrážky jsou snadno čitelné a pochopitelné.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte na nový snímek autoshape.
- Získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Vytvořte první odstavec pomocí třídy Paragraph a nastavte hloubku na 0.
- Vytvořte druhý odstavec pomocí třídy
Paragrapha nastavte hloubku na 1. - Vytvořte třetí odstavec pomocí třídy
Paragrapha nastavte hloubku na 2. - Vytvořte čtvrtý odstavec pomocí třídy
Paragrapha nastavte hloubku na 3. - Přidejte nové odstavce do kolekce odstavců
TextFrame. - Uložte upravenou prezentaci.
Tento Java kód vám ukazuje, jak přidávat a spravovat vícestupňové odrážky:
// Vytvoří instanci třídy Presentation, která představuje soubor PPTX
Presentation pres = new Presentation();
try {
// Přistupuje k prvnímu snímku
ISlide slide = pres.getSlides().get_Item(0);
// Přidá a přistoupí k Autoshape
IAutoShape aShp = slide.getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Přistupuje k textovému rámci vytvořeného autoshape
ITextFrame text = aShp.addTextFrame("");
// Vymaže výchozí odstavec
text.getParagraphs().clear();
// Přidá první odstavec
IParagraph para1 = new Paragraph();
para1.setText("Content");
para1.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para1.getParagraphFormat().getBullet().setChar((char)8226);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Nastaví úroveň odrážky
para1.getParagraphFormat().setDepth((short)0);
// Přidá druhý odstavec
IParagraph para2 = new Paragraph();
para2.setText("Second Level");
para2.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para2.getParagraphFormat().getBullet().setChar('-');
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Nastaví úroveň odrážky
para2.getParagraphFormat().setDepth((short)1);
// Přidá třetí odstavec
IParagraph para3 = new Paragraph();
para3.setText("Third Level");
para3.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para3.getParagraphFormat().getBullet().setChar((char)8226);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Nastaví úroveň odrážky
para3.getParagraphFormat().setDepth((short)2);
// Přidá čtvrtý odstavec
IParagraph para4 = new Paragraph();
para4.setText("Fourth Level");
para4.getParagraphFormat().getBullet().setType(BulletType.Symbol);
para4.getParagraphFormat().getBullet().setChar('-');
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
// Nastaví úroveň odrážky
para4.getParagraphFormat().setDepth((short)3);
// Přidá odstavce do kolekce
text.getParagraphs().add(para1);
text.getParagraphs().add(para2);
text.getParagraphs().add(para3);
text.getParagraphs().add(para4);
// Uloží prezentaci jako soubor PPTX
pres.save("MultilevelBullet.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Správa odstavce s vlastním číslovaným seznamem
Rozhraní IBulletFormat poskytuje vlastnost NumberedBulletStartWith a další, které vám umožňují spravovat odstavce s vlastním číslováním nebo formátováním.
- Vytvořte instanci třídy Presentation.
- Získejte snímek obsahující odstavec.
- Přidejte na snímek autoshape.
- Získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Vytvořte první odstavec pomocí třídy Paragraph a nastavte NumberedBulletStartWith na 2.
- Vytvořte druhý odstavec pomocí třídy
Paragrapha nastavteNumberedBulletStartWithna 3. - Vytvořte třetí odstavec pomocí třídy
Paragrapha nastavteNumberedBulletStartWithna 7. - Přidejte nové odstavce do kolekce odstavců
TextFrame. - Uložte upravenou prezentaci.
Tento Java kód vám ukazuje, jak přidávat a spravovat odstavce s vlastním číslováním nebo formátováním:
Presentation presentation = new Presentation();
try {
IAutoShape shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 400, 200);
// Přistupuje k textovému rámci vytvořeného autoshape
ITextFrame textFrame = shape.getTextFrame();
// Odstraňuje výchozí existující odstavec
textFrame.getParagraphs().removeAt(0);
// První seznam
Paragraph paragraph1 = new Paragraph();
paragraph1.setText("bullet 2");
paragraph1.getParagraphFormat().setDepth((short)4);
paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)2);
paragraph1.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph1);
Paragraph paragraph2 = new Paragraph();
paragraph2.setText("bullet 3");
paragraph2.getParagraphFormat().setDepth((short)4);
paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)3);
paragraph2.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph2);
Paragraph paragraph5 = new Paragraph();
paragraph5.setText("bullet 7");
paragraph5.getParagraphFormat().setDepth((short)4);
paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith((short)7);
paragraph5.getParagraphFormat().getBullet().setType(BulletType.Numbered);
textFrame.getParagraphs().add(paragraph5);
presentation.save("SetCustomBulletsNumber-slides.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Nastavení odsazení první řádky odstavce
Použijte metodu IParagraphFormat.setIndent , která řídí odsazení první řádky odstavce. Tato metoda posouvá pouze první řádek vzhledem k levému okraji odstavce. Kladná hodnota posune první řádek doprava, zatímco zbylé řádky zůstávají zarovnány k tělu odstavce.
Použijte IParagraphFormat.setMarginLeft , když potřebujete posunout celý odstavec. Použijte IParagraphFormat.setIndent , když potřebujete posunout jen první řádek.
Níže uvedený příklad vytvoří několik odstavců a použije různé hodnoty odsazení, aby ukázal, jak odsazení první řádky ovlivňuje rozvržení odstavce.
- Vytvořte instanci třídy Presentation.
- Získejte cílový snímek.
- Přidejte na snímek obdélníkový AutoShape.
- Přidejte k tvaru prázdný TextFrame a odstraňte výchozí odstavec.
- Vytvořte několik odstavců a nastavte pro ně různé hodnoty Indent .
- Přidejte odstavce do textového rámce.
- Uložte upravenou prezentaci.
Tento kód vám ukazuje, jak nastavit odsazení odstavce:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape rectangleShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(FillType.NoFill);
rectangleShape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
ITextFrame textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(TextAutofitType.Shape);
textFrame.getParagraphs().removeAt(0);
Paragraph firstParagraph = new Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
firstParagraph.setText("No first-line indent. Wrapped lines start at the same position as the first line.");
firstParagraph.getParagraphFormat().setMarginLeft(20f);
firstParagraph.getParagraphFormat().setIndent(0f);
Paragraph secondParagraph = new Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
secondParagraph.setText("First-line indent of 20 points. The first line moves to the right, while wrapped lines remain aligned to the paragraph body.");
secondParagraph.getParagraphFormat().setMarginLeft(20f);
secondParagraph.getParagraphFormat().setIndent(20f);
Paragraph thirdParagraph = new Paragraph();
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
thirdParagraph.setText("First-line indent of 40 points. This paragraph shows a larger first-line offset to make the effect easier to see.");
thirdParagraph.getParagraphFormat().setMarginLeft(20f);
thirdParagraph.getParagraphFormat().setIndent(40f);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
textFrame.getParagraphs().add(thirdParagraph);
presentation.save("paragraph_indent.pptx", SaveFormat.Pptx);
}
finally {
presentation.dispose();
}
Výsledek:

Nastavení zavěšeného odsazení pro odstavec
Zavěšené odsazení je rozvržení odstavce, kde první řádek začíná vlevo od zbylých řádků. V Aspose.Slides vytvoříte tento efekt pomocí metody IParagraphFormat.setIndent . Nastavte odsazení na zápornou hodnotu, aby se první řádek posunul doleva vůči tělu odstavce.
V praxi IParagraphFormat.setMarginLeft určuje levý pozici těla odstavce a IParagraphFormat.setIndent určuje pozici první řádky vzhledem k tomuto okraji. Pro vytvoření zavěšeného odsazení nastavte kladnou hodnotu MarginLeft a zápornou hodnotu Indent.
Toto formátování je užitečné pro bibliografie, odkazy, položky glosáře a další odstavce, kde musí zalomené řádky být zarovnány pod tělem odstavce místo pod prvním znakem první řádky.
- Vytvořte instanci třídy Presentation.
- Získejte cílový snímek.
- Přidejte na snímek obdélníkový AutoShape.
- Přidejte k tvaru prázdný TextFrame a odstraňte výchozí odstavec.
- Vytvořte odstavce a nastavte pro každý odstavec kladnou hodnotu MarginLeft .
- Nastavte zápornou hodnotu Indent , aby vznikl efekt zavěšeného odsazení.
- Přidejte odstavce do textového rámce.
- Uložte upravenou prezentaci.
Tento kód vám ukazuje, jak nastavit zavěšené odsazení pro odstavec:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
IAutoShape rectangleShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(FillType.NoFill);
rectangleShape.getLineFormat().getFillFormat().setFillType(FillType.Solid);
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
ITextFrame textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(TextAutofitType.Shape);
textFrame.getParagraphs().removeAt(0);
Paragraph firstParagraph = new Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
firstParagraph.setText("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.getParagraphFormat().setMarginLeft(40f);
firstParagraph.getParagraphFormat().setIndent(-20f);
Paragraph secondParagraph = new Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
secondParagraph.setText("This second example uses a deeper hanging indent so the difference between the first line and the wrapped lines is easier to compare.");
secondParagraph.getParagraphFormat().setMarginLeft(60f);
secondParagraph.getParagraphFormat().setIndent(-30f);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
presentation.save("hanging_indent.pptx", SaveFormat.Pptx);
}
finally {
presentation.dispose();
}
Výsledek:

Správa koncových vlastností běhu odstavce
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek obsahující odstavec pomocí jeho pozice.
- Přidejte na snímek obdélníkový autoshape .
- Přidejte do obdélníku TextFrame se dvěma odstavci.
- Nastavte
FontHeighta typ písma pro odstavce. - Nastavte koncové (End) vlastnosti pro odstavce.
- Zapište upravenou prezentaci jako soubor PPTX.
Tento Java kód vám ukazuje, jak nastavit koncové (End) vlastnosti pro odstavce v PowerPointu:
Presentation pres = new Presentation();
try {
IAutoShape shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 10, 10, 200, 250);
Paragraph para1 = new Paragraph();
para1.getPortions().add(new Portion("Sample text"));
Paragraph para2 = new Paragraph();
para2.getPortions().add(new Portion("Sample text 2"));
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(48);
portionFormat.setLatinFont(new FontData("Times New Roman"));
para2.setEndParagraphPortionFormat(portionFormat);
shape.getTextFrame().getParagraphs().add(para1);
shape.getTextFrame().getParagraphs().add(para2);
pres.save(resourcesOutputPath+"pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Import HTML textu do odstavců
Aspose.Slides poskytuje rozšířenou podporu pro import HTML textu do odstavců.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte na snímek autoshape .
- Přidejte a získejte ITextFrame autoshape.
- Odstraňte výchozí odstavec v
ITextFrame. - Načtěte zdrojový HTML soubor pomocí TextReader.
- Vytvořte první odstavec pomocí třídy Paragraph .
- Přidejte obsah HTML souboru ze čteného TextReaderu do ParagraphCollection TextFrame.
- Uložte upravenou prezentaci.
Tento Java kód je implementací kroků pro import HTML textů do odstavců:
// Vytvořte prázdnou instanci prezentace
Presentation pres = new Presentation();
try {
// Přistupte k výchozímu prvnímu snímku prezentace
ISlide slide = pres.getSlides().get_Item(0);
// Přidání AutoShape pro uložení HTML obsahu
IAutoShape ashape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 10, 10,
(float)pres.getSlideSize().getSize().getWidth() - 20, (float)pres.getSlideSize().getSize().getHeight() - 10);
ashape.getFillFormat().setFillType(FillType.NoFill);
// Přidání textového rámce do tvaru
ashape.addTextFrame("");
// Vymazání všech odstavců v přidaném textovém rámci
ashape.getTextFrame().getParagraphs().clear();
// Načtení HTML souboru pomocí StreamReaderu
TextReader tr = new StreamReader("file.html");
// Přidání textu z HTML stream readeru do textového rámce
ashape.getTextFrame().getParagraphs().addFromHtml(tr.readToEnd());
// Ukládání prezentace
pres.save("output_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Export textu odstavce do HTML
Aspose.Slides poskytuje rozšířenou podporu pro export textů (obsažených v odstavcích) do HTML.
- Vytvořte instanci třídy Presentation a načtěte požadovanou prezentaci.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Získejte tvar obsahující text, který bude exportován do HTML.
- Získejte TextFrame tvar.
- Vytvořte instanci
StreamWritera přidejte nový HTML soubor. - Zadejte počáteční index do StreamWriter a exportujte vámi vybrané odstavce.
Tento Java kód vám ukazuje, jak exportovat texty odstavců PowerPointu do HTML:
// Načíst soubor prezentace
Presentation pres = new Presentation("ExportingHTMLText.pptx");
try {
// Přistupuje k výchozímu prvnímu snímku prezentace
ISlide slide = pres.getSlides().get_Item(0);
// Požadovaný index
int index = 0;
// Přístup k přidanému tvaru
IAutoShape ashape = (IAutoShape) slide.getShapes().get_Item(index);
// Vytváří výstupní HTML soubor
OutputStream os = new FileOutputStream("output.html");
Writer writer = new OutputStreamWriter(os, "UTF-8");
//Extrahuje první odstavec jako HTML
// Zapisuje data odstavců do HTML poskytnutím počátečního indexu odstavce, celkového počtu odstavců ke kopírování
writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null));
writer.close();
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Uložení odstavce jako obrázku
V této sekci prozkoumáme dva příklady, které demonstrují, jak uložit textový odstavec, reprezentovaný rozhraním IParagraph , jako obrázek. Oba příklady zahrnují získání obrázku tvaru obsahujícího odstavec pomocí metod getImage z rozhraní IShape , výpočet ohraničení odstavce uvnitř tvaru a jeho export jako bitmapový obrázek. Tyto přístupy vám umožňují extrahovat konkrétní části textu z prezentací PowerPoint a uložit je jako samostatné obrázky, což může být užitečné pro další použití v různých scénářích.
Předpokládejme, že máme soubor prezentace s názvem sample.pptx s jedním snímkem, kde je první tvar textové pole obsahující tři odstavce.

Příklad 1
V tomto příkladu získáme druhý odstavec jako obrázek. K tomu extrahujeme obrázek tvaru z prvního snímku prezentace a poté vypočítáme ohraničení druhého odstavce v textovém rámci tvaru. Odstavec je následně překreslen na nový bitmapový obrázek, který je uložen ve formátu PNG. Tato metoda je zvláště užitečná, když potřebujete uložit konkrétní odstavec jako samostatný obrázek a zachovat přesné rozměry a formátování textu.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape firstShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Uložte tvar v paměti jako bitmapu.
IImage shapeImage = firstShape.getImage();
ByteArrayOutputStream shapeImageStream = new ByteArrayOutputStream();
shapeImage.save(shapeImageStream, ImageFormat.Png);
shapeImage.dispose();
// Vytvořte bitmapu tvaru z paměti.
InputStream shapeImageInputStream = new ByteArrayInputStream(shapeImageStream.toByteArray());
BufferedImage shapeBitmap = ImageIO.read(shapeImageInputStream);
// Vypočítejte ohraničení druhého odstavce.
IParagraph secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
RectF paragraphRectangle = secondParagraph.getRect();
// Vypočítejte souřadnice a velikost výstupního obrázku (minimální velikost - 1x1 pixel).
int imageX = (int) Math.floor(paragraphRectangle.left);
int imageY = (int) Math.floor(paragraphRectangle.top);
int imageWidth = Math.max(1, (int) Math.ceil(paragraphRectangle.width()));
int imageHeight = Math.max(1, (int) Math.ceil(paragraphRectangle.height()));
// Ořízněte bitmapu tvaru, aby obsahovala pouze bitmapu odstavce.
BufferedImage paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
ImageIO.write(paragraphBitmap, "png", new File("paragraph.png"));
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Výsledek:

Příklad 2
V tomto příkladu rozšíříme předchozí přístup přidáním škálovacích faktorů k obrázku odstavce. Tvar je extrahován z prezentace a uložen jako obrázek se škálovacím faktorem 2. To umožňuje výstup s vyšším rozlišením při exportu odstavce. Ohraničení odstavce je poté vypočítáno s ohledem na škálování. Škálování může být zvláště užitečné, když je potřeba detailnější obrázek, například pro použití v vysoce kvalitních tištěných materiálech.
float imageScaleX = 2f;
float imageScaleY = imageScaleX;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape firstShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Uložte tvar v paměti jako bitmapu se škálováním.
IImage shapeImage = firstShape.getImage(ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY);
ByteArrayOutputStream shapeImageStream = new ByteArrayOutputStream();
shapeImage.save(shapeImageStream, ImageFormat.Png);
shapeImage.dispose();
// Vytvořte bitmapu tvaru z paměti.
InputStream shapeImageInputStream = new ByteArrayInputStream(shapeImageStream.toByteArray());
BufferedImage shapeBitmap = ImageIO.read(shapeImageInputStream);
// Vypočítejte ohraničení druhého odstavce.
IParagraph secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
RectF paragraphRectangle = secondParagraph.getRect();
paragraphRectangle.set(
paragraphRectangle.left * imageScaleX,
paragraphRectangle.top * imageScaleY,
paragraphRectangle.right * imageScaleX,
paragraphRectangle.bottom * imageScaleY
);
// Vypočítejte souřadnice a velikost výstupního obrázku (minimální velikost - 1x1 pixel).
int imageX = (int) Math.floor(paragraphRectangle.left);
int imageY = (int) Math.floor(paragraphRectangle.top);
int imageWidth = Math.max(1, (int) Math.ceil(paragraphRectangle.width()));
int imageHeight = Math.max(1, (int) Math.ceil(paragraphRectangle.height()));
// Ořízněte bitmapu tvaru, aby obsahovala pouze bitmapu odstavce.
BufferedImage paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
ImageIO.write(paragraphBitmap, "png", new File("paragraph.png"));
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Často kladené otázky
Mohu zcela vypnout zalamování řádků uvnitř textového rámce?
Ano. Použijte nastavení zalamování textového rámce (setWrapText) , které vypne zalamování, takže řádky nebudou přerušeny na okrajích rámce.
Jak mohu získat přesné ohraničení konkrétního odstavce na snímku?
Můžete získat ohraničující obdélník odstavce (a dokonce i jednotlivé části), abyste znali jeho přesnou polohu a velikost na snímku.
Kde se řídí zarovnání odstavce (levé/pravé/středové/justify)?
Alignment je nastavení na úrovni odstavce v ParagraphFormat ; vztahuje se na celý odstavec bez ohledu na formátování jednotlivých částí.
Mohu nastavit jazyk kontroly pravopisu jen pro část odstavce (např. jedno slovo)?
Ano. Jazyk se nastavuje na úrovni části (PortionFormat.setLanguageId) , takže v jednom odstavci může koexistovat více jazyků.