open password protected pdf using c# : Add text to pdf reader SDK Library API wpf asp.net windows sharepoint abs-guide22-part1806

Chapter 16. External Filters, Programs and
Commands
Standard UNIX commands make shell scripts more versatile. The power of scripts comes from coupling
system commands and shell directives with simple programming constructs.
16.1. Basic Commands
The first commands a novice learns
ls
The basic file "list" command. It is all too easy to underestimate the power of this humble command.
For example, using the -R, recursive option, ls provides a tree-like listing of a directory structure.
Other useful options are -S, sort listing by file size, -t, sort by file modification time, -v, sort by
(numerical) version numbers embedded in the filenames, [70] -b, show escape characters, and -i,
show file inodes (see Example 16-4).
bash$ ls -l
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter10.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter11.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter12.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter1.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter2.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter3.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:49 Chapter_headings.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:49 Preface.txt
bash$ ls -lv
total 0
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:49 Chapter_headings.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:49 Preface.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter1.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter2.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter3.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter10.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter11.txt
-rw-rw-r-- 1 bozo bozo 0 Sep 14 18:44 chapter12.txt
The ls command returns a non-zero exit status when attempting to list a non-existent
file.
bash$ ls abc
ls: abc: No such file or directory
bash$ echo $?
2
Example 16-1. Using ls to create a table of contents for burning a CDR disk
Chapter 16. External Filters, Programs and Commands
215
Add text to pdf reader - insert text into PDF content in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
XDoc.PDF for .NET, providing C# demo code for inserting text to PDF file
add text box to pdf file; adding a text field to a pdf
Add text to pdf reader - VB.NET PDF insert text library: insert text into PDF content in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program
add text box in pdf; how to add text to a pdf document using reader
#!/bin/bash
# ex40.sh (burn-cd.sh)
# Script to automate burning a CDR.
SPEED=10         # May use higher speed if your hardware supports it.
IMAGEFILE=cdimage.iso
CONTENTSFILE=contents
# DEVICE=/dev/cdrom     For older versions of cdrecord
DEVICE="1,0,0"
DEFAULTDIR=/opt  # This is the directory containing the data to be burned.
# Make sure it exists.
# Exercise: Add a test for this.
# Uses Joerg Schilling's "cdrecord" package:
# http://www.fokus.fhg.de/usr/schilling/cdrecord.html
 If this script invoked as an ordinary user, may need to suid cdrecord
#+ chmod u+s /usr/bin/cdrecord, as root.
 Of course, this creates a security hole, though a relatively minor one.
if [ -z "$1" ]
then
IMAGE_DIRECTORY=$DEFAULTDIR
# Default directory, if not specified on command-line.
else
IMAGE_DIRECTORY=$1
fi
# Create a "table of contents" file.
ls -lRF $IMAGE_DIRECTORY > $IMAGE_DIRECTORY/$CONTENTSFILE
# The "l" option gives a "long" file listing.
# The "R" option makes the listing recursive.
# The "F" option marks the file types (directories get a trailing /).
echo "Creating table of contents."
# Create an image file preparatory to burning it onto the CDR.
mkisofs -r -o $IMAGEFILE $IMAGE_DIRECTORY
echo "Creating ISO9660 file system image ($IMAGEFILE)."
# Burn the CDR.
echo "Burning the disk."
echo "Please be patient, this will take a while."
wodim -v -isosize dev=$DEVICE $IMAGEFILE
 In newer Linux distros, the "wodim" utility assumes the
