PowerPoint szöveg bekezdések kezelése JavaScript-ben
Áttekintés
Aspose.Slides for Node.js via Java a szöveget szövegdobozok, bekezdések és részek hierarchiájaként ábrázolja:
- TextFrame a szövegtárolót reprezentálja egy alakzatban, és hozzáférést biztosít a bekezdésgyűjteményéhez.
- Paragraph egy bekezdést képvisel egy szövegdobozban, és hozzáférést ad a részeihez valamint a bekezdés‑szintű formázáshoz.
- Portion egy szövegrészt jelent egy bekezdésen belül. Minden résznek saját szövege és karakter‑szintű formázása lehet.
Egy bekezdés tehát több részt is tartalmazhat, lehetővé téve a különböző betűkészletek, színek, méretek és egyéb formázások használatát.
Bekezdések létrehozása és formázása
Több részes bekezdések létrehozása
Az alábbi lépések egy szövegdobozt hoznak létre három bekezdéssel, mindegyik három részt tartalmazva:
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el a kívánt diát az indexén keresztül.
- Adjon hozzá egy téglalap alakú AutoShape elemet a diához.
- Hozzáférés a forma TextFrame részéhez.
- Használja az alapértelmezett bekezdést, és adjon hozzá még két Paragraph objektumot a szövegdobozhoz.
- Adjon elegendő Portion objektumot úgy, hogy minden bekezdés három részt tartalmazzon. Az alapértelmezett bekezdés már egy üres részt tartalmaz.
- Állítsa be minden rész szövegét.
- Alkalmazzon karakter‑szintű formázást a Portion.getPortionFormat segítségével.
- Mentse a módosított prezentációt.
Ez a JavaScript példa megvalósítja a fenti lépéseket:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 300, 150);
const textFrame = shape.getTextFrame();
const firstParagraph = textFrame.getParagraphs().get_Item(0);
firstParagraph.getPortions().add(new aspose.slides.Portion());
firstParagraph.getPortions().add(new aspose.slides.Portion());
const secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getPortions().add(new aspose.slides.Portion());
secondParagraph.getPortions().add(new aspose.slides.Portion());
secondParagraph.getPortions().add(new aspose.slides.Portion());
textFrame.getParagraphs().add(secondParagraph);
const thirdParagraph = new aspose.slides.Paragraph();
thirdParagraph.getPortions().add(new aspose.slides.Portion());
thirdParagraph.getPortions().add(new aspose.slides.Portion());
thirdParagraph.getPortions().add(new aspose.slides.Portion());
textFrame.getParagraphs().add(thirdParagraph);
const paragraphCount = textFrame.getParagraphs().getCount();
for (let paragraphIndex = 0; paragraphIndex < paragraphCount; paragraphIndex++) {
const paragraph = textFrame.getParagraphs().get_Item(paragraphIndex);
const portionCount = paragraph.getPortions().getCount();
for (let portionIndex = 0; portionIndex < portionCount; portionIndex++) {
const portion = paragraph.getPortions().get_Item(portionIndex);
portion.setText("Portion " + (paragraphIndex + 1) + "." + (portionIndex + 1));
if (portionIndex === 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(java.newByte(aspose.slides.NullableBool.True));
portion.getPortionFormat().setFontHeight(15);
} else if (portionIndex === 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(java.newByte(aspose.slides.NullableBool.True));
portion.getPortionFormat().setFontHeight(18);
}
}
}
presentation.save("paragraphs_with_portions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Felsorolások és számozott listák létrehozása
Felsorolás vagy számozott lista létrehozása
A felsorolások és a számozás megkönnyíti a kapcsolódó elemek áttekintését. Az Aspose.Slides‑ben a lista beállításait a BulletFormat határozza meg.
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el a kívánt diát az indexén keresztül.
- Adjon hozzá egy AutoShape elemet a kiválasztott diához.
- Hozzáférés a forma TextFrame részéhez.
- Távolítsa el az alapértelmezett bekezdést a szövegdobozból.
- Hozzon létre egy Paragraph elemet egy szimbólum‑bullethez.
- Állítsa be a BulletFormat.setType értékét BulletType.Symbol-ra, és adja meg a bullet karaktert.
- Állítsa be a bekezdés szövegét, behúzását, bullet színét és magasságát.
- Adja hozzá a bekezdést a szövegdobozhoz.
- Hozzon létre egy második bekezdést, és állítsa be a BulletFormat.setType értékét BulletType.Numbered-ra.
- Konfigurálja a számozott bullet stílusát, majd adja hozzá a bekezdést a szövegdobozhoz.
- Mentse a prezentációt.
Ez a JavaScript példa szimbólum‑bulletet és számozott bulletet hoz létre:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
const textFrame = shape.getTextFrame();
textFrame.getParagraphs().clear();
const symbolParagraph = new aspose.slides.Paragraph();
symbolParagraph.setText("Welcome to Aspose.Slides");
symbolParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Symbol));
symbolParagraph.getParagraphFormat().getBullet().setChar(java.newChar(0x2022));
symbolParagraph.getParagraphFormat().setIndent(25);
symbolParagraph.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB);
symbolParagraph.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
symbolParagraph.getParagraphFormat().getBullet().setBulletHardColor(java.newByte(aspose.slides.NullableBool.True));
symbolParagraph.getParagraphFormat().getBullet().setHeight(100);
textFrame.getParagraphs().add(symbolParagraph);
const numberedParagraph = new aspose.slides.Paragraph();
numberedParagraph.setText("This is a numbered item");
numberedParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Numbered));
numberedParagraph.getParagraphFormat().getBullet().setNumberedBulletStyle(java.newByte(aspose.slides.NumberedBulletStyle.BulletCircleNumWDBlackPlain));
numberedParagraph.getParagraphFormat().setIndent(25);
numberedParagraph.getParagraphFormat().getBullet().getColor().setColorType(aspose.slides.ColorType.RGB);
numberedParagraph.getParagraphFormat().getBullet().getColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
numberedParagraph.getParagraphFormat().getBullet().setBulletHardColor(java.newByte(aspose.slides.NullableBool.True));
numberedParagraph.getParagraphFormat().getBullet().setHeight(100);
textFrame.getParagraphs().add(numberedParagraph);
presentation.save("bulleted_and_numbered_list.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Képes bullet használata
A képes bullet lehetővé teszi, hogy szimbólum vagy szám helyett egy egyéni képet használjon.
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el a kívánt diát az indexén keresztül.
- Adjon hozzá egy AutoShape elemet, majd férjen hozzá annak TextFrame részéhez.
- Távolítsa el az alapértelmezett bekezdést a szövegdobozból.
- Töltse be a bullet képet, és adja hozzá a prezentáció képgyűjteményéhez PPImage formájában.
- Hozzon létre egy Paragraph elemet, és állítsa be a szövegét.
- Állítsa be a BulletFormat.setType értékét BulletType.Picture-ra.
- A BulletFormat.getPicture segítségével rendelje hozzá a képet, és állítsa be a bullet magasságát.
- Adja hozzá a bekezdést a szövegdobozhoz.
- Mentse a módosított prezentációt.
Ez a JavaScript példa képes bulletet hoz létre:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const bulletImage = aspose.slides.Images.fromFile("image.png");
let presentationImage;
try {
presentationImage = presentation.getImages().addImage(bulletImage);
} finally {
bulletImage.dispose();
}
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
const textFrame = shape.getTextFrame();
textFrame.getParagraphs().clear();
const paragraph = new aspose.slides.Paragraph();
paragraph.setText("Welcome to Aspose.Slides");
paragraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Picture));
paragraph.getParagraphFormat().getBullet().getPicture().setImage(presentationImage);
paragraph.getParagraphFormat().getBullet().setHeight(100);
textFrame.getParagraphs().add(paragraph);
presentation.save("picture_bullet.pptx", aspose.slides.SaveFormat.Pptx);
presentation.save("picture_bullet.ppt", aspose.slides.SaveFormat.Ppt);
} finally {
presentation.dispose();
}
Többszintű lista létrehozása
A ParagraphFormat.setDepth beállításával helyezheti a bekezdéseket a lista különböző szintjeire. A felső szint mélysége 0.
- Hozzon létre egy Presentation elemet, és érje el egy diát.
- Adjon hozzá egy AutoShape elemet, majd törölje az alapértelmezett bekezdést a szövegdobozából.
- Hozzon létre négy bekezdést, és állítsa be a bullet szimbólumaikat.
- Állítsa be a ParagraphFormat.setDepth értékeit
0,1,2és3‑ra. - Adja hozzá a bekezdéseket a szövegdobozhoz, majd mentse a prezentációt.
Ez a JavaScript példa négy szintű felsorolást hoz létre:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
const textFrame = shape.getTextFrame();
textFrame.getParagraphs().clear();
const firstParagraph = new aspose.slides.Paragraph();
firstParagraph.setText("Content");
firstParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Symbol));
firstParagraph.getParagraphFormat().getBullet().setChar(java.newChar(0x2022));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.getParagraphFormat().setDepth(java.newShort(0));
const secondParagraph = new aspose.slides.Paragraph();
secondParagraph.setText("Second level");
secondParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Symbol));
secondParagraph.getParagraphFormat().getBullet().setChar(java.newChar(45));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
secondParagraph.getParagraphFormat().setDepth(java.newShort(1));
const thirdParagraph = new aspose.slides.Paragraph();
thirdParagraph.setText("Third level");
thirdParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Symbol));
thirdParagraph.getParagraphFormat().getBullet().setChar(java.newChar(0x2022));
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
thirdParagraph.getParagraphFormat().setDepth(java.newShort(2));
const fourthParagraph = new aspose.slides.Paragraph();
fourthParagraph.setText("Fourth level");
fourthParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Symbol));
fourthParagraph.getParagraphFormat().getBullet().setChar(java.newChar(45));
fourthParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
fourthParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
fourthParagraph.getParagraphFormat().setDepth(java.newShort(3));
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
textFrame.getParagraphs().add(thirdParagraph);
textFrame.getParagraphs().add(fourthParagraph);
presentation.save("multilevel_list.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Számozott lista elemeinek egyéni kezdőértéke
A BulletFormat.setNumberedBulletStartWith használatával állíthatja be a számozott bekezdés kezdeti számát.
- Hozzon létre egy Presentation elemet, és adjon egy AutoShape elemet egy diához.
- Törölje a forma szövegdobozából az alapértelmezett bekezdést.
- Hozzon létre három számozott bekezdést.
- Állítsa be a BulletFormat.setNumberedBulletStartWith értékeit
2,3és7‑re a megfelelő bekezdéseknél. - Adja hozzá a bekezdéseket a szövegdobozhoz, majd mentse a prezentációt.
Ez a JavaScript példa egyedi kezdőszámot rendel minden bekezdéshez:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 200, 400, 200);
const textFrame = shape.getTextFrame();
textFrame.getParagraphs().clear();
const firstParagraph = new aspose.slides.Paragraph();
firstParagraph.setText("Start at 2");
firstParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Numbered));
firstParagraph.getParagraphFormat().getBullet().setNumberedBulletStartWith(java.newShort(2));
textFrame.getParagraphs().add(firstParagraph);
const secondParagraph = new aspose.slides.Paragraph();
secondParagraph.setText("Start at 3");
secondParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Numbered));
secondParagraph.getParagraphFormat().getBullet().setNumberedBulletStartWith(java.newShort(3));
textFrame.getParagraphs().add(secondParagraph);
const thirdParagraph = new aspose.slides.Paragraph();
thirdParagraph.setText("Start at 7");
thirdParagraph.getParagraphFormat().getBullet().setType(java.newByte(aspose.slides.BulletType.Numbered));
thirdParagraph.getParagraphFormat().getBullet().setNumberedBulletStartWith(java.newShort(7));
textFrame.getParagraphs().add(thirdParagraph);
presentation.save("custom_numbered_list.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Bekezdéselrendezés és befejezési tulajdonságok vezérlése
Első sor behúzás beállítása
A ParagraphFormat.setIndent segítségével szabályozhatja egy bekezdés első sorának behúzását. Ez a metódus csak az első sort mozdítja el a bekezdés bal margójához képest. A pozitív érték jobbra tolja az első sort, míg a többi sor a bekezdés törzséhez igazodik.
A teljes bekezdés elmozgatásához használja a ParagraphFormat.setMarginLeft-t. Az első sor csak valódi eltolásához használja a ParagraphFormat.setIndent-et.
Az alábbi példa több bekezdést hoz létre, és különböző ParagraphFormat.setIndent értékeket alkalmaz, hogy bemutassa, hogyan befolyásolja az első sor behúzása a bekezdés elrendezését.
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el a céldiat.
- Adjon hozzá egy téglalap AutoShape elemet a diához.
- Hozzáférés a forma TextFrame részéhez, és távolítsa el az alapértelmezett bekezdést.
- Hozzon létre több bekezdést, és állítson be különböző ParagraphFormat.setIndent értékeket nekik.
- Adja hozzá a bekezdéseket a szövegdobozhoz.
- Mentse a módosított prezentációt.
Ez a kód megmutatja, hogyan állíthat be bekezdésbehúzást:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
const textFrame = shape.getTextFrame();
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().clear();
const firstParagraph = new aspose.slides.Paragraph();
firstParagraph.setText("No first-line indent. Wrapped lines start at the same position as the first line.");
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.getParagraphFormat().setMarginLeft(20);
firstParagraph.getParagraphFormat().setIndent(0);
const secondParagraph = new aspose.slides.Paragraph();
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().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
secondParagraph.getParagraphFormat().setMarginLeft(20);
secondParagraph.getParagraphFormat().setIndent(20);
const thirdParagraph = new aspose.slides.Paragraph();
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().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
thirdParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
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();
}
Az eredmény:

