Prezentációs alakzatok bélyegképeinek létrehozása Java-ban
Bevezetés
Az Aspose.Slides for Java használható prezentációs fájlok létrehozására, ahol minden oldal egy diát jelent. A diák megtekinthetők a prezentációs fájlok Microsoft PowerPoint-ban történő megnyitásával. Bizonyos esetekben a fejlesztőknek azonban külön képnézőben kell megtekinteniük a alakzatok képeit. Ilyenkor az Aspose.Slides for Java segít a diák alakzatainak bélyegképének előállításában.
Ez a cikk bemutatja, hogyan generálhatók a dia bélyegképek különböző módokon:
- Alakzat bélyegképének generálása egy dián belül.
- Alakzat bélyegképének generálása felhasználó által meghatározott méretekkel a dia alakzata számára.
- Alakzat bélyegképének generálása az alakzat megjelenésének határain belül.
Alakzat bélyegképének generálása diáról
Az Aspose.Slides for Java használatával egy bármelyik diáról történő alakzat bélyegkép generálásához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diára a hivatkozást az ID vagy index használatával.
- Az alakzat bélyegképének lekérése a hivatkozott diáról alapértelmezett méretezésben.
- Mentse el a bélyegképet a kívánt képformátumban.
Ez a mintakód bemutatja, hogyan generálhat alakzat bélyegképet egy diáról:
// Példányosít egy Presentation osztályt, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Hozzon létre egy teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
// Mentse a képet a lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Felhasználó által meghatározott méretezési tényezővel rendelkező bélyegkép generálása
Az Aspose.Slides for Java használatával egy dia alakzatának bélyegképének generálásához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diára a hivatkozást az ID vagy index használatával.
- A forma bélyegképének lekérése a hivatkozott diáról felhasználó által meghatározott méretekkel.
- Mentse el a bélyegképet a kívánt képformátumban.
Ez a mintakód bemutatja, hogyan generálhat egy alakzat bélyegképet a meghatározott méretezési tényező alapján:
// Példányosít egy Presentation osztályt, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Hozzon létre egy teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Shape, 1, 1);
// Mentse a képet a lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Határokon alapuló alakzat megjelenés bélyegkép létrehozása
Ez a módszer a formák bélyegképeinek létrehozására lehetővé teszi a fejlesztők számára, hogy a forma megjelenésének határain belül előállítsanak bélyegképet. Figyelembe veszi az összes formahatást. Az előállított forma bélyegképét a dia határai korlátozzák. A dia forma bélyegképének a megjelenés határain belül történő generálásához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diára a hivatkozást az ID vagy index használatával.
- Szerezze meg a hivatkozott dia bélyegképét a forma határainak megjelenésként való használatával.
- Mentse el a bélyegképet a kívánt képformátumban.
Ez a mintakód a fenti lépések alapján készült:
// Példányosít egy Presentation osztályt, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Hozzon létre egy teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Appearance, 1, 1);
// Mentse a képet a lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
A forma tényleges vizuális határainak lekérése
IShape keret tulajdonságai—a getX(), getY(), getWidth() és getHeight() metódusai—leírják a prezentáció modellben tárolt téglalapot. Az a tartalom, amely ténylegesen megjelenik, kiterjedhet a kereten túlra, vagy egy másik tengelyre igazított téglalapot foglalhat el. A forgatás, körvonalak, nyílfejek, szöveg elrendezés és túlcsordulás, a generált SmartArt geometria és egyéb renderelési hatások mind módosíthatják a lefedett területet.
Használja a Shape.getVisualBounds metódust, hogy kiszámítsa azt a lefedett területet anélkül, hogy képet hozna létre. A metódus egy Rectangle2D.Float objektumot ad vissza dia koordinátákban. A visszaadott téglalap nincs vágva a diára, így koordinátái negatívak lehetnek, ha a tartalom a dia kiindulópontja túlra terjed.
Shape.getVisualBounds jelenleg nincs deklarálva az IShape felületen. Ezért a diák alakzatelőállításából származó alakzatot interfacéként tartsa meg, és csak a metódus hívásakor végezzen cast-ot.
A következő példa lekéri és összehasonlítja a keret és a vizuális határokat:
Presentation presentation = new Presentation("example.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IShape shape = slide.getShapes().get_Item(0);
Rectangle2D.Float visualBounds = ((Shape) shape).getVisualBounds();
Rectangle2D.Float frameBounds = new Rectangle2D.Float(
shape.getX(), shape.getY(), shape.getWidth(), shape.getHeight());
System.out.println("Frame bounds: " + frameBounds);
System.out.println("Visual bounds: " + visualBounds);
} finally {
presentation.dispose();
}
A same Rectangle2D.Float használható a közeli alakzatok balra, jobbra, felül vagy alul lévő szélhez való igazításához; elegendő hely lefoglalásához egy generált elrendezésben; vagy a megengedett területen kívül eső tartalom észlelésére. A vizuális határok különösen hasznosak a SmartArt, szövegdobozok, nyilak, képek, forgatott alakzatok és csoportos alakzatok esetén, ahol a tárolt keret nem tükrözi a teljes renderelt eredményt.
Használja a Shape.getVisualBounds metódust, ha elrendezéshez vagy ellenőrzéshez koordinátákra van szüksége, és nem szükséges bitmap. Használja az IShape.getImage metódust, ha a forma renderelése szükséges. A ShapeThumbnailBounds esetén a ShapeThumbnailBounds.Shape a kép méretét a forma határainak figyelembe vételével állítja be, beleértve a körvonal beállításokat, míg a ShapeThumbnailBounds.Appearance a forma megjelenéséből méretezi a képet, és a diára korlátozza az eredményt. Ezzel szemben a Shape.getVisualBounds csak a kiszámított téglalapot adja vissza, és nem vágja le a diára.
GYIK
Milyen képformátumok használhatók a forma bélyegképek mentésekor?
PNG, JPEG, BMP, GIF, TIFF, és mások. Az alakzatok vektor SVG‑ként is exportálhatók a forma tartalmának SVG‑ként történő mentésével.
Mi a különbség a Shape és az Appearance határok között a bélyegkép renderelésekor?
Shape a forma geometriáját használja; Appearance a vizuális hatásokat (árnyékok, ragyogás stb.) veszi figyelembe.
Mi történik, ha egy alakzat rejtettnek van jelölve? Még mindig generál-e bélyegképet?
A rejtett alakzat továbbra is része a modellnek, és renderelhető; a rejtett jelző a diavetítés megjelenését befolyásolja, de nem akadályozza meg a forma képének előállítását.
Támogatottak a csoportos alakzatok, diagramok, SmartArt és más összetett objektumok?
Igen. Bármely, Shape‑ként reprezentált objektum (beleértve a GroupShape, a Chart és a SmartArt elemeket) menthető bélyegképként vagy SVG‑ként.
A rendszerben telepített betűtípusok befolyásolják a szöveg alakzatok bélyegképeinek minőségét?
Igen. Ajánlott a szükséges betűtípusokat biztosítani (vagy betűtípus helyettesítéseket konfigurálni), hogy elkerülje a nem kívánt helyettesítéseket és a szöveg újrarendeződését.