Comments (6)
From your usecase, I think you could achieve better performance and easier usage if you passed an output_folder to the function call.
import tempfile
with tempfile.TemporaryDirectory() as path:
images_from_path = convert_from_path('/home/Belval/example.pdf', thread_count=8, output_folder=path)
This way you won't need to process the pdf in small batches since the memory footprint will be small.
I'd recommend not going over 12 threads (even 6 would probably work better) to avoid process fighting for CPU time.
If that does not solve your problem, please let me know!
from pdf2image.
I tested it an indeed, you need to use an output_folder
for the multithreading to be useful at all. This is due to the process reading from the buffer being single threaded.
I'll explore solutions to this limitation, but until then you really want to use a temporary directory.
from pdf2image.
Closing for lack of response.
Feel free to reopen should my answers be unsatisfactory.
from pdf2image.
I tested it an indeed, you need to use an
output_folder
for the multithreading to be useful at all. This is due to the process reading from the buffer being single threaded.I'll explore solutions to this limitation, but until then you really want to use a temporary directory.
@Belval : I am taking the output from convert_from_path
and directly feeding it to tesseract
, so will thread_count = number of cpu cores
, help me here. I am using multiprocessing for tesseract too
.
from pdf2image.
Few things here:
pdf2image
will be multithreaded if you use andoutput_folder
otherwise the output is parsed in memory sequentially and you will get no gains.pdf2image
returns a list and not a generator, so while the conversion is multithreaded, the call toconvert_from_path
is still blocking and will wait until all pages are converted.
That being said, you probably want something like this:
import tempfile
from pdf2image import convert_from_path
with tempfile.TemporaryDirectory() as path:
images_from_path = convert_from_path(
'/home/belval/example.pdf',
output_folder=path,
thread_count=8
)
# Do your processing with Tesseract here
from pdf2image.
Closing for lack of activity.
from pdf2image.
Related Issues (20)
- convert_from_bytes has wrong argument name or docstring
- Missing characters like "Ε Δ ΔΎ δ»" when converting a fillable pdf form to image HOT 6
- Missing py.typed file HOT 4
- Wrong image converted HOT 2
- No source release on pypi for 1.16.3 HOT 1
- Inconsistent results between servers with the same code and PDF file HOT 2
- Problem converting from Image coordinates to PDF coordinates
- Invalid SOS parameters for sequential JPEG
- Adding conda poppler to PATH HOT 1
- Lossless conversion HOT 3
- weird CMYK and text at top of output image
- Missing optional arguments in pdfinfo_from_bytes and pdfinfo_from_path HOT 2
- `Page rot` metadata and `size` param interact incorrectly in convert_from_path() HOT 5
- When a pdf is converted to a picture, it takes up a very small part of the picture
- Add an option to start counter generator at index 0 HOT 1
- FileNotFoundError with poppler_path HOT 1
- Is there way to control rotation?
- Some missing words from converting PDF to Image
- OSS-Fuzz Integration HOT 3
- Feature: Specific pages to convert.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pdf2image.