MemoryImage event

 

The MemoryImage event is received if the “Generate output in memory” option is enabled in the printer driver, and contains the image data generated by the driver. One MemoryImage event is generated for each page.

 

MemoryImage(ByRef Data As Object, ByVal Size As Integer)

Parameters:

Output value – Data: The image data generated by the driver.

Output value – Size: Size of the image data in bytes.

 

The Data object can be casted to a Byte array for direct access.

Example code that casts the Data object to a Byte array and saves it to a file:

 

saveFileName = folder path and filename and extension ("path"\"filename"."file extension")

example:

                                path = c:\temp

                                file name = "random file name"

                                file extension = read from Black Ice devmode with GetFileExtension(pDevMode) function.

 

C#:

 //read file extension

32 bit:

int pdevMode = BlackIceDEVMODE.LoadBlackIceDEVMODE("Printer Name");

64 bit:

long pdevMode = BlackIceDEVMODE.LoadBlackIceDEVMODE("Printer Name");

 

string fileExt = BlackIceDEVMODE.GetFileExtension(pdevMode);       

BlackIceDEVMODE.ReleaseBlackIceDEVMODE(pdevMode);

 

 //save file

string saveFileName = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\\" + Path.GetRandomFileName().Replace(".", "") + "." + fileExt;

File.WriteAllBytes(saveFileName, (byte[])Data);

 

VB.NET:  

//read file extension

32 bit:

Dim pDevMode As Integer = BlackIceDEVMODE.LoadBlackIceDEVMODE("Printer Name")

64 bit:

Dim pDevMode As Long = BlackIceDEVMODE.LoadBlackIceDEVMODE("Printer Name")

 

Dim fileExt As String = BlackIceDEVMODE.GetFileExtension(pDevMode)

BlackIceDEVMODE.ReleaseBlackIceDEVMODE(pDevMode)

 

//save file

Dim saveFileName As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\" & Path.GetRandomFileName().Replace(".", "") & "." & fileExt

File.WriteAllBytes(saveFileName, DirectCast(Data, Byte()))