Správa objektů ink v PowerPointu v JavaScriptu
Úvod
PowerPoint poskytuje funkci ink, která vám umožňuje kreslit volné tahy. Ink lze použít k zvýraznění dalších objektů, zobrazení spojení a procesů a upoutání pozornosti na konkrétní položky na snímku.
Aspose.Slides poskytuje typy potřebné pro práci s objekty ink. Například třída Ink představuje objekt ink na snímku.
Rozdíly mezi běžnými objekty a objekty ink
Objekty na snímku PowerPointu jsou typicky reprezentovány objekty tvaru. V nejjednodušší formě je tvar kontejner, který definuje oblast samotného objektu (jeho rámec) spolu s vlastnostmi, jako je velikost, tvar a pozadí kontejneru. Další informace najdete v Shape Layout Format.
Nicméně, když PowerPoint pracuje s objektem ink, ignoruje všechny vlastnosti rámce objektu (kontejneru) kromě jeho velikosti. Velikost oblastí kontejneru je určena standardními metodami Shape.getWidth a Shape.getHeight :

Ink stopy
Ink stopa je základní prvek používaný k zaznamenání trajektorie pera, když uživatel píše digitální ink. Stopu ukládá sekvenci propojených bodů.
Nejjednodušší forma kódování určuje souřadnice X a Y každého vzorkovacího bodu. Když jsou všechny propojené body vykresleny, vytvoří obrázek jako tento:

Vlastnosti štětce pro kreslení
Štětec se používá k vykreslování čar, které spojují body ink stopy. Štětec má vlastní barvu a velikost, reprezentované metodami InkBrush.getColor a InkBrush.getSize .
Nastavení barvy ink štětce
This JavaScript code shows how to set the color of an ink brush:
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();
}
Nastavení velikosti ink štětce
This JavaScript code shows how to set the size of an ink brush:
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();
}
Obecně šířka a výška štětce neodpovídají, takže PowerPoint nezobrazuje velikost štětce (příslušná část dat je šedá). Když se šířka a výška štětce shodují, PowerPoint zobrazí jeho velikost takto:

Pro přehlednost zvýšíme výšku objektu ink a podíváme se na důležité rozměry:

Kontejner (rámec) nebere v úvahu velikost štětců – vždy předpokládá, že tloušťka čáry je nula (viz předchozí obrázek).
Proto, aby bylo možné určit viditelnou oblast celého objektu ink, je třeba zohlednit velikost štětce jeho stop. Zde byl cílový objekt (stopa ručně psaného textu) přizpůsoben velikosti kontejneru (rámce). Když se změní velikost kontejneru, velikost štětce zůstává konstantní a naopak.

PowerPoint používá podobné chování pro textové objekty:

Řízení vzhledu ink při exportu a vykreslování
Aspose.Slides poskytuje třídu InkOptions, která umožňuje ovládat, jak se objekty ink zobrazují v exportovaném nebo vykresleném výstupu. Její vlastnosti můžete použít k úplnému skrytí ink nebo ke změně interpretace operací masky štětce ink.
Možnosti ink jsou k dispozici prostřednictvím možností exportu nebo vykreslování pro několik typů výstupu:
| Výstup | Vlastnost InkOptions |
|---|---|
PdfOptions.getInkOptions |
|
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Slide image | RenderingOptions.getInkOptions |
Následující metody InkOptions odhalují stejné dvě nastavení:
- InkOptions.getHideInk určuje, zda jsou objekty ink zahrnuty do výstupu. Výchozí hodnota je
false. - InkOptions.getInterpretMaskOpAsOpacity určuje, zda je operace masky interpretována jako průhlednost při vykreslování štětce ink. Výchozí hodnota je
true; zavolejte InkOptions.setInterpretMaskOpAsOpacity sfalsepro použití operace ROP místo toho.
Skrytí objektů ink v PDF výstupu
Ve výchozím nastavení jsou objekty ink během exportu viditelné. Pro vytvoření čistého výstupu bez ručně psaných anotací nebo jiného ink obsahu zavolejte InkOptions.setHideInk s true.
Následující příklad JavaScriptu exportuje prezentaci do PDF a přitom skryje všechny objekty ink:
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();
}
Skrytí objektů ink při vykreslování snímku jako obrázku
Pro skrytí objektů ink při vykreslování snímků jako bitmapových obrázků nakonfigurujte RenderingOptions.getInkOptions a předložte možnosti vykreslování metodě Slide.getImage.
Následující příklad JavaScriptu vykreslí první snímek jako PNG obrázek bez objektů ink:
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();
}
Řízení vykreslování ink masky
Nastavení InkOptions.getInterpretMaskOpAsOpacity řídí, jak jsou operace masky interpretovány při vykreslování štětců ink. Výchozí hodnota je true, což používá průhlednost. Pro použití operace ROP místo toho zavolejte InkOptions.setInterpretMaskOpAsOpacity s false.
Následující příklad JavaScriptu exportuje snímek do SVG a používá vykreslování založené na ROP pro operace ink masky:
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();
}
Stejné nastavení lze použít prostřednictvím TiffOptions.getInkOptions když exportujete prezentaci nebo vykreslujete snímek do TIFF.
Zvolte, zda skrýt nebo zachovat ink
Když potřebujete čistou verzi anotované prezentace k distribuci bez recenzních značek, zavolejte během exportu InkOptions.setHideInk s true.
Ponechte InkOptions.getHideInk na výchozí hodnotě false, když jsou ink anotace součástí zamýšleného obsahu, například recenzní komentáře, ručně psané poznámky, zvýraznění nebo kresby, které mají zůstat ve výsledném exportu viditelné. To umožňuje aplikacím vytvořit samostatné recenzní a finální výstupy ze stejné prezentace bez úpravy zdrojových objektů ink.
Často kladené otázky
Mohu změnit barvu nebo velikost existujícího ink tahu?
Ano. Získejte stopu pomocí Ink.getTraces a poté změňte její InkTrace.getBrush. Zavolejte InkBrush.setColor nebo InkBrush.setSize a změňte štětec.
Mění skrytí ink zdrojovou prezentaci?
Ne. Zavolání InkOptions.setHideInk ovlivní pouze výsledný vykreslený nebo exportovaný výstup; neodstraní ani neupraví objekty ink ve zdrojové prezentaci.
Které exportní formáty podporují možnosti ink?
Můžete nastavit možnosti ink pro PDF, HTML, SVG, TIFF a bitmapové obrázky snímků prostřednictvím odpovídajících možností exportu nebo vykreslování uvedených výše.
Další čtení
- Pro obecné informace o tvarech viz sekce PowerPoint Shapes.
- Pro více informací o efektivních hodnotách viz Shape Effective Properties.
- Pro podrobnosti o exportu PDF viz Convert PPT and PPTX to PDF.
- Pro podrobnosti o exportu HTML viz Convert PowerPoint Presentations to HTML.
- Pro podrobnosti o exportu SVG viz Render Presentation Slides as SVG Images.
- Pro podrobnosti o exportu TIFF viz Convert PowerPoint Presentations to TIFF.
- Pro podrobnosti o vykreslování snímku do obrázku viz Convert Presentation Slides to Images.