แก้ไขฟังก์ชันและตัว แปร
ฟังก์ชันทำลายน้ำด้วยข้อความ
โค้ด: เลือกทั้งหมด
function getInputWatermarkTXT() {
var type = 'TXT'
var name = document.getElementById("text-name").value
console.log("ชื่อผู้ใช้ ", name);
var namefile = document.getElementById("text-filepdf").value
Nfile = namefile.slice(12);
console.log("ชื่อไฟล์ :",Nfile);
var typefile = document.getElementById("text-filepdf").value
Tfile = typefile.slice(-3);
console.log("ประเภทไฟล์ ",Tfile)
var textwatermark = document.getElementById("text-watermark").value
console.log("ข้อความลายน้ำ ", textwatermark);
var rotate = document.getElementById("rtt").value
console.log("การหมุน ", rotate);
var file = document.getElementById("text-filepdf").files[0]
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
console.log(reader.result);
pdf_base64 = reader.result.slice(28);
console.log(pdf_base64);
console.log(typeof (reader.result))
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: `http://${IPjss}:${configjss}/api_watermark`,
data: JSON.stringify({type:type,username:name,pdf_base64:pdf_base64,name_pdf:namefile,type_file_pdf:typefile,text:textwatermark,rotate:rotate}),
success: function (data)
{
console.log(data);
},
dataType: "json",
}); }
reader.onerror = function (error) {
console.log('Error: ', error);
};
}
โค้คฝั่ง python
โค้ด: เลือกทั้งหมด
class Watermark(BaseModel):
type: str
username: str
pdf_base64: str
name_pdf: str
type_file_pdf: str
pic_base64: str
name_pic: str
type_file_pic: str
text: str
rotate: int
@app.post('/api_watermark')
async def read_picwatermark(request: Watermark):
if request.type == "JPG":
with open(PARTHPDF, 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(PARTHJPG, 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
imgresize = Image.open('picture.jpg')
imgresize = imgresize.resize((200,133),PIL.Image.ANTIALIAS)
imgresize.save('newpic.jpg')
pic = 'newpic.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.3)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.3)
if request.rotate == 45:
c.rotate(45)
c.drawImage(pic,150*mm,5)
if request.rotate == 90:
c.rotate(90)
c.drawImage(pic,100*mm,-380)
if request.rotate == 180:
c.rotate(180)
c.drawImage(pic,-150*mm,-470)
if request.rotate == 270:
c.rotate(270)
c.drawImage(pic,-170*mm,250)
c.save() # บันทึกไฟล์
def create_watermark ( input_pdf ,output, watermark ) :
watermark_obj = PdfFileReader ( watermark )
watermark_page = watermark_obj.getPage ( 0 )
pdf_reader = PdfFileReader(input_pdf)
pdf_writer = PdfFileWriter()
for page in range (pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
page.mergePage(watermark_page)
pdf_writer.addPage(page)
with open (output,'wb') as out:
pdf_writer.write (out)
create_watermark(
input_pdf='pythonPDF.pdf', #ไฟล์ต้นฉบับ
output='watermarked.pdf', #ไฟล์ที่สร้างขึ้นใหม่ที่มีลายน้ำ
watermark='WATERMARK.pdf' #ไฟล์ลายน้ำ
)
with open("watermarked.pdf", "rb") as file:
encoded_string = base64.b64encode(file.read())
#os.unlink('pythonPDF.pdf')
#os.unlink('WATERMARK.pdf')
#os.unlink('picture.jpg')
#os.unlink('watermarked.pdf')
#ทำลายน้ำด้วยข้อความ
if request.type == "TXT":
with open(PARTHPDF, 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
{'Text' : request.text}
txt = request.text
width = 512
height = 512
message = (txt)
s_wrap_list = textwrap.wrap(message, 20)
ntext = '\n'.join(s_wrap_list)
font = ImageFont.truetype("THSarabun.ttf", size=30)
img = Image.new('RGB', (width, height), color='white')
imgDraw = ImageDraw.Draw(img)
textWidth, textHeight = imgDraw.textsize(ntext, font=font)
xText = (width - textWidth) / 2
yText = (height - textHeight) / 2
imgDraw.text((xText, yText), ntext, font=font, fill=(0, 0, 0))
img.save('result.jpg')
pic = 'result.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.3)
if request.rotate == 45:
c.rotate(45)
c.drawImage(pic,90*mm,-200)
if request.rotate == 90:
c.rotate(90)
c.drawImage(pic,50*mm,-570)
if request.rotate == 180:
c.rotate(180)
c.drawImage(pic,-200*mm,-650)
if request.rotate == 270:
c.rotate(270)
c.drawImage(pic,-230*mm,60)
c.save() # บันทึกไฟล์
def create_watermark ( input_pdf ,output, watermark ) :
watermark_obj = PdfFileReader ( watermark )
watermark_page = watermark_obj.getPage ( 0 )
pdf_reader = PdfFileReader(input_pdf)
pdf_writer = PdfFileWriter()
for page in range (pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
page.mergePage(watermark_page)
pdf_writer.addPage(page)
with open (output,'wb') as out:
pdf_writer.write (out)
create_watermark(
input_pdf='pythonPDF.pdf', #ไฟล์ต้นฉบับ
output='watermarked.pdf', #ไฟล์ที่สร้างขึ้นใหม่ที่มีลายน้ำ
watermark='WATERMARK.pdf' #ไฟล์ลายน้ำ
)
with open("watermarked.pdf", "rb") as file:
encoded_string = base64.b64encode(file.read())
#os.unlink('pythonPDF.pdf')
#os.unlink('WATERMARK.pdf')
#os.unlink('watermarked.pdf')
#os.unlink('result.jpg')
return encoded_string
เออเร่อที่เจอ
422 (Unprocessable Entity)