itextsharp pdf to image c# : Change pdf to fillable form Library SDK component .net wpf windows mvc book5-part1793

1.3 Anotherformula:Celsius-Fahrenheitconversion
21
F = = float(C)*(9/5) + + 32
doesnotworkcorrectly,because9/5isevaluatedbyintegerdivision,
yielding1,beforebeingmultipliedbyafloatrepresentationofC(see
nextsectionforhowcompoundarithmeticoperationsarecalculated).In
otherwords,theformulareadsF=C+32,whichiswrong.
Wenowunderstandwhythe firstversionoftheprogramdoesnot
workandwhattheremedyis.Acorrectprogramis
C = = 21
F = = (9.0/5)*C + + 32
print F
Insteadof9.0wemayjustwrite9.(thedotimpliesafloatinterpreta-
tionofthenumber).Theprogramisavailableinthefilec2f.py.Tryto
runit-andobservethattheoutputbecomes69.8,whichiscorrect.
Locatingpotentialintegerdivision. RunningaPythonprogramwith
the-Qwarnallargument,say
Terminal
Terminal> python -Qwarnall l someprogram.py
willprint out awarningeverytime aninteger divisionexpression n is
encounteredinPythonversion2.
Remark. Wecouldeasilyhaverunintoproblemsinourveryfirstpro-
gramsifweinsteadofwritingtheformula
1
2
gtas0.5*g*t**2wrote
(1/2)*g*t**2.Thistermwouldthenalwaysbezero!
1.3.4Arithmeticoperatorsandprecedence
FormulasinPythonprogramsareusuallyevaluatedinthesamewayas
wewouldevaluatethemmathematically.Pythonproceedsfromleftto
right,termbyterminanexpression(termsareseparatedbyplusor
minus).Ineachterm,poweroperationssuchasab,codedasa**b,has
precedenceovermultiplicationanddivision.Asinmathematics,wecan
useparenthesestodictatethewayaformulaisevaluated.Belowaretwo
illustrationsoftheseprinciples.
•5/9+2*a**4/2:First5/9isevaluated(asintegerdivision,giving0as
result),thena(a**4)isevaluated,then2ismultipliedwitha4,that
resultisdividedby2,andtheanswerisaddedtotheresultofthe
first term. The answer is therefore a**4.
•5/(9+2)*a**(4/2):First
5
9+2
is evaluated (as integer division, yield-
ing 0), then 4/2 is computed (as integer division, yielding 2), then
a**2iscalculated,andthatnumberismultipliedbytheresult of
5/(9+2). The answer is thus always zero.
Change pdf to fillable form - 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
add text field to pdf; pdf form save in reader
Change pdf to fillable form - 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
add submit button to pdf form; pdf add signature field
22
1 Computing with formulas
As evident from these two examples, it is easy to unintentionally get
integer division in formulas. Although integer division can be turned off
in Python, we think it is important to be strongly aware of the integer
division concept and to develop good programming habits to avoid it.
The reason is that this concept appears in so many common computer
languages that it is better to learn as early as possible how to deal with
the problem rather than using a Python-specific feature to remove the
problem.
1.4 Evaluating standard mathematical functions
Mathematical formulas frequently involve functions such as sin, cos, tan,
sinh, cosh, exp, log, etc. On a pocket calculator you have special buttons
for such functions. Similarly, in a program you also have ready-made
functionality for evaluating these types of mathematical functions. One
could in principle write one’s own program for evaluating, e.g., thesin(x)
function, but how to do this in an efficient way is a non-trivial topic.
Experts have worked on this problem for decades and implemented their
best recipes in pieces of software that we should reuse. This section tells
you how to reach sin, cos, and similar functions in a Python context.
1.4.1 Example: Using the square root function
Problem. Considerthe formulafor the height ofa ballinvertical
motion, with initial upward velocity v
0
:
y
c
=v
0
t−
1
2
gt
2
,
whereg is the acceleration of gravity andt is time. We now ask the
question: How long time does it take for the ball to reach the heighty
c
?
The answer is straightforward to derive. When y = y
c
we have
y
c
=v
0
t−
1
2
gt
2
.
We recognize that this equation is a quadratic equation, which we must
solve with respect to t. Rearranging,
1
2
gt
2
−v
0
t+y
c
=0,
and using the well-known formula for the two solutions of a quadratic
equation, we find
t
1
=
v
0
v2
0
−2gy
c
/g, t
2
=
v
0
+
v2
0
−2gy
c
/g .
(1.4)
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Convert multiple pages Word to fillable and editable PDF documents. Ability to get word count of PDF pages. Change Word hyperlink to PDF hyperlink and bookmark.
create a fillable pdf form; adding text fields to a pdf
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Create fillable and editable PDF documents from Excel in Visual Merge all Excel sheets to one PDF file in Change Excel hyperlink to PDF hyperlink and bookmark.
create a pdf form in word; adding text field to pdf
1.4 Evaluating standard mathematical functions
23
There are two solutions because the ball reaches the heighty
c
on its way
up (t = t
1
)and on its way down (t = t
2
>t
1
).
The program. Toevaluatetheexpressionsfort
1
andt
2
from (1.4) in a
computer program, we need access to the square root function. In Python,
the square root function and lots of other mathematical functions, such
as sin, cos, sinh, exp, and log, are available in a module calledmath. We
must first import the module before we can use it, that is, we must write
import math.Thereafter,totakethesquarerootofavariable a,wecan
writemath.sqrt(a). This is demonstrated in a program for computing
t
1
and t
2
:
v0 = 5
g = 9.81
yc = 0.2
import math
t1 = (v0 - math.sqrt(v0**2 - 2*g*yc))/g
t2 = (v0 + math.sqrt(v0**2 - 2*g*yc))/g
print ’At t=%g s and %g s, the height is %g m.’ % (t1, t2, yc)
The output from this program becomes
At t=0.0417064 s and 0.977662 s, the height is 0.2 m.
You can find the program as the fileball_yc.py in thesrc/formulas
folder.
Two ways of importing a module. The standard waytoimport a
module, say math, is to write
import math
and then access individual functions in the module with the module
name as prefix as in
x = math.sqrt(y)
Peopleworkingwith mathematical functions often findmath.sqrt(y) less
pleasing than justsqrt(y). Fortunately, there is an alternative import
syntax that allows us to skip the module name prefix. This alternative
syntax has the formfrom module import function. A specific example
is
from math import sqrt
Now we can work withsqrt directly, without themath. prefix. More
than one function can be imported:
from math import sqrt, exp, log, sin
Sometimes one just writes
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings. Convert multiple pages PowerPoint to fillable and editable PDF documents.
adding a text field to a pdf; best program to create pdf forms
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Convert multiple pages Word to fillable and editable PDF documents in Able to get word count in PDF pages. Change Word hyperlink to PDF hyperlink and bookmark.
create a fillable pdf form online; pdf form save
24
1 Computing with formulas
from math import *
to import all functions in themath module. This includessin,cos,tan,
asin, acos, atan, sinh, cosh, tanh, exp, log(base e),log10(base10),
sqrt,aswellasthefamousnumbers eand pi.Importingallfunctions
from a module, using the asterisk (*) syntax, is convenient, but this
may result in a lot of extra names in the program that are not used.
It is in general recommended not to import more functions than those
that are really used in the program. Nevertheless, the convenience of the
compactfrom math import * syntax occasionally wins over the general
recommendation among practitioners - and in this book.
With afrom math import sqrt statement we can write the formulas
for the roots in a more pleasing way:
t1 = (v0 - sqrt(v0**2 - 2*g*yc))/g
t2 = (v0 + sqrt(v0**2 - 2*g*yc))/g
Import with new names. Importedmodulesandfunctionscanbegiven
new names in the import statement, e.g.,
import math as m
# m is now the name of the math module
v = m.sin(m.pi)
from math import log as ln
v = ln(5)
from math import sin as s, cos as c, log as ln
v = s(x)*c(x) + ln(x)
In Python, everything is an object, and variables refer to objects, so
new variables may refer to modules and functions as well as numbers
and strings. The examples above on new names can also be coded by
introducing new variables explicitly:
m = math
ln = m.log
s = m.sin
c = m.cos
1.4.2 Example: Computing with sinh x
Our next examples involve calling some more mathematical functions
from themath module. We look at the definition of thesinh(x) function:
sinh(x) =
1
2
e
x
−e
−x
.
(1.5)
We can evaluatesinh(x) in three ways: i) by callingmath.sinh, ii) by
computing the right-hand side of (1.5), usingmath.exp, or iii) by com-
puting the right-hand side of (1.5) with the aid of the power expressions
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
pdf create fillable form; adding form fields to pdf
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create fillable and editable PDF documents from Excel in both .NET WinForms and ASP.NET. Create searchable and scanned PDF files from Excel.
adding a signature to a pdf form; add print button to pdf form
1.4 Evaluating standard mathematical functions
25
math.e**xand math.e**(-x).Aprogramdoingthesethreealternative
calculations is found in the file3sinh.py. The core of the program looks
like this:
from math import sinh, exp, e, pi
x = 2*pi
r1 = sinh(x)
r2 = 0.5*(exp(x) - exp(-x))
r3 = 0.5*(e**x - e**(-x))
print r1, r2, r3
The output from the program shows that all three computations give
identical results:
267.744894041 267.744894041 267.744894041
1.4.3 A first glimpse of round-off errors
The previous example computes a function in three different yet math-
ematically equivalent ways, and the output from theprint statement
shows that the three resulting numbers are equal. Nevertheless, this is
not the whole story. Let us try to print outr1,r2,r3 with 16 decimals:
print ’%.16f %.16f %.16f’ % (r1,r2,r3)
This statement leads to the output
267.7448940410164369 267.7448940410164369 267.7448940410163232
Now r1 and r2 are equal, but r3 is different! Why is this so?
Our program computes with real numbers, and real numbers need in
general an infinite number of decimals to be represented exactly. The
computer truncates the sequence of decimals because the storage is finite.
In fact, it is quite standard to keep only 16 digits in a real number on a
computer. Exactly how this truncation is done is not explained in this
book, but you read more on Wikipedia4. For now the purpose is to notify
the reader that real numbers on a computer often have a small error.
Only a few real numbers can be represented exactly with 16 digits, the
rest of the real numbers are only approximations.
For this reason, most arithmetic operations involve inaccurate real
numbers, resulting in inaccurate calculations. Think of the following two
calculations: 1/49·49 and 1/51·51. Both expressions are identical to 1,
but when we perform the calculations in Python,
print ’%.16f %.16f’ % (1/49.0*49, 1/51.0*51)
the result becomes
0.9999999999999999 1.0000000000000000
4
http://en.wikipedia.org/wiki/Floating_point_number
C# Create PDF Library SDK to convert PDF from other file formats
Create fillable PDF document with fields. Load PDF from existing documents and image in SQL server. Load PDF from stream programmatically.
change tab order in pdf form; adding text to a pdf form
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
An advanced .NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual C# .NET. Online source code for C#.NET class.
create a fillable pdf form in word; add text field to pdf acrobat
26
1 Computing with formulas
The reason why we do not get exactly 1.0 as answer in the first case is
because 1/49 is not correctly represented in the computer. Also 1/51 has
an inexact representation, but the error does not propagate to the final
answer.
To summarize, errors in floating-point numbers may propagate through
mathematical calculations and result in answers that are only approxi-
mations to the exact underlying mathematical values. The errors in the
answers are commonly known as round-off errors. As soon as you use
Python interactively as explained in the next section, you will encounter
round-off errors quite often.
Python has a special moduledecimal which allows real numbers to be
represented with adjustable accuracy so that round-off errors can bemade
as small as desired (an example appears at the end of Section 3.1.12).
However, we will hardly use this module because approximations implied
by many mathematical methods applied throughout this book normally
lead to (much) larger errors than those caused by round-off.
1.5 Interactive computing
Aparticular convenient feature of Python is the ability to execute state-
ments and evaluate expressions interactively. The environments where
you workinteractivelywith programmingare commonly known as Python
shells. The simplest Python shell is invoked by just typingpython at
the command line in a terminal window. Some messages about Python
are written out together with a prompt »>, after which you can issue
commands. Let us try to use the interactive shell as a calculator. Type
in3*4.5-0.5 and then press the Return key to see Python’s response
to this expression:
Terminal> python
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 3*4.5-0.5
13.0
The text on a line after»> is what we write (shell input) and the text
without the»> prompt is the result that Python calculates (shell output).
It is easy, as explained below, to recover previous input and edit the text.
This editing feature makes it convenient to experiment with statements
and expressions.
1.5.1 Using the Python shell
The program from Section 1.1.7 can be typed in line by line in the
interactive shell:
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
Remove Password from PDF; Change PDF Permission Settings. Bookmark. Metadata: Edit, Delete Metadata. Form Process. ODT, ODS, ODP forms into fillable PDF formats.
change font in pdf form field; add fields to pdf form
1.5 Interactive computing
27
>>> v0 = 5
>>> g = 9.81
>>> t = 0.6
>>> y = v0*t - 0.5*g*t**2
>>> print y
1.2342
We can now easily calculate any value corresponding to another (say)
v0value:hittheuparrowkeytorecoverpreviousstatements,repeat
pressing this key until thev0 = 5 statement is displayed. You can then
edit the line, e.g., to
>>> v0 = 6
Press return to execute this statement. You can control the new value of
v0 by either typing just v0 or print v0:
>>> v0
6
>>> print v0
6
The next step is to recomputey with this newv0 value. Hit the up arrow
key multiple times to recover the statement wherey is assigned, press the
Return key, and writey orprint y to see the result of the computation:
>>> y = v0*t - 0.5*g*t**2
>>> y
1.8341999999999996
>>> print y
1.8342
The reason why we get two slightly different results is that typing justy
prints out all the decimals that are stored in the computer (16), while
print ywritesoutywithfewerdecimals.AsmentionedinSection1.4.3
computations on a computer often suffer from round-off errors. The
present calculation is no exception. The correct answer is1.8342, but
round-off errors lead to a number that is incorrect in the 16th decimal.
The error is here 4· 10−16.
1.5.2 Type conversion
Often you can work with variables in Python without bothering about
the type of objects these variables refer to. Nevertheless, we encountered
aserious problem in Section 1.3.1 with integer division, which forced us
to be careful about the types of objects in a calculation. The interactive
shell is very useful for exploring types. The following example illustrates
thetype function and how we can convert an object from one type to
another.
First, we create anint object bound to the nameC and check its type
by calling type(C):
28
1 Computing with formulas
>>> C = 21
>>> type(C)
<type ’int’>
We convert this int object to a corresponding float object:
>>> C = float(C)
# type conversion
>>> type(C)
<type ’float’>
>>> C
21.0
In the statementC = float(C) we create a new object from the original
object referred to by the name C and bind it to the same name C. That
is,C refers to a different object after the statement than before. The
originalint with value21 cannot be reached anymore (since we have no
name for it) and will be automatically deleted by Python.
We may also do the reverse operation, i.e., convert a particularfloat
object to a corresponding int object:
>>> C = 20.9
>>> type(C)
<type ’float’>
>>> D = int(C)
# type conversion
>>> type(D)
<type ’int’>
>>> D
20
# decimals are truncated :-/
In general, one can convert a variable v to type MyType by writing
v=MyType(v), if it makes sense to do the conversion.
In the last input we tried to convert a float to anint, and this
operation implied stripping off the decimals. Correct conversion according
to mathematical rounding rules can be achieved with help of theround
function:
>>> round(20.9)
21.0
>>> int(round(20.9))
21
1.5.3 IPython
There exist several improvements of the standard Python shell presented
in Section 1.5. The author advocates IPython as the preferred interactive
shell. You will then need to have IPython installed. Typingipython in a
terminal window starts the shell. The (default) prompt in IPython is not
»>butIn [X]:,where Xisthenumberofthepresentinputcommand.
The most widely used features of IPython are summarized below.
Running programs. Pythonprogramscanberunfromwithintheshell:
1.5 Interactive computing
29
In [1]: run ball2.py
1.2342
This command requires that you have taken acd to the folder where the
ball2.py program is located and started IPython from there.
On Windows you may, as an alternative to starting IPython from a
DOS or PowerShell window, double click on the IPython desktop icon
or use the Start menu. In that case, you must move to the right folder
where your program is located. This is done by theos.chdir (change
directory) command. Typically, you write something like
In [1]: import os
In [2]: os.chdir(r’C:\Documents and Settings\me\My Documents\div’)
In [3]: run ball2.py
if theball2.py program is located in thefolderdiv underMy Documents
of userme. Note ther before the quote in the string: it is required to let
abackslash really mean the backslash character. If you end up typing
theos.chdir command every time you enter an IPython shell, this
command (and others) can be placed in a startup file such that they are
automatically executed when you launch IPython.
Inside IPython you can invoke any operating system command. This
allows us to navigate to the right folder above using Unix or Windows
(cd) rather than Python (os.chdir):
In [1]: cd C:\Documents and Settings\me\My Documents\div
In [3]: run ball2.py
We recommend running all your Python programs from the IPython
shell. Especially when something goes wrong, IPython can help you to
examine the state of variables so that you become quicker to locate bugs.
Typesetting convention for executing Python programs
In the rest of the book, we just write the program name and the
output when we illustrate the execution of a program:
Terminal
ball2.py
1.2342
You then need to writerun before the program name if you execute
the program in IPython, or if you prefer to run the program directly
in aterminal window, you need to writepython prior totheprogram
name. Appendix H.2 describes various other ways to run a Python
program.
30
1 Computing with formulas
Quick recovery of previous output. Theresultsofthepreviousstate-
ments in an interactive IPython session are available in variables of the
form_iX (underscore,i, and a number X), where X is 1 for the last
statement, 2 for the second last statement, and so forth. Short forms are
_for _i1, __for _i2,and ___for _i3.Theoutputfromthe In [1]input
above is1.2342. We can now refer to this number by an underscore and,
e.g., multiply it by 10:
In [2]: _*10
Out[2]: 12.341999999999999
Output from Python statements or expressions in IPython are preceded
byOut[X] whereX is thecommand number corresponding to the previous
In [X]prompt.Whenprogramsareexecuted,aswiththe runcommand,
or when operating system commands are run (as shown below), the
output is from the operating system and then not preceded by any
Out[X] label.
The command history from previous IPython sessions is available in a
new session. This feature makes it easy to modify work from a previous
session by just hitting the up-arrow to recall commands and edit them
as necessary.
Tab completion. Pressing the e TAB key will complete an in-
completely typed variable name. For example, after defining
my_long_variable_name = 4, write e just my at the In [4]: prompt
below, and then hit the TAB key. You will experience that my is
immediately expanded to my_long_variable_name. This automatic
expansion feature is called TAB completion and can save you from quite
some typing.
In [3]: my_long_variable_name = 4
In [4]: my_long_variable_name
Out[4]: 4
Recovering previous commands. Youcanwalkthroughthecommand
history by typingCtrl+p or the up arrow for going backward orCtrl+n
or the down arrow for going forward. Any command you hit can be edited
and re-executed. Also commands from previous interactive sessions are
stored in the command history.
Running Unix/Windows commands. Operatingsystemcommandscan
be run from IPython. Below we run the three Unix commandsdate,ls
(list files), mkdir (make directory), and cd (change directory):
In [5]: date
Thu Nov 18 11:06:16 CET 2010
In [6]: ls
myfile.py yourprog.py
Documents you may be interested
Documents you may be interested