pdf viewer dll for c# : How to add image to pdf in acrobat Library control component .net web page asp.net mvc postgresql-9.4-A4118-part2744

Chapter 42. PL/Perl - Perl Procedural Language
decode_bytea(
string
)
Return the unescaped binary data represented by the contents of the given string, which should
be
bytea
encoded.
encode_bytea(
string
)
Return the
bytea
encoded form of the binary data contents of the given string.
encode_array_literal(
array
)
encode_array_literal(
array
,
delimiter
)
Returns the contents of the referencedarrayas a string in array literalformat (see Section8.15.2).
Returns the argument value unaltered if it’s not a reference to an array. The delimiter used be-
tween elements of the array literal defaults to "
,
"if a delimiter is not specified or is undef.
encode_typed_literal(
value
,
typename
)
Converts a Perl variable to the value of the data type passed as a second argument and returns
astring representation of this value. Correctly handles nested arrays and values of composite
types.
encode_array_constructor(
array
)
Returns the contents of the referenced array as a string in array constructor format (see Sec-
tion 4.2.12). Individual values are quoted using
quote_nullable
.Returns the argument value,
quoted using
quote_nullable
,if it’s not a reference to an array.
looks_like_number(
string
)
Returns a true value if the content of the given string looks like a number, according to Perl,
returns false otherwise. Returns undef if the argument is undef. Leading and trailing space is
ignored.
Inf
and
Infinity
are regarded as numbers.
is_array_ref(
argument
)
Returns a true value if the given argument may be treated as an array reference, that is, if ref of
the argument is
ARRAY
or
PostgreSQL::InServer::ARRAY
.Returns false otherwise.
42.4. Global Values in PL/Perl
You can use the global hash
%_SHARED
to store data, including code references, between function
calls for the lifetime of the current session.
Here is a simple example for shared data:
CREATE OR REPLACE FUNCTION set_var(name text, val text) RETURNS text AS $$
if ($_SHARED{$_[0]} = $_[1]) {
return ’ok’;
} else {
return "cannot set shared variable $_[0] to $_[1]";
}
$$ LANGUAGE plperl;
CREATE OR REPLACE FUNCTION get_var(name text) RETURNS text AS $$
return $_SHARED{$_[0]};
$$ LANGUAGE plperl;
SELECT set_var(’sample’, ’Hello, PL/Perl!
How”s tricks?’);
SELECT get_var(’sample’);
1108
How to add image to pdf in acrobat - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add photo to pdf form; add image to pdf
How to add image to pdf in acrobat - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
how to add an image to a pdf in acrobat; how to add image to pdf in acrobat
Chapter 42. PL/Perl - Perl Procedural Language
Here is a slightly more complicated example using a code reference:
CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$
$_SHARED{myquote} = sub {
my $arg = shift;
$arg =~ s/([’\\])/\\$1/g;
return "’$arg’";
};
$$ LANGUAGE plperl;
SELECT myfuncs(); /
*
initializes the function
*
/
/
*
Set up a function that uses the quote function
*
/
CREATE OR REPLACE FUNCTION use_quote(TEXT) RETURNS text AS $$
my $text_to_quote = shift;
my $qfunc = $_SHARED{myquote};
return &$qfunc($text_to_quote);
$$ LANGUAGE plperl;
(Youcould have replaced the above with the one-liner
return $_SHARED{myquote}->($_[0]);
at the expense of readability.)
For security reasons, PL/Perl executes functions called by any one SQL role in a separate Perl inter-
preter for that role. This prevents accidental or malicious interference by one user with the behavior
of another user’s PL/Perl functions. Each such interpreter has its ownvalue of the
%_SHARED
variable
andother global state. Thus, two PL/Perl functions will share the same valueof
%_SHARED
if andonly
if they are executed by the same SQL role. In an application wherein a single session executes code
under multiple SQL roles (via
SECURITY DEFINER
functions, use of
SET ROLE
,etc) you may need
to take explicit steps to ensure that PL/Perl functions can share data via
%_SHARED
.To do that, make
sure that functions that should communicate are owned by the same user, and mark them
SECURITY
DEFINER
.You must of course take care that such functions can’t be used to do anything unintended.
42.5. Trusted and Untrusted PL/Perl
Normally, PL/Perl is installedas a “trusted” programming languagenamed
plperl
.In this setup, cer-
tain Perl operations are disabled to preserve security. In general, the operations that are restricted are
those that interact with the environment. This includes file handle operations,
require
,and
use
(for
external modules). There is no way to access internals of the database server process or to gain OS-
level access with the permissions of the server process, as a C function cando. Thus, anyunprivileged
database user can be permitted to use this language.
Here is an example of a functionthatwill notwork because file system operations are not allowed for
security reasons:
CREATE FUNCTION badfunc() RETURNS integer AS $$
my $tmpfile = "/tmp/badfile";
open my $fh, ’>’, $tmpfile
or elog(ERROR, qq{could not open the file "$tmpfile": $!});
print $fh "Testing writing to a file\n";
close $fh or elog(ERROR, qq{could not close the file "$tmpfile": $!});
return 1;
$$ LANGUAGE plperl;
1109
.NET PDF Document Viewing, Annotation, Conversion & Processing
Convert image files to PDF. File & Page Process. Annotate & Comment. Add, insert PDF native annotations to PDF file. Support for all the print modes in Acrobat PDF
add image to pdf file acrobat; adding an image to a pdf form
C# PDF Converter Library SDK to convert PDF to other file formats
without using other external third-party dependencies like Adobe Acrobat. you can easily perform file conversion from PDF document to image or document
how to add a picture to a pdf file; add picture to pdf form
Chapter 42. PL/Perl - Perl Procedural Language
The creationof this functionwillfail asits useof a forbiddenoperation willbe caught by the validator.
Sometimes it is desirable to write Perl functions that are not restricted. For example, one might want
aPerl function that sends mail. To handle these cases, PL/Perl can also be installed as an “untrusted”
language (usually called PL/PerlU). In this case the full Perl language is available. When installing
the language, the language name
plperlu
will select the untrusted PL/Perl variant.
The writer of a PL/PerlU function must take care that the function cannot be used to do anything
unwanted, since it will be able to do anything that could be done by a user logged in as the database
administrator. Note that the database system allows only database superusers to create functions in
untrusted languages.
If the above function was created by a superuser using the language
plperlu
,execution would suc-
ceed.
In the same way, anonymous code blocks written in Perl can use restricted operations if the language
is specified as
plperlu
rather than
plperl
,but the caller must be a superuser.
Note: While PL/Perl functions run in a separate Perl interpreter for each SQL role, all PL/PerlU
functions executed ina given sessionrun ina single Perl interpreter (whichis not any of the ones
used for PL/Perl functions). This allows PL/PerlU functions to share data freely, but no communi-
cation can occur between PL/Perl and PL/PerlU functions.
Note: Perl cannot support multiple interpreters within one process unless it was built with the
appropriate flags, namely either
usemultiplicity
or
useithreads
.(
usemultiplicity
is pre-
ferred unless you actually need to use threads. For more details, see the perlembed man page.)
If PL/Perlis used witha copy of Perl that was not built this way, then it is only possible to haveone
Perl interpreter per session, and so any one session can only execute either PL/PerlU functions,
or PL/Perl functions that are all called by the same SQL role.
42.6. PL/Perl Triggers
PL/Perl can be used to write trigger functions. In a trigger function, the hashreference
$_TD
contains
information about the current trigger event.
$_TD
is a global variable, which gets a separate local
value for each invocation of the trigger. The fields of the
$_TD
hash reference are:
$_TD->{new}{foo}
NEW
value of column
foo
$_TD->{old}{foo}
OLD
value of column
foo
$_TD->{name}
Name of the trigger being called
$_TD->{event}
Trigger event:
INSERT
,
UPDATE
,
DELETE
,
TRUNCATE
,or
UNKNOWN
$_TD->{when}
When the trigger was called:
BEFORE
,
AFTER
,
INSTEAD OF
,or
UNKNOWN
1110
C# Windows Viewer - Image and Document Conversion & Rendering in
without using other external third-party dependencies like Adobe Acrobat. Image and Document Conversion Supported by Windows Viewer. Convert to PDF.
adding images to pdf forms; how to add image to pdf
C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
using other external third-party dependencies like Adobe Acrobat. SDK to convert PowerPoint document to PDF document code for PowerPoint to TIFF image conversion
adding a jpeg to a pdf; adding images to pdf files
Chapter 42. PL/Perl - Perl Procedural Language
$_TD->{level}
The trigger level:
ROW
,
STATEMENT
,or
UNKNOWN
$_TD->{relid}
OID of the table on which the trigger fired
$_TD->{table_name}
Name of the table on whichthe trigger fired
$_TD->{relname}
Name of the table on which the trigger fired. This has been deprecated, and could be removed in
afuture release. Please use $_TD->{table_name} instead.
$_TD->{table_schema}
Name of the schema in which the table on which the trigger fired, is
$_TD->{argc}
Number of arguments of the trigger function
@{$_TD->{args}}
Arguments of the trigger function. Does not exist if
$_TD->{argc}
is 0.
Row-level triggers can return one of the following:
return;
Execute the operation
"SKIP"
Don’t execute the operation
"MODIFY"
Indicates that the
NEW
row was modified by the trigger function
Here is an example of a trigger function, illustrating some of the above:
CREATE TABLE test (
i int,
v varchar
);
CREATE OR REPLACE FUNCTION valid_id() RETURNS trigger AS $$
if (($_TD->{new}{i} >= 100) || ($_TD->{new}{i} <= 0)) {
return "SKIP";
# skip INSERT/UPDATE command
} elsif ($_TD->{new}{v} ne "immortal") {
$_TD->{new}{v} .= "(modified by trigger)";
return "MODIFY";
# modify row and execute INSERT/UPDATE command
} else {
return;
# execute INSERT/UPDATE command
}
$$ LANGUAGE plperl;
CREATE TRIGGER test_valid_id_trig
BEFORE INSERT OR UPDATE ON test
1111
C# Word - Word Conversion in C#.NET
using other external third-party dependencies like Adobe Acrobat. Word SDK to convert Word document to PDF document. demo code for Word to TIFF image conversion
acrobat insert image in pdf; add png to pdf preview
VB.NET PDF: How to Create Watermark on PDF Document within
Using this VB.NET Imaging PDF Watermark Add-on, you can a watermark that consists of text or image (such as And with our PDF Watermark Creator, users need no
add a jpeg to a pdf; add photo to pdf file
Chapter 42. PL/Perl - Perl Procedural Language
FOR EACH ROW EXECUTE PROCEDURE valid_id();
42.7. PL/Perl Event Triggers
PL/Perl can be used to write event trigger functions. In an event trigger function, the hash reference
$_TD
contains information about the current trigger event.
$_TD
is a global variable, which gets a
separate local value for each invocation of the trigger. The fields of the
$_TD
hash reference are:
$_TD->{event}
The name of the event the trigger is fired for.
$_TD->{tag}
The command tag for which the trigger is fired.
The return value of the trigger procedure is ignored.
Here is an example of an event trigger function, illustrating some of the above:
CREATE OR REPLACE FUNCTION perlsnitch() RETURNS event_trigger AS $$
elog(NOTICE, "perlsnitch: " . $_TD->{event} . " " . $_TD->{tag} . " ");
$$ LANGUAGE plperl;
CREATE EVENT TRIGGER perl_a_snitch
ON ddl_command_start
EXECUTE PROCEDURE perlsnitch();
42.8. PL/Perl Under the Hood
42.8.1. Configuration
This section lists configuration parameters that affect PL/Perl.
plperl.on_init
(
string
)
Specifies Perl code to be executed when a Perl interpreter is first initialized, before it is spe-
cialized for use by
plperl
or
plperlu
.The SPI functions are not available when this code is
executed. If the code fails with an error it will abort the initialization of the interpreter and prop-
agate out to the calling query, causing the current transaction or subtransaction to be aborted.
The Perl code is limited to a single string. Longer code can be placed into a module and loaded
by the
on_init
string. Examples:
plperl.on_init = ’require "plperlinit.pl"’
plperl.on_init = ’use lib "/my/app"; use MyApp::PgInit;’
Any modules loadedby
plperl.on_init
,either directlyor indirectly, will be available for use
by
plperl
.This may create a security risk. To see what modules have beenloaded you can use:
1112
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
as a kind of compensation for limitations (other documents are compatible, including PDF, TIFF, MS VB.NET PPT: VB Code to Add Embedded Image Object to
adding a png to a pdf; add an image to a pdf form
BMP to PDF Converter | Convert Bitmap to PDF, Convert PDF to BMP
Also designed to be used add-on for .NET Image SDK, RasterEdge Bitmap to PDF Converter can Powerful image converter for Bitmap and PDF files; No need for
adding an image to a pdf in acrobat; add image pdf document
Chapter 42. PL/Perl - Perl Procedural Language
DO ’elog(WARNING, join ", ", sort keys %INC)’ LANGUAGE plperl;
Initialization will happen in the postmaster if the plperl library is included in
shared_preload_libraries, in which case extra consideration should be given to the risk of
destabilizing the postmaster. The principal reason for making use of this feature is that Perl
modules loaded by
plperl.on_init
need be loaded only at postmaster start, and will be
instantly available without loading overhead in individual database sessions. However, keep in
mind that the overhead is avoided only for the first Perl interpreter used by a database session
— either PL/PerlU, or PL/Perl for the first SQL role that calls a PL/Perl function. Any
additional Perl interpreters createdin a database session will have to execute
plperl.on_init
afresh. Also, on Windows there will be no savings whatsoever from preloading, since the Perl
interpreter created in the postmaster process does not propagate to child processes.
This parameter can only be set in the
postgresql.conf
file or on the server command line.
plperl.on_plperl_init
(
string
)
plperl.on_plperlu_init
(
string
)
These parameters specify Perl code to be executed when a Perl interpreter is specialized for
plperl
or
plperlu
respectively. This will happen when a PL/Perl or PL/PerlU function is first
executed in a database session, or when an additional interpreter has to be created because the
other language is called or a PL/Perl function is called by a new SQL role. This follows any
initialization done by
plperl.on_init
.The SPI functions are not available when this code
is executed. The Perl code in
plperl.on_plperl_init
is executed after “locking down” the
interpreter, and thus it can only perform trusted operations.
If the code fails with anerror itwill abort the initialization andpropagate out tothecallingquery,
causing the current transaction or subtransaction to be aborted. Any actions already done within
Perlwon’t be undone;however, that interpreter won’tbeusedagain. If the language is usedagain
the initialization will be attempted again within a fresh Perl interpreter.
Only superusers can change these settings. Although these settings can be changed within a
session, such changes will not affect Perl interpreters that have already been used to execute
functions.
plperl.use_strict
(
boolean
)
When set true subsequent compilations of PL/Perl functions will have the
strict
pragma en-
abled. This parameter does not affect functions already compiled in the current session.
42.8.2. Limitations and Missing Features
The following features are currently missing from PL/Perl, but they would make welcome contribu-
tions.
PL/Perl functions cannot call each other directly.
SPI is not yet fully implemented.
If you are fetching very large data sets using
spi_exec_query
,you should be aware that these
will all go into memory. You can avoid this by using
spi_query
/
spi_fetchrow
as illustrated
earlier.
Asimilar problem occurs if a set-returning function passes a large set of rows backto PostgreSQL
via
return
.You can avoid this problem toobyinstead using
return_next
for eachrow returned,
as shown previously.
1113
JPEG to PDF Converter | Convert JPEG to PDF, Convert PDF to JPEG
It can be used standalone. JPEG to PDF Converter is able to convert image files to PDF directly without the software Adobe Acrobat Reader for conversion.
add photo to pdf for; add picture to pdf online
PDF to WORD Converter | Convert PDF to Word, Convert Word to PDF
out transformation between different kinds of image files and Word Converter has accurate output, and PDF to Word need the support of Adobe Acrobat & Microsoft
adding image to pdf file; how to add a picture to a pdf document
Chapter 42. PL/Perl - Perl Procedural Language
When a session ends normally, not due to a fatal error, any
END
blocks that have been defined are
executed. Currently no other actions are performed. Specifically, file handles are not automatically
flushed and objects are not automatically destroyed.
1114
Chapter 43. PL/Python - Python Procedural
Language
The PL/Python procedural language allows PostgreSQL functions to be written in the Python
language
1
.
To install PL/Python in a particular database, use
CREATE EXTENSION plpythonu
, or from the
shell command line use
createlang plpythonu
dbname
(but see also Section 43.1).
Tip: If a language is installed into
template1
,all subsequently created databases will have the
languageinstalled automatically.
PL/Pythonis only available as an“untrusted” language, meaning itdoes not offer any way of restrict-
ing what users can do in it and is therefore named
plpythonu
.A trusted variant
plpython
might
become available in the future if a secure execution mechanism is developed in Python. The writer
of a function in untrusted PL/Python must take care that the function cannot be used to do anything
unwanted, since it will be able to do anything that could be done by a user logged in as the database
administrator. Only superusers can create functions in untrusted languages such as
plpythonu
.
Note: Users of source packages must specially enable the build of PL/Pythonduring the installa-
tionprocess. (Refertothe installation instructions for more information.) Users of binary packages
might find PL/Python in a separate subpackage.
43.1. Python 2 vs. Python 3
PL/Python supports both the Python 2 and Python 3 language variants. (The PostgreSQL installation
instructions might contain more precise information about the exact supported minor versions of
Python.) Because the Python 2 and Python 3 language variants are incompatible in some important
aspects, the following naming and transitioning scheme is used byPL/Pythonto avoid mixing them:
The PostgreSQL language named
plpython2u
implements PL/Pythonbased onthe Python 2lan-
guage variant.
The PostgreSQL language named
plpython3u
implements PL/Pythonbased onthe Python 3lan-
guage variant.
The language named
plpythonu
implements PL/Python based on the default Python language
variant, which is currently Python 2. (This default is independent of what any local Python instal-
lations might consider to be their “default”, for example, what
/usr/bin/python
might be.) The
default will probably be changed to Python 3 in a distant future release of PostgreSQL, depending
on the progress of the migration to Python 3 in the Python community.
This schemeis analogous to the recommendations in PEP 394
2
regardingthenamingandtransitioning
of the
python
command.
1. http://www.python.org
2. http://www.python.org/dev/peps/pep-0394/
1115
Chapter 43. PL/Python- Python Procedural Language
It depends on the build configuration or the installed packages whether PL/Python for Python 2 or
Python 3 or both are available.
Tip: The built variant depends onwhich Pythonversionwas foundduring theinstallation or which
versionwas explicitly set usingthe
PYTHON
environment variable; see Section 15.4. To make both
variants of PL/Python available in one installation, the source tree has to be configured and built
twice.
This results in the following usage and migration strategy:
Existing users and users who are currently not interested in Python 3 use the language name
plpythonu
and don’t have to change anything for the foreseeable future. It is recommended to
gradually “future-proof” the code via migration to Python 2.6/2.7 to simplify the eventual migra-
tion to Python 3.
In practice, many PL/Python functions will migrate to Python 3 with few or no changes.
Users who know that they have heavily Python 2 dependent code and don’t plan to ever change it
can make use of the
plpython2u
language name. This will continue to work into the very distant
future, until Python 2 support might be completely dropped by PostgreSQL.
Users who want to dive into Python 3 can use the
plpython3u
language name, which will keep
working forever by today’s standards. In the distant future, when Python 3 might become the de-
fault, they might like to remove the “3” for aesthetic reasons.
Daredevils, whowant to build a Python-3-only operating system environment, canchange the con-
tents of
pg_pltemplate
to make
plpythonu
beequivalent to
plpython3u
,keeping in mindthat
this would make their installation incompatible with most of the rest of the world.
See also the document What’s New In Python 3.0
3
for more information about porting to Python 3.
It is not allowed to use PL/Python based on Python 2 and PL/Python based on Python 3 in the same
session, because the symbols in the dynamic modules would clash, which could result in crashes of
the PostgreSQL server process. There is a check that prevents mixing Python major versions in a
session, which will abort the session if a mismatch is detected. It is possible, however, to use both
PL/Python variants in the same database, from separate sessions.
43.2. PL/Python Functions
Functions in PL/Python are declared via the standard CREATE FUNCTION syntax:
CREATE FUNCTION
funcname
(
argument-list
)
RETURNS
return-type
AS $$
# PL/Python function body
$$ LANGUAGE plpythonu;
3. http://docs.python.org/py3k/whatsnew/3.0.html
1116
Chapter 43. PL/Python- Python Procedural Language
The body of a function is simply a Python script. When the function is called, its arguments are
passed as elements of the list
args
;named arguments are also passed as ordinary variables to the
Python script. Use of named arguments is usually more readable. The result is returned from the
Python code in the usualway, with
return
or
yield
(in case of a result-set statement). If you do not
provide a return value, Python returns the default
None
.PL/Python translates Python’s
None
into the
SQL null value.
For example, a function to return the greater of two integers can be defined as:
CREATE FUNCTION pymax (a integer, b integer)
RETURNS integer
AS $$
if a > b:
return a
return b
$$ LANGUAGE plpythonu;
The Python code that is given as the body of the function definition is transformed into a Python
function. For example, the above results in:
def __plpython_procedure_pymax_23456():
if a > b:
return a
return b
assuming that 23456 is the OID assigned to the function by PostgreSQL.
The arguments are set as global variables. Because of the scoping rules of Python, this has the subtle
consequence that an argument variable cannot be reassigned inside the function to the value of an
expression that involves the variable name itself, unless the variable is redeclared as global in the
block. For example, the following won’t work:
CREATE FUNCTION pystrip(x text)
RETURNS text
AS $$
x = x.strip()
# error
return x
$$ LANGUAGE plpythonu;
becauseassigningto
x
makes
x
alocalvariablefor theentireblock, andso the
x
on the right-hand side
of the assignment refers to a not-yet-assigned local variable
x
,not the PL/Python functionparameter.
Using the
global
statement, this can be made to work:
CREATE FUNCTION pystrip(x text)
RETURNS text
AS $$
global x
x = x.strip()
# ok now
return x
$$ LANGUAGE plpythonu;
But it is advisable not to rely on this implementation detail of PL/Python. It is better to treat the
function parameters as read-only.
1117
Documents you may be interested
Documents you may be interested