Browse Source

major update

main
Mam Thenebo 8 months ago
parent
commit
fd8242d2e3
  1. BIN
      .DS_Store
  2. 24
      .dockerignore
  3. 5
      .gitignore
  4. 24
      Dockerfile
  5. 116
      app.py
  6. 0
      celery_worker.py
  7. 116
      converted.docx
  8. 10
      docker-compose.yml
  9. 6
      logs/app.log
  10. 366
      logs/pdf_to_word.log
  11. 76
      pdf_to_word.py
  12. 3
      requirements.txt
  13. 3
      response.json
  14. BIN
      uploads/sample_input.pdf

BIN
.DS_Store

Binary file not shown.

24
.dockerignore

@ -0,0 +1,24 @@
**/__pycache__
**/*.pyc
**/*.pyo
**/*.pyd
**/.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
**/.pytest_cache
**/.vscode
**/.idea
**/*.log

5
.gitignore

@ -0,0 +1,5 @@
uploads
callbacks
logs
outputs
.env

24
Dockerfile

@ -1,22 +1,26 @@
FROM python:3.10
# Use an official Python runtime as a parent image
FROM python:3.10-slim
# 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
# Install system dependencies
RUN apt-get update && apt-get install -y \
poppler-utils \
tesseract-ocr \
&& rm -rf /var/lib/apt/lists/*
# Copy only the files necessary for pip installations
COPY requirements.txt .
# Copy the current directory contents into the container at /app
COPY . /app
# Install Python dependencies
RUN pip install --upgrade pip && pip install -r requirements.txt watchdog
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
# Copy the rest of the application
COPY . .
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
# Run the app using Python directly
CMD ["python", "app.py"]

116
app.py

@ -1,39 +1,125 @@
from flask import Flask, request, send_from_directory, abort
from flask import Flask, request, send_from_directory, jsonify, abort
import os
from pdf_to_word import pdf_to_word
import logging
import requests
from pdf_to_word import pdf_to_word_txt, pdf_to_word_docx
from datetime import datetime
from threading import Thread
# Configure logging
logging.basicConfig(level=logging.DEBUG, filename='/app/logs/app.log', filemode='w',
# Set up logging
logging.basicConfig(level=logging.INFO, filename='/app/logs/app.log', filemode='w',
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Configure specific logger for potentially noisy libraries or modules
watchdog_logger = logging.getLogger('watchdog')
watchdog_logger.setLevel(logging.ERROR) # Show only errors from watchdog
app = Flask(__name__)
UPLOAD_FOLDER = '/app/uploads'
OUTPUT_FOLDER = '/app/outputs'
CALLBACK_FOLDER = '/app/callbacks'
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
if not os.path.exists(OUTPUT_FOLDER):
os.makedirs(OUTPUT_FOLDER)
if not os.path.exists(CALLBACK_FOLDER):
os.makedirs(CALLBACK_FOLDER)
def process_pdf_in_background(pdf_path, output_folder, callback_url=None):
try:
# Convert PDF to text (assuming you have a function that does this)
output_path = pdf_to_word_docx(pdf_path, output_folder)
if output_path and callback_url:
with open(output_path, 'rb') as f:
files = {'file': (os.path.basename(output_path), f)}
response = requests.post(callback_url, files=files)
response.raise_for_status()
except Exception as e:
logging.error(f'Background processing error: {e}', exc_info=True)
def start_background_task(target, *args):
thread = Thread(target=target, args=args)
thread.start()
@app.route('/upload-pdf', methods=['POST'])
def upload_pdf():
file = request.files['file']
callback_url = request.form.get('callback_url')
if file and file.filename.endswith('.pdf'):
pdf_path = os.path.join(UPLOAD_FOLDER, file.filename)
pdf_filename = os.path.splitext(file.filename)[0] + '_' + datetime.now().strftime("%Y%m%d_%H%M%S") + '.pdf'
pdf_path = os.path.join(UPLOAD_FOLDER, pdf_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)
logging.info(f'PDF uploaded and saved to {pdf_path}')
# Start the PDF processing in a background thread
start_background_task(process_pdf_in_background, pdf_path, OUTPUT_FOLDER, callback_url)
# Respond immediately
return jsonify({'message': 'File upload accepted, processing started'}), 202
else:
logging.error('Conversion failed.')
abort(500, 'Conversion failed.')
logging.warning('Invalid file upload attempt')
abort(400, 'Invalid file type or no file uploaded')
# @app.route('/upload-pdf', methods=['POST'])
# def upload_pdf():
# file = request.files['file']
# callback_url = request.form.get('callback_url')
# if file and file.filename.endswith('.pdf'):
# pdf_filename = os.path.splitext(file.filename)[0] + '_' + datetime.now().strftime("%Y%m%d_%H%M%S") + '.pdf'
# pdf_path = os.path.join(UPLOAD_FOLDER, pdf_filename)
# file.save(pdf_path)
# logging.info(f'PDF uploaded and saved to {pdf_path}')
# # Convert PDF to text
# #output_path = pdf_to_word_txt(pdf_path, OUTPUT_FOLDER)
# output_path = pdf_to_word_docx(pdf_path, OUTPUT_FOLDER)
# if output_path:
# logging.info(f'Text file created at {output_path}')
# if callback_url:
# try:
# with open(output_path, 'rb') as f:
# files = {'file': (os.path.basename(output_path), f)}
# response = requests.post(callback_url, files=files)
# response.raise_for_status() # Will raise an HTTPError for bad requests
# return jsonify({'message': 'File processed and sent successfully'}), 200
# except requests.exceptions.RequestException as e:
# logging.error(f'Failed to send file to callback URL: {e}')
# abort(500, 'Failed to send file to callback URL')
# else:
# return send_from_directory(OUTPUT_FOLDER, os.path.basename(output_path), as_attachment=True)
# else:
# logging.error('Failed to convert PDF')
# abort(500, 'Conversion failed')
# else:
# logging.warning('Invalid file upload attempt')
# abort(400, 'Invalid file type or no file uploaded')
@app.route('/callback', methods=['POST'])
def callback():
file = request.files['file']
if file:
filepath = os.path.join(CALLBACK_FOLDER, file.filename)
file.save(filepath)
logging.info(f'File received and saved at {filepath}')
return jsonify({'message': 'File received and saved successfully'}), 200
else:
logging.warning('Invalid file type or no file uploaded.')
abort(400, 'Invalid file type or no file uploaded.')
logging.error('No file received at callback')
abort(400, 'No file received')
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)

0
celery_worker.py

116
converted.docx

@ -0,0 +1,116 @@
9
9 که
‎[Cd‏
‎VanAarsen im joss f‏
هدف ساء ‎The vital link to your feed chain mst‏
‎p‏ : و : اس ۰ ۳
‎th, na " 7 8‏ -
‎re‏ 1 ۰ و مه
‎f ۰ i : = 9‏
از بخ و ی
اش ‎ok‏ رو
‎er AW Ed 4‏ ۱
‎J‏ ی 7 ‎A‏ ات ۸ ۱ : ام ۴۲ ۳
‎IE © x= 4 al 8‏
‎A‏ 3 و !22 ‎Li SE.‏ (
0 و \ 11 > ‎a > ۵ Ss ۸ : = “a‏ موم £
چگونگی افزایش بازده ‎Claw! aul yd‏ و کاهش هزینه‌های آن
در این مقاله به معرفی دستگاه آسیاب چکشی مدل ‎GD‏ شرکت فن آرسن باقابلیت سیستم تعویض خودکار الک
و کنترل فرکانس موتور پرداخته می‌شود. این دستگاه راه‌حلی ایده آل برای دستیابی به فرآیند آسیاب بهینه و
آسیاب‌های چکشی جهت آسیاب مواد اولیه خوراک دام به کار برده می‌شوند. مواد ‎adsl‏ وارد شده به دستگاه آسیاب
چکشی در برخورد با چکش‌های خردکن که با سرعت بالایی در حال چرخش هستند» به ذرات کوچک‌تری تبدیل
می‌شوند. بازده فرآیند آسیاب به متغیرهای مختلفی مانند نحوه طراحی صفحات 59,5( سرعت نوک چکش‌ها و
صفحات الک بستگی دارد.
شرکت فن آرسن آسیاب چکشی دارای صفحات خردکن را اولین بار ۶۵ سال پیش طراحی نمود. آسیاب‌های
چکشی جدید این شرکت به صفحات خردکن بزرگ‌تری در بخش بالایی محفظه آسیاب مجهز شده‌اند. این امر
منجر به افزایش دفعات برخورد ذرات به این صفحات می‌شود. امروزه این طراحی به‌عنوان یک روش بسیار مور
برای دستیابی به کیفیت بالا و آسیاب سریع محصولات در نظر گرفته می‌شود. ذرات با برخوردهای متعدد به
تلفشن: ۲۶-۸ ۶۶ ۰۶ ‎AN‏
‎ol pg‏ خیابان سید جمال ‎orl‏ اسد آبادی, خیابان هفتاد و دوم. پلاک ۰۲ واحد ۳ کدپستی: ۱۶۲۶۹۶۵۱۶۸ فاکس: ۵ ۰۶ ‎AN‏
> 9 ان
‎[Cg‏
‏سارس‌ژی_وارصوفسی ‎VanAarsen‏
‎sd‏ ما سلامتسی ‎The vital link to your feed chain‏
دستگاه خارج می‌شوند. این نوع از ‎bo hb‏ پیشگیری از چرخش ‎(Circulation)‏ ذرات خرد شده در داخل
محفظه دستگاه از کاهش بازده دستگاه و افزایش خاکه شدن محصول جلوگیری به عمل می‌آورد. عمر طولانی‌تر
صفحات الک و چکش‌ها از دیگر مزایای این دستگاه است.
اندازه و تعداد سوراخ‌های صفحات الک
و فضای باز (تعداد سوراخ‌ها) صفحات الک. تعیین کننده اندازه ‎(ld‏ ناهمگنی ذرات و ظرفیت دستگاه است.
هرچقدر که اندازه سوراخ‌های صفحات الک بزرگ‌تر ‎wil‏ محصول درشت‌تر خواهد بود و به هر میزان که ‎lad‏
‏باز ‎slows)‏ سوراخ‌ها) بیشتر باشد ظرفیت آسیاب افزایش می‌یاید.
علاوه بر اندازه سوراخ‌های صفحات الک. سرعت نوک چکش‌ها نیز در تعیین اندازه ذرات نقش مهمی دارد. سرعت
بیشتر چرخش نوک چکش‌ها یعنی اصابت بیشتر ذرات به صفحات خردکن و درنتیجه آسیاب بهتر محصولات.
سرعت کمتر نوک چکش‌ها منجر به آسیاب شدن ذرات در اندازه درشت‌تر می‌شود. در چنین شرایطی ظرفیت
آسیاب چکشی به میزان قابل‌توجهی کاهش می‌یابد. لازم به ذکر است که پارامتری به‌عنوان سرعت ایده آل برای
سرعت نوک چکش‌ها وجود ندارد؛ این سرعت باید بر مبنای نوع مواد ‎adsl‏ و محصول نهایی تنظیم شود. سرعت
چرخش نوک چکش‌ها می‌تواند توسط کنترل فرکانس موتور دستگاه تنظیم شود که این خود باعث بهبود فرآیند
آسیاب می‌شود.
انتخاب مناسب صفحات الک در استفاده مداوم و سرعت چرخش نوک چکش‌ها جهت افزایش کیفیت
محصول. کاهش زمان فرآیند آسیاب و مصرف کم انرژی
می‌توان با مدیریت دقیق در استفاده از چندین صفحه الک (با سایزهای سوراخ مختلف) به محصول با کیفیت بالا
به همراه افزایش سرعت ‎REA‏ آسیاب 9 مصرف کم انرژی دست یافت. شرکت فن آرسن سیستم تعویض خودکار
الک باقابلیت نگهداری ۳ مدل الک را پیشنهاد می‌دهد. با توجه به دستورالعمل خوراک. سیستم تعویض الک
به‌صورت خودکار صفحه الک مناسب را در داخل دستگاه آسیاب چکشی قرار می‌دهد؛ بنابراین زمان تعویض الک
از ۲۰ دقیقه به ۱ دقیقه کاهش می‌یابد. این امر موجب افزایش ظرفیت ‎ade‏ و ‎als‏ هزینه‌های نیروی کار
‎EE ۲۶-۸ —‏ ۰۶ ۸۸
9
‎Cd 9‏
‎CS‏
‏ارس‌ژی_وارصوفی ‎Van Aarsen‏
‎mt tl‏ سلامتشی ‎The vital link to your feed chain‏
می‌شود. برای انعطاف پذیری بیشترء امکان استفاده از یک سیستم تعویض خودکار صفحه الک همراه با یک
کنترل‌گر فرکانس که سرعت نوک چکش را تنظیم می‌کند.ء وجود دارد. با تنظیم سرعت نوک چکش متناسب با
صفحات ‎«SUI‏ امکان انتخاب تنظیمات ایده ‎JT‏ برای دستیابی به اندازه مناسب ذرات همراه با حفظ ظرفیت در حد
دلخواه و صرفه جویی در مصرف انرژی فراهم می‌گردد. مصرف انرژی آسیاب چکشی مدل ‎BD‏ شرکت فن آرسن
تقریباً برأبر ۷ کیلو ‎lg‏ ساعت بر تن است که این مقدار پایین یکی از ویژگی‌های این دستگاه محسوب می‌شود.
سریع‌تر و کاهش اندازه
۱ ۱ بالاتر پایین‌تر
ذرات موْثرتر
تعیین کننده اندازه ذرات و ۱ به منظور دستیابی به کیفیت و ظرفیت بهینه.
تغییرات ذرات صفحه الک و سرعت نوک چکش بایستی با هم
‎politi‏ پاشند,
هرچه سرعت نوک چکش
بیشتر ‎cal‏ اندازه ذرات در هنگام تولید دستورالعمل‌های متفاوت. بان +
‎Fowl‏
‏کوچک‌تر خواهد بود و با بالاترین ظرفیت ‎BB‏ دستیابی برای یک
کاهش سرعت. اندازه ذرات ۱ کیفیت مشخص با ترکیب سیستم تعویض
درشت‌تر خواهد شد. خودکار الک و سیستم کنترل سرعت نوک
چکش از طریق فرکانس ‎JB‏ دستیایی است.
طراحی هوشمند و هزینه تعمیر و نگهداری پایین
علاوه بر فاکتورهای ذکر شده» کیفیت و موقعیت قرارگیری چکش‌هاء دستگاه تغذیه و سیستم مکش هوا بر عملکرد
‎oll‏ چکشی تأثیرگذارند. به ‎Ls‏ طراحی هوشمند.ء آسیاب چکشی مدل ‎GD‏ در تمامی این ‎baie;‏ دارای
* یکی از ‎slo Shy‏ منحصربه‌فرد آسیاب‌های چکشی فن آرسن امکان چرخش يا تعویض سریع و آسان
تلفضن: ۲۶-۸ ‎EE‏ ۸۸۰۶
‎(ol us‏ خیابان سید جمال ‎(pall‏ اسد آبادی, ‎bla‏ هفتاد و دوم پلاک ۲. واحد ۳.کدپستی: ۱۶۳۶۹۶۵۱۶۸ فاکس: ۶۵ ۰۶ ‎AN‏
9 ۳۳
‎Cl‏
‏)مس ‎VanAarsen‏
‏هدف ساء سلامتشی ‎The vital link to your feed chain‏
© نوع طراحی چکش‌هاء سطح تماس و در نتیجه بازده آسیاب را افزایش می‌دهد. فاصله بین چکش‌ها و
صفحات الک برابر ‎YO‏ میلی‌متر است. این امر موجب پیشگیری از چرخش ‎(Circulation)‏ محصول در
محفظه آسیاب و در نتیجه هدر رفت انرژی می‌شود.
@ _چکش‌های مورد استفاده برای آسیاب چکشی ‎GD‏ بسیار مستحکم بوده و دارای عمر طولانی می‌باشند.
تنها در هنگام خوردگی هر ۴ طرف چکش‌ها نیاز به تعویض آن‌ها می‌باشد. این امر در ترکیب با وجود
صفحات خردکن که موجب کاهش خوردگی دستگاه ‎cig oo‏ هزینه چکش‌ها را تا مقدار ۲ سنت ‎lil‏
‏هر تن خوراک کاهش می‌دهد.
@ دستگاه تغذیه می‌بایست یک جریان روان از مواد ‎adsl‏ را برای آسیاب فراهم نماید. به دلیل تفاوت
ویژگی‌های مواد مختلف در آسیاب, وجود سیستم. کتترل فرکانس روی دستگاه 43005 آسیاب. ‎eel‏
‏صحیح مواد را تضمین می‌کند.
* مطابق استاندارد و به منظور افزایش ایمنی و طول عمر صفحات الک دستگاه تغذیه مجهز به یک آهنربا
و جدا کننده ذرات ستگین می‌باشد.
به دلیل طراحی کم جاگیر آسیاب چکشی مدل ‎GD‏ امکان استفاده از این دستگاه در کارخانه‌های جدید و نیز در
حال کار فراهم است.
آسیاب: یک مرحله مهم در فرآیند
فرآیند تولید خوراک تأثیر زیادی بر ارزش غذایی خوراک دام دارد. عمل آسیاب در این فرآیند تأثیر زیادی بر
کیفیت پلت تولیدی و نیز قابلیت هضم خوراک دارد. کاهش اندازه مواد ‎adsl‏ موجب افزایش تعداد ذرات و سطح
بر واحد حجم شده که این امر موجب بهبود همگنی در فرآیند میکس می‌شود. علاوه بر ‎ol‏ کاهش اندازه ذرات
به ژلاتینه شدن نشاسته کمک کرده و باعث بهبود کیفیت پلت و افزایش ظرفیت دستگاه پلت می‌شود.
اطلاعات بیشتر
شرکت فن آرسن توسعه دهنده» سازنده و ‎els‏ کننده ماشین‌آلات به‌روز و ارائه دهنده راهکارهای اجرایی کارخانه
خوراک جهت تولید خوراک دام و پرمیکس در سراسر ‎Lid‏ می‌باشد. اطلاعات بیشتر از دستگاه آسیاب چکشی مدل
‎GD‏ و سیستم تعویض خودکار الک در ‎Sid‏ زیر موجود است:
‎www.aarsen.com/machines/hammer-mills/‏
‎whys‏ خیابان سید جمال الدین اسد آبادی, خیابان هفتاد و دوم پلاک ۰۲ واحد ۳.کدپستی: ۱۶۳۶۹۶۵۱۶۸ ‎x 1 ch fis a‏

10
docker-compose.yml

@ -1,16 +1,20 @@
version: '3.8'
version: "3.8"
services:
pdf-converter:
build: .
build:
context: .
dockerfile: Dockerfile
ports:
- "4000:5000"
volumes:
- ./uploads:/app/uploads
- ./outputs:/app/outputs
- ./logs:/app/logs
- .:/app
environment:
- FLASK_ENV=development
- FLASK_APP=app.py
- TESSDATA_PREFIX=/app/tessdata
command: >
sh -c "watchmedo auto-restart --directory=./ --pattern=*.py --recursive -- python app.py"

6
logs/app.log

@ -0,0 +1,6 @@
2024-04-15 15:08:16,260 - werkzeug - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://192.168.192.2:5000
2024-04-15 15:08:16,261 - werkzeug - INFO - Press CTRL+C to quit
2024-04-15 15:08:16,272 - werkzeug - INFO - * Restarting with watchdog (inotify)

366
logs/pdf_to_word.log

@ -1,318 +1,116 @@
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 -
2024-04-15 15:52:22,961 - werkzeug - WARNING - * Debugger is active!
2024-04-15 15:52:22,964 - werkzeug - INFO - * Debugger PIN: 134-865-457
2024-04-15 15:52:49,089 - root - INFO - PDF uploaded and saved to /app/uploads/sample_input_20240415_155249.pdf
2024-04-15 15:52:49,094 - werkzeug - INFO - 192.168.208.1 - - [15/Apr/2024 15:52:49] "POST /upload-pdf HTTP/1.1" 202 -
2024-04-15 15:52:49,743 - root - INFO - Converted PDF to images, number of pages: 1
2024-04-15 15:52:53,031 - root - INFO - PDF uploaded and saved to /app/uploads/sample_input_20240415_155253.pdf
2024-04-15 15:52:53,036 - werkzeug - INFO - 192.168.208.1 - - [15/Apr/2024 15:52:53] "POST /upload-pdf HTTP/1.1" 202 -
2024-04-15 15:52:53,727 - root - INFO - Converted PDF to images, number of pages: 1
2024-04-15 15:52:54,146 - root - INFO -
------Page 1------
Van Aarsen
9 که
‎Van/Xarsen mb fmf‏
ماشین‌های پلت مدل ‎C‏ و ‎CU‏
هدف ‎hs‏ سلامتشی
نسل جدید ماشین‌های پلت
علاوه بر ماشین پلت ‎LC Joe‏ که امتحان خود را در صنعت خوراک پس داده است. شرکت ‎5B‏ آرسن به‌انازگی مدل جدیدی از ماشین‌های پلت را با
عنوان ‎CU‏ معرفی نموده است:ماشین مدل ‎CU‏ که دارای آخرین تکنولوزی :در ‎die‏ پلت‌سازی می‌باشد:در دو نوع ‎aly‏ وادینامیکی ارائه: شده است:
The vital link to your feed chain
نوع دینامیکی ماشین مدل لاح مجهز به تنظیم‌گر غلتک موتوری و کنترل کننده‌ی فعال لغزش غلتک می‌باشد. طراحی مستحکم تنظیم گر غلتک
موتوری به اپراتور این امکان را می‌دهد. تا حتی در زمان کار دستگاه به سادگی فاصله‌ی دلخواه بین غلتک و دای را انتخاب نماید. این سیستم
همراه با نرم افزار هوشمند ‎wot‏ مزایای زیادی را در فرایند ساخت و برنامه‌های تعمیر و نگهداری ارائه می‌کند.
چگونگی افزایش بازده فرآیند آسیاب و کاهش هزینه‌های ‎of‏
یکی از این مزایاء افزایش طول عمر دای و غلتک به میزان ۳۰۹۵ است. با ایجاد ارتباط بین پیچ دوزینگ و ‎(SHE‏ زمانی که ماشین پلت تولید نداردء
غلتک به عقب کشیده می‌شود. این سیستم» مجهز به یک گزینه‌ی حالت تمیزکاری دای می‌باشد که اپراتور را قادر می‌سازد پس از ساخت هر @
دای را تمیز نماید. این امر ‎wile‏ از کلوخه شدن مواد در سطح داخلی دای شده و در نتیجه پس از هر توقف, دستگاه به سرعت به فرایند تولید باز
می‌گردد.
در این مقاله به معرفی دستگاه آسیاب چکشی مدل ‎GD‏ شرکت فن آرسن باقابلیت سیستم تعویض خودکار الک
و کنترل فرکانس موتور پرداخته می‌شود. این دستگاه راه‌حلی ایده ‎JT‏ برای دستیابی به فرآیند آسیاب بهینه و
ظرفیت بالا است.
کنترل کننده‌ی فعال لغزش غلتک. سیستمی هوشمند می‌باشد که به منظور بهینه‌سازی سرعت تولید ماشین پلت طراحی شده است. این سیستم
با شناسایی حرکت لغزشی غلتک به صورت خودکار فعال شده و مانع از خاموشی دستگاه به علت بروز لغزش در غلتک می گردد.
آسیاب‌های چکشی جهت آسیاب مواد اولیه خوراک دام به کار برده می‌شوند. مواد ‎adsl‏ وارد شده به دستگاه آسیاب
چکشی در برخورد با چکش‌های خردکن که با سرعت بالایی در حال چرخش هستند. به ذرات کوچک‌تری تبدیل
می‌شوند. بازده فرآیند آسیاب به متغیرهای مختلفی مانند نحوه طراحی صفحات خردکن. سرعت نوک چکش‌ها و
۹ ارس ‌ژی_وارصوفضی
‎W‏
صفحات الک بستگی دارد.
هدف ما سلامتی
نماینده انحصاری در ابران
‎www.ParsJivarSoufi.com‏
‎PJS@ParsSoufi.com‏
شرکت فن آرسن آسیاب چکشی دارای صفحات خردکن را اولین بار ۶۵ سال پیش طراحی نمود. آسیاب‌های
چکشی جدید این شرکت به صفحات خردکن بزرگ‌تری در بخش بالایی محفظه آسیاب مجهز شده‌اند. این امر
منجر به افزایش دفعات برخورد ذرات به این صفحات می‌شود. امروزه این طراحی به‌عنوان یک روش بسیار مور
برای دستیابی به کیفیت بالا و آسیاب سریع محصولات در نظر گرفته می‌شود. ذرات با برخوردهای متعدد به
صفحات خردکن در بخش بالایی محفظه دستگاه به اندازه مناسب می‌رسند و سپس از طریق صفحات الک از زیر
تلفن: ۰ ۸۸۰۶۴۴۲۶-۸
فکس : ۵
تلفضن: ۲۶-۸ ۶۶ ۰۶ ‎AN‏
‎ls‏ خیابان سید جمال الدین اسد آبادی, خیابان هفتاد و دوم پلاک ۲. واحد ۳.کدپستی: ۱۶۳۶۹۶۵۱۶۸ فاکس: ۵ ۰۶ ‎AN‏
------*------
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‏
2024-04-15 15:52:54,190 - root - INFO - Successfully converted /app/uploads/sample_input_20240415_155249.pdf to a .docx file at /app/outputs/sample_input_20240415_155249_20240415_155249.docx
2024-04-15 15:52:54,205 - root - INFO - File received and saved at /app/callbacks/sample_input_20240415_155249_20240415_155249.docx
2024-04-15 15:52:54,206 - werkzeug - INFO - 127.0.0.1 - - [15/Apr/2024 15:52:54] "POST /callback HTTP/1.1" 200 -
2024-04-15 15:52:54,683 - root - INFO - PDF uploaded and saved to /app/uploads/sample_input_20240415_155254.pdf
2024-04-15 15:52:54,684 - werkzeug - INFO - 192.168.208.1 - - [15/Apr/2024 15:52:54] "POST /upload-pdf HTTP/1.1" 202 -
2024-04-15 15:52:55,235 - root - INFO - Converted PDF to images, number of pages: 1
2024-04-15 15:52:58,441 - root - INFO -
------Page 1------
9 که
‎Van/Xarsen mb fmf‏
‎Van Aarsen EH 5
7۲ Ee ng ng [reg Venn 7
هدف ‎hs‏ سلامتشی
‎ROLL ADJUSTMENT:
The vital link to your feed chain
‎Go to zero [T]
Go to maximum gap [T]
Start zeroing [T]
Disable high speed [T]
Automatic slip prevention
Start cleaning mode 11
چگونگی افزایش بازده فرآیند آسیاب و کاهش هزینه‌های ‎of‏
‎A 3
در این مقاله به معرفی دستگاه آسیاب چکشی مدل ‎GD‏ شرکت فن آرسن باقابلیت سیستم تعویض خودکار الک
و کنترل فرکانس موتور پرداخته می‌شود. این دستگاه راه‌حلی ایده ‎JT‏ برای دستیابی به فرآیند آسیاب بهینه و
ظرفیت بالا است.
‎[4] nm]
Ea mm
آسیاب‌های چکشی جهت آسیاب مواد اولیه خوراک دام به کار برده می‌شوند. مواد ‎adsl‏ وارد شده به دستگاه آسیاب
چکشی در برخورد با چکش‌های خردکن که با سرعت بالایی در حال چرخش هستند. به ذرات کوچک‌تری تبدیل
می‌شوند. بازده فرآیند آسیاب به متغیرهای مختلفی مانند نحوه طراحی صفحات خردکن. سرعت نوک چکش‌ها و
‏لا لا لا لا ‎OR‏
صفحات الک بستگی دارد.
‏4 اطلاعات ارائه‌شده در این ‎aie‏ هیچ‌گونه حقی را برای خربدار ‎dl!‏ نمی‌کند. توضیحات و تصاو
شرکت فن آرسن آسیاب چکشی دارای صفحات خردکن را اولین بار ۶۵ سال پیش طراحی نمود. آسیاب‌های
چکشی جدید این شرکت به صفحات خردکن بزرگ‌تری در بخش بالایی محفظه آسیاب مجهز شده‌اند. این امر
منجر به افزایش دفعات برخورد ذرات به این صفحات می‌شود. امروزه این طراحی به‌عنوان یک روش بسیار مور
برای دستیابی به کیفیت بالا و آسیاب سریع محصولات در نظر گرفته می‌شود. ذرات با برخوردهای متعدد به
صفحات خردکن در بخش بالایی محفظه دستگاه به اندازه مناسب می‌رسند و سپس از طریق صفحات الک از زیر
تلفضن: ۲۶-۸ ۶۶ ۰۶ ‎AN‏
‎ls‏ خیابان سید جمال الدین اسد آبادی, خیابان هفتاد و دوم پلاک ۲. واحد ۳.کدپستی: ۱۶۳۶۹۶۵۱۶۸ فاکس: ۵ ۰۶ ‎AN‏
------*------
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‏ ۱۹۲
۳۳۵
۰
۳۳
۴/۹۶/۲۴
۵/۹۵
۲
۳۸۵
۱۶۰
۱۱۰-۱۳۳۲-
۱۳۶۵۳۲
۵۶۰
که
2024-04-15 15:52:58,488 - root - INFO - Successfully converted /app/uploads/sample_input_20240415_155253.pdf to a .docx file at /app/outputs/sample_input_20240415_155253_20240415_155253.docx
2024-04-15 15:52:58,508 - root - INFO - File received and saved at /app/callbacks/sample_input_20240415_155253_20240415_155253.docx
2024-04-15 15:52:58,509 - werkzeug - INFO - 127.0.0.1 - - [15/Apr/2024 15:52:58] "POST /callback HTTP/1.1" 200 -
2024-04-15 15:53:00,753 - root - INFO -
------Page 1------
9 که
‎Van/Xarsen mb fmf‏
VanAarsen
هدف ‎hs‏ سلامتشی
CU900XL CuU900 CU750
qe. qe. ۷۵۰
۳۳۵ ۱۷۵-۲۲۵-۵ ۳۵۰
۹0 ۴۹۵۰-۶۳۶۰۵ OAR
۷/۰-/۴-۴ ۴/۹۷ -۵/۳-۶/۷-۷/۰-0/ ۳۴-۹ /۴ ۰۰۰ ‏۲/عم/۵/۱-۵‎ ۷
۶/۴-۷/۱-۸/۰-۵ ۶/۴-۷/۱-۸/۰-۵ ۳/۴
۲ ۲ ۲
۴۳۵ ۴۳۵ ۳۶۰
۳۱۵-۳۵۵-۰ ۲۰۰۰-۲۵۰-۳۱۵۵ ۱۳۲-۱۶۰۲۰۰۵۰
۲۸۵-۳۶۰ -۵ ۳۲۳۸-۲۳۸۵۳۶۰ ۱۵۲-۱۸۴۰
۱۱۳۵۰ -۰ ۱۳۵ ۷۶۴۵-۰۰
The vital link to your feed chain
1
‏اک‎ 1 LC
I ۹
) |
J I H G ۳
۱۳ ۱۳۰۰ ۱۰۶۰ ۱۴۰ ۱۳۰
۱۳۵ ۱۳۰۰ ۱۱۶۰ ۱۴۰ Vo.
N52. ۱۵۰ YY. ۰ ۱۳۶۵۰
YAY. ۱۷۰۰ ۱۳۸۰ ۳ Vero
VAY. ۱۷۰۰ YEA. ۳۳۰ ‏م۳۰‎
چگونگی افزایش بازده فرآیند آسیاب و کاهش هزینه‌های ‎of‏
T S R Q P
BY. ۱۹۶۶ ۱ ۵۵ YY. ۶
3 Yeo Ye ۶
‏نما‎ | Yee Yr. ۶
در این مقاله به معرفی دستگاه آسیاب چکشی مدل ‎GD‏ شرکت فن آرسن باقابلیت سیستم تعویض خودکار الک
و کنترل فرکانس موتور پرداخته می‌شود. این دستگاه راه‌حلی ایده ‎JT‏ برای دستیابی به فرآیند آسیاب بهینه و
ظرفیت بالا است.
ارس ژی_وارصوفضی
هدف ما سلامتی
نماینده انحصاری در ابران
‎www.ParsJivarSoufi.com‏
‎PJS@ParsSoufi.com‏
آسیاب‌های چکشی جهت آسیاب مواد اولیه خوراک دام به کار برده می‌شوند. مواد ‎adsl‏ وارد شده به دستگاه آسیاب
چکشی در برخورد با چکش‌های خردکن که با سرعت بالایی در حال چرخش هستند. به ذرات کوچک‌تری تبدیل
می‌شوند. بازده فرآیند آسیاب به متغیرهای مختلفی مانند نحوه طراحی صفحات خردکن. سرعت نوک چکش‌ها و
تلفن :
فکس :
صفحات الک بستگی دارد.
۸۸۰۶۴۴۲۶-۸
۵
شرکت فن آرسن آسیاب چکشی دارای صفحات خردکن را اولین بار ۶۵ سال پیش طراحی نمود. آسیاب‌های
چکشی جدید این شرکت به صفحات خردکن بزرگ‌تری در بخش بالایی محفظه آسیاب مجهز شده‌اند. این امر
منجر به افزایش دفعات برخورد ذرات به این صفحات می‌شود. امروزه این طراحی به‌عنوان یک روش بسیار مور
برای دستیابی به کیفیت بالا و آسیاب سریع محصولات در نظر گرفته می‌شود. ذرات با برخوردهای متعدد به
صفحات خردکن در بخش بالایی محفظه دستگاه به اندازه مناسب می‌رسند و سپس از طریق صفحات الک از زیر
تلفضن: ۲۶-۸ ۶۶ ۰۶ ‎AN‏
‎ls‏ خیابان سید جمال الدین اسد آبادی, خیابان هفتاد و دوم پلاک ۲. واحد ۳.کدپستی: ۱۶۳۶۹۶۵۱۶۸ فاکس: ۵ ۰۶ ‎AN‏
------*------
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 -
2024-04-15 15:53:00,798 - root - INFO - Successfully converted /app/uploads/sample_input_20240415_155254.pdf to a .docx file at /app/outputs/sample_input_20240415_155254_20240415_155254.docx
2024-04-15 15:53:00,806 - root - INFO - File received and saved at /app/callbacks/sample_input_20240415_155254_20240415_155254.docx
2024-04-15 15:53:00,814 - werkzeug - INFO - 127.0.0.1 - - [15/Apr/2024 15:53:00] "POST /callback HTTP/1.1" 200 -

76
pdf_to_word.py

@ -3,44 +3,74 @@ 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
from docx import Document
from datetime import datetime
# Configure logging
logging.basicConfig(level=logging.DEBUG, filename='/app/logs/pdf_to_word.log', filemode='w',
format='%(name)s - %(levelname)s - %(message)s')
logging.basicConfig(level=logging.INFO, filename='/app/logs/pdf_to_word.log', filemode='w',
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
def pdf_to_word(pdf_path, output_dir, lang='eng+fas'):
def pdf_to_word_txt(pdf_path, output_dir, lang='fas+eng'):
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}')
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
output_path = os.path.join(output_dir, f'{pdf_name}_{current_time}.txt')
try:
pages = convert_from_path(pdf_path, 600)
logging.info(f'Converted PDF to images, number of pages: {len(pages)}')
all_text = []
for i, page in enumerate(pages):
with tempfile.NamedTemporaryFile(suffix='.jpg') as temp_image:
page.save(temp_image.name, 'JPEG')
text = pytesseract.image_to_string(Image.open(temp_image.name), lang=lang, config='--oem 3 --psm 3')
logging.info("\n------"+f'Page {i+1}'+"------\n"+text+"\n------*------\n")
all_text.append(text)
with open(output_path, 'w', encoding='utf-8') as f:
f.write("\n".join(all_text))
logging.info(f'Successfully converted {pdf_path} to text at {output_path}')
return output_path
except Exception as e:
logging.error(f'Error converting PDF to text: {e}', exc_info=True)
return None
def pdf_to_word_docx(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')
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
output_path = os.path.join(output_dir, f'{pdf_name}_{current_time}.docx')
try:
# Increase DPI for higher image quality
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)
# PSM 4 might be more suitable for mixed content like your provided image
custom_config = r'--oem 3 --psm 4'
# custom_config = r''
all_text = []
for i, page in enumerate(pages):
with tempfile.NamedTemporaryFile(delete=False, suffix='.jpg') as temp_image:
with tempfile.NamedTemporaryFile(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
text = pytesseract.image_to_string(Image.open(temp_image.name), lang=lang, config=custom_config)
logging.info("\n------"+f'Page {i+1}'+"------\n"+text+"\n------*------\n")
os.unlink(temp_image.name)
all_text.append(text)
document.save(output_path)
logging.info(f'Document saved to {output_path}')
# Save to a .docx file using a library like python-docx
doc = Document()
for text in all_text:
doc.add_paragraph(text)
doc.save(output_path)
logging.info(f'Successfully converted {pdf_path} to a .docx file at {output_path}')
return output_path
except Exception as e:
logging.error(f'An error occurred: {e}', exc_info=True)
logging.error(f'Error converting PDF to text: {e}', exc_info=True)
return None

3
requirements.txt

@ -4,3 +4,6 @@ pytesseract
Pillow
python-docx
tqdm
watchdog
regex
requests

3
response.json

@ -0,0 +1,3 @@
{
"message": "File processed and sent successfully"
}

BIN
uploads/sample_input.pdf

Binary file not shown.
Loading…
Cancel
Save