itextsharp pdf to image c# : Create a pdf form SDK Library API .net wpf winforms sharepoint book20-part1766

4.6 Writingdatatofile
171
fromstandardinputandwritingtostandardoutput.Thisreadingand
writingcanbedonewithtwotypesoftools,eitherfile-likeobjectsor
specialtoolslikeraw_inputandprintinPython.Wewillheredescribe
thefile-lineobjects:sys.stdinforstandardinputandsys.stdoutfor
standardoutput.Theseobjectsbehaveasfileobjects,exceptthatthey
donotneedtobeopenedorclosed.Thestatement
s = = raw_input(’Give e s:’)
isequivalentto
print ’Give e s: ’,
s = = sys.stdin.readline()
Recallthatthetrailingcommaintheprintstatementavoidsthenewline
thatprintbydefaultaddstotheoutputstring.Similarly,
s = = eval(raw_input(’Give e s:’))
isequivalentto
print ’Give e s: ’,
s = = eval(sys.stdin.readline())
Foroutputtotheterminalwindow,thestatement
print s
isequivalentto
sys.stdout.write(s + + ’\n’)
Whyitishandytohaveaccesstostandardinputandoutputasfile
objectscanbeillustratedbyanexample.Supposeyouhaveafunction
thatreadsdatafromafileobjectinfileandwritesdatatoafileobject
outfile.Asamplefunctionmaytaketheform
def x2f(infile, , outfile, f):
for line e in infile:
x = = float(line)
y = = f(x)
outfile.write(’%g\n’ % % y)
Thisfunctionworkswithalltypesoffiles,includingwebpagesasinfile
(see Section 6.3).With sys.stdin asinfile and/or sys.stdout as
outfile,thex2ffunctionalsoworkswithstandardinputand/orstan-
dardoutput.Withoutsys.stdinandsys.stdout,wewouldneeddiffer-
entcode,employingraw_inputandprint,todealwithstandardinput
andoutput.Nowwecanwriteasinglefunctionthatdealswithallfile
mediainaunifiedway.
There isalso something calledstandard error.Usuallythisisthe
terminalwindow,justasstandardoutput,butprogramscandistinguish
Create a pdf 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
adding form fields to pdf files; pdf form save
Create a pdf 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
adding image to pdf form; create a pdf form from excel
172
4 Userinputanderrorhandling
betweenwritingordinaryoutputtostandardoutputanderrormessages
tostandarderror,andtheseoutput mediacanberedirectedto,e.g.,
files such that one can separate error messages from ordinary output.
In Python, standard error is the file-like objectsys.stderr. A typical
application of sys.stderr is to report errors:
if x < 0:
sys.stderr.write(’Illegal value of x’); sys.exit(1)
This message tosys.stderr is an alternative to print or raising an
exception.
Redirecting standard input, output, and error. Standardoutputfrom
aprogramprog can be redirected to a fileoutput instead of the screen,
by using the greater than sign:
Terminal
Terminal> prog > output
Here,prog can be any program, including a Python program run as
python myprog.py.Similarly,output tothe mediumcalled d standard
error can be redirected by
Terminal
Terminal> prog &> output
For example, error messages are normally written to standard error,
which is exemplified in this little terminal session on a Unix machine:
Terminal
Terminal> ls bla-bla1 bla-bla2
ls: cannot access bla-bla1: No such file or directory
ls: cannot access bla-bla2: No such file or directory
Terminal> ls bla-bla1 bla-bla2 &> errors
Terminal> cat errors # print the file errors
ls: cannot access bla-bla1: No such file or directory
ls: cannot access bla-bla2: No such file or directory
When the program reads from standard input (the keyboard), we can
equally well redirect standard input from a file, say with nameinput,
such that the program reads from this file rather than from the keyboard:
Terminal
Terminal> prog < input
Combinations are also possible:
Terminal
Terminal> prog < input > output
VB.NET PDF Form Data Read library: extract form data from PDF in
RasterEdge .NET PDF SDK is such one provide various of form field edit functions. Demo Code to Retrieve All Form Fields from a PDF File in VB.NET.
add picture to pdf form; add editable fields to pdf
C# PDF Form Data Read Library: extract form data from PDF in C#.
A best PDF document SDK library enable users abilities to read and extract PDF form data in Visual C#.NET WinForm and ASP.NET WebForm applications.
adding text to pdf form; create a form in pdf
4.6 Writing data to file
173
Note.Theredirectionofstandardoutput,input,anderrordoesnotwork
for Python programs executed with therun command inside IPython,
only when executed directly in the operatingsystem in aterminalwindow,
or with thesamecommand prefixed with an exclamation mark in IPython.
Inside a Python program we can also let standard input, output, and
error work with ordinary files instead. Here is the technique:
sys_stdout_orig = sys.stdout
sys.stdout = open(’output’, ’w’)
sys_stdin_orig = sys.stdin
sys.stdin = open(’input’, ’r’)
Now, any print statement will write to the output file, and any
raw_inputcallwillreadfromthe inputfile.(Withoutstoringtheorigi-
nalsys.stdout andsys.stdin objects in new variables, these objects
would get lost in the redefinition above and we would never be able to
reach the common standard input and output in the program.)
4.6.3 What is a file, really?
This section is not mandatory for understanding the rest of the book.
Nevertheless, the information here is fundamental for understanding
what files are about.
Afile is simply a sequence of characters. In addition to the sequence of
characters, a file has some data associated with it, typically the name of
the file, its location on the disk, and the file size. These data are stored
somewhere by the operating system. Without this extra information
beyond the pure file contents as a sequence of characters, the operating
system cannot find a file with a given name on the disk.
Each character in the file is represented as a byte, consisting of eight
bits. Each bit is either 0 or 1. The zeros and ones in a byte can be
combined in 28 = 256 ways. This means that there are 256 different
types of characters. Some of these characters can be recognized from
the keyboard, but there are also characters that do not have a familiar
symbol. Such characters looks cryptic when printed.
Pure text files. Toseethatafileisreallyjustasequenceofcharacters,
invoke an editor for plain text,typicallythe editor you usetowritePython
programs. Write the four charactersABCD into the editor, do not press
the Return key, and save the text to a filetest1.txt. Use your favorite
tool for file and folder overview and move to the folder containing the
test1.txtfile.ThistoolmaybeWindowsExplorer,MyComputer,or
aDOS window on Windows; a terminal window, Konqueror, or Nautilus
on Linux; or a terminal window or Finder on Mac. If you choose a
terminal window, use thecd (change directory) command to move to
the proper folder and writedir (Windows) orls -l (Linux/Mac) to list
the files and their sizes. In a graphical program like Windows Explorer,
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Text. Add Text Box. Drawing Markups. PDF Print. Work Barcode Read. Barcode Create. OCR. Twain. Create
create a pdf form that can be filled out; add email button to pdf form
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Text. Add Text Box. Drawing Markups. PDF Print. Work Barcode Read. Barcode Create. OCR. Twain. Create
pdf fillable form creator; adding a text field to a pdf
174
4 User input and errorhandling
Konqueror, Nautilus, or Finder, select a view that shows the size of
each file (choose view as details in Windows Explorer, View as List in
Nautilus, the list view icon in Finder, or you just point at a file icon in
Konqueror and watch the pop-up text). You will see that thetest1.txt
file has a size of 4 bytes (if you usels -l, the size measured in bytes is
found in column 5, right before the date). The 4 bytes are exactly the
4charactersABCD in the file. Physically, the file is just a sequence of 4
bytes on your hard disk.
Go back to the editor again and add a newline by pressing the Return
key. Save this new version of the file astest2.txt. When you now check
the size of the file it has grown to five bytes. The reason is that we added
anewline character (symbolically known as backslash n: \n).
Instead of examining files via editors and folder viewers we may use
Python interactively:
>>> file1 = open(’test1.txt’, ’r’).read() # read file into string
>>> file1
’ABCD’
>>> len(file1)
# length of string in bytes/characters
4
>>> file2 = open(’test2.txt’, ’r’).read()
>>> file2
’ABCD\n’
>>> len(file2)
5
Python has in fact a function that returns the size of a file directly:
>>> import os
>>> size = os.path.getsize(’test1.txt’)
>>> size
4
Word processor files. Mostcomputeruserswritetextinawordprocess-
ing program, such as Microsoft Word or LibreOffice. Let us investigate
what happens with our four charactersABCD in such a program. Start the
word processor, open a new document, and type in the four characters
ABCDonly.Savethedocumentasa .docxfile(MicrosoftWord)oran
.odtfile(LibreOffice).Loadthisfileintoaneditorforpuretextandlook
at the contents. You will see that there are numerous strange characters
that you did not write (!). This additional “text” contains information
on what type of document this is, the font you used, etc. The LibreOffice
version of this file has 8858bytes and the Microsoft Word version contains
over 26Kb! However,if you save the file as a pure text file, with extension
.txt,thesizeisdownto8bytesinLibreOfficeandfiveinMicrosoft
Word.
Instead of loading the LibreOffice file into an editor we can again read
the file contents into a string in Python and examine this string:
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Text. Add Text Box. Drawing Markups. PDF Print. Work Barcode Read. Barcode Create. OCR. Twain. Create
add text fields to pdf; best way to create pdf forms
VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
Qualified Tiff files are exported with high resolution in VB.NET. Create multipage Tiff image files from PDF in VB.NET project. Support
change font in pdf form; add fillable fields to pdf online
4.6 Writing data to file
175
>>> infile = open(’test3.odt’, ’r’) # open LibreOffice file
>>> s = infile.read()
>>> len(s)
# file size
8858
>>> s
’PK\x03\x04\x14\x00\x00\x08\x00\x00sKWD^\xc62\x0c\’\x00...
\x00meta.xml<?xml version="1.0" encoding="UTF-8"?>\n<office:...
" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
Each backslash followed byx and a number is a code for a special
character not found on the keyboard (recall that there are 256 characters
and only a subset is associated with keyboard symbols). Although we
show just a small portion of all the characters in this file in the above
output (otherwise, the output would have occupied several pages in this
book with thousands symbols like\x04...), we can guarantee that you
cannot find the pure sequence of charactersABCD. However, the computer
program that generated the file, LibreOffice in this example, can easily
interpret the meaning of all the characters in the file and translate the
information into nice, readable text on the screen where you can recognize
the text ABCD.
Your are now in a position to look into Exercise 4.8 to see what
happens if one attempts to use LibreOffice to write Python programs.
Image files. Adigitalimage-capturedbyadigitalcameraoramobile
phone - is a file. And since it is a file, the image is just a sequence of
characters. Loading some JPEG file into a pure text editor, reveals all the
strange characters in there. On the first line you will (normally) find some
recognizable text in between the strange characters. This text reflects the
type of camera used to capture the image and the date and time when
the picture was taken. The next lines contain more information about
the image. Thereafter, the file contains a set of numbers representing
the image. The basic representation of an image is a set ofm×npixels,
where each pixel has a color represented as a combination of 256 values
of red, green, and blue, which can be stored as three bytes (resulting
in 256
3
color values). A 6-megapixel camera will then need to store
3×6·10
6
=18 megabytes for one picture. The JPEG file contains only
acouple of megabytes. The reason is that JPEG is a compressed file
format, produced by applying a smart technique that can throw away
pixel information in the original picture such that the human eye hardly
can detect the inferior quality.
Avideo is just a sequence of images, and therefore a video is also a
stream of bytes. If the change from one video frame (image) to the next
is small, one can use smart methods to compress the image information
in time. Such compression is particularly important for videos since the
file sizes soon get too large for being transferred over the Internet. A
small video file occasionally has bad visual quality, caused by too much
compression.
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Create PDF from Tiff. |. Home ›› XDoc.PDF ›› C# PDF: Create PDF from Tiff. Create PDF from Tiff in both .NET WinForms and ASP.NET application.
pdf add signature field; chrome pdf save form data
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
C#.NET PDF SDK- Create PDF from Word in Visual C#. Online C#.NET Tutorial for Create PDF from Microsoft Office Excel Spreadsheet Using .NET XDoc.PDF Library.
convert word to editable pdf form; create a fillable pdf form from a word document
176
4 User input and errorhandling
Music files. AnMP3fileismuchlikeaJPEGfile:first,thereissome
information about the music (artist, title, album, etc.), and then comes
the music itself as a stream of bytes. A typical MP3 file has a size of
something like five million bytes or five megabytes (5 Mb). The exact
size depends on the complexity of the music, the length of the track,
and the MP3 resolution. On a 16 Gb MP3 player you can then store
roughly 16,000,000,000/5,000,000 = 3200 MP3 files. MP3 is, like JPEG,
acompressed format. The complete data of a song on a CD (the WAV
file) contains about ten times as many bytes. As for pictures, the idea is
that one can throw away a lot of bytes in an intelligent way, such that
the human ear hardly detects the difference between a compressed and
uncompressed version of the music file.
PDF files. LookingataPDFfileinapuretexteditorshowsthatthefile
contains some readable text mixed with some unreadable characters. It
is not possible for a human to look at the stream of bytes and deduce the
text in the document (well, from the assumption that there are always
some strange people doing strange things, there might be somebody out
there who, with a lot of training, can interpret the pure PDF code with
the eyes). A PDF file reader can easily interpret the contents of the file
and display the text in a human-readable form on the screen.
Remarks. Wehaverepeatedmanytimesthatafileisjustastreamof
bytes. A human can interpret (read) the stream of bytes if it makes sense
in a human language - or a computer language (provided the human is
aprogrammer). When the series of bytes does not make sense to any
human, a computer program must be used to interpret the sequence of
characters.
Think of a report. When you write the report as pure text in a text
editor, the resulting file contains just the characters you typed in from
the keyboard. On the other hand, if you applied a word processor like
Microsoft Word or LibreOffice, the report file contains a large number
of extra bytes describing properties of the formatting of the text. This
stream of extra bytes does not make sense to a human, and a computer
program is required to interpret the file content and display it in a
form that a human can understand. Behind the sequence of bytes in the
file there are strict rules telling what the series of bytes means. These
rules reflect the file format. When the rules or file format is publicly
documented, a programmer can use this documentation to make her own
program for interpreting the file contents (however, interpreting such files
is much more complicated than our examples on reading human-readable
files in this book). It happens, though, that secret file formats are used,
which require certain programs from certain companies to interpret the
files.
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
C#.NET PDF SDK- Create PDF from PowerPoint in C#. How to Use C#.NET PDF Control to Create PDF from Microsoft PowerPoint Presentation in .NET Project.
change font pdf fillable form; can reader edit pdf forms
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Create PDF from Word. |. Home ›› XDoc in C#. C# Demo Code to Create PDF Document from Word in C# Program with .NET XDoc.PDF Component.
allow users to save pdf form; adding a signature to a pdf form
4.7 Handling errors
177
4.7 Handling errors
Suppose we forget to provide a command-line argument to the
c2f_cml.py program from Section 4.2.1:
Terminal
c2f_cml.py
Traceback (most recent call last):
File "c2f_cml.py", line 2, in ?
C = float(sys.argv[1])
IndexError: list index out of range
Python aborts the program and shows an error message containing the
line where the error occurred, the type of the error (IndexError), and a
quick explanation of what the error is. From this information we deduce
that the index 1 is out of range. Because there are no command-line
arguments in this case, sys.argv has only one element, namely the
program name. The only valid index is then 0.
For an experienced Python programmer this error message will nor-
mally be clear enough to indicate what is wrong. For others it would
be very helpful if wrong usage could be detected by our program and a
description of correct operation could be printed. The question is how to
detect the error inside the program.
The problem in our sample execution is that sys.argv does not
contain two elements (the program name, as always, plus one command-
line argument). We can therefore test on the length of sys.argv to
detect wrong usage: if len(sys.argv) is less than 2, the user failed to
provide information on theC value. The new version of the program,
c2f_cml_if.py, starts with this if test:
if len(sys.argv) < 2:
print ’You failed to provide Celsius degrees as input ’\
’on the command line!’
sys.exit(1) # abort because of error
F = 9.0*C/5 + 32
print ’%gC is %.1fF’ % (C, F)
We use thesys.exit function to abort the program. Any argument
different from zero signifies that the program was aborted due to an
error, but the precise value of the argument does not matter so here we
simply choose it to be1. If no errors are found, but we still want to abort
the program, sys.exit(0) is used.
Amore modern and flexible way of handling potential errors in a
program is to try to execute some statements, and if something goes
wrong, the program can detect this and jump to a set of statements
that handle the erroneous situation as desired. The relevant program
construction reads
178
4 User input and errorhandling
try:
<statements>
except:
<statements>
If something goes wrong when executing the statements in thetry block,
Python raises what is known as an exception. The execution jumps
directly to theexcept block whose statements can provide a remedy
for the error. The next section explains thetry-except construction in
more detail through examples.
4.7.1 Exception handling
To clarify the idea of exception handling, let us use atry-except block
to handle the potential problem arising when our Celsius-Fahrenheit
conversion program lacks a command-line argument:
import sys
try:
C = float(sys.argv[1])
except:
print ’You failed to provide Celsius degrees as input ’\
’on the command line!’
sys.exit(1) # abort
F = 9.0*C/5 + 32
print ’%gC is %.1fF’ % (C, F)
The program is stored in the filec2f_cml_except1.py. If the command-
line argument is missing, the indexingsys.argv[1], which has an invalid
index1, raises an exception. This means that the program jumps directly
to the except block, implying thatfloat is not called, and C is not
initialized with a value. In the except block, the programmer can retrieve
information about the exception and perform statements to recover from
the error. In our example, we know what the error can be, and therefore
we just print a message and abort the program.
Suppose the user provides a command-line argument. Now, thetry
block is executed successfully, and the program neglects theexcept block
and continues with the Fahrenheit conversion. We can try out the last
program in two cases:
Terminal
c2f_cml_except1.py
You failed to provide Celsius degrees as input on the command line!
c2f_cml_except1.py 21
21C is 69.8F
In the first case, the illegal index insys.argv[1] causes an exception to
be raised, and we perform the steps in theexcept block. In the second
case, thetry block executes successfully, so we jump over theexcept
block and continue with the computations and the printout of results.
4.7 Handling errors
179
For a user of the program, it does not matter if the programmer applies
anif test or exception handling to recover from a missing command-
line argument. Nevertheless, exception handling is considered a better
programming solution because it allows more advanced ways to abort or
continue the execution. Therefore, we adopt exception handling as our
standard way of dealing with errors in the rest of this book.
Testing for a specific exception. Consider the assignment
C = float(sys.argv[1])
There are two typical errors associated with this statement: i)
sys.argv[1] isillegalindexing because nocommand-line arguments
are provided, and ii) the content in the string sys.argv[1] is not a
pure number that can be converted to afloat object. Python detects
both these errors and raises anIndexError exception in the first case
and aValueError in the second. In the program above, we jump to the
exceptblockandissuethesamemessageregardlessofwhatwentwrong
in thetry block. For example, when we indeed provide a command-line
argument, but write it on an illegal form (21C), the program jumps to
the except block and prints a misleading message:
Terminal
c2f_cml_except1.py 21C
You failed to provide Celsius degrees as input on the command line!
The solution to this problem is to branch into differentexcept blocks
depending on what type of exception that was raised in thetry block
(program c2f_cml_except2.py):
import sys
try:
C = float(sys.argv[1])
except IndexError:
print ’Celsius degrees must be supplied on the command line’
sys.exit(1) # abort execution
except ValueError:
print ’Celsius degrees must be a pure number, ’\
’not "%s"’ % sys.argv[1]
sys.exit(1)
F = 9.0*C/5 + 32
print ’%gC is %.1fF’ % (C, F)
Now, if we fail to provide a command-line argument, an IndexError
occurs and we tell the user to write theC value on the command line. On
the other hand, if thefloat conversion fails, because the command-line
argument has wrong syntax, aValueError exception is raised and we
branch into the secondexcept block and explain that the form of the
given number is wrong:
Terminal
c2f_cml_except1.py 21C
Celsius degrees must be a pure number, not "21C"
180
4 User input and errorhandling
Examples on exception types. List indices out of range lead to
IndexError exceptions:
>>> data = [1.0/i for i in range(1,10)]
>>> data[9]
...
IndexError: list index out of range
Some programming languages (Fortran, C, C++, and Perl are examples)
allow list indices outside the legalindex values, and such unnoticed errors
can be hard to find. Python always stops a program when an invalid
index is encountered, unless you handle the exception explicitly as a
programmer.
Converting a string tofloat is unsuccessful and gives aValueError
if the string is not a pure integer or real number:
>>> C = float(’21 C’)
...
ValueError: invalid literal for float(): 21 C
Trying to use a variable that is not initialized gives aNameError excep-
tion:
>>> print a
...
NameError: name ’a’ is not defined
Division by zero raises a ZeroDivisionError exception:
>>> 3.0/0
...
ZeroDivisionError: float division
Writing a Python keyword illegally or performing a Python grammar
error leads to a SyntaxError exception:
>>> forr d in data:
...
forr d in data:
^
SyntaxError: invalid syntax
What if we try to multiply a string by a number?
>>> ’a string’*3.14
...
TypeError: can’t multiply sequence by non-int of type ’float’
TheTypeError exception is raised because the object types involved in
the multiplication are wrong (str and float).
Digression. Itmightcomeasasurprise,butmultiplicationofastring
and a number is legal if the number is an integer. The multiplication
means that the string should be repeated the specified number of times.
The same rule also applies to lists:
Documents you may be interested
Documents you may be interested