Browse Source

feat: Add Dockerfile, app.py, docker-compose.yml, pdf_to_word.py, and requirements.txt- Add Dockerfile for setting up a Python environment- Add app.py for a Flask application to upload PDF files- Add docker-compose.yml for containerizing the Flask app- Add pdf_to_word.py for converting PDF to Word using pytesseract- Add requirements.txt with necessary dependencies

main
Mam Thenebo 8 months ago
parent
commit
976f17f6b8
  1. 140
      .gitignore
  2. 22
      Dockerfile
  3. 39
      app.py
  4. 16
      docker-compose.yml
  5. 318
      logs/pdf_to_word.log
  6. BIN
      outputs/np11.docx
  7. BIN
      outputs/~$np11.docx
  8. 46
      pdf_to_word.py
  9. 6
      requirements.txt
  10. BIN
      tessdata/.DS_Store
  11. BIN
      tessdata/eng.traineddata
  12. BIN
      tessdata/fas.traineddata
  13. BIN
      uploads/np11.pdf

140
.gitignore

@ -1,140 +0,0 @@
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/

22
Dockerfile

@ -0,0 +1,22 @@
FROM python:3.10
# Set the working directory in the container
WORKDIR /app
# Install poppler-utils for pdf2image
RUN apt-get update && apt-get install -y poppler-utils \
&& apt-get -y install tesseract-ocr
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
CMD ["python", "app.py"]

39
app.py

@ -0,0 +1,39 @@
from flask import Flask, request, send_from_directory, abort
import os
from pdf_to_word import pdf_to_word
import logging
# Configure logging
logging.basicConfig(level=logging.DEBUG, filename='/app/logs/app.log', filemode='w',
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
app = Flask(__name__)
UPLOAD_FOLDER = '/app/uploads'
OUTPUT_FOLDER = '/app/outputs'
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
if not os.path.exists(OUTPUT_FOLDER):
os.makedirs(OUTPUT_FOLDER)
@app.route('/upload-pdf', methods=['POST'])
def upload_pdf():
file = request.files['file']
if file and file.filename.endswith('.pdf'):
pdf_path = os.path.join(UPLOAD_FOLDER, file.filename)
file.save(pdf_path)
logging.info(f'File uploaded and saved to {pdf_path}')
output_path = pdf_to_word(pdf_path, OUTPUT_FOLDER, lang='fas+eng')
if output_path:
logging.info(f'Sending file {output_path}')
return send_from_directory(OUTPUT_FOLDER, os.path.basename(output_path), as_attachment=True)
else:
logging.error('Conversion failed.')
abort(500, 'Conversion failed.')
else:
logging.warning('Invalid file type or no file uploaded.')
abort(400, 'Invalid file type or no file uploaded.')
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)

16
docker-compose.yml

@ -0,0 +1,16 @@
version: '3.8'
services:
pdf-converter:
build: .
ports:
- "4000:5000"
volumes:
- ./uploads:/app/uploads
- ./outputs:/app/outputs
- ./logs:/app/logs
environment:
- FLASK_ENV=development
- FLASK_APP=app.py
- TESSDATA_PREFIX=/app/tessdata

318
logs/pdf_to_word.log

