PowerPoint tinta objektumok kezelése JavaScriptben
Bevezetés
A PowerPoint egy tinta funkciót biztosít, amely lehetővé teszi, hogy szabad formájú vonalakat rajzolj. A tinta használható más objektumok kiemelésére, kapcsolatok és folyamatok megjelenítésére, valamint a dián lévő konkrét elemek figyelemfelkeltésére.
Az Aspose.Slides biztosítja a tintával kapcsolatos objektumok kezeléséhez szükséges típusokat. Például a Ink osztály egy tintát jelképez egy dián.
Különbségek a szokásos objektumok és a tinta objektumok között
A PowerPoint diákon lévő objektumokat általában alakzatobjektumok képviselik. Egyszerű formájukban egy alakzat egy tároló, amely meghatározza az objektum területét (keretét) a méret, forma és háttér tulajdonságokkal együtt. További információkért lásd a Shape Layout Format szekciót.
Azonban amikor a PowerPoint egy tinta objektumot kezel, figyelmen kívül hagyja az objektum keretének (tárolójának) minden tulajdonságát, kivéve annak méretét. A tároló terület mérete a szabványos Shape.getWidth és Shape.getHeight metódusok által van meghatározva:

Tintavonalak
Egy tintavonal egy alapvető elem, amely a toll útvonalát rögzíti, amikor a felhasználó digitális tintát ír. A vonal egy összekapcsolt pontsorozatot tárol.
A kódolás legegyszerűbb formája minden mintapont X és Y koordinátáit adja meg. Ha az összekapcsolt pontok megjelennek, egy ilyen képet kapunk:

Ecset tulajdonságok a rajzoláshoz
Az ecsetet arra használják, hogy vonalakat rajzoljanak, amelyek összekötik a tintavonal pontjait. Az ecset saját színnel és mérettel rendelkezik, amelyet a InkBrush.getColor és a InkBrush.getSize metódusok képviselnek.
Ecset színének beállítása
Ez a JavaScript‑kód bemutatja, hogyan lehet beállítani egy tinta ecset színét:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("pres.pptx");
try {
const slide = presentation.getSlides().get_Item(0);
const ink = slide.getShapes().get_Item(0);
const brush = ink.getTraces()[0].getBrush();
const red = java.getStaticFieldValue("java.awt.Color", "RED");
brush.setColor(red);
} finally {
presentation.dispose();
}
Ecset méretének beállítása
Ez a JavaScript‑kód bemutatja, hogyan lehet beállítani egy tinta ecset méretét:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("pres.pptx");
try {
const slide = presentation.getSlides().get_Item(0);
const ink = slide.getShapes().get_Item(0);
const brush = ink.getTraces()[0].getBrush();
const brushSize = java.newInstanceSync("java.awt.Dimension", 5, 10);
brush.setSize(brushSize);
} finally {
presentation.dispose();
}
Általában egy ecset szélessége és magassága nem egyezik, ezért a PowerPoint nem jeleníti meg az ecset méretét (a megfelelő adatmező szürkén van). Ha az ecset szélessége és magassága egyezik, a PowerPoint a méretét így jeleníti meg:

Az átláthatóság kedvéért növeljük meg a tinta objektum magasságát, és tekintsük át a fontos méreteket:

A tároló (keret) nem veszi figyelembe az ecsetek méretét – mindig azt feltételezi, hogy a vonalvastagság nulla (lásd a korábbi képet).
Ezért a teljes tinta objektum látható területének meghatározásához figyelembe kell venni a vonalak ecsetméretét. Itt a célobjektum (a kézírásos szövegvonal) a tároló (keret) méretéhez lett skálázva. Amikor a tároló mérete változik, az ecset mérete állandó marad, és fordítva.

A PowerPoint hasonló viselkedést alkalmaz a szövegobjektumokra:

