Správa inkových objektů prezentace v Javě
Úvod
PowerPoint poskytuje funkci ink, která umožňuje kreslit volně tvarované tahy. Ink lze použít k zvýraznění jiných objektů, zobrazení spojení a procesů a upoutání pozornosti na konkrétní položky na snímku.
Aspose.Slides poskytuje typy potřebné k práci s objekty ink. Například rozhraní IInk 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šší podobě je tvar kontejner, který definuje oblast samotného objektu (jeho rámec) spolu s vlastnostmi, jako je velikost kontejneru, tvar a pozadí. Další informace najdete v Shape Layout Format.
Nicméně když PowerPoint zpracovává objekt ink, ignoruje všechny vlastnosti rámce objektu (kontejneru) s výjimkou jeho velikosti. Velikost oblasti kontejneru je určena standardními metodami IShape.getWidth a IShape.getHeight:

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

Vlastnosti štětce pro kreslení
Štětec se používá k vykreslení čar, které spojují body inkové stopy. Štětec má vlastní barvu a velikost, reprezentované metodami IInkBrush.getColor a IInkBrush.getSize.
Nastavení barvy štětce Ink
Tento Java kód ukazuje, jak nastavit barvu štětce ink:
import com.aspose.slides.*;
import java.awt.Color;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
brush.setColor(Color.RED);
} finally {
presentation.dispose();
}
Nastavení velikosti štětce Ink
Tento Java kód ukazuje, jak nastavit velikost štětce ink:
import com.aspose.slides.*;
import java.awt.Dimension;
Presentation presentation = new Presentation("pres.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IInk ink = (IInk) slide.getShapes().get_Item(0);
IInkBrush brush = ink.getTraces()[0].getBrush();
Dimension brushSize = new 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 (odpovídající sekce dat je šedá). Když se šířka a výška štětce shodují, PowerPoint zobrazí jeho velikost takto:

Pro přehlednost zvýšíme výšku inkového objektu 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 nulová (viz předchozí obrázek).
Proto je pro určení viditelné oblasti celého inkového objektu třeba zohlednit velikost štětce jeho stop. Zde byl cílový objekt (stopa ručně psaného textu) škálován na velikost kontejneru (rámce). Když se velikost kontejneru změní, velikost štětce zůstane konstantní a naopak.

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

Řízení vzhledu ink při exportu a renderování
Aspose.Slides poskytuje rozhraní IInkOptions k řízení toho, jak se inkové objekty zobrazují v exportovaném nebo renderovaném výstupu. Jeho vlastnosti můžete použít k úplnému skrytí ink nebo ke změně interpretace operací masky štětce ink.
Ink možnosti jsou k dispozici prostřednictvím exportních nebo renderovacích možností pro několik typů výstupu:
| Výstup | Vlastnost ink možností |
|---|---|
PdfOptions.getInkOptions |
|
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Slide image | RenderingOptions.getInkOptions |
Následující metody IInkOptions odhalují stejné dva nastavení:
- IInkOptions.getHideInk určuje, zda jsou objekty ink zahrnuty ve výstupu. Jeho výchozí hodnota je
false. - IInkOptions.getInterpretMaskOpAsOpacity určuje, zda je masková operace interpretována jako opacity při renderování štětce ink. Jeho výchozí hodnota je
true; zavolejte IInkOptions.setInterpretMaskOpAsOpacity sfalsepro použití ROP operace místo toho.
Skrytí objektů ink ve výstupu PDF
Ve výchozím nastavení zůstávají inkové objekty při exportu viditelné. Pro vytvoření čistého výstupu bez ručně psaných poznámek nebo jiného inkového obsahu zavolejte IInkOptions.setHideInk s true.
Následující Java příklad exportuje prezentaci do PDF při skrytí všech inkových objektů:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Skrytí objektů ink při renderování snímku jako obrázku
Pro skrytí inkových objektů při renderování snímků jako bitmapových obrázků nakonfigurujte RenderingOptions.getInkOptions a předávejte renderovací možnosti do ISlide.getImage.
Následující Java příklad vykresluje první snímek jako PNG obrázek bez inkových objektů:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Řízení renderování masky ink
Nastavení IInkOptions.getInterpretMaskOpAsOpacity řídí, jak jsou maskové operace interpretovány při renderování inkových štětců. Výchozí hodnota je true, což používá opacity. Pro použití ROP operace místo toho zavolejte IInkOptions.setInterpretMaskOpAsOpacity s false.
Následující Java příklad exportuje snímek do SVG a používá renderování založené na ROP pro operace masky ink:
import com.aspose.slides.*;
import java.io.FileOutputStream;
import java.io.IOException;
Presentation presentation = new Presentation("presentation.pptx");
try {
SVGOptions svgOptions = new SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
FileOutputStream stream = new FileOutputStream("slide.svg");
ISlide slide = presentation.getSlides().get_Item(0);
slide.writeAsSvg(stream, svgOptions);
} finally {
presentation.dispose();
}
Stejné nastavení lze použít přes TiffOptions.getInkOptions při exportu prezentace nebo renderování snímku 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 IInkOptions.setHideInk s true.
Nechte IInkOptions.getHideInk na jeho výchozí hodnotě false, když jsou inkové 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 viditelné ve výstupu. To umožňuje aplikacím generovat samostatné recenzní a finální výstupy ze stejné prezentace bez úpravy zdrojových inkových objektů.
FAQ
Mohu změnit barvu nebo velikost existujícího tahu ink?
Ano. Získejte stopu pomocí IInk.getTraces, poté změňte její IInkTrace.getBrush. Zavolejte IInkBrush.setColor nebo IInkBrush.setSize pro změnu štětce.
Mění skrytí ink zdrojovou prezentaci?
Ne. Volání IInkOptions.setHideInk ovlivňuje pouze renderovaný nebo exportovaný výsledek; neodstraňuje ani nemodifikuje inkové objekty ve zdrojové prezentaci.
Které exportní formáty podporují možnosti ink?
Možnosti ink můžete konfigurovat pro PDF, HTML, SVG, TIFF a bitmapové snímky přes odpovídající exportní nebo renderovací možnosti uvedené výše.
Další informace
- Pro čtení o tvarech obecně, viz sekci PowerPoint Shapes.
- Pro více informací o efektivních hodnotách, viz Shape Effective Properties.
- Pro podrobnosti o exportu do PDF, viz Convert PPT and PPTX to PDF.
- Pro podrobnosti o exportu do HTML, viz Convert PowerPoint Presentations to HTML.
- Pro podrobnosti o exportu do SVG, viz Render Presentation Slides as SVG Images.
- Pro podrobnosti o exportu do TIFF, viz Convert PowerPoint Presentations to TIFF.
- Pro podrobnosti o renderování snímku do obrázku, viz Convert Presentation Slides to Images.