pdf viewer in mvc c# : How to copy a picture from a pdf to a word document SDK Library service wpf .net asp.net dnn TET-4.2-manual6-part1743

5.2  Resource Configuration and File Searching 61
5.2 Resource Configuration and File Searching
UPR files and resource categories. In some situations TET needs access to resources 
such as encoding definitions or glyph name mapping tables. In order to make resource 
handling platform-independent and customizable, a configuration file can be supplied 
for describing the available resources along with the names of their corresponding disk 
files. In addition to a static configuration file, dynamic configuration can be accom-
plished at runtime by adding resources with TET_set_option( ). For the configuration file 
a simple text format called Unix PostScript Resource (UPR) is used. The UPR file format as 
used by TET will be described below. TET supports the resource categories listed in Table 
5.1.
The UPR file format. UPR files are text files with a very simple structure that can easily 
be written in a text editor or generated automatically. To start with, let’s take a look at 
some syntactical issues:
>Lines can have a maximum of 255 characters.
>A backslash ’\’ escapes newline characters. This may be used to extend lines. 
>An isolated period character ’ . ’ serves as a section terminator.
>Comment lines may be introduced with a percent ’%’ character, and terminated by 
the end of the line.
>Whitespace is ignored everywhere except in resource names and file names.
UPR files consist of the following components:
>A magic line for identifying the file. It has the following form:
PS-Resources-1.0
>A section listing all resource categories described in the file. Each line describes one 
resource category. The list is terminated by a line with a single period character.
Table 5.1 Resource categories (all file names must be specified in UTF-8)
category
format
1
1. While the UPR syntax requires an equal character ’=’ between the name and value, this character is neither required nor allowed
when specifying resources with TET_set_option( ).
explanation
cmap
key=value
Resource name and file name of a CMap
codelist
key=value
Resource name and file name of a code list
encoding
key=value
Resource name and file name of an encoding
glyphlist
key=value
Resource name and file name of a glyph list
glyphmapping
option list
An option list describing a glyph mapping method according to Table 10.9, 
page 166. This resource will be evaluated in TET_open_document( ), and 
the result will be appended after the mappings specified in the option 
glyphmapping of TET_open_document( ).
hostfont
key=value
Name of a host font resource (key is the PDF font name; value is the UTF-8 
encoded host font name) to be used for an unembedded font
fontoutline
key=value
Font and file name of a TrueType or OpenType font to be used for an un-
embedded font
searchpath
value
Relative or absolute path name of directories containing data files
How to copy a picture from a pdf to a word 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 pdf image to powerpoint; copy image from pdf to
How to copy a picture from a pdf to a word 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
copying images from pdf files; how to cut a picture out of a pdf
62
Chapter 5:  Configuration
>A section for each of the resource categories listed at the beginning of the file. Each 
section starts with a line showing the resource category, followed by an arbitrary 
number of lines describing available resources. The list is terminated by a line with a 
single period character. Each resource data line contains the name of the resource 
(equal signs have to be quoted). If the resource requires a file name, this name has to 
be added after an equal sign. The searchpath (see below) will be applied when TET 
searches for files listed in resource entries.
Sample UPR file. The following listing gives an example of a UPR configuration file:
PS-Resources-1.0
searchpath
glyphlist
codelist
encoding
.
searchpath
/usr/local/lib/cmaps
/users/kurt/myfonts
.
glyphlist
myglyphlist=/usr/lib/sample.gl
.
codelist
mycodelist=/usr/lib/sample.cl
.
encoding
myencoding=sample.enc
.
File search and the searchpath resource category. In addition to relative or absolute 
path names you can supply file names without any path specification to TET. The 
searchpath resource category can be used to specify a list of path names for directories 
containing the required data files. When TET must open a file it will first use the file 
name exactly as supplied, and try to open the file. If this attempt fails, TET will try to 
open the file in the directories specified in the searchpath resource category one after 
another until it succeeds. Multiple searchpath entries can be accumulated, and will be 
searched in reverse order (paths set at a later point in time will searched before earlier 
ones). In order to disable the search you can use a fully specified path name in the TET 
functions.
On Windows TET initializes the searchpath resource category with a value read from 
the following registry keys:
HKLM\SOFTWARE\PDFlib\TET4\4.2\SearchPath
HKLM\SOFTWARE\PDFlib\TET4\SearchPath
HKLM\SOFTWARE\PDFlib\SearchPath
These registry entries may contain a list of path names separated by a semicolon  ’;’  
character. The Windows installer initializes the SearchPath registry entry with the name 
of the resource directory in the TET installation directory.
Note Be careful when manually accessing the registry on 64-bit Windows systems: as usual, 64-bit 
binaries work with the 64-bit view of the Windows registry, while 32-bit binaries running on a 
64-bit system work with the 32-bit view of the registry. If you must add registry keys for a 32-bit 
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
paste image into pdf; copy picture from pdf
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.
copy pdf picture to powerpoint; how to copy and paste an image from a pdf
5.2  Resource Configuration and File Searching 63
product manually, make sure to use the 32-bit version of the regedit tool. It can be invoked as 
follows from the Start, Run... dialog:
%systemroot%\syswow64\regedit
On i5/iSeries the searchpath resource category is initialized with the following values:
/PDFlib/TET/4.2/resource/cmap
/PDFlib/TET/4.2/resource/codelist
/PDFlib/TET/4.2/resource/glyphlst
/PDFlib/TET/4.2
/PDFlib/TET
/PDFlib
Default file search paths. On Unix, Linux,  OS X and i5/iSeries systems some directo-
ries will be searched for files by default even without specifying any path and directory 
names. Before searching and reading the UPR file (which may contain additional search 
paths), the following directories will be searched:
<rootpath>/PDFlib/TET/4.2/resource/cmap
<rootpath>/PDFlib/TET/4.2/resource/codelist
<rootpath>/PDFlib/TET/4.2/resource/glyphlst
<rootpath>/PDFlib/TET/4.2/resource/fonts
<rootpath>/PDFlib/TET/4.2/resource/icc
<rootpath>/PDFlib/TET/4.2
<rootpath>/PDFlib/TET
<rootpath>/PDFlib
On Unix, Linux, and  OS X <roothpath> will first be replaced with /usr/local and then with 
the HOME directory. On i5/iSeries <roothpath> is empty.
Default file names for license and resource files. By default, the following file names 
will be searched for in the default search path directories:
licensekeys.txt
(license file)
pdflib.upr
(resource file)
This feature can be used to work with a license file without setting any environment 
variable or runtime option.
Searching for the UPR resource file. If resource files are to be used you can specify 
them via calls to TET_set_option( ) (see below) or in a UPR resource file. TET reads this file 
automatically when the first resource is requested. The detailed process is as follows:
>If the environment variable TETRESOURCEFILE is defined TET takes its value as the 
name of the UPR file to be read. If this file cannot be read an exception will be 
thrown.
>If the environment variable TETRESOURCEFILE is not defined, TET tries to open a file 
with the following name:
upr (on MVS; a dataset is expected)
/tet/4.2/tet.upr (on i5/iSeries)
tet.upr (Windows, Unix, and all other systems)
If this file cannot be read no exception will be thrown.
>On Windows TET will additionally try to read the following registry entry:
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
Copy the demo codes and run your project New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing & profession imaging controls, PDF document, tiff files
how to copy text from pdf image; how to copy pictures from a pdf document
VB.NET PDF remove image library: remove, delete images from PDF in
C#.NET PDF pages extract, copy, paste, C# Powerful PDF image editor control, compatible with .NET Support removing vector image, graphic picture, digital photo
cut and paste pdf images; how to cut a picture out of a pdf file
64
Chapter 5:  Configuration
HKLM\SOFTWARE\PDFlib\TET4\4.2\resourcefile
The value of this key (which will be created with the value <installdir>/tet.upr by the 
TET installer, but can also be created by other means) will be taken as the name of the 
resource file to be used. If this file cannot be read an exception will be thrown.
>The client can force TET to read a resource file at runtime by explicitly setting the 
resourcefile option:
set_option("resourcefile=/path/to/tet.upr");
This call can be repeated arbitrarily often; the resource entries will be accumulated.
Configuring resources at runtime. In addition to using a UPR file for the configuration, 
it is also possible to directly configure individual resources at runtime via TET_set_
option( ). This function takes a resource category name and pairs of corresponding re-
source names and values as it would appear in the respective section of this category in 
a UPR resource file, for example:
set_option("glyphlist={myglyphnames=/usr/local/glyphnames.gl}");
Multiple resource names can be configured in a single option list for a resource category 
option (but the same resource category option cannot be repeated in a single call to TET_
set_option( )). Alternatively, multiple calls can be used to accumulate resource settings.
Escape sequences for text files. Escape sequences are supported in all text files except 
UPR files and CMap files. Special character sequences can be used to include unprintable 
characters in text files. All sequences start with a backslash ’\’ character:
>\x introduces a sequence of two hexadecimal digits (0-9, A-F, a-f), e.g. \x0D
>\nnn denotes a sequence of three octal digits (0-7), e.g. \015. The sequence \000 will be 
ignored.
>The sequence \\  denotes a single backslash.
>A backslash at the end of a line will cancel the end-of-line character.
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:
how to paste a picture in a pdf; paste jpg into pdf
C# HTML5 Viewer: Deployment on AzureCloudService
(as shown in picture). RasterEdge.XDoc.PDF.HTML5Editor.dll. Open RasterEdge_AzureC loudService DemoProject, copy following content to your project: Default.aspx.
cut picture pdf; how to copy picture from pdf to word
5.3  Recommendations for common Scenarios 65
5.3 Recommendations for common Scenarios
TET offers a variety of options which you can use to control various aspects of opera-
tion. In this section we provide some recommendations for typical TET application sce-
narios. Please refer to Chapter 10, »TET Library API Reference«, page 141, for details on 
the functions and options mentioned below.
Optimizing performance. In some situations, particularly when indexing PDF for 
search engines, text extraction speed is crucial, and may play a more important role 
than optimal output. The default settings of TET have been selected to achieve the best 
possible output, but can be adjusted to speed up processing. Some tips for choosing op-
tions in TET_open_page( ) to maximize text extraction throughput:
>docstyle=searchengine
Several internal parameters will be set to speed up operation by reducing the output 
quality in a way which does not affect the indexing process for search engines.
>skipengines={image}
If image extraction is not required internal image processing can be skipped in order 
to speed up operation.
>contentanalysis={merge=0}
This will disable the expensive strip and zone merging step, and reduces processing 
times for typical files to ca. 60% compared to default settings. However, documents 
where the contents are scattered across the pages in arbitrary order may result in 
some text which is not extracted in logical order.
>contentanalysis={shadowdetect=false}
This will disable detection of redundant shadow and fake bold text, which can also 
reduce processing times.
Words vs. line layout vs. reflowable text. Different applications will prefer different 
kinds of output (hyphenated words will always be dehyphenated with these settings):
>Individual words (ignore layout): a search engine may not be interested in any lay-
out-related aspects, but only the words comprising the text. In this situation use 
granularity=word in TET_open_page( ) to retrieve one word per call to TET_get_text( ).
>Keep line layout: use granularity=page in TET_open_page( ) for extracting the full text 
contents of a page in a single call to TET_get_text( ). Text lines will be separated with a 
linefeed character to retain the existing line structure.
>Reflowable text: in order to avoid line breaks and facilitate reflowing of the extracted 
text use contentanalysis={lineseparator=U+0020} and granularity=page in TET_open_
page( ). The full page contents can be fetched with a single call to TET_get_text( ). 
Zones will be separated with a linefeed character, and a space character will be insert-
ed between the lines in a zone.
Writing a search engine or indexer. Indexers are usually not interested in the position 
of text on the page (unless they provide search term highlighting). In many cases they 
will tolerate errors which occur in Unicode mapping, and process whatever text con-
tents they can get. Recommendations:
>Use granularity=word in TET_open_page( ).
>If the application knows how to process punctuation characters you can keep them 
with the adjacent text by setting the following page option: 
contentanalysis={punctuationbreaks=false}
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
Do you need to save a copy of certain SDK; VB.NET image cropping method to crop picture / photo; RasterEdge.com is professional provider of document, content and
how to cut an image out of a pdf; how to paste a picture into a pdf document
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
VB.NET Method to Resize Image & Picture. Here we code demo, which you can directly copy to your VB powerful & profession imaging controls, PDF document, image to
copy pictures from pdf to word; how to copy an image from a pdf in
66
Chapter 5:  Configuration
Geometry. The geometry features may be useful for some applications:
>The TET_get_char_info( ) interface is only required if you need the position of text on 
the page, the respective font name, or other details. If you are not interested in text 
coordinates calling TET_get_text( ) will be sufficient.
>If you have advance information about the layout of pages you can use the include-
box and/or excludebox options in TET_open_page( ) to get rid of headers, footers, or 
similar items which are not part of the main text.
Unknown characters. If TET is unable to determine the appropriate Unicode mapping 
for one or more characters it will represent it with the Unicode replacement character 
U+FFFD. If your application is not concerned about unmappable characters you can 
simply discard all occurrences of this character. Applications which require more fine-
grain results could take the corresponding font into account, and use it to decide on 
processing of unmappable characters. Use the following document option to replace all 
unmapped characters with a question mark:
unknownchar=?
Use the following document option to remove all unmapped characters from the out-
put:
fold={{[:Private_Use:] remove} {[U+FFFD] remove} default}
Complex layouts. Some classes of documents often use very elaborate page layouts. 
For example, with magazines and periodicals TET may not be able to properly deter-
mine the relationship of columns on the page. In such situations it is possible to en-
hance the extracted text at the expense of processing time. Suitable options for this 
purpose are summarized in Section 6.6, »Layout Analysis«, page 88. See Table 10.12, page 
174, for more details on relevant options.
Legal documents. When dealing with legal documents there is usually zero tolerance 
for wrong Unicode mappings since they might alter the content or interpretation of a 
document. In many cases the text position is not required, and the text must be extract-
ed word by word. Recommendations:
>Use the granularity=word option in TET_open_page( ).
>Use the password option with the appropriate document password in TET_open_
document( ) if you must process documents which require a password for opening, or 
the shrug option if content extraction is not allowed in the permission settings and 
you are in a legal position to extract text from the document (see »The »shrug« fea-
ture for protected documents«, page 60).
>For absolute text fidelity: stop processing as soon as the unknown field in the charac-
ter info structure returned by TET_get_char_info( ) is 1, or if the Unicode replacement 
character U+FFFD is part of the string returned by TET_get_text( ). In TETML with one 
of the text modes glyph or wordplus you can identify this situation by the following 
attribute in the Glyph element:
unknown="true"
Do not set the unknownchar option to any common character since you may be un-
able to distinguish it from correctly mapped characters without checking the 
unknown field.
5.3  Recommendations for common Scenarios 67
>Also to ensure text fidelity you may want to disable text extraction for text which is 
not visible on the page:
ignoreinvisibletext=true
Processing documents with PDFlib+PDI. When using PDFlib+PDI to process PDF docu-
ments on a per-page basis you can integrate TET for controlling the splitting or merging 
process. For example, you could split a PDF document based on the contents of a page. If 
you have control over the creation process you can insert separator pages with suitable 
processing instructions in the text. The TET Cookbook contains examples for analyzing 
documents with TET and then processing them with PDFlib+PDI.
Legacy PDF documents with missing Unicode values. In some situations PDF docu-
ments created by legacy applications must be processed where the PDF may not contain 
enough information for proper Unicode mapping. Using the default settings TET may 
be unable to extract some or all of the text contents. Recommendations:
>Start by extracting the text with default settings, and analyze the results. Identify 
the fonts which do not provide enough information for proper Unicode mapping.
>Write custom encoding tables and glyph name lists to fix problematic fonts. Use the 
PDFlib FontReporter plugin for analyzing the fonts and preparing Unicode mapping 
tables.
>Configure the custom mapping tables and extract the text again, using a larger num-
ber of documents. If there are still unmappable glyphs or fonts adjust the mapping 
tables as appropriate.
>If you have a large number of documents with unmappable fonts PDFlib GmbH may 
be able to assist you in creating the required mapping tables.
Convert PDF documents to another format. If you want to import the page contents of 
PDF documents into your application, while retaining as much information as possible 
you’ll need precise character metrics. Recommendations:
>Use TET_get_char_info( ) to retrieve precise character metrics and font names. Even if 
you use the uv field to retrieve the Unicode values of individual characters, you must 
also call TET_get_text( ) since it fills the char_info structure.
>Use granularity=glyph or word in TET_open_page( ), depending on what is better suited 
for your application. Working with granularity=glyph may result in conflicts between 
the visual layout of text and the processed logical text created by TET (e.g. the two 
characters created by a ligature glyph may not fit into the same space as the liga-
ture).
Corporate fonts with custom-encoded logos. In many cases corporate fonts contain-
ing custom logos have missing or wrong Unicode mapping information for the logos. If 
you have a large number of PDF documents containing such fonts it is recommended to 
create a custom mapping table with proper Unicode values.
Start by creating a font report (see »Analyzing PDF documents with the PDFlib Font-
Reporter Plugin«, page 108) for a PDF containing the font, and locate mismapped glyphs 
in the font report. Depending on the font type you can use any of the available configu-
ration tables to provide the missing Unicode mappings. See »Code list resources for all 
font types«, page 109, for a detailed example of a code list for a logotype font.
68
Chapter 5:  Configuration
TeX documents. PDF documents produced with the TeX documents often contain nu-
merical glyph names, Type 3 fonts and other features which prevent other products 
from successfully extracting the text. TET contains many heuristics and workarounds 
for dealing with such documents. However, a particular flavor of TeX documents can 
only be processed with a workaround that requires more processing time, and is dis-
abled by default. You can enable more CPU-intensive font processing for these docu-
ments with the following document option:
checkglyphlists=true
6.1  PDF Document Domains 69
6Text Extraction
6.1 PDF Document Domains
PDF documents may contain text in many other places than only the page contents. 
While most applications deal with the page contents only, in many situations other 
document domains may be relevant as well.
While the page contents can be retrieved with the workhorse functions TET_get_
text( ) and TET_get_image( ), the integrated pCOS interface plays a crucial role for retriev-
ing text from other document domains.
In the remaining section we provide information on domain searching with the TET 
library and TETML. In addition, we summarize how to search these document domains 
with Acrobat X/XI. This is important to locate search hits in Acrobat.
Text on the page. Page contents are the main source of text in PDF. Text on a page is 
rendered with fonts and encoded using one of the many encoding techniques available 
in PDF.
>How to display with Acrobat: page contents are always visible
>How to search a single PDF with Acrobat X/XI: Edit, Find or Edit, [Advanced] Search. TET 
may be able to process the text in documents where Acrobat does not correctly map 
glyphs to Unicode values. In this situation you can use the TET Plugin which is based 
on TET (see Section 4.1, »Free TET Plugin for Adobe Acrobat«, page 43). The TET Plugin 
offers its own search dialog via Plug-Ins, PDFlib TET Plugin... TET Find. However, it is not 
intended as a full-blown search facility.
>How to search multiple PDFs with Acrobat X/XI: Edit, [Advanced] Search and in Where 
would you like to search? select All PDF Documents in, and browse to a folder with PDF 
documents.
>Sample code for the TET library: extractor mini sample
>TETML element: /TET/Document/Pages/Page
Predefined document info entries. Traditional document info entries are key/value 
pairs.
>How to display with Acrobat X/XI: File, Properties...
>How to search a single PDF with Acrobat X/XI: not available
>How to search multiple PDFs with Acrobat X/XI: click Edit, [Advanced] Search and Show 
More Options near the bottom of the dialog. In the Look In: pull-down select a folder of 
PDF documents and in the pull-down menu Use these additional criteria select one of 
Date Created, Date Modified, Author, Title, Subject, Keywords.
>Sample code for the TET library: dumper mini sample
>TETML element: /TET/Document/DocInfo
Custom document info entries. Custom document info entries can be defined in addi-
tion to the standard entries.
>How to display with Acrobat X/XI: File, Properties..., Custom (not available in the free 
Adobe Reader)
>How to search with Acrobat X/XI: not available
70
Chapter 6:  Text Extraction
>Sample code for the TET library: dumper mini sample
>TETML element: /TET/Document/DocInfo/Custom
XMP metadata on document level. XMP metadata consists of an XML stream contain-
ing extended metadata.
>How to display with Acrobat X/XI: File, Properties..., Additional Metadata.. (not avail-
able in the free Adobe Reader)
>How to search a single PDF with Acrobat X/XI: not available
>How to search multiple PDFs with Acrobat X/XI: click Edit, [Advanced] Search and Show 
More Options. In the Look In: pull-down select a folder of PDF documents and in the 
pull-down menu Use these additional criteria select XMP Metadata
(not available in 
the free Adobe Reader).
>Sample code for the TET library: dumper mini sample
>TETML element: /TET/Document/Metadata
XMP metadata on image level. XMP metadata can be attached to document compo-
nents, such as images, pages, fonts, etc. However, XMP is commonly only found on the 
image level (in addition to document level).
Fig. 6.1
Acrobat’s advanced
search dialog
Documents you may be interested
Documents you may be interested