@ -0,0 +1,318 @@
werkzeug - WARNING - * Debugger is active!
werkzeug - INFO - * Debugger PIN: 753-842-989
root - INFO - File uploaded and saved to /app/uploads/np11.pdf
root - INFO - Starting conversion for /app/uploads/np11.pdf
root - INFO - Converted PDF to images, number of pages: 4
root - DEBUG - Extracted text from page 1
root - INFO -
------Page 1------
Van Aarsen
ماشین‌های پلت مدل ‎C‏ و ‎CU‏
نسل جدید ماشین‌های پلت
علاوه بر ماشین پلت ‎LC Joe‏ که امتحان خود را در صنعت خوراک پس داده است. شرکت ‎5B‏ آرسن به‌انازگی مدل جدیدی از ماشین‌های پلت را با
عنوان ‎CU‏ معرفی نموده است:ماشین مدل ‎CU‏ که دارای آخرین تکنولوزی :در ‎die‏ پلت‌سازی می‌باشد:در دو نوع ‎aly‏ وادینامیکی ارائه: شده است:
نوع دینامیکی ماشین مدل لاح مجهز به تنظیم‌گر غلتک موتوری و کنترل کننده‌ی فعال لغزش غلتک می‌باشد. طراحی مستحکم تنظیم گر غلتک
موتوری به اپراتور این امکان را می‌دهد. تا حتی در زمان کار دستگاه به سادگی فاصله‌ی دلخواه بین غلتک و دای را انتخاب نماید. این سیستم
همراه با نرم افزار هوشمند ‎wot‏ مزایای زیادی را در فرایند ساخت و برنامه‌های تعمیر و نگهداری ارائه می‌کند.
یکی از این مزایاء افزایش طول عمر دای و غلتک به میزان ۳۰۹۵ است. با ایجاد ارتباط بین پیچ دوزینگ و ‎(SHE‏ زمانی که ماشین پلت تولید نداردء
غلتک به عقب کشیده می‌شود. این سیستم» مجهز به یک گزینه‌ی حالت تمیزکاری دای می‌باشد که اپراتور را قادر می‌سازد پس از ساخت هر @
دای را تمیز نماید. این امر ‎wile‏ از کلوخه شدن مواد در سطح داخلی دای شده و در نتیجه پس از هر توقف, دستگاه به سرعت به فرایند تولید باز
می‌گردد.
کنترل کننده‌ی فعال لغزش غلتک. سیستمی هوشمند می‌باشد که به منظور بهینه‌سازی سرعت تولید ماشین پلت طراحی شده است. این سیستم
با شناسایی حرکت لغزشی غلتک به صورت خودکار فعال شده و مانع از خاموشی دستگاه به علت بروز لغزش در غلتک می گردد.
۹ ارس ‌ژی_وارصوفضی
‎W‏
هدف ما سلامتی
نماینده انحصاری در ابران
‎www.ParsJivarSoufi.com‏
‎PJS@ParsSoufi.com‏
تلفن: ۰ ۸۸۰۶۴۴۲۶-۸
فکس : ۵
------*------
root - DEBUG - Extracted text from page 2
root - INFO -
------Page 2------
کْوْع»
VanAarsen
پلت‌های خوراک دام پس از طی پروسه‌ی آسیاب. مخلوط کردن و فرآوری پخت مواد ‎adsl‏ (کاندیشنینگ»» با قطر و
سختی‌های مختلف تولید می‌شوند. ماشین‌های پلت مدل ۴ و لاح فن آرسن قابلیت تولید خوراک تا ظرفیت ۶۰ تن
بر ساعت را با توجه به پارامترهای مختلف دارا می‌باشد. هزینه‌های عملیاتی این دستگاه‌ها که ‎Joli‏ هزینه‌های دای
غلتک و قطعات در معرض سایش بوده بسیار اندک می‌باشد و می‌تواند تا مقدار یک یورو به ازای هر تن کاهش ‎ab‏
‏مدل‌ها
‎as Lon is . nes lock cd .C600 (£500‏
‎CU900 «ass CU750‏ پایه و ‎CU900XL‏ 4 امکان ساخت ‎pled‏ بخش‌های در تماس با محصول از جنس استیل ضد زنگ
‏ویزگی ها ومزایا ‎ried‏ استیل - ‎(5S‏ = اختباری
‏4 سیستم انتقال قدرت دو مرحله‌ای که امکان به کارگیری سوعت‌های مختلف را با
‏یک موتور فراهم می‌کند
4 تنظیم هیدرولیک غلتک (اختیاری) برای انعطاف پذیری بیشتر و تنظیمات دقیق
‏فرمول مبتنی بر دستورالعمل
‎ry 4‏ با کیفیت خوب پات
‏4 سطح موثر بزرگ دای برای به حداکثر رساندن ظرفیت تولید
۸ و ی ریک سگم یرای پا و رساندن ظرفیت تولید
‏ظرفیت ‎gon ۹/۳ GE guration oo‏ بر ‎oi wal‏ د کات هام امه ‎us‏ ۴ ا ی
4 دارای قاب - بلیت کنتر ل‌ف رکانس موتور برای تن تنظیم سرعت براساس دستورالعمل محصول ‎ig b‏ ۹ > 2 ۱ (حداکثر ‎Eo pai al a pl‏
ه. وجود مسیر فرعی در ورودی به منظور جلوگیری از اعمال بار اضافی به دررنگاه ‏ 4 امگان تنظیم میزان چربی ‎SL‏ اختیاری :
۵5 فرع در موارد ترلید ام ‎ie don‏ ۶.۷ ۱ ۱.7 4 بهبود خواص فیزیکی (سختی و پایداری) و شیمیایی (ژلاتینه کردن» حذف میکروب‌های
» وجود مسیر فرعی در موارد تولید مش 63512( شده به منظور بازگردانی آن 1 ۹ ۹ ‎i‏ 1 ”=
به چرخه‌ی ‎Ji‏ ال ‎ok‏ = بیماری زا 9 پلت‌هاء با ایجاد تناسب بین دستورالعمل خوراک 9 ساختار دای
۱ امکان پذیر می‌باشد.
‎ed 4‏ بالای ماس و وجوه یگ نمایش ۲ اینچی در 4 امکان اضافه نمودن سیستم پاشش مایعات ‎(cascade liquid coater)‏ روی پلت‌های
‏کنترل اپراتور (صفحه نمایش ‎۹٩‏ اینچیسه اختیاری)
4 امکان مشاهده‌ی این صفحه بر روی یک کامپیوتر در اتاق اپراتور وایا ‎Es)‏ و
4 امکان مشاهده‌ی تغییرات پارامترهای ختلف مانان پار دستگاه» ‎J cles‏ 4 امکان ایزوله ‎oF‏ و ‎L‏ حرارت‌دهی درب دستگاه برای تولید بهداشتی سه اختیاری
ظرفیت دستگاه و ثبت آن‌ها در طول زمان 4 سیستم هوای داغ بهداشتی برای جلوگیری از چگالش و خشک کردن سریع محصولات
پس از تولید سسه اختیاری
‏داغ سه اختیاری
‏4 رو اسان وی ترا هی مان انیت ‎BE‏
‏4 . کاهش زمان ‎i‏ تسیر وتگهداری بهدلبل ساختا, مستحکم دستگاه 4 طراحی ارگونومیک و کم جاگیر همراه با یک بالابر یکپارچه. جهت تعویض دای
4 روانکاری خودکار یاتاقان‌های غلتشی و بیرینگ‌های شفت اصلی « بالابر موتوری برای دای و غلتک‌ها (برای مدل‌های ‎CU750 «£750 £600 (C500‏
» سیستم تعویض و جایگذاری سریع دای (زمان تقریبی تعویض دای» ۲۵ دقیقه ‎mn‏ به صورت اختیاری و برای مدل‌های ‎C900XL CU9OOXL ۴1900 C900‏
می‌باشد) به صورت استاندارد)
4 تکیه‌گاه مخروطی دای به همراه حلقه‌ی نگهدارنده‌ی مقاوم به سایش 4 دسترسی آسان و ایمن از طریق درب بزرگ دستگاه
طراحی و عمر بالا 4 وجود جعبه ابزار برای تعویض ‎lol‏ دای و غلتک‌ها
4 نگهدارنده‌ی دای به همراه تکیه‌گاه حلقه‌ای مقاوم به سایش 4 وجود دستگاه چرخش ‎wal‏ بر روی نگهدارنده‌ی ‎ls‏ برای تعویض و جایگذاری
4 وجود آهنربا در قیف ورودی برای حفاظت از دستگاه اسان و صحیح دای سم اختیاری
4 وجود یک پین که در حالت بیش‌بار» شکسته شده و با قطع جریان مانع از 4 وجود عایق صدا برای دستگاه
بروز آسیب به اجزای دستگاه ‎go‏ شود. 4 طراحی و ساخت دستگاه منطبق بر استانداردهای ایمنی ‎CE‏ و ‎ATEX‏
‏طراحی مستحکم و استفاده از مواد باکیفیت در ساخت
4 وجود بیرینگ‌های مستحکم همراه با شفت فورج شده
‎of‏ درب ساخته شده از جنس استیل ضد زنگ (استنلس استیل- 55) به منظور
رد ‎lam sl‏ خوردگی و به حداقل رساندن آلودگی
‏4 اطلاعات ارائه‌شده در این سند.ء هیچ‌گونه حقی را برای خربدار آبچاد نمی‌کند. توضیحات ۳۳
------*------
root - DEBUG - Extracted text from page 3
root - INFO -
------Page 3------
VanAarsen
3ینامیکی علاوه بر ویژگی‌های دستگاه‌های ‎wl CU 3 C Joe‏ دارای مزایای ‎Jd‏ می‌باشد:
تنظیم گر غلتک موتوری: این تجهیز امکان کاربری آسان دستگاه را به همراه سایش کمتر در دای و غلتک‌ها فراهم کرده
و شرایط فرآوری را برای هر دستورالعمل,ء متناسب با نوع محصول بهینه می‌سازد.
‎e‏ کنترل کننده‌ی فعال لغزش غلتک: این سیستم» فرآیندی بدون دردسر را در ساخت پلت فراهم آورده و امکان بهینه سازی
فرآیند تولید برای تمامی دستورالعمل‌ها را مهیا می‌نماید.
‏عملکرد بهینه‌ی مدل ‎CU‏ دینامیکی: حداقل نیروی انسانی و کمترین هزینه‌های عملیاتی
‏مدل‌ها
‎CU750‏ دینامیکی. 900 دینامیکی و )(900ا دینامیکی
ویژگی‌ها و مزایا ربری آسان و ایمن ۱
ظرفیت بالا 4 افزایش ‎cols,‏ اپراتور و کاربری آسان
‎of‏ اسیستم فعال تشخیص لغش غلتکء ‎dy‏ صورت خودکار ‎pile‏ از بروز انسداد @ اعلام هشدار در زمان نیاز به صفر کردن فاصله‌ی بین غلتک‌ها
‏در دای و کاهش زمان اتلافی ناشی از وقغفه در فرآیند می‌شود. @ اعلام هشدار در زمان نیاز به تنظیم یکی از غلتک‌ها
قابلیت شناسایی بروز لغش فر هریک از غلتک‌ها: @ ‎Ll‏ هدفمند مشکلات دستگاه در زمان بروز خطا. دلایل بروز خطا به
@ پس: از شناسایی لغزش, غلنک‌ها به سمت یکدیگر حرکت کرده» به. تنظیم سرعت مشخص شده و روشی برای حل ارائه می‌شود.
اولیه برگشته و به:اپراتور اطلاع داده می شود عدم ن نیاز به باز ز کردن دستگاه برای رفع مشکلات ‎Of‏
‏@ در حالت بروز مداوم لغزش» ورود محصول متوقف و به اپراتور هشدار داده می‌شود. نش
4 این سیستم مجهزبه یک گزینه‌ی ‎Cl‏ تمیزکاری دای می‌باشد که اپراتور 4 سیستم تنظیم غلتک مکانیکی از قطعات مکانیکی مستحکمی تشکیل شده
را قادر می‌سازدپس از ساخت هر بچء دای را تمیز تماید. این امر مانع از کلوخه است و امکان بروز آسیب را به حداقل می‌رساند.
شدن مواد در سطح داخلی دای شده و در نتیجه پس از هر ‎(By‏ دستگاه به تمام اجزای سیستم تنظیم غلتک. دارای پوشش آسان تمیزشو بوده که این
سرعت به فرآیند تولید باز می گردد. امر خطر انتقال آلودگی بین بچ‌های مختلف و نیز زمان تمیزکاری را کاهش
‏4 تنظیم دقیق غلتک‌هاء برای رسیدن به بهترین فاصله‌ی ممکن بین آن‌ها برای
هر دستورالعمل و تنظیمات بهینه به منظور دستیابی به کیفیت مطلوب پلت
‏4 ۳ فعال لغزش غلتک این امکان را به اپراتور می‌دهد تا به صورت
بی بهثرین فاصله‌ی غلنک‌ها و میزان افزودن بخار به خوراک را به‌منظور
‏دی ‎SS‏ خوراک و بازده تولید,به :دست آورد. ایراتورها: می توانتد. با
‏اطمینان از عملکرد این سیستم» تاثیر سایر عوامل را در بهینه‌سازی تولید
بررسی نمایند.
‏تعویض سریع دای به دلیل وجود سیستم تنظیم خودکار غلتک در زمان تعمیر
« افزایش طول ‎A‏ و غلتک‌ها به میزان ۳۰۹۵ به ‎Jodo‏ عدم تماس مستقیم
فلز با فلز در زمان راه‌اندازی دستگاه
کاهش زمان تمیزکاری به دلیل وجود پوشش آسان تمیز شو در تمامی قطعات
تنظیم غلتک 3 ‎VE WinVNC‏
‎Van Aarsen EH 5
7۲ Ee ng ng [reg Venn 7
‎ROLL ADJUSTMENT:
‎Go to zero [T]
Go to maximum gap [T]
Start zeroing [T]
Disable high speed [T]
Automatic slip prevention
Start cleaning mode 11
‎A 3
‎[4] nm]
Ea mm
‏لا لا لا لا ‎OR‏
‏4 اطلاعات ارائه‌شده در این ‎aie‏ هیچ‌گونه حقی را برای خربدار ‎dl!‏ نمی‌کند. توضیحات و تصاو
------*------
root - DEBUG - Extracted text from page 4
root - INFO -
------Page 4------
غلتک‌ها تعداد
قطر میلی‌متر
موتور اصلی
‎ 50Hz-1500rpm‏ کیلووات
‎ 60Hz-1800rpm‏ کیلووات
وزن ‎(Seals Slab‏ کیلوگرم
۱
۳ ~~
مدل
C500
C600
CU750 - C750
CU900 - C900
C900XL — CU900XL
مدل
C500
C600
CU750 - C750
CU900 - C900
C900XL — CU900XL
C500
0
۱۹۰
۳۹۸۵
۴/۷-۶/ ۰-۷
۵/۶۷/۲۰
3/7
۸۶-۱۰۳۶
۴۶۰۰۳۰
Y
۳۳۰
ابعاد بر حسب میلی‌متر
‎B A‏
‎VA. ۱۷۳۷۴‏
‎AYO ۱۵۲‏
۳۵۰ ۳۰۵
۵۰ ۲۴۵۷
۲۱۳/۰
ابعاد بر حسب میلی‌متر
‎K‏ ۳
‎yay ۹۵‏
‎Yo‏ ۱۸۷
‎Yor‏ ۱۹۲
۳۳۵
۰
۳۳
۴/۹۶/۲۴
۵/۹۵
۲
۳۸۵
۱۶۰
۱۱۰-۱۳۳۲-
۱۳۶۵۳۲
۵۶۰
که
VanAarsen
CU900XL CuU900 CU750
qe. qe. ۷۵۰
۳۳۵ ۱۷۵-۲۲۵-۵ ۳۵۰
۹0 ۴۹۵۰-۶۳۶۰۵ OAR
۷/۰-/۴-۴ ۴/۹۷ -۵/۳-۶/۷-۷/۰-0/ ۳۴-۹ /۴ ۰۰۰ ‏۲/عم/۵/۱-۵‎ ۷
۶/۴-۷/۱-۸/۰-۵ ۶/۴-۷/۱-۸/۰-۵ ۳/۴
۲ ۲ ۲
۴۳۵ ۴۳۵ ۳۶۰
۳۱۵-۳۵۵-۰ ۲۰۰۰-۲۵۰-۳۱۵۵ ۱۳۲-۱۶۰۲۰۰۵۰
۲۸۵-۳۶۰ -۵ ۳۲۳۸-۲۳۸۵۳۶۰ ۱۵۲-۱۸۴۰
۱۱۳۵۰ -۰ ۱۳۵ ۷۶۴۵-۰۰
1
‏اک‎ 1 LC
I ۹
) |
J I H G ۳
۱۳ ۱۳۰۰ ۱۰۶۰ ۱۴۰ ۱۳۰
۱۳۵ ۱۳۰۰ ۱۱۶۰ ۱۴۰ Vo.
N52. ۱۵۰ YY. ۰ ۱۳۶۵۰
YAY. ۱۷۰۰ ۱۳۸۰ ۳ Vero
VAY. ۱۷۰۰ YEA. ۳۳۰ ‏م۳۰‎
T S R Q P
BY. ۱۹۶۶ ۱ ۵۵ YY. ۶
3 Yeo Ye ۶
‏نما‎ | Yee Yr. ۶
ارس ژی_وارصوفضی
هدف ما سلامتی
نماینده انحصاری در ابران
‎www.ParsJivarSoufi.com‏
‎PJS@ParsSoufi.com‏
تلفن :
فکس :
۸۸۰۶۴۴۲۶-۸
۵
------*------
root - INFO - Document saved to /app/outputs/np11.docx
root - INFO - Sending file /app/outputs/np11.docx
werkzeug - INFO - 172.29.0.1 - - [14/Apr/2024 17:28:51] "POST /upload-pdf HTTP/1.1" 200 -

BIN
outputs/np11.docx

Binary file not shown.

BIN
outputs/~$np11.docx

Binary file not shown.

46
pdf_to_word.py

@ -0,0 +1,46 @@
import logging
from pdf2image import convert_from_path
import pytesseract
from PIL import Image
import tempfile
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
import os
# Configure logging
logging.basicConfig(level=logging.DEBUG, filename='/app/logs/pdf_to_word.log', filemode='w',
format='%(name)s - %(levelname)s - %(message)s')
def pdf_to_word(pdf_path, output_dir, lang='eng+fas'):
pdf_name = os.path.basename(pdf_path).split('.')[0]
output_path = os.path.join(output_dir, f'{pdf_name}.docx')
logging.info(f'Starting conversion for {pdf_path}')
try:
pages = convert_from_path(pdf_path, 300)
logging.info(f'Converted PDF to images, number of pages: {len(pages)}')
document = Document()
document.add_heading('Document Title', 0)
for i, page in enumerate(pages):
with tempfile.NamedTemporaryFile(delete=False, suffix='.jpg') as temp_image:
page.save(temp_image.name, 'JPEG')
text = pytesseract.image_to_string(Image.open(temp_image.name), lang=lang, config='--psm 6')
logging.debug(f'Extracted text from page {i+1}')
heading = document.add_heading(f'Page {i+1}', level=1)
heading.alignment = WD_ALIGN_PARAGRAPH.RIGHT
paragraph = document.add_paragraph(text)
paragraph.alignment = WD_ALIGN_PARAGRAPH.RIGHT
logging.info("\n------"+f'Page {i+1}'+"------\n"+text+"\n------*------\n")
os.unlink(temp_image.name)
document.save(output_path)
logging.info(f'Document saved to {output_path}')
return output_path
except Exception as e:
logging.error(f'An error occurred: {e}', exc_info=True)
return None

6
requirements.txt

@ -0,0 +1,6 @@
Flask
pdf2image
pytesseract
Pillow
python-docx
tqdm

BIN
tessdata/.DS_Store

Binary file not shown.

BIN
tessdata/eng.traineddata

Binary file not shown.

BIN
tessdata/fas.traineddata

Binary file not shown.

BIN
uploads/np11.pdf

Binary file not shown.
Loading…
Cancel
Save