You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
247 lines
5.8 KiB
Python
247 lines
5.8 KiB
Python
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()
|