Függő behúzás beállítása
A függő behúzás egy olyan bekezdéselrendezés, ahol az első sor balra indul a többi sorhoz képest. Az Aspose.Slides‑ben ezt a hatást a ParagraphFormat.setIndent használatával érheti el. Negatív érték átadása a első sort balra tolja a bekezdés törzséhez képest.
Gyakorlatban a ParagraphFormat.setMarginLeft definiálja a bekezdés törzsének bal pozícióját, míg a ParagraphFormat.setIndent határozza meg az első sor helyzetét ehhez a margóhoz képest. Függő behúzás létrehozásához adjon meg pozitív értéket a setMarginLeft‑nek, és negatív értéket a setIndent‑nek.
Ez a formázás különösen hasznos bibliográfiák, hivatkozások, szószedetek és egyéb bekezdések esetén, ahol a sortörésű soroknak a bekezdés törzsének alá kell illeszkedniük, nem pedig az első sor első karakteréhez.
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el a céldiat.
- Adjon hozzá egy téglalap AutoShape elemet a diához.
- Hozzáférés a forma TextFrame részéhez, és távolítsa el az alapértelmezett bekezdést.
- Hozzon létre bekezdéseket, és minden bekezdésnél adjon meg pozitív értéket a ParagraphFormat.setMarginLeft‑nek.
- Adjon negatív értéket a ParagraphFormat.setIndent‑nek, hogy létrejöjjön a függő behúzás hatása.
- Adja hozzá a bekezdéseket a szövegdobozhoz.
- Mentse a módosított prezentációt.
Ez a kód megmutatja, hogyan állíthat be függő behúzást egy bekezdéshez:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 420, 220);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GRAY"));
const textFrame = shape.getTextFrame();
textFrame.getTextFrameFormat().setAutofitType(java.newByte(aspose.slides.TextAutofitType.Shape));
textFrame.getParagraphs().clear();
const firstParagraph = new aspose.slides.Paragraph();
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().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
firstParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
firstParagraph.getParagraphFormat().setMarginLeft(40);
firstParagraph.getParagraphFormat().setIndent(-20);
const secondParagraph = new aspose.slides.Paragraph();
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().getDefaultPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
secondParagraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
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();
}
Az eredmény:

