Hämta DrawObject och Bound vid rendering till PDF med hjälp av DrawObjectEventHandler klass med Node.js via C++
Möjliga användningsscenario
Aspose.Cells tillhandahåller en abstrakt klass DrawObjectEventHandler som har en DrawObjectEventHandler.draw(DrawObject, number, number, number, number) metod. Användaren kan implementera DrawObjectEventHandler och använda DrawObjectEventHandler.draw(DrawObject, number, number, number, number) metoden för att få DrawObject och Bound under rendering av Excel till PDF eller Bild. Här är en kort beskrivning av parametrarna för DrawObjectEventHandler.draw(DrawObject, number, number, number, number) metoden.
-
drawObject: DrawObject kommer att initialiseras och returneras vid rendering.
-
x: Vänster om DrawObject.
-
y: Toppen av DrawObject.
-
width: Bredden på DrawObject.
-
height: Höjden på DrawObject.
Om du renderar Excel-fil till PDF kan du använda DrawObjectEventHandler klassen med PdfSaveOptions.getDrawObjectEventHandler(). På samma sätt, om du renderar Excel-fil till Bild, kan du använda DrawObjectEventHandler klassen med ImageOrPrintOptions.getDrawObjectEventHandler().
Hämta DrawObject och gräns vid rendering till PDF med hjälp av DrawObjectEventHandler-klassen
Se följande exempel på kod. Den laddar exempel Excel-fil och sparar den som utdata PDF. Vid rendering till PDF använder den PdfSaveOptions.getDrawObjectEventHandler() egenskapen och fångar DrawObject och Bound av befintliga celler och objekt, t.ex. bilder. Om DrawObject-typen är Cell, skriver den ut dess Bound och StringValue. Om DrawObject-typen är Image, skriver den ut dess Bound och Shapes namn. Se konsolutdata för exemplet nedan för mer hjälp.
Exempelkod
const AsposeCells = require("aspose.cells.node");
class ClsDrawObjectEventHandler extends AsposeCells.DrawObjectEventHandler {
draw(drawObject, x, y, width, height) {
console.log("");
// Print the coordinates and the value of Cell object
if (drawObject.getType() === AsposeCells.DrawObjectEnum.Cell) {
console.log(`[X]: ${x} [Y]: ${y} [Width]: ${width} [Height]: ${height} [Cell Value]: ${drawObject.getCell().getStringValue()}`);
}
// Print the coordinates and the shape name of Image object
if (drawObject.getType() === AsposeCells.DrawObjectEnum.Image) {
console.log(`[X]: ${x} [Y]: ${y} [Width]: ${width} [Height]: ${height} [Shape Name]: ${drawObject.getShape().getName()}`);
}
console.log("----------------------");
}
}
async function run() {
// Load sample Excel file
const workbook = new AsposeCells.Workbook("sampleGetDrawObjectAndBoundUsingDrawObjectEventHandler.xlsx");
// Specify Pdf save options
const opts = new AsposeCells.PdfSaveOptions();
// Assign the instance of DrawObjectEventHandler class
opts.setDrawObjectEventHandler(new ClsDrawObjectEventHandler());
// Save to Pdf format with Pdf save options
await workbook.saveAsync("outputGetDrawObjectAndBoundUsingDrawObjectEventHandler.pdf", opts);
}
run();
Konsoloutput
[X]: 153.6035 [Y]: 82.94118 [Width]: 103.2035 [Height]: 14.47059 [Cell Value]: This is sample text.
----------------------
[X]: 267.6917 [Y]: 153.4853 [Width]: 160.4491 [Height]: 128.0647 [Shape Name]: Sun
----------------------