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
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
13 changed files with 447 additions and 140 deletions
-
140.gitignore
-
22Dockerfile
-
39app.py
-
16docker-compose.yml
-
318logs/pdf_to_word.log
-
BINoutputs/np11.docx
-
BINoutputs/~$np11.docx
-
46pdf_to_word.py
-
6requirements.txt
-
BINtessdata/.DS_Store
-
BINtessdata/eng.traineddata
-
BINtessdata/fas.traineddata
-
BINuploads/np11.pdf
@ -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/ |
|
||||
|
|
@ -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"] |
||||
|
|
@ -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) |
||||
|
|
@ -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 |
@ -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 - |
Binary file not shown.
Binary file not shown.
@ -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 |
||||
|
|
@ -0,0 +1,6 @@ |
|||||
|
Flask |
||||
|
pdf2image |
||||
|
pytesseract |
||||
|
Pillow |
||||
|
python-docx |
||||
|
tqdm |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Write
Preview
Loading…
Cancel
Save
Reference in new issue