Befejező bekezdés‑run tulajdonságok beállítása
A Paragraph.setEndParagraphPortionFormat szabályozza a bekezdés befejező jelének formázását. Az alábbi példa betűméretet és latin betűtípust állít be a második bekezdés befejező jelére:
- Hozzon létre vagy töltsön be egy Presentation elemet, és érje el egy diát.
- Adjon hozzá egy AutoShape elemet, és tisztítsa meg az alapértelmezett bekezdését.
- Hozzon létre két bekezdést, és adjon hozzá szövegrészeket.
- Hozzon létre egy PortionFormat objektumot a második bekezdés befejező jeléhez.
- Állítsa be a BasePortionFormat.setFontHeight és a BasePortionFormat.setLatinFont értékeket.
- Rendelje hozzá a formátumot a Paragraph.setEndParagraphPortionFormat‑el, és mentse a prezentációt.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 200, 250);
const textFrame = shape.getTextFrame();
textFrame.getParagraphs().clear();
const firstParagraph = new aspose.slides.Paragraph();
firstParagraph.getPortions().add(new aspose.slides.Portion("Sample text"));
const secondParagraph = new aspose.slides.Paragraph();
secondParagraph.getPortions().add(new aspose.slides.Portion("Sample text 2"));
const endParagraphFormat = new aspose.slides.PortionFormat();
endParagraphFormat.setFontHeight(48);
endParagraphFormat.setLatinFont(new aspose.slides.FontData("Times New Roman"));
secondParagraph.setEndParagraphPortionFormat(endParagraphFormat);
textFrame.getParagraphs().add(firstParagraph);
textFrame.getParagraphs().add(secondParagraph);
presentation.save("end_paragraph_format.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Bekezdés tartalom importálása és exportálása
HTML‑szöveg importálása bekezdésekbe
A ParagraphCollection.addFromHtml segítségével HTML‑kódolást alakíthat bekezdésekké és részekké egy szövegdobozban.
- Hozzon létre egy példányt a Presentation osztályból.
- Érje el egy diát, és adjon hozzá egy AutoShape elemet.
- Hozzáférés a forma TextFrame részéhez, és távolítsa el az alapértelmezett bekezdést.
- Definiálja vagy olvassa be a forrás HTML‑szöveget.
- Adja át a HTML‑szöveget a ParagraphCollection.addFromHtml-nek.
- Mentse a módosított prezentációt.
Ez a JavaScript példa HTML‑t importál egy szövegdobozba:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shapeWidth = presentation.getSlideSize().getSize().getWidth() - 20;
const shapeHeight = presentation.getSlideSize().getSize().getHeight() - 20;
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, shapeWidth, shapeHeight);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
shape.getTextFrame().getParagraphs().clear();
const html = "<p><b>Aspose.Slides</b> imports HTML text into presentation paragraphs.</p>";
shape.getTextFrame().getParagraphs().addFromHtml(html);
presentation.save("html_text.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Bekezdés szövegének exportálása HTML‑be
A ParagraphCollection.exportToHtml segítségével a bekezdések egy kiválasztott tartományát exportálhatja HTML‑ként.
- Hozzon létre vagy töltsön be egy Presentation példányt.
- Érje el a diát, és keresse meg a AutoShape elemet, amely a szöveget tartalmazza.
- Hozzáférés a forma TextFrame részéhez.
- Hívja meg a ParagraphCollection.exportToHtml‑t a kezdő bekezdés indexével és az exportálandó bekezdések számával.
- Írja a visszaadott HTML‑szöveget egy fájlba.
Ez az önálló JavaScript példa szöveges alakzatot hoz létre, majd az összes bekezdését exportálja:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const fs = require("fs");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const sourceShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 20, 400, 100);
const sourceTextFrame = sourceShape.getTextFrame();
sourceTextFrame.getParagraphs().clear();
for (const text of ["First paragraph", "Second paragraph", "Third paragraph"]) {
const sourceParagraph = new aspose.slides.Paragraph();
sourceParagraph.setText(text);
sourceTextFrame.getParagraphs().add(sourceParagraph);
}
const shape = slide.getShapes().get_Item(0);
if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) {
const textFrame = shape.getTextFrame();
if (textFrame !== null) {
const paragraphs = textFrame.getParagraphs();
const html = paragraphs.exportToHtml(0, paragraphs.getCount(), null);
fs.writeFileSync("paragraphs.html", html, "utf8");
} else {
console.log("The first shape does not contain a text frame.");
}
} else {
console.log("The first shape is not a text shape.");
}
} finally {
presentation.dispose();
}
Bekezdés renderelése képként
A Paragraph.getImage közvetlenül megjeleníti az egyes bekezdést, és egy IImage objektumot ad vissza. Az eredményt a IImage.save‑vel mentheti fájlba. Nem szükséges a környező alakzatot renderelni vagy a bitmapet manuálisan kivágni.
A Paragraph.getImage null‑t adhat vissza, ha a bekezdés nem található a szülőgyűjteményben, nincs érvényes renderelési határa, vagy nem renderelhető. Mentség előtt ellenőrizze az eredményt, és a használat után szabadítsa fel a visszakapott képet.
Bekezdés renderelése alapértelmezett méretezésben
Az alábbi szövegdoboz három bekezdést tartalmaz:

