# 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)