pdf to image converter using c# : Add fields to pdf SDK Library project winforms asp.net web page UWP 201212-ug-php-oracle-188476032-part399

Establishing the Environment Between Oracle and PHP
string(19) "2008-10-23 04:01:17"
}
}
Date formats can be explicitly altered by a language setting:
SQL> select to_char(systimestamp, 
'Dy, dd Mon yyyy hh24:mi:ss tzhtzm','NLS_DATE_LANGUAGE=American') from dual;
TO_CHAR(SYSTIMESTAMP,'DY,DDMONYYYYHH24:MI:SSTZHTZ
-------------------------------------------------
Thu, 07 Jun 2012 17:05:55 -0700
SQL> select to_char(systimestamp, 
'Dy, dd Mon yyyy hh24:mi:ss tzhtzm','NLS_DATE_LANGUAGE=German') from dual;
TO_CHAR(SYSTIMESTAMP,'DY,DDMONYYYYHH24:MI:SST
---------------------------------------------
Do, 07 Jun 2012 17:05:56 -0700
Here, the day of the week has been translated.
Setting the Default Session Time Zone With ORA_SDTZ
The ORA_SDTZ environment variable sets the time zone used when querying TIMESTAMP 
WITH LOCAL TIME ZONE columns. It also affects TIMESTAMP values converted to TIMESTAMP 
WITH TIME ZONE or TIMESTAMP WITH LOCAL TIME ZONE data types. It does not affect 
SYSDATE and SYSTIMESTAMP values which use the database server time.
You can set ORA_SDTZ to a timezone, an offset or a region:
$ export ORA_SDTZ='-05:00'
Manipulating Strings
To handle data in PHP, there are several extensions that can be used. The common extensions 
are mbstring, intl and iconv. These can be installed and configured like any other PHP source 
code or PECL extension.
Once mbstring is installed, you can change the behavior of the standard PHP string 
functions by setting mbstring.func_overload in php.ini to one of the Overload settings. For 
more information, see the PHP mbstring reference manual at http://php.net/mbstring
.
Your application code should use functions such as mb_strlen() to calculate the number of 
characters in strings. This may return different values than strlen(), which returns the 
number of bytes in a string.
The intl package implements some International Components for Unicode (ICU) 
functionality such as Collators and Transliterators.
Determining the Locale of the User
In a global environment, your application should accommodate users with different locale 
preferences. Once it has determined the preferred locale of the user, the application should 
307
Add fields to pdf - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
create a pdf form online; create a pdf form from excel
Add fields to pdf - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
create a pdf form that can be filled out; add form fields to pdf without acrobat
Globalization
construct HTML content in the language of the locale and follow the cultural conventions 
implied by the locale.
A common method to determine the locale of a user is from the default ISO locale setting 
of the browser. Usually a browser sends its locale preference setting to the HTTP server with 
the Accept-Language HTTP header. If the Accept-Language header is NULL, then there is no 
locale preference information available, and the application should fall back to a predefined 
default locale.
The following PHP code retrieves the ISO locale from the Accept-Language HTTP header 
through the $_SERVER Server variable.
$s = $_SERVER["HTTP_ACCEPT_LANGUAGE"]
The intl package's Locale::acceptFromHttp method could also be used.
Developing Locale Awareness
Once the locale preference of the user has been determined, the application can call locale-
sensitive functions, such as date, time, and monetary formatting to format the HTML pages 
according to the cultural conventions of the locale.
When you write global applications implemented in different programming environments, 
you should enable the synchronization of user locale settings between the different 
environments. For example, PHP applications that call PL/SQL procedures should map the ISO 
locales to the corresponding NLS_LANGUAGE and NLS_TERRITORY values and change the 
parameter values to match the locale of the user before calling the PL/SQL procedures. The 
PL/SQL UTL_I18N package contains mapping functions that can map between ISO and Oracle 
locales.
Table 18 shows how some commonly used locales are defined in ISO and Oracle 
environments.
Table 18: Locale representations in ISO, SQL and PL/SQL programming 
environments.
Locale
Locale ID NLS_LANGUAGE
NLS_TERRITORY
Chinese (P.R.C.)
zh-CN
SIMPLIFIED CHINESE
CHINA
Chinese (Taiwan)
zh-TW
TRADITIONAL CHINESE
TAIWAN
English (U.S.A)
en-US
AMERICAN
AMERICA
English (United Kingdom)
en-GB
ENGLISH
UNITED KINGDOM
French (Canada)
fr-CA
CANADIAN FRENCH
CANADA
French (France)
fr-FR
FRENCH
FRANCE
German
de
GERMAN
GERMANY
Italian
it
ITALIAN
ITALY
Japanese
ja
JAPANESE
JAPAN
Korean
ko
KOREAN
KOREA
Portuguese (Brazil)
pt-BR
BRAZILIAN PORTUGUESE
BRAZIL
Portuguese
pt
PORTUGUESE
PORTUGAL
308
C# PDF Form Data Read Library: extract form data from PDF in C#.
Add necessary references: RasterEdge.Imaging.Basic.dll. C#.NET Demo Code: Retrieve All Form Fields from a PDF File in C#.NET.
adding a text field to a pdf; create a fillable pdf form from a word document
VB.NET PDF Form Data Read library: extract form data from PDF in
Add necessary references: RasterEdge.Imaging.Basic.dll. using RasterEdge.XDoc.PDF; Demo Code to Retrieve All Form Fields from a PDF File in VB.NET.
cannot edit pdf form; changing font size in pdf form
Determining the Locale of the User
Locale
Locale ID NLS_LANGUAGE
NLS_TERRITORY
Spanish
es
SPANISH
SPAIN
Encoding HTML Pages
The encoding of an HTML page is important information for a browser and an Internet 
application. You can think of the page encoding as the character set used for the locale that 
an Internet application is serving. The browser must know about the page encoding so that it 
can use the correct fonts and character set mapping tables to display the HTML pages. 
Internet applications must know about the HTML page encoding so they can process input 
data from an HTML form.
Instead of using different native encodings for the different locales, Oracle recommends 
that you use UTF-8 (Unicode encoding) for all page encodings. This encoding not only 
simplifies the coding for global applications, but it also enables multilingual content on a 
single page.
Specifying the Page Encoding for HTML Pages
You can specify the encoding of an HTML page either in the HTTP header, or in HTML page 
header.
Specifying the Encoding in the HTTP Header
To specify HTML page encoding in the HTTP header, include the Content-Type HTTP header in 
the HTTP specification. It specifies the content type and character set. The Content-Type HTTP 
header has the following form:
Content-Type: text/html; charset=utf-8
The charset parameter specifies the encoding for the HTML page. The possible values for the 
charset parameter are the IANA names for the character encodings that the browser supports.
It is important to be consistent using the page encoding. For example, the htmlentities() 
encoding parameter should match the page encoding so that characters are recognized and 
escaped properly. Otherwise your application will be vulnerable to security attacks.
Specifying the Encoding in the HTML Page Header
Use this method primarily for static HTML pages. To specify HTML page encoding in the HTML 
page header, specify the character encoding in the HTML header as follows:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
The charset parameter specifies the encoding for the HTML page. As with the Content-Type 
HTTP Header, the possible values for the charset parameter are the IANA (Internet Assigned 
Numbers Authority) names for the character encodings that the browser supports.
Specifying the Page Encoding in PHP
You can specify the encoding of an HTML page in the Content-Type HTTP header in PHP by 
setting the default_charset configuration variable in php.ini:
309
C# PDF insert image Library: insert images into PDF in C#.net, ASP
C#.NET PDF SDK - Add Image to PDF Page in C#.NET. How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Add Image to PDF Page Using C#.NET.
changing font in pdf form; add print button to pdf form
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Guide VB.NET Programmers How to Add Images in PDF Document Using XDoc.PDF SDK for VB.NET.
add text field to pdf; add fields to pdf
Globalization
default_charset = UTF-8
Note the default value of this character set directive was changed to UTF-8 in PHP 5.4. You 
can alternatively use the PHP header() function to set the content type:
header('Content-Type: text/html; charset=utf-8');
This setting does not imply any conversion of outgoing pages. Your application must ensure 
that the server-generated pages are encoded in UTF-8.
Organizing the Content of HTML Pages for Translation
Making the user interface available in the local language of the user is a fundamental task in 
globalizing an application. Translatable sources for the content of an HTML page belong to the 
following categories:
Text strings included in the application code
Static HTML files, images files, and template files such as CSS
Dynamic data stored in the database
Strings in PHP
You should externalize translatable strings within your PHP application logic, so that the text is 
readily available for translation. These text messages can be stored in flat files or database 
tables depending on the type and the volume of the data being translated. PHP's gettext 
extension is often used for this purpose.
Static Files
Static files such as HTML and text stored as images are readily translatable. When these files 
are translated, they should be translated into the corresponding language with UTF-8 as the 
file encoding. To differentiate the languages of the translated files, stage the static files of 
different languages in different directories or with different file names.
Data from the Database
Dynamic information such as product names and product descriptions is typically stored in 
the database. To differentiate various translations, the database schema holding this 
information should include a column to indicate the language. To select the desired language, 
you must include a WHERE clause in your query.
Presenting Data Using Conventions Expected by the User
Data in the application must be presented in a way that conforms to the expectation of the 
user. Otherwise, the meaning of the data can be misinterpreted. For example, the date 
‘12/11/09’ implies ‘11th December 2009’ in the United States, whereas in the United Kingdom 
it means ‘12th November 2009’. Similar confusion exists for number and monetary formats of 
the users. For example, the symbol ‘.’ is a decimal separator in the United States; in Germany 
this symbol is a thousand separator.
310
VB.NET PDF Password Library: add, remove, edit PDF file password
VB: Add Password to PDF with Permission Settings Applied. This VB.NET example shows how to add PDF file password with access permission setting.
add date to pdf form; change font in pdf fillable form
C# PDF Password Library: add, remove, edit PDF file password in C#
C# Sample Code: Add Password to PDF with Permission Settings Applied in C#.NET. This example shows how to add PDF file password with access permission setting.
change font size in pdf form field; acrobat create pdf form
Presenting Data Using Conventions Expected by the User
Different languages have their own sorting rules. Some languages are collated according 
to the letter sequence in the alphabet, some according to the number of stroke counts in the 
letter, and some languages are ordered by the pronunciation of the words. Presenting data 
not sorted in the linguistic sequence that your users are accustomed to can make searching 
for information difficult and time consuming.
Depending on the application logic and the volume of data retrieved from the database, it 
may be more appropriate to format the data at the database level rather than at the 
application level. Oracle offers many features that help to refine the presentation of data 
when the locale preference of the user is known. Earlier in this chapter, examples using date 
and numeric formats were shown. The next section provides another example of a locale-
sensitive operation in SQL.
Oracle Linguistic Sorts
Spain traditionally treats ch, ll as well as ñ as unique letters, ordered after c, l and n, 
respectively. The following examples illustrate the effect of using a Spanish sort against the 
employee names Chen and Chung.
SQL> alter session set nls_sort = binary;
SQL> select employee_id EmpID,
2         last_name "Last Name"
3  from employees
4  where last_name like 'C%'
5  order by last_name;
EMPID Last Name
---------- -------------------------
187 Cabrio
148 Cambrault
154 Cambrault
110 Chen
188 Chung
119 Colmenares
SQL> alter session set nls_sort = spanish_m;
SQL> select employee_id EmpID,
2         last_name "Last Name"
3  from employees
4  where last_name like 'C%'
5  order by last_name;
EMPID Last Name
---------- -------------------------
187 Cabrio
148 Cambrault
154 Cambrault
119 Colmenares
110 Chen
188 Chung
311
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
C#.NET PDF SDK - Add Sticky Note to PDF Page in C#.NET. Able to add notes to PDF using C# source code in Visual Studio .NET framework.
add fillable fields to pdf online; pdf form save in reader
.NET PDF Document Viewing, Annotation, Conversion & Processing
Form Process. Fill in form data programmatically. Read form data from PDF form file. Add, Update, Delete form fields programmatically. Document Protect.
pdf form creation; change font pdf fillable form
Globalization
Oracle Error Messages
The NLS_LANGUAGE parameter also controls the language of the database error messages 
being returned from the database. Setting this parameter prior to submitting your SQL 
statement ensures that language-specific database error messages will be logged by the 
application.
Consider the following server message:
ORA-00942: table or view does not exist
When the NLS_LANGUAGE parameter is set to French, the server message appears as follows:
ORA-00942: table ou vue inexistante 
For more discussion of globalization support features in Oracle Database 11g XE, see Working 
in a Global Environment in the Oracle Database Express Edition 2 Day Developer's Guide.
312
CHAPTER 18
T
ESTING
PHP 
AND
THE
OCI8 
E
XTENSION
This chapter discusses running the PHP test suite on Linux. The PHP source code includes 
command-line tests for all the core functionality and extensions. You should run these tests 
after building PHP on Linux.
It is a good idea to pro-actively test your applications with PHP “release candidates” and 
snapshots, http://snaps.php.net. Please report problems so they can be fixed prior to each 
final PHP release. This ensures PHP continues doing what you need it to do. Consider 
contributing new tests to the PHP community. Adding tests that are relevant to your 
application reduces the risks of PHP developers breaking PHP features important to you. 
Please send new tests or report issues with PHP’s test suite to php-qa@lists.php.net. 
Running OCI8 Tests
The tests in the PHP source directory ext/oci8/tests verify the behavior of the OCI8 extension. 
For the tests to run successfully some configuration is needed:
1. Set the Oracle connection details by editing ext/oci8/tests/details.inc and updating the 
credentials section:
$user = "system";
$password = "systempwd";
$dbase = "localhost/XE";
The tests rely on being able to create tables, types, stored procedures, and so on. If you 
change $user, you may have to grant that database user some extra privileges. 
With OCI8 1.4, if you are using Oracle Database 11g Connection Pooling, also set:
$test_drcp = TRUE
To use DRCP, the pool must also be enabled in the database and the PHP connection 
string must specify that a pooled database server should be used, for example:
$dbase = "localhost/XE:pooled";
Instead of editing details.inc, equivalent environment variables can be set in a terminal 
window:
$ export PHP_OCI8_TEST_USER=system
$ export PHP_OCI8_TEST_PASS=systempwd
$ export PHP_OCI8_TEST_DB=localhost/XE
$ export PHP_OCI8_TEST_DRCP=FALSE
2. Check that variables_order has 'E' in your php.ini, for example:
313
Testing PHP and the OCI8 Extension
variables_order = "EGPCS" 
Without this flag, the Oracle environment variables are not propagated through the test 
system and OCI8 tests can fail to connect.
3. Set any necessary Oracle environment variables in your shell. For example, for PHP linked 
with Oracle Database 11g XE enter:
$ source /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
For other database editions run oraenv and enter the identifier of your database:
$ source /usr/local/bin/oraenv
ORACLE_SID = [] ? orcl
If Oracle is on a different machine, you may manually need to set the environment 
variables that are otherwise set by these scripts.
4. Some of the OCI8 tests take longer than the default test timeout period, particularly if the 
database is on a remote server. Either increase the test suite timeout:
$ export TEST_TIMEOUT=600
or skip the slow tests:
$ export SKIP_SLOW_TESTS=1
5. Run PHP’s test suite with:
$ cd php-5.4
$ make test
If you want to run just the OCI8 tests use:
$ make test TESTS=ext/oci8
Each test script is executed and its status reported.
==============================================================
PHP         : /home/myhome/php-5.4/sapi/cli/php 
PHP_SAPI    : cli 
PHP_VERSION : 5.4.4 
ZEND_VERSION: 2.4,0 
PHP_OS      : Linux - Linux cj-ol62x64 2.6.39-100
INI actual  : /usr/local/apache/conf/php.ini 
More .INIs  :
CWD         : /home/myhome/php-5.4 
Extra dirs  :
VALGRIND    : not used
==============================================================
Running selected tests. 
PASS oci_bind_array_by_name() and invalid values 1 [array_bind_001.phpt] 
PASS oci_bind_array_by_name() and invalid values 2 [array_bind_002.phpt] 
PASS oci_bind_array_by_name() and invalid values 3 [array_bind_003.phpt] 
...
314
Running OCI8 Tests
Successful tests begin with PASS. Tests that are to be skipped in the current 
configuration are marked SKIP. Failing tests are marked FAIL. A summary of the test 
results is given at the completion of the tests.
Running a Single Test
To run only one or two tests, execute run-tests.php directly and pass the test names as 
parameters. For example, to run a script called demotest.phpt, do the following:
$ cd php-5.4
$ export TEST_PHP_EXECUTABLE=/home/myhome/php-5.4/sapi/cli/php
$ $TEST_PHP_EXECUTABLE run-tests.php ext/oci8/tests/demotest.phpt
The variable TEST_PHP_EXECUTABLE is used inside the controlling run-tests.php script when it 
invokes demotest.phpt. In the example, the same PHP binary is also used to run the run-
tests.php script itself, but they could be different executables. The test output is similar to the 
previous output.
Tests that Fail
The output of failing tests is kept for analysis. For example, if ext/oci8/tests/demotest.phpt 
fails, the following files will be in ext/oci8/tests:
Table 19: Test files and their contents.
File name
File Contents
demotest.phpt
Test framework script
demotest.php
PHP file executed
demotest.out
Test output
demotest.exp
Expected output as coded in the .phpt file
demotest.diff
Difference between actual and expected output
demotest.log
Actual and expected output in a single file
It is common for the full PHP test suite to report some test failures. This is because many PHP 
extensions are wrappers around system libraries with slightly different behaviors on different 
platforms or versions. Also some system configurations may restrict access, for example to 
network ports. You can review commonly seen differences at http://qa.php.net/reports. 
The PHP test infrastructure doesn't practically allow tests to accept differences across all 
versions of Oracle Database. Also if you use the latest OCI8 extension with an older version of 
PHP, differences in PHP's var_dump() output can make tests appear to fail.
Creating OCI8 Tests 
To add a new OCI8 test, create a phpt file in ext/oci8/tests using the test file format. When you 
run make test the new file is automatically run, or you can call it explicitly as shown above. 
For example, create demotest.phpt:
315
Testing PHP and the OCI8 Extension
Script 127: demotest.phpt
--TEST--
Demo to test the Test system 
--SKIPIF--
<?php
if (!extension_loaded('oci8')) die("skip no oci8 extension");
?>
--FILE-- 
<?php 
require (__DIR__.'/connect.inc');
$s = oci_parse($c, "select user from dual");
oci_execute($s);
oci_fetch_all($s, $res);
var_dump($res);
echo "Done\n";
?>
===DONE===
<?php exit(0); ?>
--EXPECT--
array(1) {
["USER"]=>
array(1) {
[0]=>
string(6) "SYSTEM"
}
}
===DONE===
The test begins with a comment that is displayed when the test runs. The SKIPIF section 
causes the test to be skipped when the OCI8 extension is not enabled in PHP. The FILE section 
is the PHP code to be executed. The EXPECT section has the expected output. The file 
connect.inc is found in ext/oci8/tests/connect.inc. It includes details.inc, connects to Oracle, 
and returns the connection resource in $c.
The line ===DONE=== is outside the executed script and is echoed verbatim, verifying that 
the script completed. The extra PHP block containing exit(0) makes calling the test directly 
in PHP without using run-tests.php a little cleaner:
$ php demotest.phpt 
--TEST--
Demo to test the Test system 
--SKIPIF--
--FILE-- 
array(1) {
["USER"]=>
array(1) {
[0]=>
string(6) "SYSTEM"
}
}
Done
===DONE===
316
Documents you may be interested
Documents you may be interested