pdf library c# free : How to make pdf editable form reader application software tool html windows azure online PDFlib-7-tutorial12-part1843

6.1  Importing Raster Images 121
6Importing Images and PDF Pages
PDFlib offers a variety of features for importing raster images and pages from existing 
PDF documents, and placing them on the page. This chapter covers the details of deal-
ing with raster images and importing pages from existing PDF documents. Placing im-
ages and PDF pages on an output page is discussed in Section 7.3, »Placing Images and 
Imported PDF Pages«, page 158.
Cookbook Code samples regarding image issues can be found in the images category of the PDFlib Cook-
6.1 Importing Raster Images
6.1.1 Basic Image Handling
Embedding raster images with PDFlib is easy to accomplish. First, the image file has to 
be opened with a PDFlib function which does a brief analysis of the image parameters. 
The PDF_load_image( ) function returns a handle which serves as an image descriptor. 
This handle can be used in a call to PDF_fit_image( ), along with positioning and scaling 
image = p.load_image("auto", "image.jpg", "");
if (image == -1)
throw new Exception("Error: " + p.get_errmsg());
p.fit_image(image, 0.0, 0.0, "");
The last argument to the PDF_fit_image( ) function is an option list which supports a va-
riety of options for positioning, scaling, and rotating the image. Details regarding these 
options are discussed in Section 7.3, »Placing Images and Imported PDF Pages«, page 158.
Cookbook A full code sample can be found in the Cookbook topic images/starter_image.
Re-using image data. PDFlib supports an important PDF optimization technique for 
using repeated raster images. Consider a layout with a constant logo or background on 
multiple pages. In this situation it is possible to include the actual image data only once 
in the PDF, and generate only a reference on each of the pages where the image is used. 
Simply load the image file once, and call PDF_fit_image( ) every time you want to place 
the logo or background on a particular page. You can place the image on multiple pages, 
or use different scaling factors for different occurrences of the same image (as long as 
the image hasn’t been closed). Depending on the image’s size and the number of occur-
rences, this technique can result in enormous space savings.
Scaling and dpi calculations. PDFlib never changes the number of pixels in an import-
ed image. Scaling either blows up or shrinks image pixels, but doesn’t do any downsam-
pling (the number of pixels in an image will always remain the same). A scaling factor of 
1 results in a pixel size of 1 unit in user coordinates. In other words, the image will be im-
ported with its native resolution (or 72 dpi if it doesn’t contain any resolution informa-
How to make pdf editable form reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
how to save pdf form data in reader; extracting data from pdf into excel
How to make pdf editable form reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
how to make pdf editable form reader; vb extract data from pdf
Chapter 6:  Importing Images and PDF Pages
tion) if the user coordinate system hasn’t been scaled (since there are 72 default units to 
an inch).
Cookbook A full code sample can be found in the Cookbook topic images/image_dimensions. It shows how 
to get the dimensions of an image and how to place it with various sizes.
Color space of imported images. Except for adding or removing ICC profiles and ap-
plying a spot color according to the options provided in PDF_load_image( ), PDFlib will 
generally try to preserve the native color space of an imported image. However, this is 
not possible for certain rare combinations, such as YCbCr in TIFF which will be convert-
ed to RGB.
PDFlib does not perform any conversion between RGB and CMYK. If such a conver-
sion is required it must be applied to the image data before loading the image in PDFlib.
Inline images. As opposed to reusable images, which are written to the PDF output as 
image XObjects, inline images are written directly into the respective content stream 
(page, pattern, template, or glyph description) . This results in some space savings, but 
should only be used for small amounts of image data (up to 4 KB) per a recommenda-
tion in the PDF reference. The primary use of inline images is for bitmap glyph descrip-
tions in Type 3 fonts.
Inline images can be generated with the PDF_load_image( ) interface by supplying the 
inline option. Inline images cannot be reused, i.e., the corresponding handle must not be 
supplied to any call which accepts image handles. For this reason if the inline option has 
been provided PDF_load_image( ) internally performs the equivalent of the following 
p.fit_image(image, 0, 0, "");
Inline images are only supported for imagetype=ccitt, jpeg, and raw. For other image 
types the inline option will silently be ignored.
6.1.2 Supported Image File Formats
PDFlib deals with the image file formats described below. By default, PDFlib passes the 
compressed image data unchanged to the PDF output if possible since PDF internally 
supports most compression schemes used in common image file formats. This tech-
nique (called pass-through mode in the descriptions below) results in very fast image im-
port, since decompressing the image data and subsequent recompression are not neces-
sary. However, PDFlib cannot check the integrity of the compressed image data in this 
mode. Incomplete or corrupt image data may result in error or warning messages when 
using the PDF document in Acrobat (e.g., Read less image data than expected). Pass-
through mode can be controlled with the passthrough option of PDF_load_image( ).
If an image file can’t be imported successfully PDF_load_image( ) will return an error 
code. If you need to know more details about the image failure, call PDF_get_errmsg( ) to 
retrieve a detailed error message.
PNG images. PDFlib supports all flavors of PNG images (ISO 15948). PNG images are 
handled in pass-through mode in most cases. PNG images which make use of interlac-
ing or contain an alpha channel (which will be lost anyway, see below) will have to be 
uncompressed, which takes significantly longer than pass-through mode. If a PNG im-
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
to convert target PDF document to other editable file formats should be noted here is that our PDF to text Thus, please make sure you have installed VS 2005 or
make pdf form editable in reader; edit pdf form in reader
VB.NET Image: Add Callout Annotation on Document and Image in VB.
document and image formats, such as PDF, Word, TIFF mainly contains two parts-that are editable text area guide that tells you how to make callout annotation
html form output to pdf; how to save editable pdf form in reader
6.1  Importing Raster Images 123
age contains transparency information, the transparency is retained in the generated 
PDF (see Section 6.1.4, »Image Masks and Transparency«, page 125). However, alpha 
channels are not supported by PDFlib.
JPEG images. JPEG images (ISO 10918-1) are never decompressed, but some flavors may 
require transcoding for proper display in Acrobat. PDFlib automatically applies trans-
coding to certain critical types of JPEG images, but transcoding can also be controlled 
via the passthrough option of PDF_load_image( ). PDFlib supports the following JPEG im-
age flavors:
>Grayscale, RGB (usually encoded as YCbCr), and CMYK color
>Baseline JPEG compression which accounts for the vast majority of JPEG images.
>Progressive JPEG compression.
JPEG images can be packaged in several different file formats. PDFlib supports all com-
mon JPEG file formats, and will read resolution information from the following flavors:
>JFIF, which is generated by a wide variety of imaging applications.
>JPEG files written by Adobe Photoshop and other Adobe applications. PDFlib applies 
a workaround which is necessary to correctly process Photoshop-generated CMYK 
JPEG files. PDFlib will also read clipping paths from JPEG images created with Adobe 
Note PDFlib does not interpret color space or resolution information from JPEG images in the SPIFF 
or Exif formats.
JPEG2000 images. JPEG2000 images (ISO 15444-2) require PDF 1.5 or above, and are al-
ways handled in pass-through mode. PDFlib supports JPEG2000 images as follows:
>JP2 and JPX baseline images (usually *.jp2 or *.jpf) are supported, subject to the color 
space conditions below. All valid color depth values are supported.
>The following color spaces are supported: sRGB, sRGB-grey, ROMM-RGB, sYCC, 
e-sRGB, e-sYCC, CIELab, ICC-based color spaces (restricted and full ICC profile), and 
CMYK. PDFlib will not alter the original color space in the JPEG2000 image file.
>Images containing a soft mask can be used with the mask option to prepare a mask 
which can be applied to other images.
>External ICC profiles can not be applied to a JPEG2000 image, i.e. the iccprofile option 
must not be used. ICC profiles contained in the JPEG2000 image file will always be 
kept, i.e. the honoriccprofile option is always true.
>The colorize option is not supported for JPEG2000 images.
Note Raw JPEG2000 code streams without JPX wrapper (often *.j2k) and JPM compound image files 
according to ISO 15444-6 (usually *.jpm) are not supported.
GIF images. PDFlib supports all GIF flavors (specifically GIF 87a and 89a) with inter-
laced and non-interlaced pixel data and all palette sizes. GIF images will always be re-
compressed with Flate compression.
TIFF images. PDFlib will handle most TIFF images in pass-through mode. PDFlib sup-
ports the following flavors of TIFF images:
>compression schemes: uncompressed, CCITT (group 3, group 4, and RLE), ZIP (=Flate), 
and PackBits (=RunLength) are handled in pass-through mode; other compression 
schemes, such as LZW and JPEG, are handled by uncompressing.
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
VB.NET control for batch converting PDF to editable & searchable users will be able to convert a PDF file or Before you get started, please make sure that you
pdf data extraction tool; extracting data from pdf forms
VB.NET Create PDF Library SDK to convert PDF from other file
Create and save editable PDF with a blank page, bookmarks, links Creating a PDF document is a good way to share your ideas because you can make sure that
extracting data from pdf forms to excel; how to save filled out pdf form in reader
Chapter 6:  Importing Images and PDF Pages
>color: black and white, grayscale, RGB, CMYK, CIELab, and YCbCr images; any alpha 
channel or mask which may be present in the file will be ignored.
>TIFF files containing more than one image (see Section 6.1.6, »Multi-Page Image 
Files«, page 128)
>Color depth must be 1, 2, 4, 8, or 16 bits per color sample. In PDF 1.5 mode 16 bit color 
depth will be retained in most cases with pass-through mode, but reduced to 8 bit for 
certain image files (ZIP compression with little-endian/Intel byte order and 16-bit 
palette images).
Multi-strip TIFF images are converted to multiple images in the PDF file which will visu-
ally exactly represent the original image, but can be individually selected with Acrobat’s 
TouchUp object tool. Multi-strip TIFF images can be converted to single-strip images 
with the tiffcp command line tool which is part of the TIFFlib package.
The Image-
tool always writes single-strip TIFF images.
PDFlib fully interprets the orientation tag which specifies the desired image orienta-
tion in some TIFF files. PDFlib can be instructed to ignore the orientation tag (as many 
applications do) by setting the ignoreorientation option to true.
PDFlib will read clipping paths from TIFF images created with Adobe Photoshop.
Some TIFF features (e.g., spot color) and certain combinations of features (e.g., CMYK 
images with a mask) are not supported. Although TIFF images with JPEG compression 
are generally supported, some flavors of so-called old-style TIFF-JPEG will be rejected.
BMP images. BMP images cannot be handled in pass-through mode. PDFlib supports 
the following flavors of BMP images:
>BMP versions 2 and 3;
>color depth 1, 4, and 8 bits per component, including 3 x 8 = 24 bit TrueColor. 16-bit 
images will be treated as 5+5+5 plus 1 unused bit. 32-bit images will be treated as 3 x 8 
bit images (the remaining 8 bits will be ignored).
>black and white or RGB color (indexed and direct); 
>uncompressed as well as 4-bit and 8-bit RLE compression;
>PDFlib will not mirror images if the pixels are stored in bottom-up order (this is a 
rarely used feature in BMP which is interpreted differently in applications).
CCITT images. Group 3 or Group 4 fax compressed image data are always handled in 
pass-through mode. Note that this format actually means raw CCITT-compressed image 
data, not TIFF files using CCITT compression. Raw CCITT compressed image files are usu-
ally not supported in end-user applications, but can only be generated with fax-related 
software. Since PDFlib is unable to analyze CCITT images, all relevant image parameters 
have to be passed to PDF_load_image( ) by the client.
Raw data. Uncompressed (raw) image data may be useful for some special applica-
tions. The nature of the image is deduced from the number of color components: 1 com-
ponent implies a grayscale image, 3 components an RGB image, and 4 components a 
CMYK image.
1. See www.libtiff.org 
2. See www.imagemagick.org 
VB.NET Excel: How to Covert Excel Doc to PDF in VB.NET Application
document is not editable and the Excel document is editable. So when using Excel or PDF document on your for VB.NET programming, you need to make sure whether
extract data out of pdf file; pdf form field recognition
Process Multipage TIFF Images in Web Image Viewer| Online
Export multi-page TIFF image to a PDF; More image viewing & multipage TIFF files in Web Document Viewer, make sure that Load, Save an Editable Multi-page TIFF.
flatten pdf form in reader; extract pdf data to excel
6.1  Importing Raster Images 125
6.1.3 Clipping Paths
PDFlib supports clipping paths in TIFF and JPEG images created with Adobe Photoshop. 
An image file may contain multiple named paths. Using the clippingpathname option of 
PDF_load_image( ) one of the named paths can be selected and will be used as a clipping 
path: only those parts of the image inside the clipping path will be visible, other parts 
will remain invisible. This is useful to separate background and foreground, eliminate 
unwanted portions of an image, etc.
Alternatively, an image file may specify a default clipping path. If PDFlib finds a de-
fault clipping path in an image file it will automatically apply it to an image (see Figure 
6.1). In order to prevent the default clipping path from being applied set the honor-
clippingpath option in PDF_load_image( ) to false. If you have several instances of the 
same image and only some instances shall have the clipping path applied, you can sup-
ply the ignoreclippingpath option in PDF_fit_image( ) in order to disable the clipping path. 
When a clipping path is applied, the bounding box of the clipped image will be used as 
the basis for all calculations related to placing or fitting the image.
Cookbook A full code sample can be found in the Cookbook topic images/integrated_clipping_path.
6.1.4 Image Masks and Transparency
Transparency in PDF. PDF supports various transparency features, all of which are im-
plemented in PDFlib:
>Masking by position: an image may carry the intrinsic information »print the fore-
ground or the background«. This is realized by a 1-bit mask image, and is often used 
in catalog images.
>Masking by color value: pixels of a certain color are not painted, but the previously 
painted part of the page shines through instead (»ignore all blue pixels in the im-
age«). In TV and video technology this is also known as bluescreening, and is most of-
ten used for combining the weather man and the map into one image.
>PDF 1.4 introduced alpha channels or soft masks. These can be used to create a 
smooth transition between foreground and background, or to create semi-transpar-
ent objects (»blend the image with the background«). Soft masks are represented by 
1-component images with 1-8 bit per pixel.
Fig. 6.1
Using a clipping path to separate 
foreground and background
VB.NET TIFF: Convert TIFF to HTML Web Page Using VB.NET TIFF
information of TIFF file in a more editable file format This online article aims to make a detailed instruction on to HTML converters, like VB.NET PDF to HTML
how to flatten a pdf form in reader; pdf data extraction
VB.NET Image: Barcode Generator to Add UPC-A to Image, TIFF, PDF &
REFile.SaveDocumentFile(doc, "c:/upc-a.pdf", New PDFEncoder()). Word document is the most editable format for us. image and document, but also we can make a UPC
extract table data from pdf to excel; save data in pdf form reader
Chapter 6:  Importing Images and PDF Pages
PDFlib supports three kinds of transparency information in images: implicit transpar-
ency, explicit transparency, and image masks.
Note The mask must have the same orientation as the underlying image; otherwise it will be reject-
ed. Since the orientation depends on the image file format and other factors it is difficult to de-
tect. For this reason it is recommended to use the same file format and creation software for 
both mask and image.
Implicit transparency. In the implicit case, the transparency information from an ex-
ternal image file is respected, provided the image file format supports transparency or 
an alpha channel (this is not the case for all image file formats). Transparency informa-
tion is detected in the following image file formats:
>GIF image files may contain a single transparent color value which is respected by 
>PNG image files may contain several flavors of transparency information, or a full al-
pha channel. PDFlib will retain single transparent color values; if multiple color val-
ues with an attached alpha value are given, only the first one with an alpha value be-
low 50 percent is used. A full alpha channel is ignored.
Explicit transparency. The explicit case requires two steps, both of which involve im-
age operations. First, a grayscale image must be prepared for later use as a transparency 
mask. This is accomplished by opening the image with the mask option. In PDF 1.3, 
which supports only 1-bit masks, using this option is required; in PDF 1.4 it is optional. 
The following kinds of images can be used for constructing a mask:
>PNG images
>TIFF images: the nopassthrough option for PDF_load_image( ) is recommended to 
avoid multi-strip images.
>raw image data
Pixel values of 0 (zero) in the mask will result in the corresponding area of the masked 
image being painted, while high pixel values result in the background shining through. 
If the pixel has more than 1 bit per pixel, intermediate values will blend the foreground 
image against the background, providing for a transparency effect. In the second step 
the mask is applied to another image which itself is acquired through one of the image 
mask = p.load_image("png", maskfilename, "mask");
if (mask == -1)
throw new Exception("Error: " + p.get_errmsg());
String optlist = "masked " + mask;
image = p.load_image(type, filename, optlist)
if (image == -1)
throw new Exception("Error: " + p.get_errmsg());
p.fit_image(image, x, y, "");
Note the different use of the option list for PDF_load_image( ): mask for defining a mask, 
and masked for applying a mask to another image.
The image and the mask may have different pixel dimensions; the mask will auto-
matically be scaled to the image’s size.
6.1  Importing Raster Images 127
Note PDFlib converts multi-strip TIFF images to multiple PDF images, which would be masked indi-
vidually. Since this is usually not intended, this kind of images will be rejected both as a mask 
as well as a masked target image. Also, it is important to not mix the implicit and explicit cases, 
i.e., don’t use images with transparent color values as mask.
Cookbook A full code sample can be found in the Cookbook topic images/image_mask.
Image masks. Image masks are images with a bit depth of 1 (bitmaps) in which zero 
bits are treated as transparent: whatever contents already exist on the page will shine 
through the transparent parts of the image. 1-bit pixels are colorized with the current 
fill color. The following kinds of images can be used as image masks:
>PNG images
>TIFF images (single- or multi-strip)
>JPEG images (only as soft mask, see below)
>BMP; note that BMP images are oriented differently than other image types. For this 
reason BMP images must be reflected along the x axis before they can be used as a 
>raw image data
Image masks are simply opened with the mask option, and placed on the page after the 
desired fill color has been set:
mask = p.load_image("tiff", maskfilename, "mask");
p.setcolor("fill", "rgb", 1.0, 0.0, 0.0, 0.0);
if (mask != -1)
p.fit_image(mask, x, y, "");
If you want to apply a color to an image without the zero bit pixels being transparent 
you must use the colorize option (see Section 6.1.5, »Colorizing Images«, page 127).
Soft masks. Soft masks generalize the concept of image masks to masks with more 
than 1 bit. They have been introduced in PDF 1.4 and blend the image against some ex-
isting background. PDFlib accepts all kinds of single-channel (grayscale) images as soft 
mask. They can be used the same way as image masks, provided the PDF output com-
patibility is at least PDF 1.4.
Ignoring transparency. Sometimes it is desirable to ignore any transparency informa-
tion which may be contained in an image file. For example, Acrobat’s anti-aliasing fea-
ture (also known as »smoothing«) isn’t used for 1-bit images which contain black and 
transparent as their only colors. For this reason imported images with fine detail (e.g., 
rasterized text) may look ugly when the transparency information is retained in the 
generated PDF. In order to deal with this situation, PDFlib’s automatic transparency 
support can be disabled with the ignoremask option when opening the file:
image = p.load_image("gif", filename, "ignoremask");
6.1.5 Colorizing Images
Similarly to image masks, where a color is applied to the non-transparent parts of an 
image, PDFlib supports colorizing an image with a spot color. This feature works for 
black and white or grayscale images in the following formats:
Chapter 6:  Importing Images and PDF Pages
For images with an RGB palette, colorizing is only reasonable when the palette contains 
only gray values, and the palette index is identical to the gray value.
In order to colorize an image with a spot color you must supply the colorize option 
when loading the image, and supply the respective spot color handle which must have 
been retrieved with PDF_makespotcolor( ):
p.setcolor("fillstroke", "cmyk", 1, .79, 0, 0);
spot = p.makespotcolor("PANTONE Reflex Blue CV");
String optlist = "colorize=" + spot;
image = p.load_image("tiff", "image.tif", optlist);
if (image != -1)
p.fit_image(image, x, y, "");
6.1.6 Multi-Page Image Files
PDFlib supports TIFF files which contain more than one image, also known as multi-
page files. In order to use multi-page TIFFs, additional string and numerical parameters 
are used in the call to PDF_load_image( ):
image = p.load_image("tiff", filename, "page=2");
The page option indicates that a multi-image file is to be used. The last parameter speci-
fies the number of the image to use. The first image is numbered 1. This option may be 
increased until PDF_load_image( ) returns -1, signalling that no more images are avail-
able in the file.
Cookbook A full code sample for converting all images in a multi-image TIFF file to a multi-page PDF file 
can be found in the Cookbook topic images/multi_page_tiff.
6.1.7 OPI Support
When loading an image additional information according to OPI (Open Prepress Inter-
face) version 1.3 or 2.0 can be supplied in the call to PDF_load_image( ). PDFlib accepts all 
standard OPI 1.3 or 2.0 PostScript comments as options (not the corresponding PDF key-
words!), and will pass through the supplied OPI information to the generated PDF out-
put without any modification. The following example attaches OPI information to an 
String optlist13 =
"OPI-1.3 { ALDImageFilename bigfile.tif " +
"ALDImageDimensions {400 561} " +
"ALDImageCropRect {10 10 390 550} " +
"ALDImagePosition {10 10  10 540  390 540  390 10} }";
image = p.load_image("tiff", filename, optlist13);
6.1  Importing Raster Images 129
Note Some OPI servers, such as the one included in Helios EtherShare, do not properly implement OPI 
processing for PDF Image XObjects, which PDFlib generates by default. In such cases generation 
of Form XObjects can be forced by supplying the template option to PDF_load_image( ).
Chapter 6:  Importing Images and PDF Pages
6.2 Importing PDF Pages with PDI (PDF Import Library)
Note All functions described in this section require PDFlib+PDI. The PDF import library (PDI) is not 
contained in PDFlib or PDFlib Lite. Although PDI is integrated in all precompiled editions of 
PDFlib, a license key for PDI (or PPS, which includes PDI) is required.
6.2.1 PDI Features and Applications
When the optional PDI (PDF import) library is attached to PDFlib, pages from existing 
PDF documents can be imported. PDI contains a parser for the PDF file format, and pre-
pares pages from existing PDF documents for easy use with PDFlib. Conceptually, im-
ported PDF pages are treated similarly to imported raster images such as TIFF or PNG: 
you open a PDF document, choose a page to import, and place it on an output page, ap-
plying any of PDFlib’s transformation functions for translating, scaling, rotating, or 
skewing the imported page. Imported pages can easily be combined with new content 
by using any of PDFlib’s text or graphics functions after placing the imported PDF page 
on the output page (think of the imported page as the background for new content). Us-
ing PDFlib and PDI you can easily accomplish the following tasks:
>overlay two or more pages from multiple PDF documents (e.g., add stationary to ex-
isting documents in order to simulate preprinted paper stock);
>place PDF ads in existing documents;
>clip the visible area of a PDF page in order to get rid of unwanted elements (e.g., crop 
marks), or scale pages;
>impose multiple pages on a single sheet for printing;
>process multiple PDF/X or PDF/A documents to create a new PDF/X or PDF/A file;
>copy the PDF/X or PDF/A output intent of a file;
>add some text (e.g., headers, footers, stamps, page numbers) or images (e.g., company 
logo) to existing PDF pages;
>copy all pages from an input document to the output document, and place barcodes 
on the pages;
>use the pCOS interface to query arbitrary properties of a PDF document (see Chapter 
8, »The pCOS Interface«, page 181).
In order to place a PDF background page and populate it with dynamic data (e.g., mail 
merge, personalized PDF documents on the Web, form filling) we recommend using PDI 
along with PDFlib blocks (see Chapter 10, »Variable Data and Blocks«, page 225).
6.2.2 Using PDI Functions with PDFlib
Cookbook Code samples regarding PDF import issues can be found in the pdf_import category of the 
PDFlib Cookbook.
General considerations. It is important to understand that PDI will only import the ac-
tual page contents, but not any interactive features (such as sound, movies, embedded 
files, hypertext links, form fields, JavaScript, bookmarks, thumbnails, and notes) which 
may be present in the imported PDF document. These interactive features can be gener-
ated with the corresponding PDFlib functions. PDFlib blocks will also be ignored when 
importing a page.
You can not re-use individual elements of imported pages with other PDFlib func-
tions. For example, re-using fonts from imported documents for some other content is 
Documents you may be interested
Documents you may be interested