# BSDDBToPDF.py # Program to convert Berkeley DB (BSD DB) data to PDF. # Uses Python's bsdd library (deprecated in Python 3), # and xtopdf. # Author: Vasudev Ram - http://www.dancingbison.com import sys import bsddb from PDFWriter import PDFWriter try: # Flag 'c' opens the DB read/write and doesn't delete it if it exists. fruits_db = bsddb.btopen('fruits.db', 'c') fruits = [ ('apple', 'The apple is a red fruit.'), ('banana', 'The banana is a yellow fruit.'), ('cherry', 'The cherry is a red fruit.'), ('durian', 'The durian is a yellow fruit.') ] # Add the key/value fruit records to the DB. for fruit in fruits: fruits_db[fruit[0]] = fruit[1] fruits_db.close() # Read the key/value fruit records from the DB and write them to PDF. with PDFWriter("fruits.pdf") as pw: pw.setFont("Courier", 12) pw.setHeader("BSDDBToPDF demo: fruits.db to fruits.pdf") pw.setFooter("Generated by xtopdf") fruits_db = bsddb.btopen('fruits.db', 'c') print "FRUITS" print pw.writeLine("FRUITS") pw.writeLine(" ") for key in fruits_db.keys(): print key print fruits_db[key] print pw.writeLine(key) pw.writeLine(fruits_db[key]) pw.writeLine(" ") fruits_db.close() except Exception, e: sys.stderr.write("ERROR: Caught exception: " + repr(e) + "\n") sys.exit(1)