Untitled

 avatar
unknown
plain_text
5 months ago
3.4 kB
6
Indexable
# Full JLPT N4 Kanji list with onyomi, kunyomi, and meanings
n4_kanji_full = [
    {"kanji": "会", "onyomi": "カイ, エ", "kunyomi": "あ.う", "meaning": "to meet, society"},
    {"kanji": "同", "onyomi": "ドウ", "kunyomi": "おな.じ", "meaning": "same, agree"},
    {"kanji": "事", "onyomi": "ジ, ズ", "kunyomi": "こと", "meaning": "thing, matter"},
    {"kanji": "自", "onyomi": "ジ, シ", "kunyomi": "みずか.ら", "meaning": "oneself"},
    {"kanji": "社", "onyomi": "シャ", "kunyomi": "やしろ", "meaning": "shrine, society"},
    {"kanji": "発", "onyomi": "ハツ, ホツ", "kunyomi": "", "meaning": "departure, emit"},
    {"kanji": "者", "onyomi": "シャ", "kunyomi": "もの", "meaning": "person"},
    {"kanji": "地", "onyomi": "チ, ジ", "kunyomi": "", "meaning": "ground, earth"},
    {"kanji": "業", "onyomi": "ギョウ, ゴウ", "kunyomi": "わざ", "meaning": "business, work"},
    {"kanji": "方", "onyomi": "ホウ", "kunyomi": "かた", "meaning": "direction, person"},
    {"kanji": "新", "onyomi": "シン", "kunyomi": "あたら.しい, あら.た", "meaning": "new"},
    {"kanji": "場", "onyomi": "ジョウ", "kunyomi": "ば", "meaning": "place"},
    {"kanji": "員", "onyomi": "イン", "kunyomi": "", "meaning": "member"},
    {"kanji": "立", "onyomi": "リツ", "kunyomi": "た.つ", "meaning": "stand, establish"},
    {"kanji": "開", "onyomi": "カイ", "kunyomi": "ひら.く, あ.ける", "meaning": "open"},
    {"kanji": "手", "onyomi": "シュ", "kunyomi": "て", "meaning": "hand"},
    {"kanji": "力", "onyomi": "リョク, リキ", "kunyomi": "ちから", "meaning": "power, strength"},
    {"kanji": "問", "onyomi": "モン", "kunyomi": "と.う, と.い", "meaning": "question, problem"},
    {"kanji": "代", "onyomi": "ダイ, タイ", "kunyomi": "か.わる, か.える", "meaning": "substitute, generation"},
    {"kanji": "明", "onyomi": "メイ, ミョウ", "kunyomi": "あか.るい, あ.ける", "meaning": "bright, clear"},
    # Add more entries as needed for the complete JLPT N4 list.
]

# Create the PDF using ReportLab
pdf_canvas = canvas.Canvas(file_path, pagesize=letter)
pdf_canvas.setFont("Helvetica-Bold", 14)
pdf_canvas.drawString(200, 750, "JLPT N4 Kanji List")

# Define starting positions and font sizes
x_start = 30
y_start = 720
line_height = 18

# Headers for the table
headers = ["Kanji", "Onyomi (音読み)", "Kunyomi (訓読み)", "Meaning"]
column_widths = [50, 120, 120, 150]

# Draw table headers
pdf_canvas.setFont("Helvetica-Bold", 12)
x = x_start
for i, header in enumerate(headers):
    pdf_canvas.drawString(x, y_start, header)
    x += column_widths[i]

# Add the data rows
pdf_canvas.setFont("Helvetica", 10)
y = y_start - line_height
for entry in n4_kanji_full:
    x = x_start
    pdf_canvas.drawString(x, y, entry["kanji"])
    x += column_widths[0]
    pdf_canvas.drawString(x, y, entry["onyomi"])
    x += column_widths[1]
    pdf_canvas.drawString(x, y, entry["kunyomi"])
    x += column_widths[2]
    pdf_canvas.drawString(x, y, entry["meaning"])
    y -= line_height
    # Add a new page if the content exceeds the page length
    if y < 50:
        pdf_canvas.showPage()
        pdf_canvas.setFont("Helvetica", 10)
        y = 750

# Save the PDF
pdf_canvas.save()

file_path
Editor is loading...
Leave a Comment