done
commit
493d600a47
@ -0,0 +1,3 @@
|
||||
python3 burstpdf.py
|
||||
python3 stick.py
|
||||
./mergepdf.sh
|
@ -0,0 +1,43 @@
|
||||
#Based in the code in https://iq.opengenus.org/pdf_to_image_in_python/
|
||||
|
||||
import pdf2image
|
||||
from PIL import Image
|
||||
import time
|
||||
|
||||
#DECLARE CONSTANTS
|
||||
PDF_PATH = "target.pdf"
|
||||
DPI = 200
|
||||
FIRST_PAGE = None
|
||||
LAST_PAGE = None
|
||||
FORMAT = 'png'
|
||||
THREAD_COUNT = 1
|
||||
USERPWD = None
|
||||
USE_CROPBOX = False
|
||||
STRICT = False
|
||||
|
||||
def pdftopil():
|
||||
#This method reads a pdf and converts it into a sequence of images
|
||||
#PDF_PATH sets the path to the PDF file
|
||||
#dpi parameter assists in adjusting the resolution of the image
|
||||
#first_page parameter allows you to set a first page to be processed by pdftoppm
|
||||
#last_page parameter allows you to set a last page to be processed by pdftoppm
|
||||
#fmt parameter allows to set the format of pdftoppm conversion (PpmImageFile, TIFF)
|
||||
#thread_count parameter allows you to set how many thread will be used for conversion.
|
||||
#userpw parameter allows you to set a password to unlock the converted PDF
|
||||
#use_cropbox parameter allows you to use the crop box instead of the media box when converting
|
||||
#strict parameter allows you to catch pdftoppm syntax error with a custom type PDFSyntaxError
|
||||
|
||||
start_time = time.time()
|
||||
pil_images = pdf2image.convert_from_path(PDF_PATH, dpi=DPI, first_page=FIRST_PAGE, last_page=LAST_PAGE, fmt=FORMAT, thread_count=THREAD_COUNT, userpw=USERPWD, use_cropbox=USE_CROPBOX, strict=STRICT)
|
||||
print ("Time taken : " + str(time.time() - start_time))
|
||||
return pil_images
|
||||
|
||||
def save_images(pil_images):
|
||||
d = 1
|
||||
for image in pil_images:
|
||||
image.save(("split/page%d"%d) + ".png")
|
||||
d += 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
pil_images = pdftopil()
|
||||
save_images(pil_images)
|
@ -0,0 +1 @@
|
||||
convert "split/*.{png,jpeg}" -quality 100 outfile.pdf
|
@ -0,0 +1,27 @@
|
||||
from PIL import Image
|
||||
import PIL.ImageOps
|
||||
|
||||
#open both the image and watermark
|
||||
image = Image.open('split/page1.png')
|
||||
logo = Image.open('merged.png')
|
||||
|
||||
#rotate the watermark
|
||||
rotatedlogo = logo.rotate(18, expand=True)
|
||||
#invert the watermark
|
||||
invertedlogo = PIL.ImageOps.invert(rotatedlogo)
|
||||
invertedlogo.save('rotatedlogo.png')
|
||||
|
||||
#rescaling the logo
|
||||
basewidth = 1050
|
||||
finallogo = Image.open("rotatedlogo.png")
|
||||
wpercent = (basewidth/float(finallogo.size[0]))
|
||||
hsize = int((float(finallogo.size[1])*float(wpercent)))
|
||||
finallogo = finallogo.resize((basewidth,hsize), Image.ANTIALIAS)
|
||||
|
||||
#overlaying
|
||||
image_copy = image.copy()
|
||||
#if you want to position in the bottom right corner use:
|
||||
#position = ((image_copy.width - logo.width), (image_copy.height - logo.height))
|
||||
position = ((100), (750))
|
||||
image_copy.paste(finallogo, position)
|
||||
image_copy.save('split/page1.png')
|
Loading…
Reference in New Issue