Az alábbi példa a második bekezdést egy szabályos szöveges alakzatban rendereli alapértelmezett méretezésben, és a kapott képet PNG formátumban menti. A finally blokk biztosítja a kép helyes felszabadítását.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const sourceShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 20, 400, 100);
const sourceTextFrame = sourceShape.getTextFrame();
sourceTextFrame.getParagraphs().clear();
for (const text of ["First paragraph", "Second paragraph", "Third paragraph"]) {
const sourceParagraph = new aspose.slides.Paragraph();
sourceParagraph.setText(text);
sourceTextFrame.getParagraphs().add(sourceParagraph);
}
const shape = slide.getShapes().get_Item(0);
if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) {
const textFrame = shape.getTextFrame();
if (textFrame !== null && textFrame.getParagraphs().getCount() > 1) {
const paragraph = textFrame.getParagraphs().get_Item(1);
const paragraphImage = paragraph.getImage();
if (paragraphImage !== null) {
try {
paragraphImage.save("paragraph.png", aspose.slides.ImageFormat.Png);
} finally {
paragraphImage.dispose();
}
} else {
console.log("The paragraph could not be rendered.");
}
} else {
console.log("The expected paragraph was not found.");
}
} else {
console.log("The first shape is not a text shape.");
}
} finally {
presentation.dispose();
}
Az eredmény:

