I was trying to extract tables from a PDF file with Camelot.
Here is my code:
import camelot
tables = camelot.read_pdf('foo.pdf')
print(tables)
and I am getting the error while running this script as follows:
File "C:/Users/gibin/PycharmProjects/ML/Table_Tester.py", line 20, in <module>
table=tables = camelot.read_pdf(r"C:\Users\gibin\PycharmProjects\ML\Doc_downloader\GWC_Docs\781313686.pdf")
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\io.py", line 117, in read_pdf
**kwargs
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\handlers.py", line 172, in parse
p, suppress_stdout=suppress_stdout, layout_kwargs=layout_kwargs
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\parsers\lattice.py", line 403, in extract_tables
self._generate_image()
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\parsers\lattice.py", line 220, in _generate_image
with Ghostscript(*gs_call, stdout=null) as gs:
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\ext\ghostscript\__init__.py", line 95, in Ghostscript
stderr=kwargs.get("stderr", None),
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\ext\ghostscript\__init__.py", line 39, in __init__
rc = gs.init_with_args(instance, args)
File "C:\Users\gibin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\camelot\ext\ghostscript\_gsprint.py", line 169, in init_with_args
rc = libgs.gsapi_init_with_args(instance, len(argv), c_argv)
OSError: exception: access violation writing 0x00000080
Process finished with exit code 1
How can I solve this, or is there another way to get tables from PDF?
Edit: The same script is working fine in jupyter notebook, but not working in pycharm.
Did you install Camelot via the PyPI repository, i.e. pip install camelot-py[cv]
?
I stopped getting this error after I re-installed Camelot from source:
git clone https://www.github.com/camelot-dev/camelot
cd camelot
pip install ".[cv]"
In my case at Windows 7, I changed the flavor to 'stream' and everything starts to be fine, because the pdf file that I'm using doesn't have any visible table, and 'stream' flavor are the right one for such pdf file while in default camelot set the flavor to be 'lattice'.
The code would be like this:
import camelot
tables = camelot.read_pdf('foo.pdf', flavor = 'stream')
print(tables)
I don't know why it happens because if I run the same code (that shows errors in Windows 7) in Debian 10, everything is just fine (but there would be no tables detected in the end).
EDIT : I run those code on jupyter notebook. I don't know how it would be if it runs on PyCharm.
User contributions licensed under CC BY-SA 3.0