EZTwain Pro User Guide
TWAIN_GetDefaultSourceName
TWAIN_DefaultSourceName
int TWAIN_GetDefaultSourceName(LPSTR pzName)
string TWAIN_DefaultSourceName()
TWAIN defines the 'default source' as a per-user or system-wide TWAIN setting: It is 
the default TWAIN device, similar to the Windows default printer.  Like the default 
printer, most applications that have an Acquire or Scan command will use the current 
default source.  However, some applications maintain their own private source 
device, independent of the TWAIN default source.
Until TWAIN 2.2, the default source could only be selected by the user, using the 
TWAIN Select Source dialog (see TWAIN_SelectImageSource.)
TWAIN_GetDefaultSourceName copies the name of the TWAIN default source into 
pzName.  Up to 32 ANSI characters plus a terminating NUL (0 byte) are returned.
Normally returns TRUE (1) but will return FALSE (0) if:
-
the TWAIN Source Manager cannot be loaded & initialized or
-
there is no current default source (e.g. no sources are installed)
DefaultSourceName returns the name of the TWAIN default source as a string.  This 
function is not available in certain languages.  If there is no default TWAIN source 
(see above) this function returns the empty string.
TWAIN_SourceName
char* TWAIN_SourceName(void)
Returns the name of the currently or last opened source, as a string.   C/C++ 
developers: Note that this is always an 8-bit ASCII string.
See TWAIN_DefaultSourceName, to obtain the name of the default TWAIN device.
TWAIN_GetSourceName
void TWAIN_GetSourceName(LPSTR pzName)
Like TWAIN_SourceName, but copies the name string into its argument.  Please 
allocate enough space: 64 char at least.
Page 39
Extract images from pdf file - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
pdf image extractor c#; extract images pdf acrobat
Extract images from pdf file - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
how to extract images from pdf files; extract images from pdf files without using copy and paste
EZTwain Pro User Guide
Functions – Extended Image Information
Extended Image Information was introduced in TWAIN 1.7 – It provides a way for a 
scanner to offer advanced image processing services, and send the results to a 
receptive application with each scanned image.  For example, some higher-end 
scanners can detect barcode symbols or automatically deskew pages. Using this 
feature, an application can find out what barcodes were found on each incoming 
page, and the amount of skew that was corrected.
The EZTwain model of this feature is fairly simple.  As part of configuring for a scan, 
the application uses TWAIN_EnableExtendedInfo to specify which type of extended 
information should be collected. Each type of information is represented by a 
numeric constant defined in the TWAIN standard, such as TWEI_BARCODETEXT or 
TWEI_SKEWORIGINALANGLE.  After an image is received, using TWAIN_Acquire for 
example, we provide functions to count and read the collected information.
We have included the necessary TWEI_ constants in our declaration files, but for 
explanation and details you should contact us (www.dosadi.com
) or visit the TWAIN 
website (www.twain.org
) to obtain a copy of the TWAIN Standard.
TWAIN_IsExtendedInfoSupported
BOOL TWAIN_IsExtendedInfoSupported()
Asks the currently open device if it can generate Extended Image Info.
Returns TRUE(1) if yes, FALSE(0) if not.  This will fail and record an error if no 
TWAIN device is currently open through EZTwain.
TWAIN_EnableExtendedInfo
BOOL TWAIN_EnableExtendedInfo(long eiCode, BOOL enabled)
Enable or disable collection of the specified kind of extended image info.
Each type of information is represented by an integer constant with prefix TWEI_ - 
see the  EZTwain declaration file for your language.  This function returns TRUE.
TWAIN_IsExtendedInfoEnable
BOOL TWAIN_IsExtendedInfoEnabled(long eiCode)
Return TRUE(1) if the specified extended image info is enabled.
TWAIN_DisableExtendedInfo 
void TWAIN_DisableExtendedInfo()
Disables all extended image info – calling this function stops collection of extended 
image information.
Page 40
C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF control provides text extraction from PDF images and image extracting PDF text to another PDF file, TXT and SVG
how to extract pictures from pdf files; extract jpg pdf
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. control provides text extraction from PDF images and image extracting PDF text to another PDF file, and other
how to extract a picture from a pdf; extract color image from pdf in c#
EZTwain Pro User Guide
Reading Extended Information
You can think of the extended image information as returning an array of 0 or more 
values for each enabled TWEI_ code.  TWAIN_ExtendedInfoItemCount tells you how 
many values were returned for a given TWEI_ code.  When you ask for a value, you 
always have to specify both the TWEI_ code and a value index.  The value index is 
overkill in almost all cases: You will commonly specify an index of 0, meaning the 
first available value.
Remember: All of these functions refer to information collected from the last scan.
TWAIN_ExtendedInfoItemCount 
long TWAIN_ExtendedInfoItemCount(long tweiCode)
The number of values available of the given info (TWEI_) type.
TWAIN_ExtendedInfoItemType 
long TWAIN_ExtendedInfoItemType(long tweiCode)
Returns a number indicating the type of data returned for the specified extended 
info, using the same TWTY_ codes as CONTAINER_ItemType (see page 170).
TWAIN_ExtendedInfoInt 
long TWAIN_ExtendedInfoInt(long tweiCode, long n)
Returns the (32-bit integer) value of the 'nth' item of the specified extended info.
TWAIN_ExtendedInfoFloat 
double TWAIN_ExtendedInfoFloat(long tweiCode, long n)
Returns the (floating point) value of the 'nth' item of the specified extended info.
TWAIN_GetExtendedInfoString 
BOOL TWAIN_GetExtendedInfoString(long tweiCode, long n, LPSTR 
Buffer, long Bufsize)
Read the string value of the nth item of the specified info into Buffer, which has been 
allocated by the caller to hold Bufsize characters.
Note that the value returned is ASCII (byte) text, not unicode, and always
includes an ending 0 byte, even if it must be truncated to fit.
Returns TRUE if the data was retrieved and could fit in the buffer, FALSE otherwise.
In all languages, the caller must ensure that the 3
rd
parameter (Buffer) has been 
allocated as a block of characters (bytes) and that the address of the first byte of the 
allocated buffer is passed to the function. In classic VB for example, this requires 
Page 41
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively.
extract photos from pdf; extract images from pdf file
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively.
extract text from pdf image; some pdf image extractor
EZTwain Pro User Guide
passing the first buffer element by reference.  Contact Dosadi Support if you have 
questions about this.
TWAIN_ExtendedInfoString 
string TWAIN_ExtendedInfoString(long tweiCode, long n)
As above, but the string is returned as a temporary pointer to a 0-terminated ASCII 
string. In case of any failure, returns the empty string ("").
If your programming language has strings that are natively UNICODE, this function, 
if available at all, will return a native string and the comments above about 
ASCII/byte text do not apply: The string is converted to native format when it is 
returned from the function.
TWAIN_GetExtendedInfoFrame
BOOL TWAIN_GetExtendedInfoFrame(
long tweiCode, long n,
double *L, double *T, double *R, double *B)
Fetch the TW_FRAME value of the 'nth' item of the specified extended info.  A frame 
is a TWAIN concept usually used to represent a rectangle – left, top, right, bottom.
This is rarely used, but is here for completeness.
Page 42
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
VB.NET Components to combine various scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Append one PDF file to the end of another one in VB.NET.
extract image from pdf java; extract pictures from pdf
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Combine scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to
how to extract images from pdf in acrobat; extract images from pdf
EZTwain Pro User Guide
Functions – DIBs & Image Processing
Creating and Freeing DIBs
DIB_Allocate
HANDLE DIB_Allocate(int nDepth, int nWidth, int nHeight)
Create a DIB with the given dimensions.  Resolution is set to 0.  A default grayscale 
table is provided if depth <= 8.  The image data is uninitialized i.e. garbage.
DIB_Create
HANDLE DIB_Create(int nType, int nWidth, int nHeight, int nDepth)
Create a DIB with the given pixel type, dimensions, and depth.  See Pixel Types, 
page 44.   If a depth of 0 is given, the default depth for the given pixel type is used. 
Resolution is set to 0.  If the pixel type calls for a color table (TWPT_BW, 
TWPT_GRAY, or TWPT_PALETTE) a default color table is provided.  The image data is 
uninitialized.
DIB_Copy
HANDLE DIB_Copy(HANDLE hdib)
Create and return a byte-for-byte copy of a DIB.
DIB_Free
void DIB_Free(HANDLE hdib)
Release the storage of the DIB.
Note: If hdib is NULL (0), it does nothing.
DIB_FreeArray
void DIB_FreeArray(??, int n)
Calls DIB_Free on the first n entries of a DIB handle array.
Page 43
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Dim outputFilePath As String = Program.RootPath + "\\" 1.pdf" newDoc.Save( outputFilePath). VB.NET: Extract All Images from PDF Document.
extract images pdf; pdf image extractor
C# PDF File Split Library: Split, seperate PDF into multiple files
Application. Best and professional adobe PDF file splitting SDK for Visual Studio .NET. outputOps); Divide PDF File into Two Using C#.
extract image from pdf file; extract vector image from pdf
EZTwain Pro User Guide
Querying DIB Properties
DIB_Width
int DIB_Width (HANDLE hdib)
Width of DIB, in pixels (columns)
DIB_Height
int DIB_Height (HANDLE hdib)
Height of DIB, in lines (rows)
DIB_PixelType
int DIB_PixelType(HANDLE hdib)
Returns a Pixel Type code that describes the format of the DIB’s pixels.
EZTwain Pixel Types
Symbol
Code
Description
TWPT_BW
0
1-bit per pixel, black and white
TWPT_GRAY
1
grayscale, normally 8 but can be 4- or 16-bit
TWPT_RGB
2
RGB color, 24-bit (can also be 48-bit, and rarely 15, 
16, or 32-bit)
TWPT_PALETTE
3
indexed color (image has a color table) 8 or 4-bit.
TWPT_CMY
4
CMY color, 24-bit
TWPT_CMYK
5
CMYK color, 32-bit
DIB_Depth / DIB_BitsPerPixel
int DIB_Depth (HANDLE hdib)
int DIB_BitsPerPixel (HANDLE hdib)
Number of bits per pixel.
DIB_SamplesPerPixel
int DIB_SamplesPerPixel(HANDLE hdib)
Number of samples (components or color channels) in each pixel.
B&W and gray pixels have 1 sample, RGB and CMY have 3.
CMYK has 4. Palette-color images are treated as having 3 channels.
DIB_BitsPerSample
int DIB_BitsPerSample(HANDLE hdib)
Number of bits per sample (channel, component) in each pixel.
For B&W and grayscale images, this is the same as the bits per pixel, because those 
formats have one sample per pixel.
Page 44
EZTwain Pro User Guide
For palette images, this will be 8, because the color values in a palette image are 
stored with 8 bits each for R, G, and B.
For RGB, CMY, and CMYK images, this function returns the number of bits used to 
represent each color channel or component - almost always 8, but EZTwain does 
have a limited ability to handle images that are 5-bit and 16-bit per channel.
DIB_XResolution / DIB_YResolution
double DIB_XResolution(HANDLE hdib)
double DIB_YResolution (HANDLE hdib)
Horizontal (x) or vertical (y) resolution of DIB in DPI (dots per inch)
DIB_PhysicalWidth /  DIB_PhysicalHeight
double DIB_PhysicalWidth(HDIB hdib, int nUnits)
double DIB_PhysicalHeight(HDIB hdib, int nUnits)
Return the width(height), in the specified units, of the given image, calculated using 
its pixel width(height) and X(Y) resolution. If the resolution is 0, these return 0.
nUnits is one of the TWUN_ values - see page 122 - 0=inches, 1=cm, etc.
DIB_IsCompressed
BOOL DIB_IsCompressed(HDIB hdib)
TRUE(1) if the DIB's image data is compressed in memory, FALSE(0) otherwise.  
Compressed DIBs are only produced by an operation where you specifically request 
or enable creation of compressed DIBs.
DIB_Compression
int DIB_Compression(HANDLE hdib)
Returns a code specifying the type of compression used on a DIB's image data.
Uses the same codes as TWAIN_SetCompression.
TWCP_NONE means 'no compression' – the common case.
DIB_RowBytes
size_t DIB_RowBytes(HANDLE hdib)
Number of bytes needed to store one row of the DIB.
DIB_Size
int DIB_Size(HANDLE hdib)
The number of bytes of memory occupied by the DIB – header plus image data.
DIB_ColorCount
int DIB_ColorCount(HANDLE hdib)
Page 45
EZTwain Pro User Guide
Number of colors in color table of DIB.
DIB_ColorTableR / DIB_ColorTableG / DIB_ColorTableB
int DIB_ColorTableR(HANDLE hdib, int i)
int DIB_ColorTableG(HANDLE hdib, int i)
int DIB_ColorTableB(HANDLE hdib, int i)
Return the R,G, or B component of the ith color table entry of a DIB.
If i < 0 or >= DIB_ColorCount(hdib), returns 0.
Setting DIB Properties
DIB_SetResolution/DIB_SetResolutionInt
void DIB_SetResolution(HANDLE hdib, double xdpi, double ydpi)
void DIB_SetResolutionInt(HANDLE hdib, int xdpi, int ydpi)
Sets the horizontal or vertical resolution of the DIB.  The ‘Int’ form is for languages 
that cannot easily pass double (64-bit floating point) parameters.
DIB_SetGrayColorTable
void DIB_SetGrayColorTable(HANDLE hdib)
Fill the DIB's color table with a gray ramp - so color 0 is black, and the last color 
(largest pixel value) is white.  No effect if depth > 8.  The DIB must already have a 
color table allocated.
DIB_SetColorTableRGB
void DIB_SetColorTableRGB(HANDLE hdib, int i, int R, int G, int 
B)
Set the ith entry in the DIB's color table to the specified color.  R G and B range from 
0 to 255.
Page 46
EZTwain Pro User Guide
Reading and Writing DIB Data
DIB_ReadRow
DIB_ReadRowRGB
DIB_ReadRowGray
DIB_ReadRowChannel
void DIB_ReadRow(HANDLE hdib, int r, BYTE* prow)
void DIB_ReadRowRGB(HANDLE hdib, int r, BYTE* prow)
void DIB_ReadRowGray(HANDLE hdib, int r, BYTE *prow)
void DIB_ReadRowChannel(HANDLE hdib, int r, BYTE *prow, int c)
Read row r of the given DIB into buffer at prow.
Row 0 is the top row of the image, as it would be displayed.
DIB_ReadRow reads the raw row data from the DIB, including BGR pixels from 24-bit 
DIBs, 1-bit, 4-bit or 8-bit, 16-bit, or even 48-bit pixels.
DIB_ReadRowRGB converts each pixel into the nearest equivalent 3-byte RGB pixel.
DIB_ReadRowGray converts every pixel to an 8-bit grayscale or “brightness” value.
DIB_ReadRowChannel extracts the 8-bit channel or component of each pixel, as 
described in Component Codes, page 64
The caller is responsible for making sure there is enough room in the buffer (pointed 
to or referenced by the prow parameter.)  Buffer sizes required are as follows:
Function
Bytes of buffer per row
DIB_ReadRow
DIB_RowBytes(hdib)
DIB_ReadRowRGB
3*DIB_Width(hdib)
DIB_ReadRowGray
DIB_Width(hdib)
DIB_ReadRowChannel
DIB_Width(hdib)
DIB_ReadData
void DIB_ReadData(HANDLE hdib, BYTE* pdata, int nbMax)
Read the entire DIB, including header, into a buffer.  The 2
nd
parameter is the 
address (pointer to) the buffer. The 3
rd
parameter is the maximum number of bytes 
to read – which is usually the size of the buffer in bytes.
The number of bytes needed to hold the entire DIB is returned by DIB_Size.
DIB_WriteRow
void DIB_WriteRow(HANDLE hdib, int r, const BYTE* pdata)
Write data from buffer into row r of the given DIB.
Caller is responsible for ensuring that the buffer and row exist, etc.
Page 47
EZTwain Pro User Guide
DIB_WriteRowChannel
void DIB_WriteRowChannel(HANDLE hdib, int r, const BYTE* pdata, 
int nChannel)
Write data from buffer into one color channel of row r of the given image.
When writing a 24-bit RGB image, valid channels are: 1=Red, 2=Green, 3=Blue.
When writing to a 32-bit RGBA image, channel 4=alpha.
When writing to an 8-bit gray image, channel 0 = gray.
When writing to a 24-bit CMY or 32-bit CMYK image, 1=Cyan, 2=Magenta, 3=Yellow, 
4=blacK.
This function should not be used on any other image format.
Drawing (Rendering) DIBs
DIB_DrawOnWindow
void DIB_DrawOnWindow(HANDLE hdib, HWND hwnd)
Draws the DIB on the window.
The image is scaled to just fit inside the (client area of the) window, while keeping 
the correct aspect ratio.  Any part of the window not covered by the image is left 
untouched, so will normally be filled with the window’s background color.
DIB_DrawToDC
void DIB_DrawToDC(HANDLE hdib,   // DIB handle
HDC hDC,       // destination device context
int dx, int dy,// destination (x,y)
int w, int h,  // width and height
int sx, int sy // source (x,y) in DIB
)
Draws the DIB on the device context.   Before using this call, you should have some 
understanding of the Windows GDI and Device Contexts.
Page 48
Documents you may be interested
Documents you may be interested