#+ functionality of "cdrecord."
exitcode=$?
echo "Exit code = $exitcode"
exit $exitcode
cat, tac
cat, an acronym for concatenate, lists a file to stdout. When combined with redirection (> or >>), it
is commonly used to concatenate files. 
# Uses of 'cat'
cat filename                          # Lists the file.
cat file.1 file.2 file.3 > file.123   # Combines three files into one.
The -n option to cat inserts consecutive numbers before all lines of the target file(s). The -b option
numbers only the non-blank lines. The -v option echoes nonprintable characters, using ^ notation.
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
216
C# PDF insert image Library: insert images into PDF in C#.net, ASP
inserting image to PDF in preview without adobe PDF reader installed. Insert images into PDF form field. How to insert and add image, picture, digital photo
add text pdf file; how to add text to a pdf document
VB.NET PDF insert image library: insert images into PDF in vb.net
try with this sample VB.NET code to add an image As String = Program.RootPath + "\\" 1.pdf" Dim doc New PDFDocument(inputFilePath) ' Get a text manager from
adding text to a pdf document acrobat; add text boxes to a pdf
The -s option squeezes multiple consecutive blank lines into a single blank line.
See also Example 16-28 and Example 16-24.
In a pipe, it may be more efficient to redirect the stdin to a file, rather than to cat
the file.
cat filename | tr a-z A-Z
tr a-z A-Z < filename   #  Same effect, but starts one less process,
#+ and also dispenses with the pipe.
tac, is the inverse of cat, listing a file backwards from its end.
rev
reverses each line of a file, and outputs to stdout. This does not have the same effect as tac, as it
preserves the order of the lines, but flips each one around (mirror image).
bash$ cat file1.txt
This is line 1.
This is line 2.
bash$ tac file1.txt
This is line 2.
This is line 1.
bash$ rev file1.txt
.1 enil si sihT
.2 enil si sihT
cp
This is the file copy command. cp file1 file2 copies file1 to file2, overwriting file2 if
it already exists (see Example 16-6).
Particularly useful are the -a archive flag (for copying an entire directory tree), the
-u update flag (which prevents overwriting identically-named newer files), and the
-r and -R recursive flags.
cp -u source_dir/* dest_dir
#  "Synchronize" dest_dir to source_dir
#+  by copying over all newer and not previously existing files.
mv
This is the file move command. It is equivalent to a combination of cp and rm. It may be used to
move multiple files to a directory, or even to rename a directory. For some examples of using mv in a
script, see Example 10-11 and Example A-2.
When used in a non-interactive script, mv takes the -f (force) option to bypass user
input.
When a directory is moved to a preexisting directory, it becomes a subdirectory of the
destination directory.
bash$ mv source_directory target_directory
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
217
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 text to pdf file online; add text to pdf without acrobat
VB.NET PDF Text Extract Library: extract text content from PDF
With this advanced PDF Add-On, developers are able to extract target text content from source PDF document and save extracted text to other file formats
adding text pdf; add text to pdf in preview
bash$ ls -lF target_directory
total 1
drwxrwxr-x    2 bozo  bozo      1024 May 28 19:20 source_directory/
rm
Delete (remove) a file or files. The -f option forces removal of even readonly files, and is useful for
bypassing user input in a script.
The rm command will, by itself, fail to remove filenames beginning with a dash.
Why? Because rm sees a dash-prefixed filename as an option.
bash$ rm -badname
rm: invalid option -- b
Try `rm --help' for more information.
One clever workaround is to precede the filename with a " -- " (the end-of-options
flag).
bash$ rm -- -badname
Another method to is to preface the filename to be removed with a dot-slash .
bash$ rm ./-badname
When used with the recursive flag -r, this command removes files all the way down
the directory tree from the current directory. A careless rm -rf * can wipe out a big
chunk of a directory structure.
rmdir
Remove directory. The directory must be empty of all files -- including "invisible" dotfiles[71] -- for
this command to succeed.
mkdir
Make directory, creates a new directory. For example, mkdir -p
project/programs/December creates the named directory. The -p option automatically
creates any necessary parent directories.
chmod
Changes the attributes of an existing file or directory (see Example 15-14).
chmod +x filename
# Makes "filename" executable for all users.
chmod u+s filename
# Sets "suid" bit on "filename" permissions.
# An ordinary user may execute "filename" with same privileges as the file's owner.
# (This does not apply to shell scripts.)
chmod 644 filename
 Makes "filename" readable/writable to owner, readable to others
#+ (octal mode).
chmod 444 filename
 Makes "filename" read-only for all.
 Modifying the file (for example, with a text editor)
#+ not allowed for a user who does not own the file (except for root),
#+ and even the file owner must force a file-save
#+ if she modifies the file.
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
218
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.
add text pdf file acrobat; adding text pdf file
C# PDF Text Extract Library: extract text content from PDF file in
How to C#: Extract Text Content from PDF File. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
how to insert text in pdf using preview; add text to pdf
 Same restrictions apply for deleting the file.
chmod 1777 directory-name
 Gives everyone read, write, and execute permission in directory,
#+ however also sets the "sticky bit".
 This means that only the owner of the directory,
#+ owner of the file, and, of course, root
#+ can delete any particular file in that directory.
chmod 111 directory-name
 Gives everyone execute-only permission in a directory.
 This means that you can execute and READ the files in that directory
#+ (execute permission necessarily includes read permission
#+ because you can't execute a file without being able to read it).
 But you can't list the files or search for them with the "find" command.
 These restrictions do not apply to root.
chmod 000 directory-name
 No permissions at all for that directory.
 Can't read, write, or execute files in it.
 Can't even list files in it or "cd" to it.
 But, you can rename (mv) the directory
#+ or delete it (rmdir) if it is empty.
 You can even symlink to files in the directory,
#+ but you can't read, write, or execute the symlinks.
 These restrictions do not apply to root.
chattr
Change file attributes. This is analogous to chmod above, but with different options and a different
invocation syntax, and it works only on ext2/ext3 filesystems.
One particularly interesting chattr option is i. A chattr +i filename marks the file as immutable.
The file cannot be modified, linked to, or deleted, not even by root. This file attribute can be set or
removed only by root. In a similar fashion, the a option marks the file as append only.
root# chattr +i file1.txt
root# rm file1.txt
rm: remove write-protected regular file `file1.txt'? y
rm: cannot remove `file1.txt': Operation not permitted
If a file has the s (secure) attribute set, then when it is deleted its block is overwritten with binary
zeroes. [72]
If a file has the u (undelete) attribute set, then when it is deleted, its contents can still be retrieved
(undeleted).
If a file has the c (compress) attribute set, then it will automatically be compressed on writes to disk,
and uncompressed on reads.
The file attributes set with chattr do not show in a file listing (ls -l).
ln
Creates links to pre-existings files. A "link" is a reference to a file, an alternate name for it. The ln
command permits referencing the linked file by more than one name and is a superior alternative to
aliasing (see Example 4-6).
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
219
VB.NET PDF Text Add Library: add, delete, edit PDF text in vb.net
Read: PDF Image Extract; VB.NET Write: Insert text into PDF; Add Image to PDF; VB.NET Protect: Add Password to VB.NET Annotate: PDF Markup & Drawing. XDoc.Word
how to add text to a pdf file in preview; how to add text to a pdf in acrobat
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Evaluation library and components enable users to annotate PDF without adobe PDF reader control installed. Able to add notes to PDF using C# source code in
how to add text to a pdf file in acrobat; add text pdf
The ln creates only a reference, a pointer to the file only a few bytes in size.
The ln command is most often used with the -s, symbolic or "soft" link flag. Advantages of using the
-s flag are that it permits linking across file systems or to directories.
The syntax of the command is a bit tricky. For example: ln -s oldfile newfile links the
previously existing oldfile to the newly created link, newfile.
If a file named newfile has previously existed, an error message will result.
Which type of link to use?
As John Macdonald explains it:
Both of these [types of links] provide a certain measure of dual reference -- if you edit the contents
of the file using any name, your changes will affect both the original name and either a hard or soft
new name. The differences between them occurs when you work at a higher level. The advantage of
a hard link is that the new name is totally independent of the old name -- if you remove or rename
the old name, that does not affect the hard link, which continues to point to the data while it would
leave a soft link hanging pointing to the old name which is no longer there. The advantage of a soft
link is that it can refer to a different file system (since it is just a reference to a file name, not to
actual data). And, unlike a hard link, a symbolic link can refer to a directory.
Links give the ability to invoke a script (or any other type of executable) with multiple names, and
having that script behave according to how it was invoked.
Example 16-2. Hello or Good-bye
#!/bin/bash
# hello.sh: Saying "hello" or "goodbye"
#+          depending on how script is invoked.
# Make a link in current working directory ($PWD) to this script:
   ln -s hello.sh goodbye
# Now, try invoking this script both ways:
# ./hello.sh
# ./goodbye
HELLO_CALL=65
GOODBYE_CALL=66
if [ $0 = "./goodbye" ]
then
echo "Good-bye!"
# Some other goodbye-type commands, as appropriate.
exit $GOODBYE_CALL
fi
echo "Hello!"
# Some other hello-type commands, as appropriate.
exit $HELLO_CALL
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
220
C# PDF Text Add Library: add, delete, edit PDF text in C#.net, ASP
Read: PDF Image Extract; VB.NET Write: Insert text into PDF; Add Image to PDF; VB.NET Protect: Add Password to VB.NET Annotate: PDF Markup & Drawing. XDoc.Word
add text pdf file; how to enter text into a pdf
man, info
These commands access the manual and information pages on system commands and installed
utilities. When available, the info pages usually contain more detailed descriptions than do the man
pages.
There have been various attempts at "automating" the writing of man pages. For a script that makes a
tentative first step in that direction, see Example A-39.
16.2. Complex Commands
Commands for more advanced users
find
-exec COMMAND \;
Carries out COMMAND on each file that find matches. The command sequence terminates with ; (the
";" is escaped to make certain the shell passes it to find literally, without interpreting it as a special
character).
bash$ find ~/ -name '*.txt'
/home/bozo/.kde/share/apps/karm/karmdata.txt
/home/bozo/misc/irmeyc.txt
/home/bozo/test-scripts/1.txt
If COMMAND contains {}, then find substitutes the full path name of the selected file for "{}".
find ~/ -name 'core*' -exec rm {} \;
# Removes all core dump files from user's home directory.
find /home/bozo/projects -mtime -1
                              ^   Note minus sign!
 Lists all files in /home/bozo/projects directory tree
#+ that were modified within the last day (current_day - 1).
#
find /home/bozo/projects -mtime 1
 Same as above, but modified *exactly* one day ago.
#
 mtime = last modification time of the target file
 ctime = last status change time (via 'chmod' or otherwise)
 atime = last access time
DIR=/home/bozo/junk_files
find "$DIR" -type f -atime +5 -exec rm {} \;
                         ^           ^^
 Curly brackets are placeholder for the path name output by "find."
#
 Deletes all files in "/home/bozo/junk_files"
#+ that have not been accessed in *at least* 5 days (plus sign ... +5).
#
 "-type filetype", where
 f = regular file
 d = directory
 l = symbolic link, etc.
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
221
#
 (The 'find' manpage and info page have complete option listings.)
find /etc -exec grep '[0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*' {} \;
# Finds all IP addresses (xxx.xxx.xxx.xxx) in /etc directory files.
# There a few extraneous hits. Can they be filtered out?
# Possibly by:
find /etc -type f -exec cat '{}' \; | tr -c '.[:digit:]' '\n' \
| grep '^[^.][^.]*\.[^.][^.]*\.[^.][^.]*\.[^.][^.]*$'
#
 [:digit:] is one of the character classes
#+ introduced with the POSIX 1003.2 standard. 
# Thanks, Stéphane Chazelas. 
The -exec option to find should not be confused with the exec shell builtin.
Example 16-3. Badname, eliminate file names in current directory containing bad characters
and whitespace.
#!/bin/bash
# badname.sh
# Delete filenames in current directory containing bad characters.
for filename in *
do
badname=`echo "$filename" | sed -n /[\+\{\;\"\\\=\?~\(\)\<\>\&\*\|\$]/p`
# badname=`echo "$filename" | sed -n '/[+{;"\=?~()<>&*|$]/p'`  also works.
# Deletes files containing these nasties:     + { ; " \ = ? ~ ( ) < > & * | $
#
rm $badname 2>/dev/null
            ^^^^^^^^^^^ Error messages deep-sixed.
done
# Now, take care of files containing all manner of whitespace.
find . -name "* *" -exec rm -f {} \;
# The path name of the file that _find_ finds replaces the "{}".
# The '\' ensures that the ';' is interpreted literally, as end of command.
exit 0
#---------------------------------------------------------------------
# Commands below this line will not execute because of _exit_ command.
# An alternative to the above script:
find . -name '*[+{;"\\=?~()<>&*|$ ]*' -maxdepth 0 \
-exec rm -f '{}' \;
 The "-maxdepth 0" option ensures that _find_ will not search
#+ subdirectories below $PWD.
# (Thanks, S.C.)
Example 16-4. Deleting a file by its inode number
#!/bin/bash
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
222
# idelete.sh: Deleting a file by its inode number.
 This is useful when a filename starts with an illegal character,
#+ such as ? or -.
ARGCOUNT=1                      # Filename arg must be passed to script.
E_WRONGARGS=70
E_FILE_NOT_EXIST=71
E_CHANGED_MIND=72
if [ $# -ne "$ARGCOUNT" ]
then
echo "Usage: `basename $0` filename"
exit $E_WRONGARGS
fi  
if [ ! -e "$1" ]
then
echo "File \""$1"\" does not exist."
exit $E_FILE_NOT_EXIST
fi  
inum=`ls -i | grep "$1" | awk '{print $1}'`
# inum = inode (index node) number of file
# -----------------------------------------------------------------------
# Every file has an inode, a record that holds its physical address info.
# -----------------------------------------------------------------------
echo; echo -n "Are you absolutely sure you want to delete \"$1\" (y/n)? "
# The '-v' option to 'rm' also asks this.
read answer
case "$answer" in
[nN]) echo "Changed your mind, huh?"
exit $E_CHANGED_MIND
;;
*)    echo "Deleting file \"$1\".";;
esac
find . -inum $inum -exec rm {} \;
                          ^^
       Curly brackets are placeholder
#+       for text output by "find."
echo "File "\"$1"\" deleted!"
exit 0
The find command also works without the -exec option.
#!/bin/bash
 Find suid root files.
 A strange suid file might indicate a security hole,
#+ or even a system intrusion.
directory="/usr/sbin"
# Might also try /sbin, /bin, /usr/bin, /usr/local/bin, etc.
permissions="+4000"  # suid root (dangerous!)
for file in $( find "$directory" -perm "$permissions" )
do
ls -ltF --author "$file"
done
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
223
See Example 16-30, Example 3-4, and Example 11-10 for scripts using find. Its manpage provides
more detail on this complex and powerful command.
xargs
A filter for feeding arguments to a command, and also a tool for assembling the commands
themselves. It breaks a data stream into small enough chunks for filters and commands to process.
Consider it as a powerful replacement for backquotes. In situations where command substitution fails
with a too many arguments error, substituting xargs often works. [73] Normally, xargs reads from
stdin or from a pipe, but it can also be given the output of a file.
The default command for xargs is echo. This means that input piped to xargs may have linefeeds and
other whitespace characters stripped out.
bash$ ls -l
total 0
-rw-rw-r--    1 bozo  bozo         0 Jan 29 23:58 file1
-rw-rw-r--    1 bozo  bozo         0 Jan 29 23:58 file2
bash$ ls -l | xargs
total 0 -rw-rw-r-- 1 bozo bozo 0 Jan 29 23:58 file1 -rw-rw-r-- 1 bozo bozo 0 Jan...
bash$ find ~/mail -type f | xargs grep "Linux"
./misc:User-Agent: slrn/0.9.8.1 (Linux)
./sent-mail-jul-2005: hosted by the Linux Documentation Project.
./sent-mail-jul-2005: (Linux Documentation Project Site, rtf version)
./sent-mail-jul-2005: Subject: Criticism of Bozo's Windows/Linux article
./sent-mail-jul-2005: while mentioning that the Linux ext2/ext3 filesystem
. . .
ls | xargs -p -l gzip gzips every file in current directory, one at a time, prompting before
each operation.
Note that xargs processes the arguments passed to it sequentially, one at a time.
bash$ find /usr/bin | xargs file
/usr/bin:          directory
/usr/bin/foomatic-ppd-options:          perl script text executable
. . .
An interesting xargs option is -n NN, which limits to NN the number of arguments
passed.
ls | xargs -n 8 echo lists the files in the current directory in 8 columns.
Another useful option is -0, in combination with find -print0 or grep -lZ.
This allows handling arguments containing whitespace or quotes.
find / -type f -print0 | xargs -0 grep -liwZ GUI | xargs
-0 rm -f
Advanced Bash-Scripting Guide
Chapter 16. External Filters, Programs and Commands
224
Documents you may be interested
Documents you may be interested