สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

อยากเปิดไฟล์ PDF ในเครื่องขึ้นมาอะครับ ไม่ราบว่ามีคำสั่งอะไรไหมครับ
ภาษาไพทอน ครับ
รูปภาพ
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

ขึ้นโชว์ในไหนครับ
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

จะแสดงบน browser

โค้ด: เลือกทั้งหมด

from flask import Flask
from flask import send_file

app = Flask(__name__)

@app.route('/')
def index():
    pdfpath='pdf1_04072019.pdf'
    resp = send_file(pdfpath)
    resp.headers['Content-Disposition'] = "inline; filename=%s" % 'test.pdf'
    resp.mimetype = 'application/pdf'
    return resp

if __name__ == '__main__':
   app.run(debug=True)
ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

ผมเปิดไฟล์ PDF ได้แล้วด้วยโค้ด

โค้ด: เลือกทั้งหมด

import webbrowser
webbrowser.open_new(r'.\generate\5.pdf')
แต่พอผมเอาไปใส่ในคำสั่ง ใช้งานในหน้าอื่น
มันไม่เปิด PDF ขึ้นมาให้อะครับ เวลาผม กดแปลงไฟล์ ตามรูป ครับ
4652.png
4652.png (40.14 KiB) Viewed 845 times

โค้ด: เลือกทั้งหมด

def addcode():

    try:
        if request.method == 'POST':
         name = request.form['filename']

         if name == '':
            for i in range(1):  # สุ่ม 1 ครั้ง
                a = random.randint(10000000,99999999) # ให้้สุ่มเลข
            name = 'RmlToPDF'+str(a)
         elif name != '':
            name = request.form['filename']

        des = request.form['description']
        code = request.form['rml']

        sql = "insert into genpdf (filename, description) values ('%s','%s')" % (name, des)
        sql = sql.encode('utf-8')
        cur.execute(sql)

        try:
            sql = "SELECT * FROM genpdf ORDER BY fileid DESC"
            cur.execute(sql)
            con.commit()
            new_row_id = cur.fetchone()[0]

            save_path = './rmllist/'    #สร้าง path สำหรับเก็บไฟล์
            field_rml_name = str(new_row_id) + str(name) + '.rml'
            path = os.path.join(save_path, field_rml_name)  #สร้าง ตัวแปร เพื่อทำการเก็บที่อยู่ของไฟล์

            f = open(path, 'w')
            f.write(code)
            f.close()

            print ('สร้างไฟล์สำเร็จ')

            d = open(path, 'r')
            data = d.read()
            d.close()

            pdf = rml2pdf.parseString(data.decode('utf-8'))
            open_path = str('./generate/')+ str(name) + str('.pdf') #สร้าง path เพื่อเปิดไฟล์ที่เก็บไว้
            a = open(open_path, 'w') #สร้างไฟล์ที่จากที่เก็บไว้ในตัว open_path
            a.write(pdf.read())
            
            webbrowser.open_new(r'.\generate\5.pdf') # ให้เปิดไฟล์ PDF +++++++++++++++++++++++++++++++++++++++
            
            print ('เพิ่มข้อมูล เรียบร้อยแล้ว')

            return '<br>' + '<META HTTP-EQUIV="Refresh" CONTENT="0;http://127.0.0.1:5000/show">'

        except:
            con.rollback()
            print('เพิ่มข้อมูล ผิดพลาด')



    except:
        print ('database Error')
รูปภาพ
tatiya
PHP VIP Members
PHP VIP Members
โพสต์: 2845
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย tatiya »

ที่จริงก็ตาม คห3 ได้เลยนะครับ ถ้าโปรเซสคือ กด แปลงไฟล์ ให้เบราเซอร์ เปิดไฟล์ pdf ที่คุณแปลงจาก rml
ประมาณว่า ปุ่มแปลงไฟล์ ก็ action ไปที่เมดตรอดที่คุณสร้างไว้ แปลงไฟล์ >> save file >> นำ part วิ่งเข้าเมตรอดคุณ คห3 >> return headers pdf ออกมา
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

โค้ด: เลือกทั้งหมด

from flask import send_file

 pdfpath='pdf1_04072019.pdf'
    resp = send_file(pdfpath)
    resp.headers['Content-Disposition'] = "inline; filename=%s" % 'test.pdf'
    resp.mimetype = 'application/pdf' 
สังเกตุ จุดนี้ การเเสดง PDF บน browser จะต้องมี การกำหนด headers
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

การนำไฟล์ PDF มาแสดงบน web browser
viewtopic.php?f=144&t=58064
ภาพประจำตัวสมาชิก
chatee supasand
PHP VIP Members
PHP VIP Members
โพสต์: 1666
ลงทะเบียนเมื่อ: 04/06/2019 10:06 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย chatee supasand »

ผมลองใช้งานแล้ว
มันอ่านไฟล์แบบเรียลไทม์ไม่ได้อะครับ

คือผมต้องการสร้างไฟล์ PDF ขึ้นมาแล้วให้มันอ่านค่านั้นมาแสดงเลย
แต่มันทำไม่ได้อะครับ ตามรูปเลย

โค้ด: เลือกทั้งหมด

 

            pdf = rml2pdf.parseString(data.decode('utf-8'))
            open_path = str('./generate/')+ str(name) + str('.pdf') #สร้าง path เพื่อเปิดไฟล์ที่เก็บไว้
            a = open(open_path, 'w') #สร้างไฟล์ที่จากที่เก็บไว้ในตัว open_path
            a.write(pdf.read())
            print ('เพิ่มข้อมูล เรียบร้อยแล้ว')
            pdfpath = ('./generate/2.pdf')  #ไฟล์ที่รออ่านค่า++++++++++++++++++++++++++++++++
            resp = send_file(pdfpath)
            resp.mimetype = 'application/pdf'
            return resp
what.png
what.png (35.13 KiB) Viewed 835 times
what1.png
what1.png (9.33 KiB) Viewed 835 times
รูปภาพ
tatiya
PHP VIP Members
PHP VIP Members
โพสต์: 2845
ลงทะเบียนเมื่อ: 09/07/2018 9:35 am

Re: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

โพสต์ที่ยังไม่ได้อ่าน โดย tatiya »

ตอนที่ write pdf ในใส่ .close ด้วยคครับ

โค้ด: เลือกทั้งหมด

pdf = rml2pdf.parseString(data.decode('utf-8'))
                open_path = './generate/'+name+'.pdf'    #สร้าง path เพื่อเปิดไฟล์ที่เก็บไว้
                a = open(open_path, 'w')            #สร้างไฟล์ที่จากที่เก็บไว้ในตัว open_path
                a.write(pdf.read())
                a.close()
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 79