commit 75b0100828971a34460fd6afa1e7a56fb42f73a9 Author: Pedro Sá Couto Date: Fri Jun 19 22:51:21 2020 +0200 working on local machine diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..f36658a Binary files /dev/null and b/.DS_Store differ diff --git a/booksinput/.DS_Store b/booksinput/.DS_Store new file mode 100644 index 0000000..b150a7c Binary files /dev/null and b/booksinput/.DS_Store differ diff --git a/covers/.DS_Store b/covers/.DS_Store new file mode 100644 index 0000000..75bb49a Binary files /dev/null and b/covers/.DS_Store differ diff --git a/inprogress/.DS_Store b/inprogress/.DS_Store new file mode 100644 index 0000000..02f0c40 Binary files /dev/null and b/inprogress/.DS_Store differ diff --git a/libgen/.DS_Store b/libgen/.DS_Store new file mode 100644 index 0000000..1cee9b0 Binary files /dev/null and b/libgen/.DS_Store differ diff --git a/overlay/.DS_Store b/overlay/.DS_Store new file mode 100644 index 0000000..5613109 Binary files /dev/null and b/overlay/.DS_Store differ diff --git a/overlay/burstcover.py b/overlay/burstcover.py new file mode 100644 index 0000000..2480ffc --- /dev/null +++ b/overlay/burstcover.py @@ -0,0 +1,8 @@ +from pdf2image import convert_from_path + +dpi = 300 +pdf_file = 'target.pdf' +pages = convert_from_path(pdf_file ,dpi ) + +page = pages[0] +page.save('page1.png'.format(0), 'PNG') diff --git a/overlay/overlaylogo.py b/overlay/overlaylogo.py new file mode 100644 index 0000000..73b4052 --- /dev/null +++ b/overlay/overlaylogo.py @@ -0,0 +1,21 @@ +from PIL import Image +import os + +filepath = 'page1.png' +basewidth, height = Image.open(filepath).size +basenumber, ext1 = os.path.splitext(str(basewidth*0.6)) +base = int(basenumber) + +#rescaling the logo +finallogo = Image.open("rotated.png") +wpercent = (base/float(finallogo.size[0])) +hsize = int((float(finallogo.size[1])*float(wpercent))) +finallogo = finallogo.resize((base,hsize), Image.ANTIALIAS) + +finallogo.save('rotatedwatermark.png') + +background = Image.open("page1.png") +foreground = Image.open('rotatedwatermark.png') + +background.paste(foreground, (40, 70), foreground.convert('RGBA')) +background.save("page1.png") diff --git a/overlay/resizecover.py b/overlay/resizecover.py new file mode 100644 index 0000000..59ebb35 --- /dev/null +++ b/overlay/resizecover.py @@ -0,0 +1,34 @@ +from pdfrw import PdfReader +from PIL import Image +import os +from time import sleep +from pdf2image import convert_from_path +import cv2 +import numpy as np +from PyPDF2 import PdfFileReader, PdfFileWriter + +pdf = PdfReader('target.pdf') +measures = pdf.pages[0].MediaBox +basenumberwidth, ext1 = os.path.splitext(measures[2]) +basenumberheight, ext2 = os.path.splitext(measures[3]) +basewidth = int(basenumberwidth) +baseheight = int(basenumberheight) +print(basewidth) +print(baseheight) + +fileName = ("out.pdf") + +pdfFile = PdfFileReader(open(fileName, 'rb')) +# Getting only first page! +newPage = pdfFile.getPage(0) + +newHeight = baseheight +newWidth = basewidth + +newPage.scaleTo(newWidth, newHeight) + +writer = PdfFileWriter() +writer.addPage(newPage) + +with open('cover.pdf', 'wb') as f: + writer.write(f) diff --git a/overlay/rotatelogo.py b/overlay/rotatelogo.py new file mode 100644 index 0000000..e30cddc --- /dev/null +++ b/overlay/rotatelogo.py @@ -0,0 +1,20 @@ +from PIL import Image +import PIL.ImageOps +import random +from random import randrange + +#Random number +rotation = randrange(20) + +#Random positive or negative +choice = random.choice(("+", "-")) + +finalnumber = (str(choice) + str(rotation)) +rotationinput = int(finalnumber) + +#open both the watermark +logo = Image.open('watermark.png') + +#rotate the watermark +rotatedlogo = logo.rotate(rotationinput, expand=True) +rotatedlogo.save('rotated.png') diff --git a/republish/.DS_Store b/republish/.DS_Store new file mode 100644 index 0000000..c851921 Binary files /dev/null and b/republish/.DS_Store differ diff --git a/republish/appendwatermarktopdf.sh b/republish/appendwatermarktopdf.sh new file mode 100755 index 0000000..8eea742 --- /dev/null +++ b/republish/appendwatermarktopdf.sh @@ -0,0 +1,13 @@ +cd `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/* | head -n 1` +cp `ls -td -- *.pdf | head -n 1` /Users/PSC/Desktop/REPUBLISH/overlay +cp `ls -td -- *.png | head -n 1` /Users/PSC/Desktop/REPUBLISH/overlay +cd /Users/PSC/Desktop/REPUBLISH/overlay +mv `ls -td -- *.pdf | head -n 1` target.pdf +python3 burstcover.py +python3 rotatelogo.py +python3 overlaylogo.py +tesseract page1.png out pdf +python3 resizecover.py +gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=name.pdf cover.pdf target.pdf +var1=`ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/*/*.pdf | head -n 1` +mv name.pdf $var1 diff --git a/republish/deletetraces.sh b/republish/deletetraces.sh new file mode 100755 index 0000000..eb442a2 --- /dev/null +++ b/republish/deletetraces.sh @@ -0,0 +1,6 @@ +cd /Users/PSC/Desktop/REPUBLISH/watermark/ +rm watermark.pdf +cd /Users/PSC/Desktop/REPUBLISH/overlay/ +rm watermark.png rotated.png rotatedwatermark.png target.pdf cover.pdf out.pdf +now=$(date +%d-%b-%H_%M_%S) +mv page1.png /Users/PSC/Desktop/REPUBLISH/covers/"$now".png diff --git a/republish/movebookfolder.sh b/republish/movebookfolder.sh new file mode 100755 index 0000000..9f2c36e --- /dev/null +++ b/republish/movebookfolder.sh @@ -0,0 +1,5 @@ +cd /Users/PSC/Desktop/REPUBLISH/booksinput +for name in *; do mv "$name" "${name// /_}"; done +cd `ls -td -- /Users/PSC/Desktop/REPUBLISH/booksinput/* | head -n 1` +for name in *; do mv "$name" "${name// /_}"; done +mv `ls -td -- /Users/PSC/Desktop/REPUBLISH/booksinput/* | head -n 1` /Users/PSC/Desktop/REPUBLISH/inprogress diff --git a/republish/republish.sh b/republish/republish.sh new file mode 100755 index 0000000..da2e90a --- /dev/null +++ b/republish/republish.sh @@ -0,0 +1,4 @@ +cd `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/* | head -n 1` +rm watermark.png +mv `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/*/*.pdf | head -n 1` /Users/PSC/Desktop/REPUBLISH/libgen +rm -r `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/* | head -n 1` diff --git a/republish/run.sh b/republish/run.sh new file mode 100755 index 0000000..3cf7990 --- /dev/null +++ b/republish/run.sh @@ -0,0 +1,8 @@ +for i in {1..20} +do + ./movebookfolder.sh + ./watermarkformtxt.sh + ./appendwatermarktopdf.sh + ./deletetraces.sh + ./republish.sh +done diff --git a/republish/watermarkformtxt.sh b/republish/watermarkformtxt.sh new file mode 100755 index 0000000..247de2c --- /dev/null +++ b/republish/watermarkformtxt.sh @@ -0,0 +1,8 @@ +cd `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/* | head -n 1` +mv `ls -td -- *.txt | head -n 1` watermark.txt +mv `ls -td -- *.txt | head -n 1` /Users/PSC/Desktop/REPUBLISH/watermark +cd /Users/PSC/Desktop/REPUBLISH/watermark +python3 watermark.py +rm watermark.txt +convert -density 300 -trim watermark.pdf -quality 100 watermark.png +mv /Users/PSC/Desktop/REPUBLISH/watermark/watermark.png `ls -td -- /Users/PSC/Desktop/REPUBLISH/inprogress/* | head -n 1` diff --git a/watermark/Favorit_Medium.ttf b/watermark/Favorit_Medium.ttf new file mode 100644 index 0000000..5a48a05 Binary files /dev/null and b/watermark/Favorit_Medium.ttf differ diff --git a/watermark/Favorit_Regular.ttf b/watermark/Favorit_Regular.ttf new file mode 100644 index 0000000..3ddb513 Binary files /dev/null and b/watermark/Favorit_Regular.ttf differ diff --git a/watermark/Favorit_Regular_Italic.ttf b/watermark/Favorit_Regular_Italic.ttf new file mode 100644 index 0000000..9ed7f25 Binary files /dev/null and b/watermark/Favorit_Regular_Italic.ttf differ diff --git a/watermark/LyonJeanTrue.ttf b/watermark/LyonJeanTrue.ttf new file mode 100644 index 0000000..fd6a073 Binary files /dev/null and b/watermark/LyonJeanTrue.ttf differ diff --git a/watermark/ace_lift.otf b/watermark/ace_lift.otf new file mode 100644 index 0000000..f611cba Binary files /dev/null and b/watermark/ace_lift.otf differ diff --git a/watermark/logojump.png b/watermark/logojump.png new file mode 100644 index 0000000..fb838c4 Binary files /dev/null and b/watermark/logojump.png differ diff --git a/watermark/logostar.png b/watermark/logostar.png new file mode 100644 index 0000000..5190299 Binary files /dev/null and b/watermark/logostar.png differ diff --git a/watermark/watermark.py b/watermark/watermark.py new file mode 100644 index 0000000..36a9163 --- /dev/null +++ b/watermark/watermark.py @@ -0,0 +1,246 @@ +from reportlab.pdfgen import canvas +from reportlab.pdfbase.ttfonts import TTFont +from reportlab.pdfbase import pdfmetrics +from reportlab.lib import colors +from reportlab.lib.colors import pink, green, brown, white, black +import textwrap +from textwrap import wrap +from reportlab.lib.units import inch +from reportlab.lib.pagesizes import letter +from reportlab.lib.pagesizes import A4 +from reportlab.lib.units import inch +from reportlab.lib.units import cm +from reportlab.lib.colors import HexColor +import datetime +from reportlab.lib.utils import ImageReader +import ast + +with open('watermark.txt', 'r') as f: + watermark = ast.literal_eval(f.read()) + +#The Ruler +def DrawTheRuler(pdf): + pdf.drawString(30,960, '|') + pdf.drawString(60,960, '|') + pdf.drawString(90,960, '|') + pdf.drawString(120,960, '|') + pdf.drawString(150,960, '|') + pdf.drawString(180,960, '|') + pdf.drawString(210,960, '|') + pdf.drawString(240,960, '|') + pdf.drawString(270,960, '|') + pdf.drawString(300,960, '|') + pdf.drawString(330,960, '|') + pdf.drawString(360,960, '|') + pdf.drawString(390,960, '|') + pdf.drawString(420,960, '|') + pdf.drawString(450,960, '|') + pdf.drawString(480,960, '|') + pdf.drawString(510,960, '|') + pdf.drawString(540,960, '|') + pdf.drawString(570,960, '|') + pdf.drawString(600,960, '|') + pdf.drawString(630,960, '|') + + pdf.drawString(10,940, '—') + pdf.drawString(10,910, '—') + pdf.drawString(10,880, '—') + pdf.drawString(10,850, '—') + pdf.drawString(10,820, '—') + pdf.drawString(10,790, '—') + pdf.drawString(10,760, '—') + pdf.drawString(10,730, '—') + pdf.drawString(10,700, '—') + pdf.drawString(10,670, '—') + pdf.drawString(10,640, '—') + pdf.drawString(10,610, '—') + pdf.drawString(10,580, '—') + pdf.drawString(10,550, '—') + pdf.drawString(10,520, '—') + pdf.drawString(10,490, '—') + pdf.drawString(10,460, '—') + pdf.drawString(10,430, '—') + pdf.drawString(10,400, '—') + pdf.drawString(10,370, '—') + pdf.drawString(10,340, '—') + pdf.drawString(10,310, '—') + pdf.drawString(10,280, '—') + pdf.drawString(10,250, '—') + pdf.drawString(10,220, '—') + pdf.drawString(10,190, '—') + pdf.drawString(10,160, '—') + pdf.drawString(10,130, '—') + pdf.drawString(10,100, '—') + pdf.drawString(10,70, '—') + pdf.drawString(10,40, '—') + +# Unchanged +fileName = "watermark.pdf" +documentTitle = "TACTICAL WATERMARKS" +title = "TACTICAL WATERMARKS" +subTitle = "REPUBLISHED THROUGH" + +#Create the file +pdf = canvas.Canvas(fileName) + +#Set the background +pdf.setFillColor(HexColor(0xceff00)) +pdf.rect(0,0,660, 1000,fill=1) + +#Change color back to black +pdf.setFillColorRGB(0,0,0) + +##Draw the Ruler +DrawTheRuler(pdf) + +# Set the title +pdf.setTitle(documentTitle) +#Set the Height and Width +pdf.setPageSize((660, 1000)) + +#DRAW LOGO +logojump = ImageReader('logojump.png') +pdf.drawImage(logojump, 560, 10, width=(300/3),height=(300/3), mask='auto') + +logostar = ImageReader('logostar.png') +pdf.drawImage(logostar, 100, 400, width=(300),height=(300), mask='auto') + +#TITLE + +# Register a new font +pdfmetrics.registerFont( + TTFont('header', 'LyonJeanTrue.ttf') +) + +# Draw +pdf.setFont('header', 45) +pdf.drawString(40, 30, title) + +#SUBTITLE + +# Register a new font for the subtitle +pdfmetrics.registerFont( + TTFont('subtitle', 'Favorit_Medium.ttf') +) + +# Draw +pdf.setFont('subtitle', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(40, 80, subTitle) + +# DATE +date = datetime.datetime.now() + +# Draw +pdf.setFont('subtitle', 10) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 980, str(date)) + +# HEADER +header = "UPLOADERS SIGNATURE" + +pdf.setFont('subtitle', 35) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 920, header) + +# BODY + +# Register a new font for the body +pdfmetrics.registerFont( + TTFont('body', 'Favorit_Regular.ttf') +) + +pdfmetrics.registerFont( + TTFont('bodyitalic', 'Favorit_Regular_Italic.ttf') +) + +# ID +# Q +id = "Name—Nickname—Pseudonim of the uploader" + +pdf.setFont('bodyitalic', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(60, 890, id) + +#A +id_answer = watermark[0] + +pdf.setFont('body', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 870, id_answer) + +# DID YOU DIGITISE? +# Q +digitise = "Did you digitise the file?" + +pdf.setFont('bodyitalic', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(60, 835, digitise) + +#A +digitise_answer = watermark[1] + +pdf.setFont('body', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 815, digitise_answer) + +# HOW LONG? +# Q +howlong = "How long did it take to scan?" + +pdf.setFont('bodyitalic', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(60, 780, howlong) + +#A +howlong_answer = watermark[2] + +pdf.setFont('body', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 760, howlong_answer) + +# WHERE DID YOU FIND IT? +# Q +where = "Where was the source found?" + +pdf.setFont('bodyitalic', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(60, 725, where) + +#A +where_answer = watermark[3] + +pdf.setFont('body', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(30, 705, where_answer) + +#ANECDOTE + +# Q +sharing = "Why are you sharing this file?" +anecdote = "You can tell an anecdote" +personal = "You can leave a personal message!" + +pdf.setFont('bodyitalic', 14) +pdf.setFillColorRGB(0, 0, 0) +pdf.drawString(60, 670, sharing) +pdf.drawString(60, 655, anecdote) +pdf.drawString(60, 640, personal) + +#A +strs = watermark[4] + +#Wrap the lines +textLines = wrap(strs, 75) + +text = pdf.beginText(40, 615) +text.setFont("body", 14) +text.setFillColor(colors.black) +for line in textLines: + text.textLine(line) + +# Draw +pdf.drawText(text) + +# Save the pdf +pdf.save()