Bekezdés renderelése táblázatcella‑szintű skálázással
Használja a Paragraph.getImage olyan overload‑ját, amely a scaleX és scaleY paramétereket fogadja, hogy beállítsa a vízszintes és függőleges skálafaktorokat. Az alábbi példa egy táblázatot hoz létre, a bekezdést az első cellájában a kép szélességénél és magasságánál kétszeresére skálázza, majd PNG képként menti az eredményt.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const scaleX = 2;
const scaleY = 2;
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const columnWidths = java.newArray("double", [300]);
const rowHeights = java.newArray("double", [80]);
const table = slide.getShapes().addTable(50, 50, columnWidths, rowHeights);
const paragraph = table.get_Item(0, 0).getTextFrame().getParagraphs().get_Item(0);
paragraph.setText("Text in a table cell");
const paragraphImage = paragraph.getImage(scaleX, scaleY);
if (paragraphImage !== null) {
try {
paragraphImage.save("table_paragraph.png", aspose.slides.ImageFormat.Png);
} finally {
paragraphImage.dispose();
}
} else {
console.log("The paragraph could not be rendered.");
}
} finally {
presentation.dispose();
}
Az 1 skálafaktor megtartja az adott tengely alapértelmezett pixelméretét. Például a 2 mindkét tényező esetén a kép szélessége és magassága megközelítőleg kétszeres lesz, ami néggyszeres pixel számot eredményez. A nagyobb tényezők általában élesebb szöveget adnak nagyításhoz vagy nagy felbontású kimenethez, de növelik a memóriahasználatot és a fájlméretet. Az 1‑nél kisebb tényezők kisebb, kevésbé részletgazdag képeket hoznak létre. Az egyenlő tényezők megtartják a bekezdés képarányát; a különböző vízszintes és függőleges tényezők önállóan nyújtják a képet.
A teljes alakzat renderelése a Shape.getImage‑val akkor hasznos, ha a kimenetnek tartalmaznia kell az alakzat kitöltését, keretét vagy egyéb vizuális kontextusát. Csak bekezdés‑képhez használja a Paragraph.getImage‑t.
GYIK
Teljesen le tudom tiltani a sortörést egy szövegdobozon belül?
Igen. Állítsa a TextFrameFormat.setWrapText értékét a törés letiltásához, így a sorok nem törnek meg a szövegdoboz szélein.
Hogyan kaphatom meg egy adott bekezdés pontos dián belüli határait?
Használja a Paragraph.getRect metódust a bekezdés határoló téglalapjának lekéréséhez. A Portion.getRect egy adott rész határait adja vissza.
Hol van szabályozva a bekezdés igazítása (balra, jobbra, középre vagy sorkizárás)?
A ParagraphFormat.setAlignment bekezdés‑szintű beállítás, amely a teljes bekezdésre vonatkozik, függetlenül az egyes részek formázásától.
Be tudok-e állítani nyelvi ellenőrzést a bekezdés egy részére?
Igen. Állítsa be a BasePortionFormat.setLanguageId értékét az egyes részeknél, így egy bekezdés több nyelven is tartalmazhat szöveget.