สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
Moderator: mindphp, ผู้ดูแลกระดาน
- MBMoo
- PHP VIP Members
- โพสต์: 25635
- ลงทะเบียนเมื่อ: 04/06/2020 10:05 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
ตัว reportlab ไม่สามารถทำได้หรอคะ
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
ถ้าเป็นการนำภาพมาทำลายน้ำตอนนี้ยังไม่ทราบวิธีการที่ทำได้ค่ะ ถ้ามีการใช้ reportlab ในส่วนนี้ช่วยแนะนำทีค่ะ แต่ถ้าเป็นการรับ Input แบบข้อความ จะใช้ reportlab ในการสร้างไฟล์ PDF เพื่อนำมาเมิจเข้าด้วยกันโดยใช้ PyPDF2 ผลที่ได้ก็จะเป็นแบบนี้ค่ะ
โค้ด: เลือกทั้งหมด
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "text":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
{'Text' : request.text}
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.5)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.5)
c.setFont('Helvetica',50)
c.drawString(35*mm,400,request.text)
c.rotate(45)
c.showPage()
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' #ไฟล์ลายน้ำ
)
- ไฟล์ที่ได้จากการทดสอบ ทั้งหมด 3 ไฟล์ คือไฟล์ PDF ต้นฉบับ ไฟล์ PDF ที่มีข้อความที่เรา Input เข้าไป และ ไฟล์ PDF ที่มีลายน้ำ
- ทดสอบใน postman รับข้อความว่า Test
- ไฟล์ PDF ที่มีลายน้ำที่ได้ คือ
you're the only one treasure
- MBMoo
- PHP VIP Members
- โพสต์: 25635
- ลงทะเบียนเมื่อ: 04/06/2020 10:05 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
bolue เขียน: ↑16/08/2022 10:03 am Q - การใช้งาน reportlab
viewtopic.php?p=262874#p262874
ลองดูจากกระทู้นี้เพิ่มเติมค่ะ ถ้า reportlab อย่างเดียวทำลายน้ำไม่ได้ อาจจะต้องสร้าง pdf 2 ไฟล์ ไฟล์นึงลายน้ำ อีกไฟล์เป็น pdf ที่เราต้องการจะใส่ลายน้ำ แล้วเมิจเข้าด้วยกันโดยใช้ PyPDF2 ค่ะ
***ศึกษา Docs reportlab ก่อนนะคะ ว่าสามารถทำได้หรือเปล่า
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
จากการทำงานนี้ปรับแก้โค้ดในการสร้างไฟล์ PDF ที่มีภาพ เปลี่ยนมาใช้ reportlab ในการสร้างไฟล์ PDF แทน โค้ดที่แก้ไขfonfonn เขียน: ↑17/08/2022 12:13 pmจากที่ถามเรื่องนี้ไปค่ะ ทดลองใช้วิธีนี้สามารถให้ไฟล์รูปที่เรา Input เข้าไปวางทับบน PDF เดิมที่แปลงจาก base64 ได้ค่ะfonfonn เขียน: ↑15/08/2022 5:01 pm ถามเพิ่มเติมนะคะ คือ จากโค้ด เป็นการทำลายน้ำด้วยภาพ ซึ่งเมื่อทำตามขั้นตอนด้านล่างแล้ว ผลที่ได้คือผลที่ได้โค้ด: เลือกทั้งหมด
@app.post('/api_watermark') async def read_picwatermark(request: Waterpic_base64): if request.type == "JPG": with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile: pdfFile.write(base64.b64decode(request.pdf_base64)) with open(r'C:\Users\fonfo\pdf-toolkits\water.jpg', 'wb') as picFile: picFile.write(base64.b64decode(request.pic_base64)) pic = 'water.jpg' pdf = 'pythonPDF.pdf' c = canvas.Canvas(pdf) c.drawImage(pic,15,15) c.save()
เลยอยากถามว่าถ้าเราต้องการให้ไฟล์รูปที่เรา Input เข้าไปวางทับบน PDF เดิมที่แปลงจาก base64 ต้องปรับแก้โค้ดตรงไหนคะ
- เมื่อทดสอบ API จะได้ไฟล์ PDF ที่มีภาพ ที่เรา Input แต่ไม่มีตัว ไฟล์ PDFที่ แปลงจาก base64 ค่ะ
ได้ไฟล์ PDF ที่มีภาพ.pngซึ่งผลลัพธ์ที่ได้ก็จะเป็นไฟล์ PDF ที่แปลงจาก base64 หนึ่งไฟล์ ไฟล์ภาพที่แปลงจาก base64 หนึ่งไฟล์ และ ไฟล์ ที่มีการทำลายน้ำ 1 ไฟล์โค้ด: เลือกทั้งหมด
@app.post('/api_watermark') async def read_picwatermark(request: Waterpic_base64): if request.type == "JPG": with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile: pdfFile.write(base64.b64decode(request.pdf_base64)) with open(r'C:\Users\fonfo\pdf-toolkits\water.jpg', 'wb') as picFile: picFile.write(base64.b64decode(request.pic_base64)) doc = aw.Document() builder = aw.DocumentBuilder(doc) builder.insert_image("water.jpg") doc.save("Output.pdf") 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='Output.pdf' #ไฟล์ลายน้ำ )
- ไฟล์ที่ได้จากการทดสอบ
ไฟล์ที่ได้จากการทดสอบ.png
- ไฟล์ PDF ต้นฉบับที่แปลงจาก base64
ไฟล์ PDF ต้นฉบับ.png
- ไฟล์ที่มีการใส่ภาพที่แปลงจาก base64 ลงบน PDF ต้นฉบับ
ไฟล์ที่มีการใส่ภาพทับ PDF ต้นฉบับ.png
โค้ด: เลือกทั้งหมด
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "JPG":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(r'C:\Users\fonfo\pdf-toolkits\picture.jpg', 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
#ส่วนที่แก้ไข
pic = 'picture.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.drawImage(pic,35*mm,400)
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.5)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.5)
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' #ไฟล์ลายน้ำ
)
- ได้ไฟล์ PDF ที่มีการใส่ภาพที่ Input เข้าไป
you're the only one treasure
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
จากที่ลองศึกษาแล้ว ยังไม่เจอวิธีการทำลายน้ำด้วย reportlab เลยใช้ PyPDF2 แทน โดยการทำงานคือ ใช้ reportlab สร้าง PDF ตัวลายน้ำขึ้นมา และนำมาเมิจเข้าได้กันกับ PDF ต้นฉบับ ด้วย PyPDF2
โค้ด: เลือกทั้งหมด
from reportlab.pdfgen import canvas
from PyPDF2 import PdfFileWriter , PdfFileReader
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "JPG":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(r'C:\Users\fonfo\pdf-toolkits\picture.jpg', 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
#ส่วนที่แก้ไข
pic = 'picture.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.drawImage(pic,35*mm,400)
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.5)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.5)
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' #ไฟล์ลายน้ำ
)
ได้ไฟล์ PDF ที่มีการใส่ภาพที่ Input เข้าไป โดยเป็น PDF และภาพ ที่เรา Input base64 เข้าไป
you're the only one treasure
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
สอบถามเพิ่มเติมนะคะ คือตอนนี้ตัว API ที่สร้างมา สามารถสร้างลายน้ำได้ตามที่ต้องการ
ผลลัพธ์
และเมื่อเราใส่ c.rotate('ค่าตัวเลขในการต้องการให้หมุน') แต่ภาพเป็นการหนุมที่จุดเดิมแต่เป็นการหมุนในวงรอบที่กว้างขึ้น
ตัวอย่างไฟล์ที่มีการใส่ค่า c.rotate
ผลลัพธ์ที่ไได้
โค้ด: เลือกทั้งหมด
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "JPG":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(r'C:\Users\fonfo\pdf-toolkits\picture.jpg', 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
pic = 'picture.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.drawImage(pic,80*mm,400)
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.5)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.5)
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())
- ไฟล์ที่ได้จะเป็นแบบนี้ค่ะ
และเมื่อเราใส่ c.rotate('ค่าตัวเลขในการต้องการให้หมุน') แต่ภาพเป็นการหนุมที่จุดเดิมแต่เป็นการหมุนในวงรอบที่กว้างขึ้น
ตัวอย่างไฟล์ที่มีการใส่ค่า c.rotate
โค้ด: เลือกทั้งหมด
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "JPG":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(r'C:\Users\fonfo\pdf-toolkits\picture.jpg', 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
pic = 'picture.jpg'
c = canvas.Canvas("WATERMARK.pdf") # ไฟล์ที่จะเขียน
c.rotate(45)
c.drawImage(pic,80*mm,400)
c.setFillColorCMYK(0, 0, 0, 0, alpha=0.5)
c.rect(204, 199, 157, 15, stroke=0, fill=1)
c.setFillColorCMYK(0, 0, 0, 100, alpha=0.5)
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())
- จะเห็นว่ารูปมีการหมุนไปวงรอบที่กว่างขึ้น เลยสงสัยว่าเราจะเซ็ตค่ายังไงให้มีการหมุนโดยที่ภาพยังอยู่ในจุดเดิม
you're the only one treasure
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
ในส่วนนี้สามารถทำได้แล้วค่ะ สามารถปรับค่า opacity ของภาพให้มีความโปร่งแสงขึ้น โดยการย้าย drawImage ไว้ด้านล่างของ alpha โค้ดคือเลยอยากรู้ว่าในส่วนการ สร้าง PDF จากรูปนั้นสามารถปรับค่า opacity ของภาพให้มีความโปร่งแสงขึ้นได้ไหมคะ
โค้ด: เลือกทั้งหมด
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
if request.type == "JPG":
with open(r'C:\Users\fonfo\pdf-toolkits\pythonPDF.pdf', 'wb') as pdfFile:
pdfFile.write(base64.b64decode(request.pdf_base64))
with open(r'C:\Users\fonfo\pdf-toolkits\picture.jpg', 'wb') as picFile:
picFile.write(base64.b64decode(request.pic_base64))
pic = 'picture.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) #ตัวปรับความโปร่งแสง
c.drawImage(pic,80*mm,400) #ย้ายตัววางภาพลงมาด้านล่างแทน
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())
- ไฟล์ที่ได้
you're the only one treasure
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
ตรงส่วนนี้ยังแก้ไขไม่ได้ค่ะ จะทำยังไงให้เมื่อใส่ c.rotate แล้วภาพหมุนที่จุดเดิม เพราะผลลัพธ์ที่ได้จากการใส่ c.rotate(45) ภาพจะหมุนแต่จะไม่ได้หมุนอยู่ที่จุดเดิมเมื่อเราใส่ c.rotate('ค่าตัวเลขในการต้องการให้หมุน') แต่ภาพไม่เป็นการหนุมที่จุดเดิมแต่เป็นการหมุนในวงรอบที่กว้างขึ้น
ตัวอย่างไฟล์ที่มีการใส่ค่า c.rotate
you're the only one treasure
- wkid
- PHP VIP Members
- โพสต์: 2158
- ลงทะเบียนเมื่อ: 17/05/2022 10:37 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
แนวคิดในการทำ ถ้ามีการกำหนด จุด x,y น่าจะต้องมีการขัยบจุด x,y ของแต่ละการหมุนครับ ลองๆปรับ แกน x,y ดูครับ
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการสร้าง API ในการทำลายน้ำให้ไฟล์ PDF
จากที่แนะนำว่าลองมีการหาจุดเพื่อกำหนดตำแหน่ง และใส่เงื่อนไขของแต่ละการหมุนสามารถทำได้แล้วค่ะ
โค้ด: เลือกทั้งหมด
class Waterpic_base64(BaseModel):
type : str
rotate : int #มีการรับค่าของการหมุนเพิ่มขึ้นมา
pdf_base64: str
pic_base64: str
text: str
@app.post('/api_watermark')
async def read_picwatermark(request: Waterpic_base64):
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')
- หนุม45องศา
- หนุม90องศา
- หนุม180องศา
- หนุม270องศา
you're the only one treasure
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 96