pdf viewer in mvc c# : How to copy and paste a picture from a pdf document Library SDK class asp.net wpf web page ajax TET-4.2-manual11-part1730

7.5  Unicode Mapping for Glyphs 111
glyphmapping {{fontname=Warnock* tounicodecmap=warnock}}
Glyph list resources for simple fonts. Glyph lists (short for: glyph name lists) can be 
used to provide custom Unicode values for non-standard glyph names, or override the 
existing values for standard glyph names. A glyph list is a text file where each line de-
scribes a Unicode mapping for a single glyph name according to the following rules:
>Text after a percent sign ’%’ will be ignored; this can be used for comments.
>The first column contains the glyph name. Any glyph name used in a font can be 
used (i.e. even the Unicode values of standard glyph names can be overridden). In or-
der to use the percent sign as part of a glyph name the sequence  \%  must be used 
(since the percent sign serves as the comment introducer).
>At most one mapping for a particular glyph name is allowed; multiple mappings for 
the same glyph name will be treated as an error.
>The remainder of the line contains up to 7 Unicode code points for the glyph name. 
The values can be supplied in decimal notation or (with the prefix x or 0x) in hexa-
decimal notation. UTF-32 is supported, i.e. surrogate pairs can be used.
>Unprintable characters in glyph names can be inserted by using escape sequences 
for text files (see Section 5.2, »Resource Configuration and File Searching«, page 61)
By convention, glyph lists use the file name suffix .gl. Glyph lists can be configured with 
the glyphlist resource. If no glyph list resource has been specified explicitly, TET will 
search for a file named <myglyphlist>.gl (where <myglyphlist> is the resource name) in the 
searchpath hierarchy (see Section 5.2, »Resource Configuration and File Searching«, page 
61, for details). In other words: if the resource name and the file name (without the .gl 
suffix) are identical you don’t have to configure the resource since TET will implicitly do 
the equivalent of the following call (where name is an arbitrary resource name):
set_option("glyphlist {name name.gl}");
Due to the precedence rules for glyph mapping, glyph lists will not be consulted if the 
font contains a ToUnicode CMap. The following sample demonstrates the use of glyph 
lists:
% Unicode values for glyph names used in TeX documents
precedesequal
0x227C
similarequal
0x2243
negationslash
0x2044
union
0x222A
prime
0x2032
In order to apply a glyph list to all font names starting with CMSY  use the following op-
tion for TET_open_document( ):
glyphmapping {{fontname=CMSY* glyphlist=tarski}}
Rules for interpreting numerical glyph names in simple fonts. Sometimes PDF docu-
ments contain glyphs with names which are not taken from some predefined list, but 
are generated algorithmically. This can be a »feature« of the application generating the 
PDF, or may be caused by a printer driver which converts fonts to another format: some-
times the original glyph names get lost in the process, and are replaced with schematic 
names such as G00, G01, G02, etc. TET contains builtin glyph name rules for processing 
How to copy and paste a picture from a pdf document - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
how to copy an image from a pdf file; cut and paste image from pdf
How to copy and paste a picture from a pdf document - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
copy picture from pdf to word; how to copy picture from pdf file
112
Chapter 7:  Advanced Unicode Handling
numerical glyph names created by various common applications and drivers. Since the 
same glyph names may be created for different encodings you can provide the 
encodinghint option to TET_open_document( ) in order to specify the target encoding for 
schematic glyph names encountered in the document. For example, if you know that 
the document contains Russian text, but the text cannot successfully be extracted for 
lack of information in the PDF, you can supply the option encodinghint= cp1250 to speci-
fy a Cyrillic codepage.
In addition to the builtin rules for interpreting numerical glyph names you can de-
fine custom rules with the fontname and glyphrule suboptions of the glyphmapping op-
tion of TET_open_document( ). You must supply the following pieces of information:
>The full or abbreviated name of the font to which the rule will be applied (fontname 
option)
>A prefix for the glyph names, i.e. the characters before the numerical part (prefix sub-
option)
>The base (decimal or hexadecimal) in which the numbers will be interpreted (base 
suboption)
>The encoding in which to interpret the resulting numerical codes (encoding subop-
tion)
For example, if you determined (e.g. using PDFlib FontReporter) that the glyphs in the 
fonts T1, T2, T3, etc. are named c00, c01, c02, ..., cFF where each glyph name corresponds to 
the WinAnsi character at the respective hexadecimal position (00, ..., FF) use the follow-
ing option for TET_open_document( ):
glyphmapping {{fontname=T* glyphrule={prefix=c base=hex encoding=winansi} }}
External font files and system fonts. If a PDF does not contain sufficient information 
for Unicode mapping and the font is not embedded, you can configure additional font 
data which TET will use to derive Unicode mappings. Font data may come from a True-
Type or OpenType font file on disk, which can be configure with the fontoutline resource 
category. As an alternative on OS X and Windows systems, TET can access fonts which 
are installed on the host operating system. Access to these host fonts can be disabled 
with the usehostfonts option in TET_open_document( ).
In order to configure a disk file for the WarnockPro font use the following call:
set_option("fontoutline {WarnockPro WarnockPro.otf}");
See Section 5.2, »Resource Configuration and File Searching«, page 61, for more details 
on configuring external font files.
C# PDF insert image Library: insert images into PDF in C#.net, ASP
NET image adding library control for PDF document, you can easily and quickly add an image, picture or logo to any position of specified PDF document file page
copy and paste image into pdf; cut image from pdf online
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add images to any selected PDF page in VB.NET.
how to copy and paste a pdf image; paste image into preview pdf
8.1  Image Extraction Basics 113
8Image Extraction
8.1 Image Extraction Basics
Image formats. TET extracts raster images from PDF pages and stores the extracted 
images in one of the following formats:
>TIFF (.tif) images are created in most cases. Most TIFF images created by TET can be 
used in the majority of TIFF viewers and consumers. However, some advanced TIFF 
features are not supported by all image viewers. We regard Adobe Photoshop as 
benchmark for the validity of TIFF images. Note that the Windows XP image viewer 
does not support the common Flate compression method in TIFF. In order to work 
around this viewer restriction you can enable LZW compression with the option 
preferredtiffcompression=lzw
in
TET_write_image_file() or get_TET_image_data().
>JPEG (.jpg) is created for images which are compressed with the JPEG algorithm 
(DCTDecode filter) in PDF. However, in some cases DCT-compressed images must be 
extracted as TIFF since not all aspects of PDF color handling can be expressed in JPEG.
>JPEG 2000 (.jpx) is created for images which are compressed with the JPEG 2000 algo-
rithm (JPXDecode filter) in PDF.
>JBIG2 (.jbig2) is created for images which are compressed with the JBIG2 algorithm 
(JBIG2Decode filter) in PDF. JBIG2 files are created with »sequential organization« ac-
cording to ISO 14492.
Extracting images to disk or memory. The TET API can deliver the images extracted 
from PDF documents in two different ways:
>The TET_write_image_file( ) API function creates an image file on disk. The base file 
name of this image file must be specified in the filename option. TET will automati-
cally add a suitable suffix depending on the image type.
>The TET_get_image_data( ) API function delivers the image data in memory. This is 
convenient if you want to pass on the image data to another processing component 
without having to deal with disk files.
Details depend on your image extraction requirements (see Section 8.4, »Page-based 
and Resource-based Image Loops«, page 118). In both cases you can determine the type 
of the extracted image (see next section).
Determine the file type of extracted images. The image file type is reported in the 
Image/@extractedAs attribute in TETML. At the API level you can use the following idiom 
to determine the type of an extracted image.
int imageType = tet.write_image_file(doc, tet.imageid, "typeonly");
/* Map the numerical image type to a format */
String imageFormat;
switch (imageType) {
case 10:
imageFormat = "TIFF";
break;
case 20:
C# PDF remove image library: remove, delete images from PDF in C#.
Image: Copy, Paste, Cut Image in Page. Link: Edit Support removing vector image, graphic picture, digital photo remove multiple or all images from PDF document.
how to copy pictures from pdf to powerpoint; how to cut a picture out of a pdf file
VB.NET PDF remove image library: remove, delete images from PDF in
edit, C#.NET PDF pages extract, copy, paste, C#.NET Support removing vector image, graphic picture, digital photo or all image objects from PDF document in .NET
copy image from pdf preview; how to copy a picture from a pdf
114
Chapter 8:  Image Extraction
imageFormat = "JPEG";
break;
case 30:
imageFormat = "JPEG2000";
break;
case 40:
imageFormat = "RAW";
break;
case 50:
imageFormat = "JBIG2";
break;
default:
System.err.println("write_image_file() returned unknown value "
+ imageType + ", skipping image, error: "
+ tet.get_errmsg());
}
XMP metadata for images. PDF uses the XMP format to attach metadata to the whole 
document or parts of it. You can find more information about XMP and its use in PDF at 
the following location: www.pdflib.com/knowledge-base/xmp-metadata/
An image object may have XMP metadata associated with it in the PDF document. If 
XMP metadata is present, TET will by default embed it in the extracted image for the 
output formats JPEG and TIFF. This behavior can be controlled with the keepxmp
option 
of TET_write_image_file( ) and TET_get_image_data( ). If this option has been set to false, 
TET will ignore image metadata when generating the image output file.
The image_metadata topic in the pCOS Cookbook shows how to extract image meta-
data with the pCOS interface directly, without generating any image file.
ICC profiles. An image in PDF may have an associated ICC profile which allows precise 
color reproduction. By default, TET processes attached ICC profiles and embeds them in 
the generated TIFF or JPEG image files. You can disable ICC profile embedding with the 
option keepiccprofile=false in TET_write_image_file( ) and TET_get_image_data( ). This will 
reduce the size of the image files at the expense of color fidelity. Disabling ICC profile 
embedding is therefore not recommended for workflows which require precise color 
representation.
C# HTML5 Viewer: Deployment on ASP.NET MVC
under Views according to config in picture above. RasterEdge.XDoc.PDF.HTML5Editor. dll. Open RasterEdge_MVC3 DemoProject, copy following content to your project:
copy image from pdf to ppt; how to copy an image from a pdf to powerpoint
C# HTML5 Viewer: Deployment on IIS
Copy according dll files listed below under RasterEdge.DocImagSDK/Bin directory and paste to Xdoc.HTML5 ViewerDemo/Bin folder. (see picture).
how to copy pdf image to word document; pdf cut and paste image
8.2  Image Merging and Filtering 115
8.2 Image Merging and Filtering
Image merging. Sometimes it is not desirable to extract images exactly as they are 
represented in the PDF document: in many situations what appears to be a single image 
is actually a collection of several smaller images which are placed close to each other. 
There are some common reasons for this image fragmentation:
>Some applications and drivers convert multi-strip TIFF images to fragmented PDF 
images. The number of strips can range from dozens to hundreds.
>Some scanning software divides scanned pages in smaller fragments (strips or tiles). 
The number of fragments is usually not more than a few dozen.
>Some applications break images into small pieces when generating print or PDF out-
put. In extreme cases, especially documents created with Microsoft Office applica-
tions, a page may contain thousands of small image fragments.
TET’s image merging engine detects this situation and recombines the image parts to 
form a larger and more useful image. Several conditions must be met in order for imag-
es to be considered as candidates for merging:
>The image fragments are oriented horizontally or vertically (but not at arbitrary an-
gles), and form a rectangular grid of sub-images.
>The number of bits per component must be the same.
>The colorspace must be the same or compatible.
>Some combinations of colorspace and compression scheme (in particular, JPEG 2000 
and JBIG2 compression) prevent image merging.
If the merging candidates can be combined to a larger image, they will be merged. 
Merged images can be identified as such by the images[ ]/mergetype pCOS pseudo object: 
it will have the value 1 (artificial) for merged images and 2 (consumed) for images which 
have been consumed by the merging process. Consumed images should generally be ig-
nored by the receiving application.
In order to disable image merging use the following page option:
imageanalysis={merge={disable}}
Fig. 8.1
Although this 
image consists of 
many little strips, 
TET extracts it as 
a single reusable 
image.
C# Raster - Modify Image Palette in C#.NET
& pages edit, C#.NET PDF pages extract, copy, paste, C#.NET VB.NET How-to, VB.NET PDF, VB.NET Word, VB is used to reduce the size of the picture, especially in
copy image from pdf acrobat; how to copy an image from a pdf in preview
C# Word - Document Processing in C#.NET
Get the main ducument IDocument doc = document.GetDocument(); //Document clone IDocument doc0 = doc.Clone(); //Get all picture in document List<Bitmap> bitmaps
paste image into pdf preview; copy picture from pdf
116
Chapter 8:  Image Extraction
When are images merged? Analyzing and merging images on a page are triggered by 
the corresponding call to TET_open_page( ). This leads to the following important conse-
quences:
>The number of entries in the pCOS images[ ] array, i.e. the value of the length:images 
pseudo object, may increase: as more pages are processed, artificial images which re-
sult from image merging are added to the array. In order to extract all merged imag-
es you must therefore open all pages in the document before querying length:images 
and extracting image data. Artificial (merged) images are marked with the corre-
sponding flag artificial (numerical value 1) in the images[ ]/mergetype pseudo object.
>On the other hand, elements in the images[ ] array may only be used as parts of 
merged images. However, entries are never removed from the images[ ] array, but the 
consumed entries are marked with the corresponding flag consumed (numerical val-
ue 2) in the images[ ]/mergetype pseudo object.
How many images are in a document? Surprisingly, there is no simple answer to this 
simple question. The answer depends on the following decisions:
>Do you want to count image resources or placed images?
>Do you want to take images into account which are only used as parts of merged im-
ages, but are never placed isolated?
Using TET and pCOS pseudo objects you can determine all variants of the image count 
answer. The image_count topic in the TET Cookbook demonstrates various possibilities 
of image counting. It generates output like the following:
No of raw image resources before merging: 82
No of placed images: 12
No of images after merging (all types): 83
normal images: 1
artificial (merged) images: 1
consumed images: 81
No of relevant (normal or artificial) image resources: 2
Small image filtering. TET ignores very small images if may of those is present on the 
page. Since the image merging process often combines many small images to a larger 
image, small image removal is performed after image merging. Only images which can 
not be merged to form a larger image will be candidates for small image removal. In ad-
dition, they must satisfy the conditions for size and count which can be specified in the 
maxarea and maxcount suboptions of the smallimages suboption of the imageanalysis 
page option. In order to completely disable small image removal use the following page 
option:
imageanalysis={smallimages={disable}}
8.3  Placed Images and Image Resources 117
8.3 Placed Images and Image Resources
TET distinguishes between placed images and image resources.
>A placed image corresponds to an image on a page. A placed image has geometric 
properties: it is placed at a certain location and has a size (measured in points, milli-
meters, or some other absolute unit). In most cases the image is visible on the page, 
but in some cases it may be invisible because it is obscured by other objects on the 
page, is placed outside the visible page area, is fully or partially clipped, etc. Placed 
images are represented by the PlacedImage element in TETML.
>An image resource is a resource which represents the actual pixel data, colorspace and 
number of components, number of bits per component, etc. Unlike placed images, 
image resources don’t have any intrinsic geometry. However, they do have width 
and height properties (measured in pixels). Each image resource has a unique ID 
which can be used to extract its pixel data. Image resources are represented by the 
Image element in TETML.
An image resource may be used as the basis for an arbitrary number of placed images in 
the document. Commonly each image resource will be placed exactly once, but it could 
also be placed repeatedly on the same page or on multiple pages. For example, consider 
an image for a company logo which is used repeatedly on the header of each page in the 
document. Each logo on a page constitutes a placed image, but all those placed images 
may be associated with the same image resource in an optimized PDF. On the other 
hand, in a non-optimized PDF each placed logo could be based on its own copy of the 
same image resource. This would result in the same visual appearance, but a larger PDF 
document. Non-optimized PDF documents may even contain image resources which 
are not even referenced on any page (i.e. unused resources).
Table 8.1 compares various properties of placed images and image resources.
Table 8.1 Comparison of placed images and image resources
property
placed images
image resources
TETML element
PlacedImage
Image
affected by image merging
yes
yes
associated with a page
yes
width and height in pixels
yes
yes
width and height in points
yes
position on the page
yes
number of appearances
1
0, 1, or more
unique ID
no: the imageid member returned by TET_
get_image_info( ) and the PlacedImage/
@image attribute in TETML identify only the 
underlying image resource
yes: imageid member returned by 
TET_get_image_info() Image/@id 
attribute in TETML
file naming convention in 
the TET command-line tool
<filename>_p<pagenumber>_
<imagenumber>.[tif|jpg|jpx|jbig2]
<filename>_I<imageid>.
[tif|jpg|jpx|jbig2]
118
Chapter 8:  Image Extraction
8.4 Page-based and Resource-based Image Loops
The distinction between placed images and image resources gives rise to two funda-
mentally different approaches to image extraction: page-based and resource-based im-
age extraction loops. Both methods can be used to extract images to a disk file or to 
memory.
Page-based image extraction loop. In this case the application is interested in the ex-
act page layout and placed images, but doesn’t care about duplicated image data. Ex-
tracting images with a page-based loop creates an image file for each placed image, and 
may result in the same image data for more than one extracted placed image. The appli-
cation can avoid image duplication by checking for duplicate image IDs. However, 
unique image resource can more easily be extracted with the resource-based image ex-
traction loop (see below).
The page-based image extraction loop can be activated in the TET command-line 
tool with the option --imageloop page. Code for page-based image extraction at the API 
level is demonstrated in the images_per_page and images_in_memory topics in the TET 
Cookbook. The images_per_page Cookbook topic and the image_extractor mini sample in 
the TET packages also show how to retrieve the image geometry.
Details of the page-based image extraction loop (please refer to the sample code 
mentioned above): TET_get_image_info( ) retrieves geometric information about a 
placed image as well as the pCOS image ID (in the imageid field) of the underlying image 
data. This ID can be used to retrieve more image details with TET_pcos_get_number( ), 
such as the color space, width and height in pixels, etc., as well as the actual pixel data 
with TET_write_image_file( ) or TET_get_image_data( ). TET_get_image_info( ) does not 
touch the actual pixel data of the image. If the same image is referenced multiply on 
one or more pages, the corresponding IDs will be the same.
Resource-based image extraction loop. In this case the application is interested in the 
image resources of the document, but doesn’t care which image is used on which page. 
Image resources which are placed more than once (on one or more pages) are extracted 
only once. On the other hand, image resources which are not placed at all on any page 
will also be extracted.
The resource-based image extraction loop can be activated in the TET command-line 
tool with the option --imageloop resource. Code for resource-based image extraction at 
the API level is demonstrated in the image_resources mini sample and Cookbook topic. 
The pCOS Path Reference contains more information regarding the pCOS interface.
Details of the resource-based image extraction loop (please refer to the sample code 
mentioned above): all pages are opened before extracting image resources to make sure 
that image merging is activated; if image merging is not relevant this step can be 
skipped. In order to extract an image, the corresponding image ID is required. The code 
enumerates all values from 0 to the highest image ID, which is queried with TET_pcos_
get_number( ) as the value of the pCOS path length:images. In order to skip the consumed 
parts of merged images (e.g. the strips of a multi-strip image), the type of each image re-
source is examined with the mergetype pCOS pseudo object. This allows us to skip image 
parts which have been consumed by the image merging process (since we are only in-
terested in the resulting merged image). Once an image ID has been determined, one of 
the functions TET_write_image_file( ) or TET_get_image_data( ) can be called to write the 
image data to a disk file or pass the pixel data in memory, respectively.
8.5  Geometry of Placed Images 119
8.5 Geometry of Placed Images
Using TET_get_image_info( ) you can retrieve geometric information for a placed image. 
The following values are available for each image in the image_info structure (see Figure 
8.2):
>The x and y fields are the coordinates of the image reference point. The reference 
point is usually the lower left corner of the image. However, coordinate system 
transformations on the page may result in a different reference point. For example, 
the image may be mirrored horizontally with the result that the reference point be-
comes the upper left corner of the image. The value of y is subject to the topdown 
page option.
>The width and height fields correspond to the physical dimensions of the placed im-
age on the page. They are provided in points (i.e. 1/72 inch).
>The angle alpha describes the direction of the pixel rows. This angle will be in the 
range -180˚ < alpha ³ +180˚. The angle alpha rotates the image at its reference point. 
For upright images alpha will be 0˚. The values of alpha and beta are subject to the 
topdown page option.
>The angle beta describes the direction of the pixel columns, relative to the perpen-
dicular of alpha. This angle will be in the range -180˚ < beta ³ +180˚, but different 
from ±90˚. The angle beta skews the image, and beta=180˚ mirrors the image at the x 
axis. For upright images beta will be in the range -90˚ < beta < +90˚. If abs(beta) > 90˚ 
the image is mirrored at the baseline.
>The imageid field contains the pCOS ID of the image. It can be used to retrieve de-
tailed image information with pCOS functions and the actual image pixel data with 
TET_write_image_file() or TET_get_image_data().
As a result of image transformations, the orientation of the extracted images may ap-
pear wrong since the extracted image data is based on the image object in the PDF. Any 
rotation or mirror transformations applied to the placed image on the PDF page will not 
be applied to the pixel data, but the original pixel data will be extracted.
Image resolution. In order to calculate the image resolution in dpi (dots per inch) you 
must divide the image width in pixels by the image width in points and multiply by 72:
while (tet.get_image_info(page) == 1) {
String imagePath = "images[" + tet.imageid + "]";
int width = (int) tet.pcos_get_number(doc, imagePath + "/Width");
int height = (int) tet.pcos_get_number(doc, imagePath + "/Height");
width
alpha
beta
(x, y)
height
Fig. 8.2
Image geometry
120
Chapter 8:  Image Extraction
double xDpi = 72 * width / tet.width;
double yDpi = 72 * height / tet.height;
...
}
Note that dpi values for rotated or skewed images may be meaningless. Full code for im-
age dpi calculations can be found in the determine_image_resolution topic in the TET 
Cookbook.
Documents you may be interested
Documents you may be interested