pdf viewer in mvc c# : Copy image from pdf to powerpoint Library application component .net windows html mvc TET-4.2-manual4-part1741

3.13  RPG Binding 41
3.13 RPG Binding
TET provides a  /copy module that defines all prototypes and some useful constants 
needed to compile ILE-RPG programs with embedded TET functions.
Unicode string handling. Since all TET functions use Unicode strings with variable 
length as parameters, you have to use the %ucs2 builtin function to convert a single-
byte string to a Unicode string. All strings returned by TET functions are Unicode strings 
with variable length. Use the %char builtin function to convert these Unicode strings to 
single-byte strings.
Note The %CHAR and %UCS2 functions use the current job’s CCSID to convert strings from and to 
Unicode. The examples provided with TET are based on CCSID 37 (US EBCDIC). Some special 
characters in option lists (e.g. 
{ [ ] } ) 
may not be translated correctly if you run the exam-
ples under other codepages.
Since all strings are passed as variable length strings you must not pass the length pa-
rameters in various functions which expect explicit string lengths (the length of a vari-
able length string is stored in the first two bytes of the string).
Compiling and binding RPG programs for TET. Using TET functions from RPG requires 
the compiled TET service program. To include the TET definitions at compile time you 
have to specify the name in the D specs of your ILE-RPG program:
d/copy QRPGLESRC,TETLIB
If the TET source file library is not on top of your library list you have to specify the li-
brary as well:
d/copy tetsrclib/QRPGLESRC,TETLIB
Before you start compiling your ILE-RPG program you have to create a binding directory 
that includes the TETLIB service program shipped with TET. The following example as-
sumes that you want to create a binding directory called TETLIB in the library TETLIB:
CRTBNDDIR BNDDIR(TETLIB/TETLIB) TEXT('TETlib Binding Directory')
After creating the binding directory you need to add the TETLIB service program to your 
binding directory. The following example assumes that you want to add the service pro-
gram TETLIB in the library TETLIB to the binding directory created earlier.
ADDBNDDIRE BNDDIR(TETLIB/TETLIB) OBJ((TETLIB/TETLIB *SRVPGM))
Now you can compile your program using the CRTBNDRPG command (or option 14 in 
PDM):
CRTBNDRPG PGM(TETLIB/EXTRACTOR) SRCFILE(TETLIB/QRPGLESRC) SRCMBR(*PGM) DFTACTGRP(*NO)  
BNDDIR(TETLIB/TETLIB)
Error Handling in RPG. TET clients written in ILE-RPG can use the monitor/on-error/
endmon error handling mechanism that ILE-RPG provides. Another way to monitor for 
exceptions is to use the *PSSR global error handling subroutine in ILE-RPG. If an excep-
Copy image from pdf to powerpoint - 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
copy and paste image from pdf to word; copy image from pdf to
Copy image from pdf to powerpoint - 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 paste picture pdf; how to cut image from pdf file
42
Chapter 3:  TET Library Language Bindings
tion occurs, the job log shows the error number, the function that failed and the reason 
for the exception. TET sends an escape message to the calling program.
c
eval      p=TET_new
*
c
monitor
*
c
callp
TET_set_option(tet:globaloptlist)
c
eval
doc=TET_open_document(tet:%ucs2(%trim(parm1)):docoptlist)
:
:
*
Error Handling
c
on-error
*
Do something with this error
*
don’t forget to free the TET object
c
callp     TET_delete(tet)
c
endmon
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET PDF - Extract Image from PDF Document in VB.NET. Support PDF VB.NET : Select An Image from PDF Page by Position. Sample for
how to copy pictures from a pdf document; copy picture from pdf reader
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
How to C#: Extract Image from PDF Document. List<PDFImage> allImages = PDFImageHandler. ExtractImages(page); C#: Select An Image from PDF Page by Position.
how to copy pictures from a pdf; copy image from pdf to ppt
4.1  Free TET Plugin for Adobe Acrobat 43
4TET Connectors
TET connectors provide the necessary glue code for interfacing TET with other software. 
TET connectors are based on the TET library or the TET command-line tool.
4.1 Free TET Plugin for Adobe Acrobat
This section discusses the TET Plugin, a freely available packaging of TET which can be 
used for testing in Adobe Acrobat and interactive use of TET with any PDF document. 
The TET Plugin works with Acrobat 8/9/X/XI Standard, Pro, and Pro Extended (but not 
the free Adobe Reader). It can be downloaded for free from the following location:
www.pdflib.com/products/tet-plugin.
What is the TET Plugin? The TET Plugin provides simple interactive access to TET. Al-
though the TET Plugin runs as an Acrobat plugin, the underlying content extraction fea-
tures do not use Acrobat functions, but are completely based on TET. The TET Plugin is 
provided as a free tool which demonstrate the power of PDFlib TET. Since TET is more 
powerful than Acrobat’s built-in text and image extraction tools and offers a number of 
convenient user interface features, it is useful as a replacement for Acrobat’s built-in 
copy and find features. PDFlib TET can successfully process many documents for which 
Fig. 4.1
Configuration panel for the TET Plugin
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy Ability to copy selected PDF pages and paste into another PDF file. The
how to cut an image out of a pdf; cut image from pdf online
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Dim page As PDFPage = doc.GetPage(3) ' Select image by the point VB.NET: Clone a PDF Page. Dim doc As PDFDocument = New PDFDocument(filepath) ' Copy the first
how to cut a picture from a pdf document; how to cut an image out of a pdf file
44
Chapter 4:  TET Connectors
Acrobat provides only garbage when trying to extract the text. The TET Plugin provides 
the following functions:
>Copy the text from a PDF document in plain text to the system clipboard or a disk 
file. Enhanced clipboard controls facilitate the use of copy/paste.
>Convert a PDF to TETML and place it in the clipboard or a disk file.
>Copy XMP document metadata to the clipboard or a disk file.
>Find words in the document.
>Highlight all instances of a search term on the page simultaneously.
>Extract images from the document as TIFF, JPEG, JPEG 2000, or JBIG2 files.
>Display color space and position information for images.
>Detailed configuration settings are available to adjust text and image extraction to 
your requirements. Configuration sets can be saved and reloaded.
Advantages over Acrobat’s copy function. The TET Plugin offers several advantages 
over Acrobat’s built-in copy facility:
>The output can be customized to match different application requirements.
>TET is able to correctly interpret the text in many cases where Acrobat copies only 
garbage to the clipboard.
>Unknown glyphs (for which proper Unicode mapping cannot be established) will be 
highlighted in red color, and can be replaced with a user-selected character (e.g. ques-
tion mark).
>TET processes documents much faster than Acrobat.
>Images can be selected interactively for export, or all images on the page or in the 
document can be extracted.
>Tiny image fragments are merged to usable images.
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Create PDF from PowerPoint. |. Home ›› XDoc.PDF ›› C# PDF: Create PDF from PowerPoint. C#.NET PDF SDK- Create PDF from PowerPoint in C#.
cut and paste pdf image; copy pdf picture to word
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Insert Image to PDF Page Using VB. Add necessary references: RasterEdge.Imaging.Basic.dll.
copy a picture from pdf to word; how to copy pdf image to powerpoint
4.2  TET Connector for the Lucene Search Engine 45
4.2 TET Connector for the Lucene Search Engine
Lucene is an open-source search engine. Lucene is primarily a Java project, but a C ver-
sion is also available and a version for .NET is under development. For more informa-
tion on Lucene see lucene.apache.org.
Note Protected documents can be indexed with the shrug option under certain conditions (see 
Chapter 5.1, »Extracting Content from protected PDF«, page 59, for details). This is prepared in 
the Connector files, but you must manually enable this option.
Requirements and installation. The TET distribution contains a TET connector which 
can be used to enable PDF indexing in Lucene Java. We describe this connector for Lu-
cene Java in more detail below, assuming the following requirements are met:
>JDK 1.5 or later for Lucene 3.0.x
>A working installation of the Ant build tool
>The Lucene distribution with the Lucene core JAR file. The Ant build file distributed 
with TET expects the file lucene-core-3.0.2.jar, which is part of the Lucene distribution.
>An installed TET distribution package for Unix, Linux, OS X, or Windows.
In order to implement the TET connector for Lucene perform the following steps with a 
command prompt:
>cd to the directory <TET install dir>/connectors/lucene.
>Copy the file lucene-core-x.x.x.jar to this directory.
>Optionally customize the settings by adding global, document-, and page-related 
TET options in TetReader.java. For example, the global option list can be used to sup-
ply a suitable search path for resources (e.g. if the CJK CMaps are installed in a direc-
tory different from the default installation).
The PdfDocument.java module demonstrates how to process PDF documents which 
are stored either on a disk file or in a memory buffer (e.g. supplied by a Web crawler).
In the class com.pdflib.tet.lucene.IndexPdfFiles you can customize the target version of 
the Lucene engine with the LUCENE_VERSION variable.
>Run the command ant index. This will compile the source code and run the indexer 
on the PDF files contained in the directory <TET install dir>/bind/data.
>Run the command ant search to start the command-line search client where you can 
enter queries in the Lucene query language.
Testing TET and Lucene with the command-line search client. The following sample 
session demonstrates the commands and output for indexing with TET and Lucene, and 
testing the generated index with the Lucene command-line query tool. The process is 
started by running the command ant index:
devserver (1)$ ant index
Buildfile: build.xml
...
index:
[java] adding ../data/Whitepaper-XMP-metadata-in-PDFlib-products.pdf
[java] adding ../data/Whitepaper-PDFA-with-PDFlib-products.pdf
[java] adding ../data/FontReporter.pdf
[java] adding ../data/TET-PDF-IFilter-datasheet.pdf
[java] adding ../data/PDFlib-datasheet.pdf
[java] 1255 total milliseconds
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
from Word. Create PDF from Excel. Create PDF from PowerPoint. Create PDF Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut
how to copy an image from a pdf; how to copy pictures from pdf to powerpoint
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. C#.NET Example: Convert One Image to PDF in Visual C# .NET Class.
how to copy pdf image to word; how to copy and paste a pdf image
46
Chapter 4:  TET Connectors
BUILD SUCCESSFUL
Total time: 2 seconds
devserver (1)$ ant search
Buildfile: build.xml
compile:
search:
[java] Enter query: 
PDFlib
[java] Searching for: pdflib
[java] 5 total matching documents
[java] 1. ../data/PDFlib-datasheet.pdf
[java]    Title: PDFlib, PDFlib+PDI, Personalization Server Datasheet
[java] 2. ../data/Whitepaper-PDFA-with-PDFlib-products.pdf
[java]    Title: Whitepaper: Creating PDF/A with PDFlib
[java] 3. ../data/FontReporter.pdf
[java]    Title: PDFlib FontReporter 1.3 Manual
[java] 4. ../data/TET-PDF-IFilter-datasheet.pdf
[java]    Title: PDFlib TET PDF IFilter Datasheet
[java] 5. ../data/Whitepaper-XMP-metadata-in-PDFlib-products.pdf
[java]    Title: Whitepaper: XMP Metadata support in PDFlib Products
[java] Press (q)uit or enter number to jump to a page.
q
[java] Enter query: 
title:FontReporter
[java] Searching for: title:fontreporter
[java] 1 total matching documents
[java] 1. ../data/FontReporter.pdf
[java]    Title: PDFlib FontReporter 1.3 Manual
[java] Press (q)uit or enter number to jump to a page.
q
[java] Enter query: 
BUILD SUCCESSFUL
Total time: 57 seconds
Two queries have been performed: one for the word PDFlib in the text, and another one 
for the word FontReporter in the title field. Note that q must be entered to leave the result 
paging mode before the next query can be started.
All paths and filenames in the Ant build.xml file are defined via properties so that the 
file can be used with different environments, either by providing the properties on the 
command line or by entering the properties to override in a file build.properties, or even 
platform-specific into the files windows.properties or unix.properties. For example, to run 
the sample with a Lucene JAR file which is installed under /tmp you can invoke Ant as 
follows:
ant -Dlucene.jar=/tmp/lucene-core-x.x.x.jar index
Testing TET and Lucene with the demo Web application. The Lucene demo Web appli-
cation can be deployed on any Java servlet container such as Tomcat or GlassFish. The 
required steps are described in the HTML documentation that comes with Lucene.
Note the step Configuration on that page. Here you must make the location of the in-
dex known to the Web application by entering it in the file configuration.jsp. The path to 
4.2  TET Connector for the Lucene Search Engine 47
add here would be <TET install dir>/bind/lucene/index if Ant was run without overriding 
the property for the location of the Lucene index.
Indexing metadata fields. The TET connector for Lucene indexes the following meta-
data fields:
>path (tokenized field): the pathname of the document
>modified (DateField): the date of the last modification
>contents (Reader field): the full text contents of the document
>All predefined and custom PDF document info entries, e.g. Title, Subject, Author, 
etc.  Document info entries can be queried with the pCOS interface which is inte-
grated in TET (see the pCOS Path Reference for more details on pCOS), e.g.
String objType = tet.pcos_get_string(tetHandle, "type:/Info/Subject");
if (!objType.equals("null"))
{
doc.add(new Field("summary", tet.pcos_get_string(tetHandle,
"/Info/Subject"), Field.Store.YES, Field.Index.ANALYZED));
}
>font: the names of all fonts in the PDF document
You can customize metadata fields by modifying the set of indexed document info en-
tries or by adding more information based on pCOS paths in PdfDocument.java.
PDF file attachments. The Lucene connector for TET recursively processes all PDF file 
attachments in a document, and feeds the text and metadata of each attachment to the 
Lucene search engine for indexing. This way search hits will be generated even if the 
searched text is not present in the main document but some attachment. Recursive at-
tachment traversal is especially important for PDF packages and portfolios.
48
Chapter 4:  TET Connectors
4.3 TET Connector for the Solr Search Server
Solr is a high performance open-source enterprise search server based on the Lucene 
search library, with XML/HTTP and JSON/Python/Ruby APIs, hit highlighting, faceted 
search, caching, replication, and a web admin interface. It runs in a Java servlet contain-
er (see lucene.apache.org/solr).
Solar acts as an additional layer around the Lucene core engine. It expects the in-
dexed data in a simple XML format. Solr input can most easily be generated based on 
TETML, the XML flavor produced by TET. The TET connector for Solr consists of an XSLT 
stylesheet which converts TETML to the XML format expected by Solr. The TETML input 
for this stylesheet can be generated with the TET library or the TET command-line tool 
(see Section 9.1, »Creating TETML«, page 123).
Note Protected documents can be indexed with the shrug option under certain conditions (see 
Chapter 5.1, »Extracting Content from protected PDF«, page 59, for details). In order to index 
protected documents you must enable this option in the TET library or the TET command-line 
tool when generating the TETML input for Solr.
Indexing metadata fields. The TET connector for Solr indexes all standard document 
info fields. The key of each field will be used as the field name.
PDF file attachments. The TET connector for Solr recursively processes all PDF file at-
tachments in a document, and feeds the text and metadata of each attachment to the 
search engine for indexing. This way search hits will be generated even if the searched 
text is not present in the main document but some attachment. Recursive attachment 
traversal is especially important for PDF packages and portfolios.
XSLT stylesheet for converting TETML. The solr.xsl stylesheet expects TETML input in 
any mode except glyph. It generates the XML required to supply input data to the search 
server. Document info entries are supplied as fields which carry the name of the info 
entry (plus the _s suffix to indicate a string value), and the main text is supplied in a 
number of text fields. PDF attachments (including PDF packages and portfolios) in the 
document will be processed recursively:
<?xml version="1.0" encoding="UTF-8"?>
<add>
<doc>
<field name="id">PDFlib-FontReporter-E.pdf</field>
<field name="Author_s">PDFlib GmbH</field>
<field name="CreationDate_s">2008-07-08T15:05:39+00:00</field>
<field name="Creator_s">FrameMaker 7.0</field>
<field name="ModDate_s">2008-07-08T15:05:39+00:00</field>
<field name="Producer_s">Acrobat Distiller 7.0.5 (Windows)</field>
<field name="Subject_s">PDFlib FontReporter</field>
<field name="Title_s">PDFlib FontReporter 1.3 Manual</field>
<field name="text">PDFlib</field>
<field name="text">GmbH</field>
<field name="text">München</field>
...
4.4  TET Connector for Oracle 49
4.4 TET Connector for Oracle
The TET connector for Oracle attaches TET to an Oracle database so that PDF documents 
can be indexed and queried with Oracle Text. The PDF documents can be referenced via 
their path name in the database, or directly stored in the database as BLOBs.
Note Protected documents can be indexed with the shrug option under certain conditions (see 
Chapter 5.1, »Extracting Content from protected PDF«, page 59, for details). This is prepared in 
the Connector files, but you must manually enable this option.
Requirements and installation. The TET connector has been tested with Oracle 10i and 
Oracle 11g. In order use the TET connector you must specify the AL32UTF8 database char-
acter set when creating the database. This is always the case for the Universal edition of 
Oracle Express (but not for the Western European edition). AL32UTF8 is the database 
character set recommended by Oracle, and also works best with TET for indexing PDF 
documents. However, it is also possible to connect TET to Oracle Text with other charac-
ter sets according to one of the following methods:
>Starting with Oracle Text 11.1.0.7 the database can perform the required character set 
conversion. Please refer to the section »Using USER_FILTER with Charset and Format 
Columns« in the Oracle Text 11.1.0.7 documentation, available at
download.oracle.com/docs/cd/B28359_01/text.111/b28304/cdatadic.htm#sthref497.
>With Oracle Text 11.1.0.6 or earlier the UTF-8 text generated by the TET filter script 
must be converted to the database character set. This can be achieved by adding a 
character set conversion command to tetfilter.sh:
Unix: call iconv (open-source software) or uconv (part of the free ICU Unicode library)
Windows: call a suitable code page converter in tetfilter.bat.
In order to take advantage of the TET Connector for Oracle you must make the TET filter 
script available to Oracle as follows:
>Copy the TET filter script to a directory where Oracle can find it:
Unix: copy connectors/Oracle/tetfilter.sh to $ORACLE_HOME/ctx/bin
Windows: copy connectors/Oracle/tetfilter.bat to %ORACLE_HOME%\bin
>Make sure that the TETDIR variable in the TET filter script (tetfilter.sh or tetfilter.bat, re-
spectively) points to the TET installation directory.
>If required you can supply more TET options for the global, document, or page level 
in the TETOPT, DOCOPT, and PAGEOPT variables (see Chapter 10, »TET Library API Refer-
ence«, page 141, for option list details). This is especially useful for supplying the TET 
license key, e.g.:
TETOPT="license=aaaaaaa-bbbbbb-cccccc-dddddd-eeeeee"
See Section 0.2, »Applying the TET License Key«, page 8, for more options for supply-
ing the TET license key.
Granting privileges to the Oracle user. The examples below assume an Oracle user 
with appropriate privileges to create and query an index. The following commands 
grant appropriate privileges to the user HR (these commands must be issued as system 
and must be adjusted as appropriate):
SQL> GRANT CTXAPP TO HR;
SQL> GRANT EXECUTE ON CTX_CLS TO HR;
SQL> GRANT EXECUTE ON CTX_DDL TO HR;
50
Chapter 4:  TET Connectors
SQL> GRANT EXECUTE ON CTX_DOC TO HR;
SQL> GRANT EXECUTE ON CTX_OUTPUT TO HR;
SQL> GRANT EXECUTE ON CTX_QUERY TO HR;
SQL> GRANT EXECUTE ON CTX_REPORT TO HR;
SQL> GRANT EXECUTE ON CTX_THES TO HR;
Example A: Store path names of PDF documents in the database. This example stores 
file name references to the indexed PDF documents in the database. Proceed as follows:
>Change to the following directory in a command prompt:
<TET installation directory>/connectors/Oracle
>Adjust the tetpath variable in the tetsetup_a.sql script so that it points to the directory 
where TET is installed.
>Prepare the database: using Oracle’s sqlplus program create the table pdftable_a, fill 
this table with path names of PDF documents, and create the index tetindex_a (note 
that the contents of the tetsetup_a.sql script are slightly platform-dependent because 
of different path syntax):
SQL> @tetsetup_a.sql
>Query the database using the index:
SQL> select * from pdftable_a where CONTAINS(pdffile, 'Whitepaper', 1) > 0;
>Update the index (required after adding more documents):
SQL> execute ctx_ddl.sync_index('tetindex_a')
>Optionally clean up the database (remove the index and table):
SQL> @tetcleanup_a.sql
Example B: Store PDF documents as BLOBs in the database and add metadata. This 
examples stores the actual PDF documents as BLOBs in the database. In addition to the 
PDF data some metadata is extracted with the pCOS interface and stored in dedicated 
database columns. The tet_pdf_loader Java program stores the PDF documents as BLOBs 
in the database. In order to demonstrate metadata handling the program uses the pCOS 
interface to extract the document title (via the pCOS path /Info/Title) and the number of 
pages in the document (via the pCOS path length:pages). The document title and the 
page count will be stored in separate columns in the database. Proceed as follows to run 
this example:
>Change to the following directory in a command prompt:
<TET installation directory>/connectors/Oracle
>Prepare the database: using Oracle’s sqlplus program create the table pdftable_b and 
the corresponding index tetindex_b:
SQL> @tetsetup_b.sql
>Populate the database: fill the table with PDF documents and metadata via JDBC 
(note that this is not possible with stored procedures). The ant build file supplied 
with the TET package expects the ojdbc14.jar file for the Oracle JDBC driver in the 
same directory as the tet_pdf_loader.java source code. Specify a suitable JDBC connec-
tion string with the ant command. The build file contains a description of all proper-
ties that can be used to specify options for the Ant build. You can supply values for 
Documents you may be interested
Documents you may be interested