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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: สอบถามครับ อยากเปิดไฟล์ PDF ในเครื่อง

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

โดย tatiya » 04/07/2019 6:54 pm

ตอนที่ 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()

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

โดย chatee supasand » 04/07/2019 4:21 pm

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

คือผมต้องการสร้างไฟล์ 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 837 times
what1.png
what1.png (9.33 KiB) Viewed 837 times

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

โดย thatsawan » 04/07/2019 3:42 pm

การนำไฟล์ PDF มาแสดงบน web browser
viewtopic.php?f=144&t=58064

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

โดย thatsawan » 04/07/2019 3:41 pm

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

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

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

โดย tatiya » 04/07/2019 3:38 pm

ที่จริงก็ตาม คห3 ได้เลยนะครับ ถ้าโปรเซสคือ กด แปลงไฟล์ ให้เบราเซอร์ เปิดไฟล์ pdf ที่คุณแปลงจาก rml
ประมาณว่า ปุ่มแปลงไฟล์ ก็ action ไปที่เมดตรอดที่คุณสร้างไว้ แปลงไฟล์ >> save file >> นำ part วิ่งเข้าเมตรอดคุณ คห3 >> return headers pdf ออกมา

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

โดย chatee supasand » 04/07/2019 3:19 pm

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

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

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

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

โดย jirawoot » 04/07/2019 2:17 pm

จะแสดงบน 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)

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

โดย jirawoot » 04/07/2019 1:58 pm

ขึ้นโชว์ในไหนครับ

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

โดย chatee supasand » 04/07/2019 1:37 pm

อยากเปิดไฟล์ PDF ในเครื่องขึ้นมาอะครับ ไม่ราบว่ามีคำสั่งอะไรไหมครับ
ภาษาไพทอน ครับ

ข้างบน