Example #1
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)))
Example #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))
    font=BaseFont.createFont("/usr/share/fonts/truetype/thai/Garuda.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED)
    form=st.getAcroFields()
    for k,v in vals.items():
        try:
            form.setFieldProperty(k,"textfont",font,None)
            form.setField(k,v.decode('utf-8'))
        except Exception,e:
            raise Exception("Field %s: %s"%(k,str(e)))
    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
    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
Example #5
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()
Example #6
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()