Tintajelen megjelenés vezérlése exportálás és renderelés során
Az Aspose.Slides a InkOptions osztályt biztosítja a tinta objektumok exportált vagy renderelt kimenetben való megjelenésének szabályozásához. A tulajdonságait használhatja a tinta teljes elrejtésére vagy a tinta ecset maszk műveletek értelmezésének módosítására.
A tinta beállítások a különböző kimeneti típusok export‑ vagy renderelési beállításaiban érhetők el:
| Kimenet | Tintabeállítások tulajdonsága |
|---|---|
PdfOptions.getInkOptions |
|
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Slide image | RenderingOptions.getInkOptions |
Az alábbi InkOptions metódusok ugyanazokat a két beállítást exponálják:
- InkOptions.getHideInk határozza meg, hogy a tinta objektumok szerepelnek-e a kimenetben. Alapértelmezett értéke
false. - InkOptions.getInterpretMaskOpAsOpacity határozza meg, hogy egy maszk műveletet átlátszóságként értelmezzen‑e egy tinta ecset renderelésekor. Alapértelmezett értéke
true; a InkOptions.setInterpretMaskOpAsOpacity hívásafalseértékkel a ROP műveletet használja helyette.
Tintobjektumok elrejtése PDF kimenetben
Alapértelmezés szerint a tinta objektumok láthatóak maradnak exportáláskor. Egy tiszta kimenethez, amely nem tartalmaz kézírásos megjegyzéseket vagy más tinta tartalmat, hívja meg a InkOptions.setHideInk metódust true értékkel.
Az alábbi JavaScript‑példa PDF‑re exportál egy prezentációt, miközben elrejti az összes tinta objektumot:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Tintobjektumok elrejtése dia kép renderelésekor
A tinta objektumok elrejtéséhez, amikor a diákat bitmap képként rendereli, állítsa be a RenderingOptions.getInkOptions beállítást, és adja át a renderelési opciókat a Slide.getImage metódusnak.
Az alábbi JavaScript‑példa az első diát PNG‑képként rendereli tintobjektumok nélkül:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const renderingOptions = new aspose.slides.RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
const slide = presentation.getSlides().get_Item(0);
const image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", aspose.slides.ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Tint maszk renderelésének vezérlése
A InkOptions.getInterpretMaskOpAsOpacity beállítás szabályozza, hogyan értelmeződnek a maszk műveletek tintacseppek renderelésekor. Alapértelmezett értéke true, ami átlátszóságot használ. A ROP művelet használatához hívja meg a InkOptions.setInterpretMaskOpAsOpacity metódust false értékkel.
Az alábbi JavaScript‑példa egy diát SVG‑re exportál, és ROP‑alapú renderelést alkalmaz a tinta maszk műveletekhez:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const svgOptions = new aspose.slides.SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
const outputStream = java.newInstanceSync("java.io.FileOutputStream", "slide.svg");
try {
const slide = presentation.getSlides().get_Item(0);
slide.writeAsSvg(outputStream, svgOptions);
} finally {
outputStream.close();
}
} finally {
presentation.dispose();
}
Ugyanaz a beállítás alkalmazható a TiffOptions.getInkOptions segítségével, amikor egy prezentációt exportál vagy egy diát TIFF‑re renderel.
Válassza ki, hogy elrejtse vagy megőrizze a tintát
Ha egy annotált prezentáció tiszta változatát szeretné terjeszteni, hívja meg a InkOptions.setHideInk metódust true értékkel exportáláskor.
Hagyja a InkOptions.getHideInk értékét false‑on, ha a tinta megjegyzések a kívánt tartalom részei, például felülvizsgálati megjegyzések, kézírásos jegyzetek, kiemelések vagy rajzok, melyeknek láthatónak kell maradniuk az exportált eredményben. Ez lehetővé teszi az alkalmazások számára, hogy ugyanabból a prezentációból külön felülvizsgálati és végleges kimeneteket generáljanak a forrás tinta objektumok módosítása nélkül.
GYIK
Megváltoztathatom egy meglévő tintavonal színét vagy méretét?
Igen. Szerezze meg a vonalat a Ink.getTraces metódussal, majd változtassa meg a InkTrace.getBrush értékét. Hívja meg az InkBrush.setColor vagy az InkBrush.setSize metódust az ecset módosításához.
A tinta elrejtése módosítja a forrás prezentációt?
Nem. A InkOptions.setHideInk hívása csak a renderelt vagy exportált eredményt érinti; nem távolítja el vagy módosítja a tinta objektumokat a forrás prezentációban.
Mely export formátumok támogatják a tintabeállításokat?
A tinta beállításokat a PDF, HTML, SVG, TIFF és bitmap diakép exportálási vagy renderelési beállításaiban konfigurálhatja a fenti táblázat szerint.
További olvasnivalók
- Általános alakzatok leírásáért lásd a PowerPoint Shapes szekciót.
- A hatékony értékekkel kapcsolatban lásd a Shape Effective Properties dokumentációt.
- A PDF export részleteiért lásd a Convert PPT and PPTX to PDF útmutatót.
- A HTML export részleteiért lásd a Convert PowerPoint Presentations to HTML útmutatót.
- Az SVG export részleteiért lásd a Render Presentation Slides as SVG Images útmutatót.
- A TIFF export részleteiért lásd a Convert PowerPoint Presentations to TIFF útmutatót.
- A diák képpé konvertálásának részleteiért lásd a Convert Presentation Slides to Images útmutatót.