first commit

This commit is contained in:
leejunho 2023-08-04 15:22:05 +09:00
commit d0a75259ad
7 changed files with 170 additions and 0 deletions

61
HWPToPDF.py Normal file
View File

@ -0,0 +1,61 @@
from flask import request
import os
import win32com.client
import pythoncom
from PDFToJPG import converPDFToJPG
class converHWPtoPDF():
def HWPtoPDF(fileNm):
pythoncom.CoInitialize()
hwp_path = "E:/data"
hwp_fileNm = fileNm
pdf_path = "E:/pdf"
try:
os.mkdir("E:/data")
except:
pass
try:
os.mkdir(pdf_path)
except:
pass
# load hwp api
hwp = win32com.client.gencache.EnsureDispatch('HWPFrame.HwpObject')
hwp.RegisterModule('FilePathCheckDLL', 'FilePathCheckerModule')
# file_list = [f for f in os.listdir(hwp_path) if re.match('.*[.]hwp', f)]
# for file in file_list:
# file = os.listdir(hwp_path)
# pre, ext = os.path.splitext(file)
src = f'{hwp_path}/{hwp_fileNm}'
oriFileNm = hwp_fileNm.replace('.hwp','')
dst = f'{pdf_path}/{oriFileNm + ".pdf"}'
# open hwp file
hwp.Open(src)
# set save filename
hwp.HParameterSet.HFileOpenSave.filename = dst
# hwp.HParameterSet.HFileOpenSave.PrintMethod = '0'
# set save format to "pdf"
hwp.HParameterSet.HFileOpenSave.Format = "PDF"
# hwp.HParameterSet.HPrint.PrintMethod = f'PrintType("Nomal")';
# hwp.HAction.GetDefault("Print", hwp.HParameterSet.HPrint.HSet)
# hwp.HParameterSet.HPrint.PrintMethod = "0"
# hwp.HAction.Execute("Print", hwp.HParameterSet.HPrint.HSet)
# save
hwp.HAction.Execute("FileSaveAs_S", hwp.HParameterSet.HFileOpenSave.HSet)
print(f'convert {src} to {dst}')
hwp.Quit()
pythoncom.CoUninitialize()
return dst

10
PDFToJPG.py Normal file
View File

@ -0,0 +1,10 @@
import os
from contextlib import suppress
from pdf2jpg import pdf2jpg
class converPDFToJPG():
def PDFToJPG(file):
#파라미터로 pdf 파일의 절대경로를 받는다.
dest = "E:/jpg"
pdf2jpg.convert_pdf2jpg(file, dest, dpi = 300, pages ='ALL')
#pdf가 여러 장으로 되어있다면 모든 장을 jpg로 바꾼다.

Binary file not shown.

Binary file not shown.

Binary file not shown.

76
app.py Normal file
View File

@ -0,0 +1,76 @@
from flask import Flask, request, send_file
from flask_restful import Api
from flask.views import MethodView
from HWPToPDF import converHWPtoPDF
from PDFToJPG import converPDFToJPG
from reqeustFile import RequestFileSave
from werkzeug.utils import secure_filename
from urllib import parse
import os
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
api = Api(app)
class processingHWPtoPDF(MethodView):
def post(self):
if 'file' not in request.files:
return 'No file part in the request', 400
file = request.files['file']
print(f'fileNm {file.filename}')
step1 = RequestFileSave.RequestFileSave(file)
print(f'step1 {step1}')
return send_file(converHWPtoPDF.HWPtoPDF(step1), mimetype="multipart/form-data", as_attachment=True)
class processingHWPtoJPG(MethodView):
def post(self):
fileNm = request.form['fileNm']
print(f'fileNm {fileNm}')
converPDFToJPG.PDFToJPG(converHWPtoPDF.HWPtoPDF(fileNm))
return 'hello'
class testSendFile(MethodView):
def get(self):
# data = request.form['testPath']
# returnData = data.get('testPath')
filePath = "E:/pdf/test.pdf"
return send_file(filePath, mimetype="Content-Type: multipart/form-data; charset=UTF-8", as_attachment=True)
# class RequestFile(MethodView):
# def post(self):
# RequestFileSave.RequestFileSave(request.files['file'])
# return ''
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
api.add_resource(processingHWPtoPDF, '/converHWPtoPDF')
api.add_resource(processingHWPtoJPG, '/converHWPtoJPG')
api.add_resource(testSendFile, '/testSendFile')
# api.add_resource(RequestFile, '/testRequestFile')
if __name__ == '__main__':
app.run(host='0.0.0.0')
# app.run(host='192.168.0.11')

23
reqeustFile.py Normal file
View File

@ -0,0 +1,23 @@
from werkzeug.utils import secure_filename
from urllib.parse import unquote
import os
class RequestFileSave():
def RequestFileSave(file):
# 클라이언트가 파일을 선택하지 않고 제출한 경우를 확인
if file.filename == '':
return 'No selected file', 400
# 파일이 존재하면, 안전한 파일 이름을 얻고 파일을 저장
if file:
# filename = secure_filename(file.filename)
fileNm = unquote(file.filename)
file.save(os.path.join('E:/data', fileNm))
# return 'File uploaded successfully', 200
return fileNm
return fileNm