def addMetadata(self, inputstream, metadata):
        """Adds metadata to a PDF document"""

        reader = PdfReader(inputstream)
        outputstream = ByteArrayOutputStream()
        stp = PdfStamper(reader, outputstream, "\0")
        meta = reader.getInfo()
        for key in ('Subject', 'Author', 'Keywords', 'Title', 'Creator', 'CreationDate'):
            if key in metadata:
                meta.put(key, metadata[key])
        stp.setMoreInfo(meta)
        stp.close()
        return outputstream
Exemple #2
0
def pdf_fill(orig_pdf, new_pdf, vals):
    print "pdf_fill", orig_pdf, new_pdf, vals
    t0 = time.time()
    rd = PdfReader(orig_pdf)
    st = PdfStamper(rd, FileOutputStream(new_pdf))
    form = st.getAcroFields()
    for k, v in vals.items():
        try:
            form.setField(k, str(v))
        except Exception, e:
            raise Exception("Field %s: %s" % (k, str(e)))
Exemple #3
0
    def openpdf(self, inputpdf):

        self.inputpdf = inputpdf

        self.input = open(self.inputpdf, "rb")

        try:
            self.currentdoc = PdfReader(self.input, self.password)
            print 'loaded PDF successfully'

        except IOError, errorout:

            stringer = str(errorout)

            return stringer
    def sign(self, inputstream, sign_keyname, sign_reason, visible=False):
        """Sign a PDF"""

        # This might raise a ValueError which will be catched one stack above
        key, chain = self.getKeychain(sign_keyname)

        reader = PdfReader(inputstream)
        outputstream = ByteArrayOutputStream()
        stp = PdfStamper.createSignature(reader, outputstream, "\0")
        sap = stp.getSignatureAppearance()
        sap.setCrypto(key, chain, None, PdfSignatureAppearance.WINCER_SIGNED)
        sap.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED)
        sap.setReason(sign_reason)
        sap.setLocation("Remscheid, Germany")  # TODO: Configure
        if visible:
            sap.setVisibleSignature(Rectangle(100, 100, 200, 200), 1, None)
        stp.close()
        return outputstream
Exemple #5
0
from java.io import FileOutputStream
from java.util import ArrayList
import sys

# This Python file is a straight translation of the Concatenate example

if len(sys.argv) < 3:
    print 'Usage:', sys.argv[0], 'source(s).pdf...', 'target.pdf'
    sys.exit(1)

copy = None
all_bookmarks = ArrayList()
page_offset = 0

for file in sys.argv[1:len(sys.argv) - 1]:
    reader = PdfReader(file)
    reader.consolidateNamedDestinations()
    bookmarks = SimpleBookmark.getBookmark(reader)
    if bookmarks != None:
        if page_offset != 0:
            SimpleBookmark.shiftPageNumbers(bookmarks, \
             page_offset, None)
        all_bookmarks.add(bookmarks)

    page_count = reader.getNumberOfPages()
    page_offset += page_offset

    if copy == None:
        document = Document(reader.getPageSizeWithRotation(1))
        output = FileOutputStream(sys.argv[len(sys.argv) - 1])
        copy = PdfCopy(document, output)
Exemple #6
0
from java.io import FileOutputStream
from java.util import ArrayList
import sys

# This Python file is a straight translation of the Concatenate example

if len(sys.argv) < 3:
	print 'Usage:', sys.argv[0], 'source(s).pdf...', 'target.pdf'
	sys.exit(1)

copy = None
all_bookmarks = ArrayList()
page_offset = 0

for file in sys.argv[1:len(sys.argv) - 1]:
	reader = PdfReader(file)
	reader.consolidateNamedDestinations()
	bookmarks = SimpleBookmark.getBookmark(reader)
	if bookmarks != None:
		if page_offset != 0:
			SimpleBookmark.shiftPageNumbers(bookmarks, \
				page_offset, None)
		all_bookmarks.add(bookmarks)

	page_count = reader.getNumberOfPages()
	page_offset += page_offset

	if copy == None:
		document = Document(reader.getPageSizeWithRotation(1))
		output = FileOutputStream(sys.argv[len(sys.argv) - 1])
		copy = PdfCopy(document, output)
Exemple #7
0
#!/bin/sh
''''exec "$(dirname "$0")"/../fiji --jython "$0" "$@" # (call again with fiji)'''

from com.lowagie.text.pdf import PdfReader, PdfName, PdfNumber, PdfStamper
from java.io import FileOutputStream
import sys

if len(sys.argv) != 3:
	print 'Usage:', sys.argv[0], 'source.pdf', 'target.pdf'
	sys.exit(1)

reader = PdfReader(sys.argv[1])
for k in range(0, reader.getNumberOfPages()):
	reader.getPageN(k + 1).put(PdfName.ROTATE, PdfNumber(90))
	print "rotated", k

stamper = PdfStamper(reader, FileOutputStream(sys.argv[2]))
stamper.close()
Exemple #8
0
#!/bin/sh
''''exec "$(dirname "$0")"/../fiji --jython "$0" "$@" # (call again with fiji)'''

from com.lowagie.text.pdf import PdfReader, PdfName, PdfNumber, PdfStamper
from java.io import FileOutputStream
import sys

if len(sys.argv) != 3:
    print 'Usage:', sys.argv[0], 'source.pdf', 'target.pdf'
    sys.exit(1)

reader = PdfReader(sys.argv[1])
for k in range(0, reader.getNumberOfPages()):
    reader.getPageN(k + 1).put(PdfName.ROTATE, PdfNumber(90))
    print "rotated", k

stamper = PdfStamper(reader, FileOutputStream(sys.argv[2]))
stamper.close()