Správa textových odstavců PowerPointu v JavaScriptu
Úvod
Aspose.Slides poskytuje všechny třídy, které potřebujete pro práci s texty, odstavci a částmi v PowerPointu v jazyce Java.
- Aspose.Slides poskytuje třídu TextFrame umožňující přidávat objekty představující odstavec. Objekt
TextFamemůže mít jeden nebo více odstavců (každý odstavec se vytvoří pomocí návratu řádku). - Aspose.Slides poskytuje třídu Paragraph umožňující přidávat objekty představující části. Objekt
Paragraphmůže mít jednu nebo více částí (kolekci objektů textových částí). - Aspose.Slides poskytuje třídu Portion umožňující přidávat objekty představující texty a jejich formátovací vlastnosti.
Objekt Paragraph je schopen zpracovávat texty s různými formátovacími vlastnostmi prostřednictvím svých podřízených objektů Portion.
Přidání více odstavců obsahujících více částí
Tyto kroky ukazují, jak přidat textové pole 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 obdélníkový AutoShape na snímek.
- Získejte ITextFrame spojený s AutoShape.
- Vytvořte dva objekty Paragraph a přidejte je do kolekce
IParagraphstřídy TextFrame. - Vytvořte tři objekty Portion pro každý nový
Paragraph(dvě objekty Portion pro výchozí odstavec) a přidejte každý objektPortiondo kolekce IPortion příslušnéhoParagraph. - Nastavte nějaký text pro každou část.
- Použijte požadované formátovací prvky na každou část pomocí formátovacích vlastností poskytovaných objektem
Portion. - Uložte upravenou prezentaci.
// Vytvořte instanci třídy Presentation, která představuje soubor PPTX
var pres = new aspose.slides.Presentation();
try {
// Přístup k prvnímu snímku
var slide = pres.getSlides().get_Item(0);
// Přidejte AutoShape typu Obdélník
var ashp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150);
// Získejte TextFrame AutoShape
var tf = ashp.getTextFrame();
// Vytvořte odstavce a části s různými formáty textu
var para0 = tf.getParagraphs().get_Item(0);
var port01 = new aspose.slides.Portion();
var port02 = new aspose.slides.Portion();
para0.getPortions().add(port01);
para0.getPortions().add(port02);
var para1 = new aspose.slides.Paragraph();
tf.getParagraphs().add(para1);
var port10 = new aspose.slides.Portion();
var port11 = new aspose.slides.Portion();
var port12 = new aspose.slides.Portion();
para1.getPortions().add(port10);
para1.getPortions().add(port11);
para1.getPortions().add(port12);
var para2 = new aspose.slides.Paragraph();
tf.getParagraphs().add(para2);
var port20 = new aspose.slides.Portion();
var port21 = new aspose.slides.Portion();
var port22 = new aspose.slides.Portion();
para2.getPortions().add(port20);
para2.getPortions().add(port21);
para2.getPortions().add(port22);
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 3; j++) {
var portion = tf.getParagraphs().get_Item(i).getPortions().get_Item(j);
portion.setText("Portion0" + j);
if (j == 0) {
portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
portion.getPortionFormat().setFontBold(aspose.slides.NullableBool.True);
portion.getPortionFormat().setFontHeight(15);
} else if (j == 1) {
portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
portion.getPortionFormat().setFontItalic(aspose.slides.NullableBool.True);
portion.getPortionFormat().setFontHeight(18);
}
}
}
// Uložte PPTX na disk
pres.save("multiParaPort_out.pptx", aspose.slides.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 snadnější ke čtení a pochopení.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte AutoShape na vybraný snímek.
- 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 proces uvedený v krocích 7 až 13.
- Uložte prezentaci.
// Vytvoří instanci třídy Presentation, která představuje soubor PPTX
var pres = new aspose.slides.Presentation();
try {
// Přistupuje k prvnímu snímku
var slide = pres.getSlides().get_Item(0);
// Přidá a získá Autoshape
var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Získá textový rámec autoshape
var txtFrm = aShp.getTextFrame();
// Odstraní výchozí odstavec
txtFrm.getParagraphs().removeAt(0);
// Vytvoří odstavec
var para = new aspose.slides.Paragraph();
// Nastaví styl odrážky odstavce a symbol
para.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para.getParagraphFormat().getBullet().setChar(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(aspose.slides.ColorType.RGB);
para.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
para.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// nastavit IsBulletHardColor na true k 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
var para2 = new aspose.slides.Paragraph();
// Nastaví typ odrážky odstavce a styl
para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
para2.getParagraphFormat().getBullet().setNumberedBulletStyle(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain);
// Přidá text odstavce
para2.setText("This is numbered bullet");
// Nastaví odsazení odrážky
para2.getParagraphFormat().setIndent(25);
// Nastaví barvu odrážky
para2.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB);
para2.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
para2.getParagraphFormat().getBullet().setBulletHardColor(aspose.slides.NullableBool.True);// nastavit IsBulletHardColor na true k 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", aspose.slides.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. Odstavce s obrázkovými odrážkami 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 AutoShape na snímek.
- Získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Vytvořte první odstavec pomocí třídy Paragraph.
- Načtěte obrázek pomocí PPImage.
- 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 proces podle předchozích kroků.
- Uložte upravenou prezentaci.
// Instancuje třídu Presentation, která představuje soubor PPTX
var presentation = new aspose.slides.Presentation();
try {
// Získá první snímek
var slide = presentation.getSlides().get_Item(0);
// Instancuje obrázek pro odrážky
var picture;
var image = aspose.slides.Images.fromFile("bullets.png");
try {
picture = presentation.getImages().addImage(image);
} finally {
if (image != null) {
image.dispose();
}
}
// Přidá a získá Autoshape
var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Získá textový rámec autoshape
var textFrame = autoShape.getTextFrame();
// Odstraní výchozí odstavec
textFrame.getParagraphs().removeAt(0);
// Vytvoří nový odstavec
var paragraph = new aspose.slides.Paragraph();
paragraph.setText("Welcome to Aspose.Slides");
// Nastaví styl odrážky odstavce a obrázek
paragraph.getParagraphFormat().getBullet().setType(aspose.slides.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", aspose.slides.SaveFormat.Pptx);
// Uloží prezentaci jako soubor PPT
presentation.save("ParagraphPictureBulletsPPT_out.ppt", aspose.slides.SaveFormat.Ppt);
} catch (e) {console.log(e);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Správa víceúrovňových odrážek
Seznamy s odrážkami vám pomáhají rychle a efektivně organizovat a prezentovat informace. Víceúrovň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 AutoShape v novém snímku.
- 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.
// Instancuje třídu Presentation, která představuje soubor PPTX
var pres = new aspose.slides.Presentation();
try {
// Získá první snímek
var slide = pres.getSlides().get_Item(0);
// Přidá a získá Autoshape
var aShp = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Získá textový rámec vytvořeného autoshape
var text = aShp.addTextFrame("");
// Vyčistí výchozí odstavec
text.getParagraphs().clear();
// Přidá první odstavec
var para1 = new aspose.slides.Paragraph();
para1.setText("Content");
para1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para1.getParagraphFormat().getBullet().setChar(8226);
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para1.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Nastaví úroveň odrážky
para1.getParagraphFormat().setDepth(0);
// Přidá druhý odstavec
var para2 = new aspose.slides.Paragraph();
para2.setText("Second Level");
para2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para2.getParagraphFormat().getBullet().setChar('-');
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para2.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Nastaví úroveň odrážky
para2.getParagraphFormat().setDepth(1);
// Přidá třetí odstavec
var para3 = new aspose.slides.Paragraph();
para3.setText("Third Level");
para3.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para3.getParagraphFormat().getBullet().setChar(8226);
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para3.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Nastaví úroveň odrážky
para3.getParagraphFormat().setDepth(2);
// Přidá čtvrtý odstavec
var para4 = new aspose.slides.Paragraph();
para4.setText("Fourth Level");
para4.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Symbol);
para4.getParagraphFormat().getBullet().setChar('-');
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
para4.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Nastaví úroveň odrážky
para4.getParagraphFormat().setDepth(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", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Správa odstavce s vlastním číslovaným seznamem
Třída BulletFormat poskytuje vlastnost NumberedBulletStartWith a další, které umožňují spravovat odstavce s vlastním číslováním nebo formátováním.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek obsahující odstavec.
- Přidejte AutoShape na snímek.
- 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.
var presentation = new aspose.slides.Presentation();
try {
var shape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
// Získá textový rámec vytvořeného autoshape
var textFrame = shape.getTextFrame();
// Odstraní výchozí existující odstavec
textFrame.getParagraphs().removeAt(0);
// První seznam
var paragraph1 = new aspose.slides.Paragraph();
paragraph1.setText("bullet 2");
paragraph1.getParagraphFormat().setDepth(4);
paragraph1.getParagraphFormat().getBullet().setNumberedBulletStartWith(2);
paragraph1.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph1);
var paragraph2 = new aspose.slides.Paragraph();
paragraph2.setText("bullet 3");
paragraph2.getParagraphFormat().setDepth(4);
paragraph2.getParagraphFormat().getBullet().setNumberedBulletStartWith(3);
paragraph2.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph2);
var paragraph5 = new aspose.slides.Paragraph();
paragraph5.setText("bullet 7");
paragraph5.getParagraphFormat().setDepth(4);
paragraph5.getParagraphFormat().getBullet().setNumberedBulletStartWith(7);
paragraph5.getParagraphFormat().getBullet().setType(aspose.slides.BulletType.Numbered);
textFrame.getParagraphs().add(paragraph5);
presentation.save("SetCustomBulletsNumber-slides.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Nastavení odsazení první řádky odstavce
Použijte metodu ParagraphFormat.setIndent k řízení odsazení první řádky odstavce. Tato metoda posune pouze první řádek vzhledem k levému okraji odstavce. Kladná hodnota posune první řádek doprava, zatímco zbylé řádky zůstanou zarovnány k tělu odstavce.
Použijte ParagraphFormat.setMarginLeft, když potřebujete posunout celý odstavec. Použijte ParagraphFormat.setIndent, když potřebujete posunout jen první řádek.
Níže uvedený příklad vytváří několik odstavců a aplikuje 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 obdélníkový AutoShape na snímek.
- 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.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let rectangleShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
rectangleShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
let textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().removeAt(0);
let firstParagraph = new aspose.slides.Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.setText("No first-line indent. Wrapped lines start at the same position as the first line.");
firstParagraph.getParagraphFormat().setMarginLeft(20);
firstParagraph.getParagraphFormat().setIndent(0);
let secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.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(20);
secondParagraph.getParagraphFormat().setIndent(20);
let thirdParagraph = new aspose.slides.Paragraph();
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.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(20);
thirdParagraph.getParagraphFormat().setIndent(40);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
textFrame.getParagraphs().add(thirdParagraph);
presentation.save("paragraph_indent.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
presentation.dispose();
}

Nastavení závěsného odsazení pro odstavec
Závěsné odsazení je rozvržení odstavce, při kterém první řádek začíná vlevo od zbývajících řádků. V Aspose.Slides vytvoříte tento efekt pomocí metody ParagraphFormat.setIndent. Nastavte odsazení na zápornou hodnotu, aby se první řádek posunul vlevo vzhledem k tělu odstavce.
V praxi ParagraphFormat.setMarginLeft určuje levou pozici těla odstavce a ParagraphFormat.setIndent určuje pozici prvního řádku vzhledem k tomuto okraji. Pro vytvoření závěsné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ělo odstavce místo pod první znak první řádky.
- Vytvořte instanci třídy Presentation.
- Získejte cílový snímek.
- Přidejte obdélníkový AutoShape na snímek.
- 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 pro vytvoření efektu závěsného odsazení.
- Přidejte odstavce do textového rámce.
- Uložte upravenou prezentaci.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let rectangleShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
rectangleShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
rectangleShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
rectangleShape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
let textFrame = rectangleShape.addTextFrame("");
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().removeAt(0);
let firstParagraph = new aspose.slides.Paragraph();
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.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(40);
firstParagraph.getParagraphFormat().setIndent(-20);
let secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.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(60);
secondParagraph.getParagraphFormat().setIndent(-30);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
presentation.save("hanging_indent.pptx", aspose.slides.SaveFormat.Pptx);
}
finally {
presentation.dispose();
}

Správa koncových vlastností běhu odstavce pro odstavec
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na snímek obsahující odstavec pomocí jeho pozice.
- Přidejte obdélníkový AutoShape na snímek.
- Přidejte TextFrame se dvěma odstavci do obdélníku.
- Nastavte
FontHeighta typ písma pro odstavce. - Nastavte koncové (End) vlastnosti pro odstavce.
- Zapište upravenou prezentaci jako soubor PPTX.
var pres = new aspose.slides.Presentation();
try {
var shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250);
var para1 = new aspose.slides.Paragraph();
para1.getPortions().add(new aspose.slides.Portion("Sample text"));
var para2 = new aspose.slides.Paragraph();
para2.getPortions().add(new aspose.slides.Portion("Sample text 2"));
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(48);
portionFormat.setLatinFont(new aspose.slides.FontData("Times New Roman"));
para2.setEndParagraphPortionFormat(portionFormat);
shape.getTextFrame().getParagraphs().add(para1);
shape.getTextFrame().getParagraphs().add(para2);
pres.save(resourcesOutputPath + "pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Import HTML textu do odstavců
Aspose.Slides poskytuje rozšířenou podporu pro importování HTML textu do odstavců.
- Vytvořte instanci třídy Presentation.
- Získejte odkaz na příslušný snímek pomocí jeho indexu.
- Přidejte AutoShape na snímek.
- Přidejte a získejte TextFrame autoshape.
- Odstraňte výchozí odstavec v
TextFrame. - Načtěte zdrojový HTML soubor v TextReaderu.
- Vytvořte první odstavec pomocí třídy Paragraph.
- Přidejte obsah HTML souboru z načteného TextReaderu do ParagraphCollection TextFrame.
- Uložte upravenou prezentaci.
// Vytvořte prázdnou instanci prezentace
var pres = new aspose.slides.Presentation();
try {
// Přístup k výchozímu prvnímu snímku prezentace
var slide = pres.getSlides().get_Item(0);
// Přidání AutoShape, aby pojmula HTML obsah
var ashape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, pres.getSlideSize().getSize().getWidth() - 20, pres.getSlideSize().getSize().getHeight() - 10);
ashape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
// Přidání textového rámce do tvaru
ashape.addTextFrame("");
// Vyprázdnění všech odstavců v přidaném textovém rámci
ashape.getTextFrame().getParagraphs().clear();
// Načtení HTML souboru pomocí stream readeru
var tr = java.newInstanceSync("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.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Export textu odstavců do HTML
Aspose.Slides poskytuje rozšířenou podporu pro exportování 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 tvaru.
- Vytvořte instanci
StreamWritera přidejte nový HTML soubor. - Zadejte počáteční index do StreamWriteru a exportujte požadované odstavce.
// Načtěte soubor prezentace
var pres = new aspose.slides.Presentation("ExportingHTMLText.pptx");
try {
// Přístup k výchozímu prvnímu snímku prezentace
var slide = pres.getSlides().get_Item(0);
// Požadovaný index
var index = 0;
// Přístup k přidanému tvaru
var ashape = slide.getShapes().get_Item(index);
// Vytvoření výstupního HTML souboru
var os = java.newInstanceSync("java.io.FileOutputStream", "output.html");
var writer = java.newInstanceSync("java.io.OutputStreamWriter", os, "UTF-8");
// Extrahování prvního odstavce jako HTML
// Zápis dat odstavců do HTML zadáním počátečního indexu odstavce a celkového počtu odstavců ke zkopírování
writer.write(ashape.getTextFrame().getParagraphs().exportToHtml(0, ashape.getTextFrame().getParagraphs().getCount(), null));
writer.close();
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Uložení odstavce jako obrázku
V tomto oddíle prozkoumáme dva příklady, které ukazují, jak uložit textový odstavec reprezentovaný třídou Paragraph jako obrázek. Oba příklady zahrnují získání obrázku tvaru obsahujícího odstavec pomocí metod getImage ze třídy Shape, výpočet ohraničení odstavce uvnitř tvaru a export jako bitmapového obrázku. Tyto přístupy vám umožní extrahovat konkrétní části textu z prezentací PowerPoint a uložit je jako samostatné obrázky, což může být užitečné v různých scénářích.
Předpokládejme, že máme soubor prezentace nazvaný 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 nejprve extrahujeme obrázek tvaru z prvního snímku prezentace a následně vypočítáme ohraničení druhého odstavce v textovém rámci tvaru. Odstavec je pak překreslen na nový bitmapový obrázek, který je uložen ve formátu PNG. Tento postup je užitečný, když potřebujete uložit konkrétní odstavec jako samostatný obrázek při zachování přesných rozměrů a formátování textu.
const imageio = java.import("javax.imageio.ImageIO");
const presentation = new aspose.slides.Presentation("sample.pptx");
try {
const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Uložte tvar v paměti jako bitmapu.
const shapeImage = firstShape.getImage();
const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream");
shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png);
shapeImage.dispose();
shapeImageStream.flush();
// Vytvořte bitmapu tvaru z paměti.
const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray");
const javaBytes = java.newArray("byte", Array.from(byteBuffer));
const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream");
const shapeImageInputStream = new ByteArrayInputStream(javaBytes);
const shapeBitmap = imageio.read(shapeImageInputStream);
// Vypočítejte ohraničení druhého odstavce.
const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
const paragraphRectangle = secondParagraph.getRect();
// Vypočítejte souřadnice a velikost výstupního obrázku (minimální velikost - 1x1 pixel).
const imageX = Math.floor(paragraphRectangle.getX());
const imageY = Math.floor(paragraphRectangle.getY());
const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth()));
const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight()));
// Ořízněte bitmapu tvaru, aby obsahovala pouze bitmapu odstavce.
const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
const file = java.newInstanceSync("java.io.File", "paragraph.png");
imageio.write(paragraphBitmap, "png", file);
} finally {
if (presentation != null) {
presentation.dispose();
}
}

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álu. Škálování může být užitečné, když je potřeba detailnější obrázek, například pro použití ve vysoce kvalitních tištěných materiálech.
const imageScaleX = 2;
const imageScaleY = imageScaleX;
const imageio = java.import("javax.imageio.ImageIO");
const presentation = new aspose.slides.Presentation("sample.pptx");
try {
const firstShape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Uložte tvar v paměti jako bitmapu se škálováním.
const shapeImage = firstShape.getImage(aspose.slides.ShapeThumbnailBounds.Shape, imageScaleX, imageScaleY);
const shapeImageStream = java.newInstanceSync("java.io.ByteArrayOutputStream");
shapeImage.save(shapeImageStream, aspose.slides.ImageFormat.Png);
shapeImage.dispose();
// Vytvořte bitmapu tvaru z paměti.
const byteBuffer = java.callMethodSync(shapeImageStream, "toByteArray");
const javaBytes = java.newArray("byte", Array.from(byteBuffer));
const ByteArrayInputStream = java.import("java.io.ByteArrayInputStream");
const shapeImageInputStream = new ByteArrayInputStream(javaBytes);
const shapeBitmap = imageio.read(shapeImageInputStream);
// Vypočítejte ohraničení druhého odstavce.
const secondParagraph = firstShape.getTextFrame().getParagraphs().get_Item(1);
const paragraphRectangle = secondParagraph.getRect();
paragraphRectangle.setRect(
paragraphRectangle.getX() * imageScaleX,
paragraphRectangle.getY() * imageScaleY,
paragraphRectangle.getWidth() * imageScaleX,
paragraphRectangle.getHeight() * imageScaleY
);
// Vypočítejte souřadnice a velikost výstupního obrázku (minimální velikost - 1x1 pixel).
const imageX = Math.floor(paragraphRectangle.getX());
const imageY = Math.floor(paragraphRectangle.getY());
const imageWidth = Math.max(1, Math.ceil(paragraphRectangle.getWidth()));
const imageHeight = Math.max(1, Math.ceil(paragraphRectangle.getHeight()));
// Ořízněte bitmapu tvaru, aby obsahovala pouze bitmapu odstavce.
const paragraphBitmap = shapeBitmap.getSubimage(imageX, imageY, imageWidth, imageHeight);
const file = java.newInstanceSync("java.io.File", "paragraph.png");
imageio.write(paragraphBitmap, "png", file);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Často kladené otázky
Mohu zcela zakázat zalamování řádků uvnitř textového rámce?
Ano. Použijte nastavení zalamování textového rámce (setWrapText), abyste vypnuli zalamování, takže řádky se nebudou lámat na okrajích rámce.
Jak mohu získat přesné souřadnice konkrétního odstavce na snímku?
Můžete získat ohraničující obdélník odstavce (a dokonce i jedné části), abyste znali jeho přesnou polohu a velikost na snímku.
Kde se řídí zarovnání odstavce (levé/pravé/na střed/zarovnané)?
setAlignment je metoda pro nastavení na úrovni odstavce v ParagraphFormat; vztahuje se na celý odstavec bez ohledu na formátování jednotlivých částí.
Mohu nastavit jazyk pravopisu jen pro část odstavce (např. pro jedno slovo)?
Ano. Jazyk se nastavuje na úrovni části (PortionFormat.setLanguageId), takže v jednom odstavci mohou koexistovat různé jazyky.