Place image over PDF

后端 未结 7 1714
忘了有多久
忘了有多久 2020-12-01 02:04

How can I place an image over an existing PDF file at an specific coordinate location. The pdf represents a drawing sheet with one page. The image will be scaled. I\'m check

7条回答
  •  我在风中等你
    2020-12-01 02:42

    Its been 5 years, I think these answers need some TLC. Here is a complete solution.

    The following is tested with Python 2.7

    Install dependencies

    pip install reportlab 
    pip install pypdf2
    

    Do the magic

    from reportlab.pdfgen import canvas
    from PyPDF2 import PdfFileWriter, PdfFileReader
    
    # Create the watermark from an image
    c = canvas.Canvas('watermark.pdf')
    
    # Draw the image at x, y. I positioned the x,y to be where i like here
    c.drawImage('test.png', 15, 720)
    
    # Add some custom text for good measure
    c.drawString(15, 720,"Hello World")
    c.save()
    
    # Get the watermark file you just created
    watermark = PdfFileReader(open("watermark.pdf", "rb"))
    
    # Get our files ready
    output_file = PdfFileWriter()
    input_file = PdfFileReader(open("test2.pdf", "rb"))
    
    # Number of pages in input document
    page_count = input_file.getNumPages()
    
    # Go through all the input file pages to add a watermark to them
    for page_number in range(page_count):
        print "Watermarking page {} of {}".format(page_number, page_count)
        # merge the watermark with the page
        input_page = input_file.getPage(page_number)
        input_page.mergePage(watermark.getPage(0))
        # add page from input file to output document
        output_file.addPage(input_page)
    
    # finally, write "output" to document-output.pdf
    with open("document-output.pdf", "wb") as outputStream:
        output_file.write(outputStream)
    

    References:

    New home of pypdf: http://mstamy2.github.io/PyPDF2/

    Reportlab docs: http://www.reportlab.com/apis/reportlab/2.4/pdfgen.html

    Reportlab complete user guide: https://www.reportlab.com/docs/reportlab-userguide.pdf

提交回复
热议问题