สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
Moderator: mindphp, ผู้ดูแลกระดาน
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
สอบถามเพิ่มเติมค่ะ ในการแปลงไฟล์ PDF ที่มีหลายหลายหน้า จะได้ไฟล์รูปหลายรูป เราจะสามารถรู้หรือดึงจำนวนที่แปลงออกมาได้ยังไงคะว่ามีกี่ไฟล์ที่ถูกแปลงออกมา ค่ะ
เช่น ไฟล์ PDF มี 3 หน้า ก็จะได้ รูปภาพ 3 รูป หรือ ไฟล์ PDF 5 หน้า ก็จะมีไฟล์รูป 5 ไฟล์ แบบนี้ค่ะ
เช่น ไฟล์ PDF มี 3 หน้า ก็จะได้ รูปภาพ 3 รูป หรือ ไฟล์ PDF 5 หน้า ก็จะมีไฟล์รูป 5 ไฟล์ แบบนี้ค่ะ
you're the only one treasure
- MBMoo
- PHP VIP Members
- โพสต์: 25953
- ลงทะเบียนเมื่อ: 04/06/2020 10:05 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
สร้างโฟล์เดอร์ตามเวลามาตัวนึง แล้วนับไฟล์ในโฟล์เดอร์เอา หลังจากดึงข้อมูลแล้วให้ลบทั้งโฟล์เดอร์ออก
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
สอบถามค่ะ มีตัวอย่างการทำงานไหมคะ เพราะว่าตอนนี้ ในการสร้างโฟร์เดอร์ รู้แค่เพียง ใช้
โค้ด: เลือกทั้งหมด
import os
os.makedirs('ชื่อโฟร์เดอร์')
ที่ทดลองทำคือ แต่ไม่ได้ค่ะ
โค้ด: เลือกทั้งหมด
from datetime import datetime
import os
date = datetime.now().strftime("%Y_%m_%d-%I:%M:%S_%p")
os.makedirs(date)
you're the only one treasure
- MBMoo
- PHP VIP Members
- โพสต์: 25953
- ลงทะเบียนเมื่อ: 04/06/2020 10:05 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
ตัวอย่างการสร้าง
โค้ด: เลือกทั้งหมด
from datetime import datetime
def md_create_dir(self):
dt = datetime.now()
ts = str(datetime.timestamp(dt))
directory = "md_pdf_to_image" + ts
parent_dir = r"D:\path\path"
path = os.path.join(parent_dir, directory)
os.mkdir(path)
return path
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
จากโค้ดนี้ที่มีการสร้างโฟร์เดอร์ แบบ timestamp
และมีการแปลงไฟล์ PDF เป็นภาพ
นำไฟล์ที่แปลงได้เก็บใน โฟร์เดอร์ที่สร้าง
จะได้ไฟล์ภาพที่แปลงแล้วมาเก็บในโฟร์เดอร์ แต่ว่าถ้าเป็นการแปลง PDF หลายหน้า จะไม่ถูกเก็บในโฟร์เดอร์ที่สร้างขึ้น จะถูกเก็บนอกโฟร์เดอร์แทน
เลยอยากรู้ว่านำภาพทั้งที่แปลงได้หลายๆไฟล์มาเก็บในโฟร์เดอร์ เพื่อนับไฟล์ที่แปลงได้คือแบบไหนคะ ปรับแก้ตรงไหน เพื่อจะทำการนับจำนวนไฟล์ที่สร้างขึ้นมา
โค้ด: เลือกทั้งหมด
def create_dir():
dt = datetime.now()
ts = str(datetime.timestamp(dt))
directory = "pdf_to_image" + ts
parent_dir = r"C:\Users\fonfo\PycharmProjects\pythonProject13"
path = os.path.join(parent_dir, directory)
os.mkdir(path)
return path
โค้ด: เลือกทั้งหมด
process = subprocess.Popen(r"Magick convert C:\Users\fonfo\PycharmProjects\pythonProject13\testPDF.pdf C:\Users\fonfo\PycharmProjects\pythonProject13\testPDF.jpg", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
โค้ด: เลือกทั้งหมด
shutil.move(r"C:\Users\fonfo\PycharmProjects\pythonProject13\testPDF.jpg" ,create_dir())
you're the only one treasure
- MBMoo
- PHP VIP Members
- โพสต์: 25953
- ลงทะเบียนเมื่อ: 04/06/2020 10:05 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
โค้ด: เลือกทั้งหมด
def bo(self):
out , dir, file_len = self.pdf_to_image
image_base_64 = self.image_to_base64(out , dir, file_len)
return image_base_64
def pdf_to_image(self):
attach_fname = 'bo.pdf'
attach_fname_jpj = attach_fname.replace(".pdf", ".jpeg")
dir = self.create_dir()
jpeg_report_path = os.path.join(dir, attach_fname_jpj)
fname_new = ' "' + jpeg_report_path + '"'
if company:
density = company.md_btn_sale_line_tmp_image
pdf_report_path = os.path.join(dir, attach_fname)
with open(pdf_report_path, 'wb') as theFile:
theFile.write(base64.b64decode(attach_datas))
process = subprocess.Popen(r'Magick convert -verbose -density '+ pdf_report_path + fname_new,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
file_len = len([name for name in os.listdir(dir) if os.path.isfile(os.path.join(dir, name))]) # นับไฟล์ที่อยู่ในโฟล์เดอร์ที่เราสร้างขึ้น
return out , dir, file_len - 1 # ที่เอามาลบ 1 เพราะมี pdf อยู่ด้วย ถ้าแยกเก็บคนละโฟล์เดอร์ไม่ต้องลบก็ได้
def create_dir(self):
dt = datetime.now()
ts = str(datetime.timestamp(dt))
directory = "md_pdf_to_image" + ts
parent_dir = os.path.join(r"D:\path", self._cr.dbname)
path = os.path.join(parent_dir, directory)
os.mkdir(path)
return path
def image_to_base64(self, out, dir, file_len):
image_base_64 = []
store = False
for no in range(file_len):
new = "-%s.jpeg" % no
name_jpg = attach_fname.replace(".pdf", new)
jpeg_report_path = os.path.join(dir, name_jpg)
with open(jpeg_report_path, "rb") as image_file:
image_base_64.append({
'base64': base64.b64encode(image_file.read()),
})
os.rmdir(dir)
return image_base_64
โค้ด: เลือกทั้งหมด
[{'base64': base64_str}, {'base64': base64_str}, {'base64': base64_str}]
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
จากที่พี่มาแปะโค้ดมาให้ ยังงงๆการทำงานอยู่ค่ะ รบกวนอธิบายทีค่ะ ว่ามันใช้งานยังไงในแต่ละส่วน ของฟังก์ชัน หยิบไปใช้งานไม่ถูกเลยอยากให้อธิบายทีค่ะ
you're the only one treasure
- fonfonn
- PHP VIP Members
- โพสต์: 4983
- ลงทะเบียนเมื่อ: 11/07/2022 9:28 am
Re: สอบถามการส่งค่า กลับเป็น base64 ในภาษา python
จากที่พี่อธิบายเพิ่มเติม และทดสอบการใช้งาน สามารถทำการแปลงไฟล์และบันทึกไฟล์ในโฟร์เดอร์ที่สร้างได้แล้วค่ะ
โค้ด: เลือกทั้งหมด
pdf_b64 = input() #ทดสอบด้วยกับรับ Input base64 ของไฟล์ PDF
dt = datetime.now()
ts = str(datetime.timestamp(dt))
directory = "pdf_to_image" + ts
parent_dir = r"C:\Users\fonfo\PycharmProjects\pythonProject13"
path = os.path.join(parent_dir, directory)
os.mkdir(path)
attach_fname = 'bo.pdf'
attach_fname_jpj = attach_fname.replace(".pdf", ".jpeg")
jpeg_report_path = os.path.join(path, attach_fname_jpj)
fname_new = ' "' + jpeg_report_path + '"'
pdf_report_path = os.path.join(path, attach_fname)
with open(pdf_report_path, 'wb') as theFile:
theFile.write(base64.b64decode(pdf_b64))
process = subprocess.Popen(r'Magick convert ' + pdf_report_path + fname_new,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
file_len = len([name for name in os.listdir(path) if
os.path.isfile(os.path.join(path, name))]) # นับไฟล์ที่อยู่ในโฟล์เดอร์ที่เราสร้างขึ้น
image_base_64 = []
for no in range(file_len -1):
if file_len > 2:
new = "-%s.jpeg" % no
else:
new = ".jpeg"
name_jpg = attach_fname.replace(".pdf", new)
jpeg_report_path = os.path.join(path, name_jpg)
with open(jpeg_report_path, "rb") as image_file:
image_base_64.append({
'base64': base64.b64encode(image_file.read()),
})
#ส่วนของการลบไฟล์และโฟร์เดอร์ที่สร้างขึ้น
os.unlink(jpeg_report_path)
os.unlink(pdf_report_path)
os.rmdir(path)
#สั่งให้แสดงผล base64 ของภาพที่แปลงได้
print(image_base_64)
you're the only one treasure
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ ทำความรู้จักกับภาษา python (23) : การใช้ from...import (ฟอร์ม...อิมพอร์ต) ในภาษา python (ไพทอน)
โดย dawthana » 12/01/2017 3:24 pm » ใน Python Knowledge - 9 ตอบกลับ
- 6637 แสดง
-
โพสต์ล่าสุด โดย jirawoot
21/06/2019 10:07 am
-
-
-
โพสต์ใหม่ วิธีการ แปลง รูปภาพ เป็น base64 ใน python
โดย MBMoo » 22/08/2020 6:40 pm » ใน Python Knowledge - 0 ตอบกลับ
- 2711 แสดง
-
โพสต์ล่าสุด โดย MBMoo
22/08/2020 6:40 pm
-
-
-
โพสต์ใหม่ การเข้ารหัสข้อมูลไบต์ ใน python หรือ Base16, Base32, และ Base64
โดย tatiya » 31/08/2018 4:08 pm » ใน Python Knowledge - 0 ตอบกลับ
- 1694 แสดง
-
โพสต์ล่าสุด โดย tatiya
31/08/2018 4:08 pm
-
-
-
โพสต์ใหม่ สอบถามเรื่องการแก้ไขการใช้งานพาร์ทที่มีการเซฟไฟล์ในเครื่อง ในภาษา python
โดย fonfonn » 20/08/2022 9:56 am » ใน Programming - C/C++ & java & Python - 6 ตอบกลับ
- 1054 แสดง
-
โพสต์ล่าสุด โดย fonfonn
22/08/2022 12:54 pm
-
-
-
โพสต์ใหม่ การ GET ข้อมูลที่ส่งมากับ URL ในภาษา Python
โดย jirawoot » 05/07/2019 4:46 pm » ใน Python Knowledge - 0 ตอบกลับ
- 3597 แสดง
-
โพสต์ล่าสุด โดย jirawoot
05/07/2019 4:46 pm
-
-
- 0 ตอบกลับ
- 4381 แสดง
-
โพสต์ล่าสุด โดย MBMoo
09/11/2020 3:26 pm
-
-
โพสต์ใหม่ วิธีการทำเว็บไซต์ 2 ภาษา ในภาษา python
โดย jirawoot » 22/08/2019 3:20 pm » ใน Python Knowledge - 0 ตอบกลับ
- 2578 แสดง
-
โพสต์ล่าสุด โดย jirawoot
22/08/2019 3:20 pm
-
-
-
โพสต์ใหม่ การนำเข้าโมดูลด้วยคำสั่ง from import ในภาษา Python
โดย Jom07 » 07/03/2018 5:10 pm » ใน Python Knowledge - 0 ตอบกลับ
- 2965 แสดง
-
โพสต์ล่าสุด โดย Jom07
07/03/2018 5:10 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 83