Hantera presentationsinkobjekt i JavaScript
Introduktion
PowerPoint innehåller en bläckfunktion som låter dig rita fria penseldrag. Bläck kan användas för att framhäva andra objekt, visa kopplingar och processer samt rikta uppmärksamhet mot specifika element på en bild.
Aspose.Slides tillhandahåller de typer som behövs för att arbeta med bläckobjekt. Till exempel representerar klassen Ink ett bläckobjekt på en bild.
Skillnader mellan vanliga objekt och bläckobjekt
Objekt på en PowerPoint‑bild representeras vanligtvis av formobjekt. I sin enklaste form är en form en behållare som definierar objektets område (dess ram) tillsammans med egenskaper som behållarens storlek, form och bakgrund. För mer information, se Shape Layout Format.
När PowerPoint däremot hanterar ett bläckobjekt ignorerar det alla egenskaper för objektets ram (behållare) förutom dess storlek. Storleken på behållarområdet bestäms av de standardmetoder Shape.getWidth och Shape.getHeight .

Bläckspår
Ett bläckspår är ett grundelement som används för att registrera en pennas bana när en användare skriver digitalt bläck. Ett spår lagrar en sekvens av sammankopplade punkter.
Den enklaste formen av kodning anger X‑ och Y‑koordinaterna för varje sampelpunk. När alla anslutna punkter renderas får man en bild som denna:

Pensel egenskaper för ritning
En pensel används för att rita linjer som kopplar ihop punkterna i ett bläckspår. Penseln har sin egen färg och storlek, representerade av metoderna InkBrush.getColor och InkBrush.getSize.
Ange bläckpenselns färg
Denna JavaScript‑kod visar hur du anger färgen på en bläckpensel:
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();
}
Ange bläckpenselns storlek
Denna JavaScript‑kod visar hur du anger storleken på en bläckpensel:
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();
}
Vanligtvis matchar inte en pensels bredd och höjd, så PowerPoint visar inte penselns storlek (den motsvarande datasektionen är grå markerad). När penselns bredd och höjd matchar visar PowerPoint storleken på följande sätt:

För tydlighetens skull, låt oss öka höjden på bläckobjektet och granska de viktiga dimensionerna:

Behållaren (ramen) tar inte hänsyn till penslarnas storlek – den antar alltid att linjetjockleken är noll (se föregående bild).
Därför måste penselns storlek för dess spår tas med i beräkningen för att avgöra det synliga området för hela bläckobjektet. Här har målobjektet (det handskrivna textspåret) skalats till behållarens (ramens) storlek. När behållarens storlek ändras förblir penselns storlek konstant, och tvärtom.

PowerPoint använder liknande beteende för textobjekt:

Styr bläckens utseende vid export och rendering
Aspose.Slides tillhandahåller klassen InkOptions för att styra hur bläckobjekt visas i exporterat eller renderat resultat. Du kan använda dess egenskaper för att dölja bläck helt eller ändra hur maskoperationer för bläckpenslar tolkas.
Bläckalternativ finns tillgängliga via export‑ eller renderingsalternativen för flera utmatningstyper:
| Utdata | Egenskap för bläckalternativ |
|---|---|
PdfOptions.getInkOptions |
|
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Slide image | RenderingOptions.getInkOptions |
Följande InkOptions‑metoder visar samma två inställningar:
- InkOptions.getHideInk bestämmer om bläckobjekt inkluderas i resultatet. Standardvärdet är
false. - InkOptions.getInterpretMaskOpAsOpacity bestämmer om en maskoperation tolkas som opacitet vid rendering av en bläckpensel. Standardvärdet är
true; anropa InkOptions.setInterpretMaskOpAsOpacity medfalseför att använda ROP‑operationen istället.
Dölj bläckobjekt i PDF‑utdata
Som standard förblir bläckobjekt synliga vid export. För att skapa en ren utdata utan handskrivna kommentarer eller annat bläckinnehåll, anropa InkOptions.setHideInk med true.
Följande JavaScript‑exempel exporterar en presentation till PDF samtidigt som alla bläckobjekt döljs:
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();
}
Dölj bläckobjekt vid rendering av en bild som bild
För att dölja bläckobjekt när du renderar bilder som bitmap‑bilder, konfigurera RenderingOptions.getInkOptions och skicka renderingsalternativen till Slide.getImage.
Följande JavaScript‑exempel renderar den första bilden som en PNG‑bild utan bläckobjekt:
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();
}
Styr rendering av bläckmask
[InkOptions.getInterpretMaskOpAsOpacity]‑inställningen styr hur maskoperationer tolkas vid rendering av bläckpenslar. Standardvärdet är true, vilket använder opacitet. För att använda ROP‑operationen istället, anropa [InkOptions.setInterpretMaskOpAsOpacity] med false.
Följande JavaScript‑exempel exporterar en bild till SVG och använder ROP‑baserad rendering för bläckmaskoperationer:
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();
}
Samma inställning kan tillämpas via [TiffOptions.getInkOptions] när du exporterar en presentation eller renderar en bild till TIFF.
Välj om du vill dölja eller bevara bläck
När du behöver en ren version av en kommenterad presentation för distribution utan granskningsmarkeringar, anropa InkOptions.setHideInk med true vid export.
Lämna [InkOptions.getHideInk] på standardvärdet false när bläckanteckningar är en del av det avsedda innehållet, exempelvis granskningskommentarer, handskrivna anteckningar, markeringar eller teckningar som ska förbli synliga i det exporterade resultatet. Detta gör att program kan generera separata gransknings‑ och slututdata från samma presentation utan att ändra de ursprungliga bläckobjekten.
FAQ
Kan jag ändra färg eller storlek på ett befintligt bläcksteg?
Ja. Hämta spåret från Ink.getTraces och ändra sedan dess InkTrace.getBrush. Anropa InkBrush.setColor eller InkBrush.setSize för att ändra penseln.
Är det så att dölja bläck ändrar källpresentationen?
Nej. Att anropa InkOptions.setHideInk påverkar endast det renderade eller exporterade resultatet; det tar inte bort eller ändrar bläckobjekt i källpresentationen.
Vilka exportformat stödjer bläckalternativ?
Du kan konfigurera bläckalternativ för PDF, HTML, SVG, TIFF och bitmap‑bilder av bilder via de motsvarande export‑ eller renderingsalternativen som visas ovan.
Ytterligare läsning
- För att läsa om former i allmänhet, se avsnittet PowerPoint Shapes.
- För mer information om effektiva värden, se Shape Effective Properties.
- För detaljer om PDF‑export, se Convert PPT and PPTX to PDF.
- För detaljer om HTML‑export, se Convert PowerPoint Presentations to HTML.
- För detaljer om SVG‑export, se Render Presentation Slides as SVG Images.
- För detaljer om TIFF‑export, se Convert PowerPoint Presentations to TIFF.
- För detaljer om rendering av bild till bild, se Convert Presentation Slides to Images.