convert pdf to image asp.net c# : Secure pdf remove Library software class asp.net winforms wpf ajax O'Reilly%20-%20Python%20Cookbook44-part1472

10.14 Module: Interactive POP3 Mailbox Inspector 
Credit: Xavier Defrang 
Suppose you have a POP3 mailbox somewhere, perhaps on a slow connection, and need to 
examine messages, and perhaps mark them for deletion, in an interactive way. Perhaps you're 
behind a slow Internet link and don't want to wait for that funny 10-MB MPEG movie that you 
already received twice yesterday to be fully downloaded before you can read your mail. Or maybe 
there's a peculiar malformed message that is hanging your MUA. This issue is best tackled 
interactively, but you need a helping script to let you examine some data about each message and 
determine which messages should be removed.  
Instead of telneting to your POP server and trying to remember the POP3 protocol commands (or 
hoping that the server implements 
help
), you can use the small script shown in Example 10-3
to 
inspect your mailbox and do some cleaning. Basically, Python's standard POP3 module, 
poplib
remembers the protocol commands on your behalf, and this script helps you use them 
appropriately.  
Example 10-3
uses the 
poplib
module to connect to your mailbox. It then prompts you about 
what to do with each undelivered message. You can view the top of the message, leave it on the 
server, or mark it for deletion. No particular tricks or hacks are used in this piece of code: it's a 
simple example of 
poplib
usage. In addition to being practically useful in emergencies, it can 
show how 
poplib
works. The 
poplib.POP3
call returns an object that is ready for 
connection to a POP3 server specified as its argument. We complete the connection by calling the 
user
and 
pass_
methods to specify a user ID and password. Note the trailing underscore in 
pass_
: this method could not be called 
pass
because that is a Python keyword (the do-nothing 
statement), and by convention, such issues are always solved by appending an underscore to the 
identifier.  
After connection, we keep working with methods of the 
pop
object. The 
stat
method returns 
the number of messages and the total size of the mailbox in bytes. The 
top
method takes a 
message-number argument and returns information about that message, as well as the message 
itself as a list of lines (you can specify a second argument N to ensure that no more than N lines 
are returned). The 
dele
method also takes a message-number argument and deletes that message 
from the mailbox (without renumbering all other messages). When we're done, we call the 
quit
method. If you're familiar with the POP3 protocol, you'll notice the close correspondence between 
these methods and the POP3 commands.  
Example 10-3. Interactive POP3 mailbox inspector  
# Helper interactive script to clean POP3 mailboxes from 
malformed mails that 
# hangs MUA's, messages that are too large, etc. 
# Iterates over nonretrieved mails, prints selected elements 
from the headers, 
# and prompts interactively about whether each message 
should be deleted 
import sys, getpass, poplib, re 
# Change according to your needs 
Secure pdf remove - C# PDF Digital Signature Library: add, remove, update PDF digital signatures in C#.net, ASP.NET, MVC, WPF
Help to Improve the Security of Your PDF File by Adding Digital Signatures
cannot print pdf security; decrypt pdf without password
Secure pdf remove - VB.NET PDF Digital Signature Library: add, remove, update PDF digital signatures in vb.net, ASP.NET, MVC, WPF
Guide VB.NET Programmers to Improve the Security of Your PDF File by Adding Digital Signatures
change security settings on pdf; change pdf security settings reader
POPHOST = "pop.domain.com" 
POPUSER = "jdoe" 
POPPASS = "" 
# The number of message body lines to retrieve 
MAXLINES = 10 
HEADERS = "From To Subject".split(  ) 
args = len(sys.argv) 
if args>1: POPHOST = sys.argv[1] 
if args>2: POPUSER = sys.argv[2] 
if args>3: POPPASS = sys.argv[3] 
if args>4: MAXLINES= int(sys.argv[4]) 
if args>5: HEADERS = sys.argv[5:] 
# Headers you're actually interested in 
rx_headers  = re.compile('|'.join(headers), re.IGNORECASE) 
try: 
# Connect to the POPer and identify user 
pop = poplib.POP3(POPHOST) 
pop.user(POPUSER) 
if not POPPASS or POPPASS=='=': 
# If no password was supplied, ask for it 
POPPASS = getpass.getpass("Password for %s@%s:" % 
(POPUSER, POPHOST)) 
# Authenticate user 
pop.pass_(POPPASS) 
# Get some general information (msg_count, box_size) 
stat = pop.stat(  ) 
# Print some useless information 
print "Logged in as %s@%s" % (POPUSER, POPHOST) 
print "Status: %d message(s), %d bytes" % stat 
bye = 0 
count_del = 0 
for n in range(stat[0]): 
msgnum = n+1 
# Retrieve headers 
response, lines, bytes = pop.top(msgnum, MAXLINES) 
# Print message info and headers you're interested 
in 
print "Message %d (%d bytes)" % (msgnum, bytes) 
print "-" * 30 
print "\n".join(filter(rx_headers.match, lines)) 
print "-" * 30 
Online Remove password from protected PDF file
Remove password from protected PDF file. You can receive the unlocked PDF by simply clicking download and you a file it is transmitted using a secure connection
change security on pdf; add security to pdf
C# PDF Library SDK to view, edit, convert, process PDF file for C#
XDoc.PDF SDK provides users secure methods to protect PDF document. C# users can set password to PDF and set PDF file permissions to protect PDF document.
pdf password encryption; decrypt pdf password online
# Input loop 
while 1: 
k = raw_input("(d=delete, s=skip, v=view, q=quit) 
What?") 
k = k[:1].lower(  ) 
if k == 'd': 
# Mark message for deletion 
k = raw_input("Delete message %d? (y/n)" % 
msgnum) 
if k in "yY": 
pop.dele(msgnum) 
print "Message %d marked for deletion" % 
msgnum 
count_del += 1 
break 
elif k == 's': 
print "Message %d left on server" % msgnum 
break 
elif k == 'v': 
print "-" * 30 
print "\n".join(lines) 
print "-" * 30 
elif k == 'q': 
bye = 1 
break 
# Time to say goodbye? 
if bye: 
print "Bye" 
break 
# Summary 
print "Deleting %d message(s) in mailbox %s@%s" % ( 
count_del, POPUSER, POPHOST) 
# Commit operations and disconnect from server 
print "Closing POP3 session" 
pop.quit(  ) 
except poplib.error_proto, detail: 
# Fancy error handling 
print "POP3 Protocol Error:", detail 
10.14.1 See Also 
Documentation for the standard library modules 
poplib
and 
getpass
in the Library 
Reference; the POP protocol is described in RFC 1939 (http://www.ietf.org/rfc/rfc1939.txt
).  
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
C#.NET: Edit PDF Password in ASP.NET. RaterEdge HTML5 PDF Editor also provides C#.NET users secure solutions for PDF document protection.
pdf security settings; decrypt pdf file
C# Create PDF Library SDK to convert PDF from other file formats
& thread-safe .NET solution which provides a reliable and quick approach for C# developers to create a highly-secure and industry-standard PDF document file.
pdf unlock; create pdf the security level is set to high
10.15 Module: Watching for New IMAP Mail Using a GUI 
Credit: Brent Burley 
Suppose you need to poll an IMAP inbox for unread messages and display the sender and subject 
in a scrollable window using Tkinter. The key functionality you need is in the standard Python 
module 
imaplib
, with some help from the 
rfc822
module. Example 10-4
reads the server 
name, user, and password from the ~/.imap file. They must be all on one line, separated by spaces.  
The hard (and interesting) part of developing this program was figuring out how to get the IMAP 
part working, which took a fair bit of investigating. The most productive approach to 
understanding the IMAP protocol proved to be talking to the IMAP server directly from a Python 
interactive session to see what it returned:  
>>> import imaplib 
>>> M = imaplib.IMAP4(imap_server) 
>>> M.login(imap_user, imap_password) 
('OK', ['LOGIN complete']) 
>>> M.select(readonly=1) 
('OK', ['8']) 
>>> M.search(None, '(UNSEEN UNDELETED)') 
('OK', ['8']) 
>>> M.fetch(8, '(BODY[HEADER.FIELDS (SUBJECT FROM)])') 
('OK', [('8 (BODY[HEADER.FIELDS (SUBJECT FROM)] {71}', 'From: 
John Doe 
<John.Doe@nowhere.com> 
Subject: test 
message 
'), ')']) 
Interactive exploration is so simple with Python because of excellent interactive environments 
such as the standard interactive session (with readline and completion) or IDEs such as IDLE. As 
such, it is often the best way to clarify one's doubts or any ambiguities one may find in the 
documentation.  
Example 10-4. Watching for new IMAP mail with a GUI  
import imaplib, string, sys, os, re, rfc822 
from Tkinter import * 
PollInterval = 60 # seconds 
def getimapaccount(  ): 
try: 
f = open(os.path.expanduser('~/.imap')) 
except IOError, e: 
print 'Unable to open ~/.imap: ', e 
sys.exit(1) 
global imap_server, imap_user, imap_password 
try: 
imap_server, imap_user, imap_password = 
string.split(f.readline(  )) 
Online Change your PDF file Permission Settings
can receive the locked PDF by simply clicking download and you are good to go!. Web Security. When you upload a file it is transmitted using a secure connection
change security settings on pdf; change pdf security settings
PDF Image Viewer| What is PDF
information; Royalty-free to develop PDF compatible software; Open standard for more secure, dependable electronic information exchange.
convert secure webpage to pdf; create secure pdf online
except ValueError: 
print 'Invalid data in ~/.imap' 
sys.exit(1) 
f.close(  ) 
class msg: # a file-like object for passing a string to 
rfc822.Message 
def _ _init_ _(self, text): 
self.lines = string.split(text, '\015\012') 
self.lines.reverse(  ) 
def readline(self): 
try: return self.lines.pop(  ) + '\n' 
except: return '' 
class Mailwatcher(Frame): 
def _ _init_ _(self, master=None): 
Frame._ _init_ _(self, master) 
self.pack(side=TOP, expand=YES, fill=BOTH) 
self.scroll = Scrollbar(self) 
self.list = Listbox(self, font='7x13', 
yscrollcommand=self.scroll.set, 
setgrid=1, height=6, width=80) 
self.scroll.configure(command=self.list.yview) 
self.scroll.pack(side=LEFT, fill=BOTH) 
self.list.pack(side=LEFT, expand=YES, fill=BOTH) 
def getmail(self): 
self.after(1000*PollInterval, self.getmail) 
self.list.delete(0,END) 
try: 
M = imaplib.IMAP4(imap_server) 
M.login(imap_user, imap_password) 
except Exception, e: 
self.list.insert(END, 'IMAP login error: ', e) 
return 
try: 
result, message = M.select(readonly=1) 
if result != 'OK': 
raise Exception, message 
typ, data = M.search(None, '(UNSEEN UNDELETED)') 
for num in string.split(data[0]): 
try: 
f = M.fetch(num, '(BODY[HEADER.FIELDS 
(SUBJECT FROM)])') 
m = rfc822.Message(msg(f[1][0][1]), 0) 
subject = m['subject'] 
except KeyError: 
f = M.fetch(num, '(BODY[HEADER.FIELDS 
(FROM)])') 
m = rfc822.Message(msg(f[1][0][1]), 0) 
subject = '(no subject)' 
fromaddr = m.getaddr('from') 
C# PowerPoint - PowerPoint Creating in C#.NET
SDK for .NET, is a robust & thread-safe .NET solution which provides a reliable and quick approach for C# developers to create a highly-secure and industry
decrypt pdf password online; creating secure pdf files
C# Word - Word Creating in C#.NET
Word SDK for .NET, is a robust & thread-safe .NET solution which provides a reliable and quick approach for C# developers to create a highly-secure and industry
create secure pdf; pdf security remover
if fromaddr[0] == "": n = fromaddr[1] 
else: n = fromaddr[0] 
text = '%-20.20s  %s' % (n, subject) 
self.list.insert(END, text) 
len = self.list.size(  ) 
if len > 0: self.list.see(len-1) 
except Exception, e: 
self.list.delete(0,END) 
print sys.exc_info(  ) 
self.list.insert(END, 'IMAP read error: ', e) 
M.logout(  ) 
if _ _name_ _=='_ _main_ _': 
getimapaccount(  ) 
root = Tk(className='mailwatcher') 
root.title('mailwatcher') 
mw = Mailwatcher(root) 
mw.getmail(  ) 
mw.mainloop(  ) 
10.15.1 See Also 
Documentation for the standard library modules 
imaplib
and 
rfc822
in the Library 
Reference; information about Tkinter can be obtained from a variety of sources, such as 
Pythonware's An Introduction to Tkinter, by Fredrik Lundh (http://www.pythonware.com/library
), 
New Mexico Tech's Tkinter reference (http://www.nmt.edu/tcc/help/lang/python/docs.html
), and 
various books; the IMAP protocol is described in RFC 2060 (http://www.ietf.org/rfc/rfc1939.txt
).  
C# Word - Word Create or Build in C#.NET
a robust & thread-safe .NET solution which provides a reliable and quick approach for C# developers to create a highly-secure and industry Create Word From PDF.
copy locked pdf; add security to pdf in reader
RasterEdge.com General FAQs for Products
not the product end user, please copy and email the secure download link are dedicated to provide powerful & profession imaging controls, PDF document, image
pdf encryption; convert locked pdf to word doc
Chapter 11. Web Programming 
Section 11.1.  Introduction
Section 11.2.  Testing Whether CGI Is Working
Section 11.3.  Writing a CGI Script
Section 11.4.  Using a Simple Dictionary for CGI Parameters
Section 11.5.  Handling URLs Within a CGI Script
Section 11.6.  Resuming the HTTP Download of a File
Section 11.7.  Stripping Dangerous Tags and Javascript from HTML
Section 11.8.  Running a Servlet with Jython
Section 11.9.  Accessing Netscape Cookie Information
Section 11.10.  Finding an Internet Explorer Cookie
Section 11.11.  Module: Fetching Latitude/Longitude Data from the Web
11.1 Introduction 
Credit: Andy McKay 
The Web has been a key technology for many years now, and it has become unusual to develop an 
application that doesn't involve some aspects of the Web. From showing a help file in a browser to 
using web services, the Web has become an integral part of most applications.  
I came to Python through a rather tortuous path of ASP, then Perl, some Zope, and then Python. 
Looking back, it seems strange that I didn't find Python earlier, but the dominance of Perl and 
ASP in this area makes it hard for new developers to see the advantages of Python shining through 
all the other languages.  
Unsurprisingly, Python is an excellent language for web development, and, as a "batteries 
included" language, Python comes with most of the modules you will need. The inclusion of 
xmlrpclib
in Python 2.2 has made the standard libraries even more useful. One of the 
modules I often use is 
urllib
, which demonstrates the power of a simple, well-designed 
module—saving a file from the Web in two lines (using 
urlretrieve
) is easy. The 
cgi
module is another example of a module that has enough to work with, but not too much to make 
the script too slow and bloated.  
Compared to other languages, Python seems to have an unusually large number of application 
servers and templating languages. While it's easy to develop anything for the Web in Python, it 
would be peculiar to do so without first looking at the application servers available. Rather than 
continually recreating dynamic pages and scripts, the community has taken on the task of building 
these application servers to allow other users to create the content in easy-to-use templating 
systems.  
Zope is the most well-known product in the space and provides an object-oriented interface to web 
publishing. With features too numerous to mention, it allows a robust and powerful object-
publishing environment. Quixote and WebWare are two other application servers with similar, 
highly modular designs. These can be a real help to the overworked web developer who needs to 
reuse components and give other users the ability to create web sites.  
There are times when an application server is just too much and a simple CGI script is all you 
need. The first recipe in this chapter, Recipe 11.2
, is all you need to make sure your web server 
and Python CGI scripting setup are working correctly. Writing a CGI script doesn't get much 
simpler than this, although, as the recipe's discussion points out, you could use the 
cgi.test
function to make it even shorter.  
Another common task is the parsing of HTML, either on your own site or on other web sites. 
Parsing HTML tags correctly is not as simple as many developers first think, as they optimistically 
assume a few regular expressions or string searches will see them through. While such approaches 
will work for parsing data from other sites, they don't provide enough security to ensure that 
incoming HTML contains no malicious tags. Recipe 11.7
is a good example of using 
sgmllib
to parse incoming data and strip any offending JavaScript. Most web developers create more than 
just dynamic web pages, and there are many relevant, useful recipes in other chapters that describe 
parsing XML, reading network resources and systems administration, for example.  
11.2 Testing Whether CGI Is Working 
Credit: Jeff Bauer 
11.2.1 Problem 
You want a simple CGI program to use as a starting point for your own CGI programming or to 
test if your setup is functioning properly.  
11.2.2 Solution 
The 
cgi
module is normally used in Python CGI programming, but here we use only its 
escape
function to ensure that the value of an environment variable doesn't accidentally look to 
the browser as HTML markup. We do all of the real work ourselves:  
#!/usr/local/bin/python 
print "Content-type: text/html" 
print 
print "<html><head><title>Situation 
snapshot</title></head><body><pre>" 
import sys 
sys.stderr = sys.stdout 
import os 
from cgi import escape 
print "<strong>Python %s</strong>" % sys.version 
keys = os.environ.keys(  ) 
keys.sort(  ) 
for k in keys: 
print "%s\t%s" % (escape(k), escape(os.environ[k])) 
print "</pre></body></html>" 
11.2.3 Discussion 
The Common Gateway Interface (CGI) is a protocol that specifies how a web server runs a 
separate program (often known as a CGI script) that generates a web page dynamically. The 
protocol specifies how the server provides input and environment data to the script and how the 
script generates output in return. You can use any language to write your CGI scripts, and Python 
is well-suited for the task.  
This recipe is a simple CGI program that displays the current version of Python and the 
environment values. CGI programmers should always have some simple code handy to drop into 
their cgi-bin directories. You should run this script before wasting time slogging through your 
Apache configuration files (or whatever other web server you want to use for CGI work). Of 
course, 
cgi.test
does all this and more, but it may, in fact, do too much. It does so much, and 
so much is hidden inside 
cgi
's innards, that it's hard to tweak it to reproduce whatever specific 
problems you may be encountering in true scripts. Tweaking the program in this recipe, on the 
other hand, is very easy, since it's such a simple program, and all the parts are exposed.  
Besides, this little script is already quite instructive in its own way. The starting line, 
#!/usr/local/bin/python
, must give the absolute path to the Python interpreter with 
which you want to run your CGI scripts, so you may need to edit it accordingly. A popular 
solution for non-CGI scripts is to have a first line (the so-called "shebang line") that looks 
something like this:  
#!/usr/bin/env python 
However, this puts you at the mercy of the 
PATH
environment setting, since it runs the first 
program named 
python
it finds on the 
PATH
, and that probably is not what you want under 
CGI, where you don't fully control the environment. Incidentally, many web servers implement 
the shebang line even when you run them under non-Unix systems, so that, for CGI use 
specifically, it's not unusual to see Python scripts on Windows start with a first line such as:  
#!c:/python22/python.exe 
Another issue you may be contemplating is why the 
import
statements are not right at the start 
of the script, as is the usual Python style, but are preceded by a few 
print
statements. The 
reason is that 
import
could fail if the Python installation is terribly misconfigured. In case of 
failure, Python will emit diagnostics to standard error (which is typically directed to your web 
server logs, depending, of course, on how you set up and configured your web server), and 
nothing will go to standard output. The CGI standard demands that all output be on standard 
output, so, we first ensure that a minimal quantity of output will display a result to a visiting 
browser. Then, assuming that 
import sys
succeeds (if it fails, the whole installation and 
configuration is so badly broken that there's very little you can do about it!), you immediately 
make the following assignment:  
sys.stderr = sys.stdout 
This ensures that error output will also go to standard output, and you'll have a chance to see it in 
the visiting browser. You can perform other 
import
operations or do further work in the script 
only when this is done. In Python 2.2, getting useful tracebacks for errors in CGI scripts is much 
simpler. Simply add the following at the start of your script:  
import cgitb; cgitb.enable() 
and the new standard module 
cgitb
takes care of the rest  
Just about all known browsers let you get away with skipping most of the HTML tags that this 
script outputs, but why skimp on correctness, relying on the browser to patch your holes? It costs 
little to emit correct HMTL, so you should get into the habit of doing things right, when the cost is 
so modest.  
11.2.4 See Also 
Documentation of the standard library module 
cgi
in the Library Reference; a basic introduction 
to the CGI protocol is available at http://hoohoo.ncsa.uiuc.edu/cgi/overview.html
.  
Documents you may be interested
Documents you may be interested