รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

ตอบกระทู้

รูปแสดงอารมณ์
: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] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

Re: รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

โดย mindphp » 25/05/2019 7:33 pm

สร้างไฟล์ rml กับการเขียนไฟล์ คนละเรื่องกัน นะครับ
สร้างไฟล์ pdf ต้องใช้ โมดูลพิเศษ rml2pdf ซึ่งไม่สามารถเปิด ด้วย ระบบไฟล์ธรรมดาได้

แต่ถ้าสร้างไฟล์ text ธรรมดา จะใช้ ตามกระทู้นี้
viewtopic.php?p=152869#p152869

Re: รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

โดย teenproza7 » 25/05/2019 7:22 pm

ได้แล้วครับ โดยทำการ เก็บค่าที่ได้รับมาไว้ในตัวแปร จากนั้นให้ตัวแปรสร้างไฟล์ code.rml ขึ้นมา จากนั้นสร้างตัวแปรขึ้นมาอ่าน ไฟล์ code.rml ที่สร้างไว้
แล้วก็สร้างตัวแปรขึ้นมาอีกทีเพื่อแปลงไฟล์ ดังในโค้ด

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

code = request.form['rml']

            try:
                f = open('code.rml', 'w')
                f.write(code)
                f.close()
               
                print ('สร้างไฟล์สำเร็จ')

                try:
                    d = open('code.rml', 'r')
                    data = d.read()
                    d.close()

                    pdf = rml2pdf.parseString(data.decode('utf-8'))

                    a = open('test.pdf', 'w')
                    a.write(pdf.read())

                    print ('แปลงไฟล์สำเร็จ')
pdf = rml2pdf.parseString(data.decode('utf-8'))

a = open('test.pdf', 'w')
a.write(pdf.read())

ส่วนนี้คือ โค้ดที่อ่านไฟล์และแปลงข้อมูล จากนั้นเอาข้อมูลนั้นมาสร้างเป็น test.pdf

Re: รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

โดย teenproza7 » 25/05/2019 4:49 pm

thatsawan เขียน:ไม่เข้าใจ แปลงไฟล์คืออะไร
แปลงไฟล์จาก โค้ด rml ที่ log มาได้เป็น pdf ครับ

Re: รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

โดย thatsawan » 25/05/2019 4:41 pm

ไม่เข้าใจ แปลงไฟล์คืออะไร

รับค่ามาแล้วแต่แปลงไฟล์ไม่ได้ครับ

โดย teenproza7 » 25/05/2019 4:36 pm

ผมทำการรับค่ามาแล้วเก็บไว้ในตัวแปร เพื่อทำการสร้างไฟล์ แต่ไม่สามารถสร้างได้
code

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

        if request.method == 'POST':

            name = request.form['filename']
            des = request.form['description']
            code = request.form['rml']
            print code
            try:
                with open(code) as rml:
                    data = rml.read()

                    pdf = rml2pdf.parseString(data.decode('utf-8'))

                with open('code.pdf', 'w') as output:
                    output.write(pdf.read())

            except:
                     print('แปลงไฟล์ผิดพลาด')
bug

127.0.0.1 - - [25/May/2019 16:31:20] "GET / HTTP/1.1" 200 -
<!DOCTYPE document SYSTEM "rml.dtd">
<document filename="example1.pdf">
<template>
<!--this section contains elements of the document -->
<!--which are FIXED into position. -->
<pageTemplate id="main">
<frame id="first" x1="100" y1="400" width="150" height="200"/>
</pageTemplate>
</template>
<stylesheet>
</stylesheet>
<story>

<para>
Welcome to RML!
</para>

</story>
</document>
แปลงไฟล์ผิดพลาด

ข้างบน