aliceblue11 commited on
Commit
06fee00
·
verified ·
1 Parent(s): de420f7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -144
app.py CHANGED
@@ -1,108 +1,4 @@
1
- gr.Markdown("""
2
- ### 사용 방법
3
- 1. 메모장에서 폰트 파일명을 한 줄에 하나씩 입력
4
- 2. txt 파일로 저장 후 업로드
5
- 3. 분석 결과 확인 및 엑셀 다운로드
6
-
7
- **예시 파일 내용:**
8
- ```
9
- NanumGothic.ttf
10
- Pretendard-Regular.otf
11
- BMDOHYEON_ttf.ttf
12
- ```
13
- """)
14
-
15
- with gr.Column(scale=2):
16
- gr.Markdown("## 📊 분석 결과")
17
-
18
- summary_output = gr.Markdown("파일을 업로드하세요.")
19
-
20
- result_table = gr.Dataframe(
21
- headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"],
22
- label="폰트 라이선스 정보",
23
- column_widths=["15%", "12%", "15%", "10%", "8%", "8%", "12%", "20%", "20%"],
24
- interactive=True
25
- )
26
-
27
- excel_download = gr.File(label="📥 엑셀 다운로드", visible=False)
28
-
29
- with gr.Accordion("📋 샘플 결과", open=False):
30
- sample_data = [
31
- ["NanumGothic.ttf", "나눔고딕", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "네이버", "https://hangeul.naver.com/2017/nanum", "OFL 1.1 라이선스로 상업적 사용 자유, 출처 표시 불필요"],
32
- ["Pretendard-Regular.otf", "프리텐다드", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "Kil Hyung-jin", "https://github.com/orioncactus/pretendard", "OFL 1.1 라이선스로 상업적 사용 자유, 출처 표시 불필요"],
33
- ["YoonGothic.ttf", "윤고딕", "상업적 라이선스 필요", "❌ 유료", "해당없음", "라이선스에 따라", "윤디자인그룹", "https://www.yoondesign.com", "개인 사용만 무료, 상업적 사용 시 유료 라이선스 구매 필요"],
34
- ["KoPubWorldDotum.ttf", "KoPubWorld돋움체", "공공누리 제1유형", "✅ 가능", "필요", "가능", "한국출판인쇄문화협회", "http://www.kopus.org/biz/electronic/font.aspx", "공공누리 제1유형: 출처표시 조건으로 자유이용 가능"]
35
- ]
36
-
37
- gr.Dataframe(
38
- value=sample_data,
39
- headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"],
40
- column_widths=["15%", "12%", "15%", "10%", "8%", "8%", "12%", "20%", "20%"]
41
- )
42
-
43
- with gr.Accordion("ℹ️ 라이선스 유형 설명", open=False):
44
- gr.Markdown("""
45
- ### 주요 라이선스 유형 (재검증됨)
46
-
47
- **✅ SIL OFL 1.1 (Open Font License)**
48
- - 상업적 사용: 완전 자유
49
- - 출처 표시: 불필요
50
- - 수정/재배포: 가능
51
- - 웹폰트 사용: 가능
52
-
53
- **✅ 커스텀 무료 라이선스**
54
- - 각 제작사별 고유 조건
55
- - 대부분 상업적 사용 가능
56
- - 일부 제한사항 존재 (BI 사용 금지 등)
57
-
58
- **✅ 공공누리 제1유형**
59
- - 공공기관에서 제작한 폰트
60
- - 출처표시 조건으로 자유이용 가능
61
- - 상업적 사용 가능
62
-
63
- **❌ 상업적 라이선스 필요**
64
- - 개인 사용: 무료
65
- - 상업적 사용: 유료 라이선스 구매 필요
66
- - 주로 전문 폰트 제작사 폰트들
67
-
68
- **❓ 확인 필요**
69
- - 데이터베이스에 정보가 없는 폰트
70
- - 제작사 공식 사이트에서 직접 확인 필요
71
- """)
72
-
73
- gr.Markdown("""
74
- ### ⚠️ 안내사항
75
- - 참고용 도구입니다. 상업적 사용 전 공def create_app():
76
- with gr.Blocks(title="한국어 폰트 라이선스 분석기") as app:
77
-
78
- gr.Markdown("""
79
- # 🔍 한국어 폰트 라이선스 분석기
80
-
81
- **폰트 목록을 업로드하면 라이선스 정보를 분석하여 엑셀로 제공합니다!**
82
- """)
83
-
84
- with gr.Row():
85
- with gr.Column(scale=1):
86
- gr.Markdown("## 📁 폰트 목록 파일 업로드")
87
-
88
- file_input = gr.File(
89
- label="폰트 목록 텍스트 파일 (.txt)",
90
- file_types=[".txt"]
91
- )
92
-
93
- analyze_btn = gr.Button("🔍 라이선스 분석 시작", variant="primary")
94
-
95
- gr.Markdown("""
96
- ### 사용 방법
97
- 1. 메모장에서 폰트 파일명을 한 줄에 하나씩 입력
98
- 2. txt 파일로 저장 후 업로드
99
- 3. 분석 결과 확인 및 엑셀 다운로드
100
-
101
- **예시 파일 내용:**
102
- ```
103
- NanumGothic.ttf
104
- Pretendard-Regular.otf
105
- BMDOHYEON_ttimport gradio as gr
106
  import pandas as pd
107
  import io
108
  import re
@@ -617,57 +513,48 @@ def create_app():
617
 
618
  result_table = gr.Dataframe(
619
  headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"],
620
- label="폰트 라이선스 정보"
 
 
621
  )
622
 
623
  excel_download = gr.File(label="📥 엑셀 다운로드", visible=False)
624
 
625
  with gr.Accordion("📋 샘플 결과", open=False):
626
  sample_data = [
627
- ["NanumGothic.ttf", "나눔고딕", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "네이버", "https://hangeul.naver.com/2017/nanum", "웹폰트 사용 가능"],
628
- ["Pretendard-Regular.otf", "Pretendard", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "Kil Hyung-jin", "https://github.com/orioncactus/pretendard", "시스템 UI 최적화"],
629
- ["YoonGothic.ttf", "윤고딕", "상업적 라이선스 필요", "❌ 유료", "해당없음", "라이선스에 따라", "윤디자인그룹", "https://www.yoondesign.com", "개인 사용만 무료"]
 
630
  ]
631
 
632
  gr.Dataframe(
633
  value=sample_data,
634
- headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"]
 
635
  )
636
 
637
- gr.Markdown("""
638
- ### ⚠️ 안내사항
639
- - 참고용 도구입니다. 상업적 사용 전 공식 사이트에서 최종 확인하세요.
640
- - 총 80여개 한국어 폰트 정보를 제공합니다.
641
- """)
642
-
643
- def handle_analysis(file):
644
- if file is None:
645
- return "파일을 업로드해주세요.", None, gr.File(visible=False)
646
 
647
- df, summary, excel_file = process_font_file(file)
 
 
 
 
648
 
649
- if df is None:
650
- return summary, None, gr.File(visible=False)
 
 
651
 
652
- if excel_file:
653
- return summary, df, gr.File(value=excel_file, visible=True)
654
- else:
655
- return summary, df, gr.File(visible=False)
656
-
657
- analyze_btn.click(
658
- fn=handle_analysis,
659
- inputs=file_input,
660
- outputs=[summary_output, result_table, excel_download]
661
- )
662
-
663
- file_input.change(
664
- fn=handle_analysis,
665
- inputs=file_input,
666
- outputs=[summary_output, result_table, excel_download]
667
- )
668
-
669
- return app
670
-
671
- if __name__ == "__main__":
672
- app = create_app()
673
- app.launch()
 
1
+ import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  import pandas as pd
3
  import io
4
  import re
 
513
 
514
  result_table = gr.Dataframe(
515
  headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"],
516
+ label="폰트 라이선스 정보",
517
+ column_widths=["15%", "12%", "15%", "10%", "8%", "8%", "12%", "20%", "20%"],
518
+ interactive=True
519
  )
520
 
521
  excel_download = gr.File(label="📥 엑셀 다운로드", visible=False)
522
 
523
  with gr.Accordion("📋 샘플 결과", open=False):
524
  sample_data = [
525
+ ["NanumGothic.ttf", "나눔고딕", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "네이버", "https://hangeul.naver.com/2017/nanum", "OFL 1.1 라이선스로 상업적 사용 자유, 출처 표시 불필요"],
526
+ ["Pretendard-Regular.otf", "프리텐다드", "SIL OFL 1.1", "✅ 가능", "불필요", "가능", "Kil Hyung-jin", "https://github.com/orioncactus/pretendard", "OFL 1.1 라이선스로 상업적 사용 자유, 출처 표시 불필요"],
527
+ ["YoonGothic.ttf", "윤고딕", "상업적 라이선스 필요", "❌ 유료", "해당없음", "라이선스에 따라", "윤디자인그룹", "https://www.yoondesign.com", "개인 사용만 무료, 상업적 사용 시 유료 라이선스 구매 필요"],
528
+ ["KoPubWorldDotum.ttf", "KoPubWorld돋움체", "공공누리 제1유형", "✅ 가능", "필요", "가능", "한국출판인쇄문화협회", "http://www.kopus.org/biz/electronic/font.aspx", "공공누리 제1유형: 출처표시 조건으로 자유이용 가능"]
529
  ]
530
 
531
  gr.Dataframe(
532
  value=sample_data,
533
+ headers=["원본 파일명", "폰트명", "라이선스", "상업적 사용", "출처 표시", "수정 가능", "제공처", "제공처 URL", "비고"],
534
+ column_widths=["15%", "12%", "15%", "10%", "8%", "8%", "12%", "20%", "20%"]
535
  )
536
 
537
+ with gr.Accordion("ℹ️ 라이선스 유형 설명", open=False):
538
+ gr.Markdown("""
539
+ ### 주요 라이선스 유형 (재검증됨)
 
 
 
 
 
 
540
 
541
+ **✅ SIL OFL 1.1 (Open Font License)**
542
+ - 상업적 사용: 완전 자유
543
+ - 출처 표시: 불필요
544
+ - 수정/재배포: 가능
545
+ - 웹폰트 사용: 가능
546
 
547
+ **✅ 커스텀 무료 라이선스**
548
+ - 제작사별 고유 조건
549
+ - 대부분 상업적 사용 가능
550
+ - 일부 제한사항 존재 (BI 사용 금지 등)
551
 
552
+ **✅ 공공누리 제1유형**
553
+ - 공공기관에서 제작한 폰트
554
+ - 출처표시 조건으로 자유이용 가능
555
+ - 상업적 사용 가능
556
+
557
+ **❌ 상업적 라이선스 필요**
558
+ - 개인 사용: 무료
559
+ - 상업적 사용: 유료 라이선스 구매 필요
560
+ - 주로 전문 폰