Hướng dẫn json dict to pdf python - json dict sang pdf python

Tôi đã nhận được một dict từ dữ liệu .txt và tôi muốn tạo một tệp pdf với dữ liệu này.

Làm thế nào tôi có thể tạo nó?

Hướng dẫn json dict to pdf python - json dict sang pdf python

Martin Evans

44.2K16 Huy hiệu vàng80 Huy hiệu bạc91 Huy hiệu Đồng16 gold badges80 silver badges91 bronze badges

Đã hỏi ngày 15 tháng 11 năm 2017 lúc 1:36Nov 15, 2017 at 1:36

2

pip install pdfkit

Ngoài ra, cài đặt wkhtmltopdf:

Debian/Ubuntu:

$ sudo apt-get install wkhtmltopdf

Sau đó trong mã của bạn:

import pdfkit
import json
pdfkit.from_string(json.dumps(yourdict))

Bạn cũng có thể làm:

import pdfkit
pdfkit.from_file('your.txt', 'out.pdf')

Đã trả lời ngày 15 tháng 11 năm 2017 lúc 1:39Nov 15, 2017 at 1:39

Alexisdevarennesalexisdevarennesalexisdevarennes

5.2353 Huy hiệu vàng23 Huy hiệu bạc37 Huy hiệu đồng3 gold badges23 silver badges37 bronze badges

2

Công thức này cho thấy các bước cơ bản cần thiết để chuyển đổi đầu vào JSON sang đầu ra PDF, sử dụng Python và XtopDF, bộ công cụ tạo PDF. XTOPDF được viết bằng pytho và sử dụng bộ công cụ báo cáo trong nội bộ.

Chúng tôi thiết lập một số giá trị cần thiết, chẳng hạn như tên tệp PDF đầu ra, tên phông chữ và kích thước, tiêu đề và chân trang và các đường đầu vào cho phần thân của đầu ra PDF; Tất cả các giá trị này được truyền ở định dạng JSON (trong một từ điển duy nhất) cho một hàm sử dụng các giá trị đó để tạo tệp PDF với nội dung mong muốn.

Mã được cố tình giữ đơn giản để yêu cầu số lượng mã ít nhất cần thiết để chứng minh các kỹ thuật liên quan. Nhưng nó có thể được khái quát hoặc mở rộng cho các tình huống phức tạp hơn.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

import sys
import json
from PDFWriter import PDFWriter

def error_exit(message):
    sys.stderr.write(message)
    sys.exit(1)

def JSONtoPDF(json_data):
    # Get the data values from the JSON string json_data.
    try:
        data = json.loads(json_data)
        pdf_filename = data['pdf_filename']
        font_name = data['font_name']
        font_size = data['font_size']
        header = data['header']
        footer = data['footer']
        lines = data['lines']
    except Exception as e:
        error_exit("Invalid JSON data: {}".format(e.message))
    # Generate the PDF using the data values.
    try:
        with PDFWriter(pdf_filename) as pw:
            pw.setFont(font_name, font_size)
            pw.setHeader(header)
            pw.setFooter(footer)
            for line in lines:
                pw.writeLine(line)
    except IOError as ioe:
        error_exit("IOError while generating PDF file: {}".format(ioe.message))
    except Exception as e:
        error_exit("Error while generating PDF file: {}".format(e.message))

def testJSONtoPDF():
    fil = open('the-man-in-the-arena.txt')
    lis = fil.readlines()
    data = { \
        'pdf_filename': 'the-man-in-the-arena.pdf', \
        'font_name': 'Courier', \
        'font_size': 12, \
        'header': 'The Man in the Arena', \
        'footer': 'Generated by xtopdf - http://google.com/search?q=xtopdf', \
        'lines': lis \
        }
    json_data = json.dumps(data)
    JSONtoPDF(json_data)
    
def main():
    testJSONtoPDF() 

if __name__ == '__main__':
    main()

Công thức này có thể hữu ích nếu bạn có (hoặc có thể sắp xếp để có) dữ liệu ở định dạng JSON và bạn muốn dễ dàng xuất nó vào PDF, với các tiêu đề và chân trang trên mỗi trang và phân trang. Đầu ra văn bản định hướng dòng hoặc có cấu trúc báo cáo kinh doanh, trong đó đầu vào có sẵn ở định dạng JSON (hoặc có thể được chuyển đổi thành định dạng JSON), sẽ được hưởng lợi từ công thức này.