Получить объект DrawObject и Bound при рендеринге в PDF с использованием класса DrawObjectEventHandler
Возможные сценарии использования
Aspose.Cells предоставляет абстрактный класс DrawObjectEventHandler, у которого есть метод draw(). Пользователь может реализовать DrawObjectEventHandler и использовать метод draw() для получения DrawObject и Bound при рендеринге Excel в PDF или изображение. Вот краткое описание параметров метода draw().
-
drawObject: DrawObject будет инициализирован и возвращен при рендеринге
-
x: слева от DrawObject
-
y: сверху DrawObject
-
ширина: ширина DrawObject
-
высота: высота DrawObject
Если вы преобразуете файл Excel в PDF, то вы можете использовать класс DrawObjectEventHandler с PdfSaveOptions.DrawObjectEventHandler. Аналогично, если вы преобразуете файл Excel в изображение, то вы можете использовать класс DrawObjectEventHandler с ImageOrPrintOptions.DrawObjectEventHandler.
Получите объект DrawObject и Bound при рендеринге в Pdf с использованием класса DrawObjectEventHandler
Пожалуйста, посмотрите следующий образец кода. Он загружает образец Excel-файла и сохраняет его в формате PDF файла. При преобразовании в PDF используется свойство PdfSaveOptions.DrawObjectEventHandler и захватываются DrawObject и Bound существующих ячеек и объектов, таких как изображения и т. д. Если тип объекта drawObject является Ячейкой (Cell), то печатается ее Bound и StringValue. Если тип объекта drawObject является Изображением (Image), то печатается его Bound и Имя формы. Пожалуйста, ознакомьтесь с консольным выводом приведенного ниже образца кода для получения более подробной справки.
Образец кода
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
import com.aspose.cells.*; | |
import AsposeCellsExamples.Utils; | |
public class GetDrawObjectAndBoundUsingDrawObjectEventHandler { | |
static String srcDir = Utils.Get_SourceDirectory(); | |
static String outDir = Utils.Get_OutputDirectory(); | |
//Implement the concrete class of DrawObjectEventHandler | |
class clsDrawObjectEventHandler extends DrawObjectEventHandler | |
{ | |
public void draw(DrawObject drawObject, float x, float y, float width, float height) | |
{ | |
System.out.println(); | |
//Print the coordinates and the value of Cell object | |
if (drawObject.getType() == DrawObjectEnum.CELL) | |
{ | |
System.out.println("[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() == DrawObjectEnum.IMAGE) | |
{ | |
System.out.println("[X]: " + x + " [Y]: " + y + " [Width]: " + width + " [Height]: " + height + " [Shape Name]: " + drawObject.getShape().getName()); | |
} | |
System.out.println("----------------------"); | |
} | |
} | |
void Run() throws Exception | |
{ | |
//Load sample Excel file | |
Workbook wb = new Workbook(srcDir + "sampleGetDrawObjectAndBoundUsingDrawObjectEventHandler.xlsx"); | |
//Specify Pdf save options | |
PdfSaveOptions opts = new PdfSaveOptions(); | |
//Assign the instance of DrawObjectEventHandler class | |
opts.setDrawObjectEventHandler(new clsDrawObjectEventHandler()); | |
//Save to Pdf format with Pdf save options | |
wb.save(outDir + "outputGetDrawObjectAndBoundUsingDrawObjectEventHandler.pdf", opts); | |
} | |
public static void main(String[] args) throws Exception { | |
System.out.println("Aspose.Cells for Java Version: " + CellsHelper.getVersion()); | |
new GetDrawObjectAndBoundUsingDrawObjectEventHandler().Run(); | |
// Print the message | |
System.out.println("GetDrawObjectAndBoundUsingDrawObjectEventHandler executed successfully."); | |
} | |
} |
Вывод в консоль
[X]: 153.60349 [Y]: 82.94118 [Width]: 103.203476 [Height]: 14.470589 [Cell Value]: This is sample text.
\----------------------
[X]: 267.28854 [Y]: 153.12354 [Width]: 161.25542 [Height]: 128.78824 [Shape Name]: Sun
\----------------------