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:

ink_powerpoint1

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:

ink_powerpoint2

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:

ink_powerpoint3

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:

ink_powerpoint4

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.

ink_powerpoint5

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

ink_powerpoint6

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
PDF 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:

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