Erfassen Sie DrawObject und Bound beim Rendern in PDF mit C++ unter Verwendung der DrawObjectEventHandler Klasse
Mögliche Verwendungsszenarien
Aspose.Cells bietet eine abstrakte Klasse DrawObjectEventHandler, die eine Methode Draw() hat. Der Benutzer kann DrawObjectEventHandler implementieren und die Methode Draw() nutzen, um den DrawObject und Bound beim Rendern von Excel in PDF oder Bild zu erhalten. Hier ist eine kurze Beschreibung der Parameter der Methode Draw().
-
drawObject: DrawObject wird initialisiert und beim Rendern zurückgegeben
-
x: Links von DrawObject
-
y: Oben von DrawObject
-
width: Breite von DrawObject
-
height: Höhe von DrawObject
Wenn Sie eine Excel-Datei in PDF umwandeln, können Sie die Klasse DrawObjectEventHandler mit PdfSaveOptions.PaginatedSaveOptions(PaginatedSaveOptions_Impl impl)* verwenden. Wenn Sie eine Excel-Datei in ein Bild konvertieren, können Sie die Klasse DrawObjectEventHandler mit ImageOrPrintOptions.DrawObjectEventHandler verwenden.
Holen Sie sich DrawObject und Bound beim Rendern in PDF unter Verwendung der DrawObjectEventHandler-Klasse
Siehe den folgenden Beispielcode. Es lädt die Beispiel-Excel-Datei und speichert sie als Ausgabepdf. Während der Konvertierung in PDF nutzt es die Eigenschaft PdfSaveOptions.PaginatedSaveOptions(PaginatedSaveOptions_Impl impl)* und erfasst DrawObject und Bound vorhandener Zellen und Objekte, z.B. Bilder. Wenn der DrawObject Typ Cell ist, gibt er Bound und StringValue aus. Wenn der DrawObject Typ Image ist, gibt er Bound und Shape-Name aus. Sehen Sie sich die Konsolenausgabe des Beispielcodes unten für weitere Hilfe an.
Beispielcode
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;
class ClsDrawObjectEventHandler : public DrawObjectEventHandler
{
public:
void Draw(DrawObject& drawObject, float x, float y, float width, float height) override
{
std::cout << std::endl;
if (drawObject.GetType() == DrawObjectEnum::Cell)
{
std::cout << "[X]: " << x << " [Y]: " << y << " [Width]: " << width << " [Height]: " << height
<< " [Cell Value]: " << drawObject.GetCell().GetStringValue().ToUtf8() << std::endl;
}
if (drawObject.GetType() == DrawObjectEnum::Image)
{
std::cout << "[X]: " << x << " [Y]: " << y << " [Width]: " << width << " [Height]: " << height
<< " [Shape Name]: " << drawObject.GetShape().GetName().ToUtf8() << std::endl;
}
std::cout << "----------------------" << std::endl;
}
};
void Run()
{
Workbook wb(u"sampleGetDrawObjectAndBoundUsingDrawObjectEventHandler.xlsx");
PdfSaveOptions opts;
auto drawObjectEventHandler = std::make_shared<ClsDrawObjectEventHandler>();
opts.SetDrawObjectEventHandler(drawObjectEventHandler.get());
wb.Save(u"outputGetDrawObjectAndBoundUsingDrawObjectEventHandler.pdf", opts);
}
int main()
{
Aspose::Cells::Startup();
Run();
Aspose::Cells::Cleanup();
return 0;
}
Konsolenausgabe
[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
----------------------