Hämta DrawObject och Bound vid rendering till PDF med hjälp av DrawObjectEventHandler klassen
Möjliga användningsscenario
Aspose.Cells tillhandahåller en abstrakt klass DrawObjectEventHandler som har en draw() metod. Användaren kan implementera DrawObjectEventHandler och använda draw() metoden för att hämta DrawObject och Bound vid rendering av Excel till PDF eller bild. Här är en kort beskrivning av parametrarna för draw() metoden.
-
drawObject: DrawObject kommer att initieras och returneras vid rendering
-
x: Vänster om DrawObject
-
y: Topp om DrawObject
-
bredd: Bredd av DrawObject
-
höjd: Höjd av DrawObject
Om du renderar Excel-filen till PDF, kan du använda klassen DrawObjectEventHandler med PdfSaveOptions.DrawObjectEventHandler. På samma sätt, om du renderar Excel-filen till bild, kan du använda klassen DrawObjectEventHandler med ImageOrPrintOptions.DrawObjectEventHandler.
Få DrawObject och Bound medan du renderar till Pdf med hjälp av DrawObjectEventHandler-klassen
Se följande provkod. Det laddar den prov Excel-filen och sparar den som utdata-PDF. Vid rendering till PDF använder den egenskapen PdfSaveOptions.DrawObjectEventHandler och fångar DrawObject och Bound av befintliga celler och objekt, t.ex. bilder osv. Om drawObject-typen är Cell, skriver den ut dess Bound och StringValue. Och om drawObject-typen är Bild, skriver den ut dess Bound och formnamn. Se konsolresultatet från provkoden nedan för mer hjälp.
Exempelkod
// 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."); | |
} | |
} |
Konsoloutput
[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
\----------------------