Hämta DrawObject och Bound vid renderering till PDF med DrawObjectEventHandler klassen med JavaScript 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.drawObjectEventHandler-egenskapen. På liknande sätt, om du renderar Excel-fil till Bild, kan du använda DrawObjectEventHandler-klassen med ImageOrPrintOptions.drawObjectEventHandler-egenskapen.
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.drawObjectEventHandler 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
<!DOCTYPE html>
<html>
<head>
<title>Get Draw Object and Bound Using DrawObjectEventHandler</title>
</head>
<body>
<h1>Get Draw Object and Bound Using DrawObjectEventHandler</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, PdfSaveOptions, DrawObjectEventHandler, DrawObjectEnum } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
class ClsDrawObjectEventHandler extends DrawObjectEventHandler {
draw(drawObject, x, y, width, height) {
console.log("");
// Print the coordinates and the value of Cell object
if (drawObject.type === DrawObjectEnum.Cell) {
console.log(`[X]: ${x} [Y]: ${y} [Width]: ${width} [Height]: ${height} [Cell Value]: ${drawObject.cell.stringValue}`);
}
// Print the coordinates and the shape name of Image object
if (drawObject.type === DrawObjectEnum.Image) {
console.log(`[X]: ${x} [Y]: ${y} [Width]: ${width} [Height]: ${height} [Shape Name]: ${drawObject.shape.name}`);
}
console.log("----------------------");
}
}
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Load sample Excel file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Specify Pdf save options
const opts = new PdfSaveOptions();
// Assign the instance of DrawObjectEventHandler class
opts.drawObjectEventHandler = new ClsDrawObjectEventHandler();
// Save to Pdf format with Pdf save options
const outputData = workbook.save(SaveFormat.Pdf, opts);
const blob = new Blob([outputData], { type: 'application/pdf' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'outputGetDrawObjectAndBoundUsingDrawObjectEventHandler.pdf';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download PDF File';
resultDiv.innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the PDF file.</p>';
});
</script>
</html>
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
----------------------