{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "tabula_example.ipynb", "provenance": [], "include_colab_link": true }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "Ssv5i7OIn10T", "colab_type": "text" }, "source": [ "# tabula-py example notebook\n", "\n", "tabula-py is a tool for convert PDF tables to pandas DataFrame. tabula-py is a wrapper of [tabula-java](https://github.com/tabulapdf/tabula-java), which requires java on your machine. tabula-py also enables you to convert tables in a PDF into CSV/TSV files.\n", "\n", "tabula-py's PDF extraction accuracy is same as tabula-java or [tabula app](https://tabula.technology/); GUI tool of tabula, so if you want to know the performance of tabula-py, I highly recommend you to try tabula app.\n", "\n", "tabula-py is good for:\n", "- automation with Python script\n", "- advanced analytics after converting pandas DataFrame\n", "- casual analytics with Jupyter notebook or Google Colabolatory\n" ] }, { "cell_type": "markdown", "metadata": { "id": "UvnC9oESpIgF", "colab_type": "text" }, "source": [ "## Check Java environment and install tabula-py\n", "\n", "tabula-py requires a java environment, so let's check the java environment on your machine." ] }, { "cell_type": "code", "metadata": { "id": "02CnPUI6mKNc", "colab_type": "code", "outputId": "84caa7fe-7970-4da3-b612-6f060a257090", "colab": { "base_uri": "https://localhost:8080/", "height": 71 } }, "source": [ "!java -version" ], "execution_count": 1, "outputs": [ { "output_type": "stream", "text": [ "openjdk version \"11.0.7\" 2020-04-14\n", "OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)\n", "OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "JtB6sfV_pYOX", "colab_type": "text" }, "source": [ "After confirming the java environment, install tabula-py by using pip." ] }, { "cell_type": "code", "metadata": { "id": "wc52T-1WpfOC", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "outputId": "c6ad1c06-6156-4ed7-bb6b-797d612287a3" }, "source": [ "# To be more precisely, it's better to use `{sys.executable} -m pip install tabula-py`\n", "!pip install -q tabula-py" ], "execution_count": 2, "outputs": [ { "output_type": "stream", "text": [ "\u001b[K |████████████████████████████████| 10.4MB 2.7MB/s \n", "\u001b[?25h" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "Xp4yGv7BpsIq", "colab_type": "text" }, "source": [ "Before trying tabula-py, check your environment via tabula-py `environment_info()` function, which shows Python version, Java version, and your OS environment." ] }, { "cell_type": "code", "metadata": { "id": "pda4jjbIp3MN", "colab_type": "code", "outputId": "c7a60bac-88a6-429b-a823-f5f47e137176", "colab": { "base_uri": "https://localhost:8080/", "height": 269 } }, "source": [ "import tabula\n", "\n", "tabula.environment_info()" ], "execution_count": 3, "outputs": [ { "output_type": "stream", "text": [ "Python version:\n", " 3.6.9 (default, Apr 18 2020, 01:56:04) \n", "[GCC 8.4.0]\n", "Java version:\n", " openjdk version \"11.0.7\" 2020-04-14\n", "OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)\n", "OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)\n", "tabula-py version: 2.1.0\n", "platform: Linux-4.19.104+-x86_64-with-Ubuntu-18.04-bionic\n", "uname:\n", " uname_result(system='Linux', node='385ad8f65f50', release='4.19.104+', version='#1 SMP Wed Feb 19 05:26:34 PST 2020', machine='x86_64', processor='x86_64')\n", "linux_distribution: ('Ubuntu', '18.04', 'bionic')\n", "mac_ver: ('', ('', '', ''), '')\n", " \n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "mcy_Aas4qK5Q", "colab_type": "text" }, "source": [ "## Read a PDF with `read_pdf()` function\n", "\n", "Let's read a PDF from GitHub. tabula-py can load a PDF or file like object on both local or internet by using `read_pdf()` function." ] }, { "cell_type": "code", "metadata": { "id": "q6FGPenCluQz", "colab_type": "code", "outputId": "ba22a7c8-45a2-4fb0-8997-82cf80875f99", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "import tabula\n", "pdf_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf\"\n", "\n", "dfs = tabula.read_pdf(pdf_path, stream=True)\n", "# read_pdf returns list of DataFrames\n", "print(len(dfs))\n", "dfs[0]" ], "execution_count": 5, "outputs": [ { "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Got stderr: Jun 04, 2020 8:22:21 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:22:21 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "1\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0mpgcyldisphpdratwtqsecvsamgearcarb
0Mazda RX421.06160.01103.902.62016.460144
1Mazda RX4 Wag21.06160.01103.902.87517.020144
2Datsun 71022.84108.0933.852.32018.611141
3Hornet 4 Drive21.46258.01103.083.21519.441031
4Hornet Sportabout18.78360.01753.153.44017.020032
5Valiant18.16225.01052.763.46020.221031
6Duster 36014.38360.02453.213.57015.840034
7Merc 240D24.44146.7623.693.19020.001042
8Merc 23022.84140.8953.923.15022.901042
9Merc 28019.26167.61233.923.44018.301044
10Merc 280C17.86167.61233.923.44018.901044
11Merc 450SE16.48275.81803.074.07017.400033
12Merc 450SL17.38275.81803.073.73017.600033
13Merc 450SLC15.28275.81803.073.78018.000033
14Cadillac Fleetwood10.48472.02052.935.25017.980034
15Lincoln Continental10.48460.02153.005.42417.820034
16Chrysler Imperial14.78440.02303.235.34517.420034
17Fiat 12832.4478.7664.082.20019.471141
18Honda Civic30.4475.7524.931.61518.521142
19Toyota Corolla33.9471.1654.221.83519.901141
20Toyota Corona21.54120.1973.702.46520.011031
21Dodge Challenger15.58318.01502.763.52016.870032
22AMC Javelin15.28304.01503.153.43517.300032
23Camaro Z2813.38350.02453.733.84015.410034
24Pontiac Firebird19.28400.01753.083.84517.050032
25Fiat X1-927.3479.0664.081.93518.901141
26Porsche 914-226.04120.3914.432.14016.700152
27Lotus Europa30.4495.11133.771.51316.901152
28Ford Pantera L15.88351.02644.223.17014.500154
29Ferrari Dino19.76145.01753.622.77015.500156
30Maserati Bora15.08301.03353.543.57014.600158
31Volvo 142E21.44121.01094.112.78018.601142
\n", "
" ], "text/plain": [ " Unnamed: 0 mpg cyl disp hp ... qsec vs am gear carb\n", "0 Mazda RX4 21.0 6 160.0 110 ... 16.46 0 1 4 4\n", "1 Mazda RX4 Wag 21.0 6 160.0 110 ... 17.02 0 1 4 4\n", "2 Datsun 710 22.8 4 108.0 93 ... 18.61 1 1 4 1\n", "3 Hornet 4 Drive 21.4 6 258.0 110 ... 19.44 1 0 3 1\n", "4 Hornet Sportabout 18.7 8 360.0 175 ... 17.02 0 0 3 2\n", "5 Valiant 18.1 6 225.0 105 ... 20.22 1 0 3 1\n", "6 Duster 360 14.3 8 360.0 245 ... 15.84 0 0 3 4\n", "7 Merc 240D 24.4 4 146.7 62 ... 20.00 1 0 4 2\n", "8 Merc 230 22.8 4 140.8 95 ... 22.90 1 0 4 2\n", "9 Merc 280 19.2 6 167.6 123 ... 18.30 1 0 4 4\n", "10 Merc 280C 17.8 6 167.6 123 ... 18.90 1 0 4 4\n", "11 Merc 450SE 16.4 8 275.8 180 ... 17.40 0 0 3 3\n", "12 Merc 450SL 17.3 8 275.8 180 ... 17.60 0 0 3 3\n", "13 Merc 450SLC 15.2 8 275.8 180 ... 18.00 0 0 3 3\n", "14 Cadillac Fleetwood 10.4 8 472.0 205 ... 17.98 0 0 3 4\n", "15 Lincoln Continental 10.4 8 460.0 215 ... 17.82 0 0 3 4\n", "16 Chrysler Imperial 14.7 8 440.0 230 ... 17.42 0 0 3 4\n", "17 Fiat 128 32.4 4 78.7 66 ... 19.47 1 1 4 1\n", "18 Honda Civic 30.4 4 75.7 52 ... 18.52 1 1 4 2\n", "19 Toyota Corolla 33.9 4 71.1 65 ... 19.90 1 1 4 1\n", "20 Toyota Corona 21.5 4 120.1 97 ... 20.01 1 0 3 1\n", "21 Dodge Challenger 15.5 8 318.0 150 ... 16.87 0 0 3 2\n", "22 AMC Javelin 15.2 8 304.0 150 ... 17.30 0 0 3 2\n", "23 Camaro Z28 13.3 8 350.0 245 ... 15.41 0 0 3 4\n", "24 Pontiac Firebird 19.2 8 400.0 175 ... 17.05 0 0 3 2\n", "25 Fiat X1-9 27.3 4 79.0 66 ... 18.90 1 1 4 1\n", "26 Porsche 914-2 26.0 4 120.3 91 ... 16.70 0 1 5 2\n", "27 Lotus Europa 30.4 4 95.1 113 ... 16.90 1 1 5 2\n", "28 Ford Pantera L 15.8 8 351.0 264 ... 14.50 0 1 5 4\n", "29 Ferrari Dino 19.7 6 145.0 175 ... 15.50 0 1 5 6\n", "30 Maserati Bora 15.0 8 301.0 335 ... 14.60 0 1 5 8\n", "31 Volvo 142E 21.4 4 121.0 109 ... 18.60 1 1 4 2\n", "\n", "[32 rows x 12 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 5 } ] }, { "cell_type": "markdown", "metadata": { "id": "GryAu9PksQeJ", "colab_type": "text" }, "source": [ "## Options for `read_pdf()`\n", "\n", "Note that `read_pdf()` function reads only page 1 by default. For more details, use `?read_pdf` and `?tabula.wrapper.build_options`." ] }, { "cell_type": "code", "metadata": { "id": "mryDaFRqsfTN", "colab_type": "code", "outputId": "130309a4-9541-4330-81c0-37e30d8a4a43", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "help(tabula.read_pdf)" ], "execution_count": 6, "outputs": [ { "output_type": "stream", "text": [ "Help on function read_pdf in module tabula.io:\n", "\n", "read_pdf(input_path, output_format=None, encoding='utf-8', java_options=None, pandas_options=None, multiple_tables=True, user_agent=None, **kwargs)\n", " Read tables in PDF.\n", " \n", " Args:\n", " input_path (str, path object or file-like object):\n", " File like object of tareget PDF file.\n", " It can be URL, which is downloaded by tabula-py automatically.\n", " output_format (str, optional):\n", " Output format for returned object (``dataframe`` or ``json``)\n", " encoding (str, optional):\n", " Encoding type for pandas. Default: ``utf-8``\n", " java_options (list, optional):\n", " Set java options.\n", " \n", " Example:\n", " ``[\"-Xmx256m\"]``\n", " pandas_options (dict, optional):\n", " Set pandas options.\n", " \n", " Example:\n", " ``{'header': None}``\n", " \n", " Note:\n", " With ``multiple_tables=True`` (default), pandas_options is passed\n", " to pandas.read_csv, otherwise it is passed to pandas.DataFrame.\n", " Those two functions are different for accept options like ``dtype``.\n", " multiple_tables (bool):\n", " It enables to handle multiple tables within a page. Default: ``True``\n", " \n", " Note:\n", " If `multiple_tables` option is enabled, tabula-py uses not\n", " :func:`pd.read_csv()`, but :func:`pd.DataFrame()`. Make\n", " sure to pass appropriate `pandas_options`.\n", " user_agent (str, optional):\n", " Set a custom user-agent when download a pdf from a url. Otherwise\n", " it uses the default ``urllib.request`` user-agent.\n", " kwargs:\n", " Dictionary of option for tabula-java. Details are shown in\n", " :func:`build_options()`\n", " \n", " Returns:\n", " list of DataFrames or dict.\n", " \n", " Raises:\n", " FileNotFoundError:\n", " If downloaded remote file doesn't exist.\n", " \n", " ValueError:\n", " If output_format is unknown format, or if downloaded remote file size is 0.\n", " \n", " tabula.errors.CSVParseError:\n", " If pandas CSV parsing failed.\n", " \n", " tabula.errors.JavaNotFoundError:\n", " If java is not installed or found.\n", " \n", " subprocess.CalledProcessError:\n", " If tabula-java execution failed.\n", " \n", " \n", " Examples:\n", " \n", " Here is a simple example.\n", " Note that :func:`read_pdf()` only extract page 1 by default.\n", " \n", " Notes:\n", " As of tabula-py 2.0.0, :func:`read_pdf()` sets `multiple_tables=True` by\n", " default. If you want to get consistent output with previous version, set\n", " `multiple_tables=False`.\n", " \n", " >>> import tabula\n", " >>> pdf_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf\"\n", " >>> tabula.read_pdf(pdf_path, stream=True)\n", " [ Unnamed: 0 mpg cyl disp hp drat wt qsec vs am gear carb\n", " 0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4\n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4\n", " 2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1\n", " 3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1\n", " 4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2\n", " 5 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1\n", " 6 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4\n", " 7 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2\n", " 8 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2\n", " 9 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4\n", " 10 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4\n", " 11 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3\n", " 12 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3\n", " 13 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3\n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4\n", " 15 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4\n", " 16 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4\n", " 17 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1\n", " 18 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2\n", " 19 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1\n", " 20 Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1\n", " 21 Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2\n", " 22 AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2\n", " 23 Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4\n", " 24 Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2\n", " 25 Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1\n", " 26 Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2\n", " 27 Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2\n", " 28 Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4\n", " 29 Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6\n", " 30 Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8\n", " 31 Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2]\n", " \n", " If you want to extract all pages, set ``pages=\"all\"``.\n", " \n", " >>> dfs = tabula.read_pdf(pdf_path, pages=\"all\")\n", " >>> len(dfs)\n", " 4\n", " >>> dfs\n", " [ 0 1 2 3 4 5 6 7 8 9\n", " 0 mpg cyl disp hp drat wt qsec vs am gear\n", " 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4\n", " 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4\n", " 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4\n", " 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3\n", " 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3\n", " 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3\n", " 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3\n", " 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4\n", " 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4\n", " 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4\n", " 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4\n", " 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3\n", " 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3\n", " 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3\n", " 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3\n", " 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3\n", " 17 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3\n", " 18 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4\n", " 19 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4\n", " 20 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4\n", " 21 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3\n", " 22 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3\n", " 23 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3\n", " 24 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3\n", " 25 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3\n", " 26 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4\n", " 27 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5\n", " 28 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5\n", " 29 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5\n", " 30 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5\n", " 31 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5, 0 1 2 3 4\n", " 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 1 5.1 3.5 1.4 0.2 setosa\n", " 2 4.9 3.0 1.4 0.2 setosa\n", " 3 4.7 3.2 1.3 0.2 setosa\n", " 4 4.6 3.1 1.5 0.2 setosa\n", " 5 5.0 3.6 1.4 0.2 setosa\n", " 6 5.4 3.9 1.7 0.4 setosa, 0 1 2 3 4 5\n", " 0 NaN Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 1 145 6.7 3.3 5.7 2.5 virginica\n", " 2 146 6.7 3.0 5.2 2.3 virginica\n", " 3 147 6.3 2.5 5.0 1.9 virginica\n", " 4 148 6.5 3.0 5.2 2.0 virginica\n", " 5 149 6.2 3.4 5.4 2.3 virginica\n", " 6 150 5.9 3.0 5.1 1.8 virginica, 0\n", " 0 supp\n", " 1 VC\n", " 2 VC\n", " 3 VC\n", " 4 VC\n", " 5 VC\n", " 6 VC\n", " 7 VC\n", " 8 VC\n", " 9 VC\n", " 10 VC\n", " 11 VC\n", " 12 VC\n", " 13 VC\n", " 14 VC]\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "UJsaPqfBsjsB", "colab_type": "code", "outputId": "5cc8e126-c8fe-439d-c748-657eda3bfd23", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "help(tabula.io.build_options)" ], "execution_count": 7, "outputs": [ { "output_type": "stream", "text": [ "Help on function build_options in module tabula.io:\n", "\n", "build_options(pages=None, guess=True, area=None, relative_area=False, lattice=False, stream=False, password=None, silent=None, columns=None, format=None, batch=None, output_path=None, options='')\n", " Build options for tabula-java\n", " \n", " Args:\n", " pages (str, int, `list` of `int`, optional):\n", " An optional values specifying pages to extract from. It allows\n", " `str`,`int`, `list` of :`int`. Default: `1`\n", " \n", " Examples:\n", " ``'1-2,3'``, ``'all'``, ``[1,2]``\n", " guess (bool, optional):\n", " Guess the portion of the page to analyze per page. Default `True`\n", " If you use \"area\" option, this option becomes `False`.\n", " \n", " Note:\n", " As of tabula-java 1.0.3, guess option becomes independent from\n", " lattice and stream option, you can use guess and lattice/stream option\n", " at the same time.\n", " \n", " area (list of float, list of list of float, optional):\n", " Portion of the page to analyze(top,left,bottom,right).\n", " Default is entire page.\n", " \n", " Note:\n", " If you want to use multiple area options and extract in one table, it\n", " should be better to set ``multiple_tables=False`` for :func:`read_pdf()`\n", " \n", " Examples:\n", " ``[269.875,12.75,790.5,561]``,\n", " ``[[12.1,20.5,30.1,50.2], [1.0,3.2,10.5,40.2]]``\n", " \n", " relative_area (bool, optional):\n", " If all area values are between 0-100 (inclusive) and preceded by ``'%'``,\n", " input will be taken as % of actual height or width of the page.\n", " Default ``False``.\n", " lattice (bool, optional):\n", " Force PDF to be extracted using lattice-mode extraction\n", " (if there are ruling lines separating each cell, as in a PDF of an\n", " Excel spreadsheet)\n", " stream (bool, optional):\n", " Force PDF to be extracted using stream-mode extraction\n", " (if there are no ruling lines separating each cell, as in a PDF of an\n", " Excel spreadsheet)\n", " password (str, optional):\n", " Password to decrypt document. Default: empty\n", " silent (bool, optional):\n", " Suppress all stderr output.\n", " columns (list, optional):\n", " X coordinates of column boundaries.\n", " \n", " Example:\n", " ``[10.1, 20.2, 30.3]``\n", " format (str, optional):\n", " Format for output file or extracted object.\n", " (``\"CSV\"``, ``\"TSV\"``, ``\"JSON\"``)\n", " batch (str, optional):\n", " Convert all PDF files in the provided directory. This argument should be\n", " directory path.\n", " output_path (str, optional):\n", " Output file path. File format of it is depends on ``format``.\n", " Same as ``--outfile`` option of tabula-java.\n", " options (str, optional):\n", " Raw option string for tabula-java.\n", " \n", " Returns:\n", " list:\n", " Built list of options\n", "\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "vE9524MBspsN", "colab_type": "text" }, "source": [ "Let's set `pages` option. Here is the extraction result of page 3:" ] }, { "cell_type": "code", "metadata": { "id": "bjbmAfk_luRD", "colab_type": "code", "outputId": "8d7ba5e5-07a8-4e4a-8e2c-37d5c0670294", "colab": { "base_uri": "https://localhost:8080/", "height": 604 } }, "source": [ "# set pages option\n", "dfs = tabula.read_pdf(pdf_path, pages=3, stream=True)\n", "dfs[0]" ], "execution_count": 8, "outputs": [ { "output_type": "stream", "text": [ "Got stderr: Jun 04, 2020 8:22:51 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:22:51 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lensuppdose
04.2VC0.5
111.5VC0.5
27.3VC0.5
35.8VC0.5
46.4VC0.5
510.0VC0.5
611.2VC0.5
711.2VC0.5
85.2VC0.5
97.0VC0.5
1016.5VC1.0
1116.5VC1.0
1215.2VC1.0
1317.3VC1.0
1422.5VC1.0
\n", "
" ], "text/plain": [ " len supp dose\n", "0 4.2 VC 0.5\n", "1 11.5 VC 0.5\n", "2 7.3 VC 0.5\n", "3 5.8 VC 0.5\n", "4 6.4 VC 0.5\n", "5 10.0 VC 0.5\n", "6 11.2 VC 0.5\n", "7 11.2 VC 0.5\n", "8 5.2 VC 0.5\n", "9 7.0 VC 0.5\n", "10 16.5 VC 1.0\n", "11 16.5 VC 1.0\n", "12 15.2 VC 1.0\n", "13 17.3 VC 1.0\n", "14 22.5 VC 1.0" ] }, "metadata": { "tags": [] }, "execution_count": 8 } ] }, { "cell_type": "code", "metadata": { "id": "5oJl_6MYluRQ", "colab_type": "code", "outputId": "24580a6f-55a0-424e-9101-dc1d6c8cdadf", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "# pass pages as string\n", "tabula.read_pdf(pdf_path, pages=\"1-2,3\", stream=True)" ], "execution_count": 9, "outputs": [ { "output_type": "stream", "text": [ "Got stderr: Jun 04, 2020 8:23:57 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:23:57 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp ... qsec vs am gear carb\n", " 0 Mazda RX4 21.0 6 160.0 110 ... 16.46 0 1 4 4\n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 ... 17.02 0 1 4 4\n", " 2 Datsun 710 22.8 4 108.0 93 ... 18.61 1 1 4 1\n", " 3 Hornet 4 Drive 21.4 6 258.0 110 ... 19.44 1 0 3 1\n", " 4 Hornet Sportabout 18.7 8 360.0 175 ... 17.02 0 0 3 2\n", " 5 Valiant 18.1 6 225.0 105 ... 20.22 1 0 3 1\n", " 6 Duster 360 14.3 8 360.0 245 ... 15.84 0 0 3 4\n", " 7 Merc 240D 24.4 4 146.7 62 ... 20.00 1 0 4 2\n", " 8 Merc 230 22.8 4 140.8 95 ... 22.90 1 0 4 2\n", " 9 Merc 280 19.2 6 167.6 123 ... 18.30 1 0 4 4\n", " 10 Merc 280C 17.8 6 167.6 123 ... 18.90 1 0 4 4\n", " 11 Merc 450SE 16.4 8 275.8 180 ... 17.40 0 0 3 3\n", " 12 Merc 450SL 17.3 8 275.8 180 ... 17.60 0 0 3 3\n", " 13 Merc 450SLC 15.2 8 275.8 180 ... 18.00 0 0 3 3\n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 ... 17.98 0 0 3 4\n", " 15 Lincoln Continental 10.4 8 460.0 215 ... 17.82 0 0 3 4\n", " 16 Chrysler Imperial 14.7 8 440.0 230 ... 17.42 0 0 3 4\n", " 17 Fiat 128 32.4 4 78.7 66 ... 19.47 1 1 4 1\n", " 18 Honda Civic 30.4 4 75.7 52 ... 18.52 1 1 4 2\n", " 19 Toyota Corolla 33.9 4 71.1 65 ... 19.90 1 1 4 1\n", " 20 Toyota Corona 21.5 4 120.1 97 ... 20.01 1 0 3 1\n", " 21 Dodge Challenger 15.5 8 318.0 150 ... 16.87 0 0 3 2\n", " 22 AMC Javelin 15.2 8 304.0 150 ... 17.30 0 0 3 2\n", " 23 Camaro Z28 13.3 8 350.0 245 ... 15.41 0 0 3 4\n", " 24 Pontiac Firebird 19.2 8 400.0 175 ... 17.05 0 0 3 2\n", " 25 Fiat X1-9 27.3 4 79.0 66 ... 18.90 1 1 4 1\n", " 26 Porsche 914-2 26.0 4 120.3 91 ... 16.70 0 1 5 2\n", " 27 Lotus Europa 30.4 4 95.1 113 ... 16.90 1 1 5 2\n", " 28 Ford Pantera L 15.8 8 351.0 264 ... 14.50 0 1 5 4\n", " 29 Ferrari Dino 19.7 6 145.0 175 ... 15.50 0 1 5 6\n", " 30 Maserati Bora 15.0 8 301.0 335 ... 14.60 0 1 5 8\n", " 31 Volvo 142E 21.4 4 121.0 109 ... 18.60 1 1 4 2\n", " \n", " [32 rows x 12 columns],\n", " Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa\n", " 5 5.4 3.9 1.7 0.4 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica\n", " 5 150 5.9 3.0 5.1 1.8 virginica,\n", " len supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0\n", " 14 22.5 VC 1.0]" ] }, "metadata": { "tags": [] }, "execution_count": 9 } ] }, { "cell_type": "markdown", "metadata": { "id": "kLnlbot_tBUa", "colab_type": "text" }, "source": [ "You can set `pages=\"all\"` for extration all pages. If you hit OOM error with Java, you should set appropriate `-Xmx` option for `java_options`." ] }, { "cell_type": "code", "metadata": { "id": "pGKPdC0tluRc", "colab_type": "code", "outputId": "6e860d6d-7c4a-4ef9-dbb7-ab27c0fb6c19", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "# extract all pages\n", "tabula.read_pdf(pdf_path, pages=\"all\", stream=True)" ], "execution_count": 10, "outputs": [ { "output_type": "stream", "text": [ "Got stderr: Jun 04, 2020 8:24:02 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:02 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp ... qsec vs am gear carb\n", " 0 Mazda RX4 21.0 6 160.0 110 ... 16.46 0 1 4 4\n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 ... 17.02 0 1 4 4\n", " 2 Datsun 710 22.8 4 108.0 93 ... 18.61 1 1 4 1\n", " 3 Hornet 4 Drive 21.4 6 258.0 110 ... 19.44 1 0 3 1\n", " 4 Hornet Sportabout 18.7 8 360.0 175 ... 17.02 0 0 3 2\n", " 5 Valiant 18.1 6 225.0 105 ... 20.22 1 0 3 1\n", " 6 Duster 360 14.3 8 360.0 245 ... 15.84 0 0 3 4\n", " 7 Merc 240D 24.4 4 146.7 62 ... 20.00 1 0 4 2\n", " 8 Merc 230 22.8 4 140.8 95 ... 22.90 1 0 4 2\n", " 9 Merc 280 19.2 6 167.6 123 ... 18.30 1 0 4 4\n", " 10 Merc 280C 17.8 6 167.6 123 ... 18.90 1 0 4 4\n", " 11 Merc 450SE 16.4 8 275.8 180 ... 17.40 0 0 3 3\n", " 12 Merc 450SL 17.3 8 275.8 180 ... 17.60 0 0 3 3\n", " 13 Merc 450SLC 15.2 8 275.8 180 ... 18.00 0 0 3 3\n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 ... 17.98 0 0 3 4\n", " 15 Lincoln Continental 10.4 8 460.0 215 ... 17.82 0 0 3 4\n", " 16 Chrysler Imperial 14.7 8 440.0 230 ... 17.42 0 0 3 4\n", " 17 Fiat 128 32.4 4 78.7 66 ... 19.47 1 1 4 1\n", " 18 Honda Civic 30.4 4 75.7 52 ... 18.52 1 1 4 2\n", " 19 Toyota Corolla 33.9 4 71.1 65 ... 19.90 1 1 4 1\n", " 20 Toyota Corona 21.5 4 120.1 97 ... 20.01 1 0 3 1\n", " 21 Dodge Challenger 15.5 8 318.0 150 ... 16.87 0 0 3 2\n", " 22 AMC Javelin 15.2 8 304.0 150 ... 17.30 0 0 3 2\n", " 23 Camaro Z28 13.3 8 350.0 245 ... 15.41 0 0 3 4\n", " 24 Pontiac Firebird 19.2 8 400.0 175 ... 17.05 0 0 3 2\n", " 25 Fiat X1-9 27.3 4 79.0 66 ... 18.90 1 1 4 1\n", " 26 Porsche 914-2 26.0 4 120.3 91 ... 16.70 0 1 5 2\n", " 27 Lotus Europa 30.4 4 95.1 113 ... 16.90 1 1 5 2\n", " 28 Ford Pantera L 15.8 8 351.0 264 ... 14.50 0 1 5 4\n", " 29 Ferrari Dino 19.7 6 145.0 175 ... 15.50 0 1 5 6\n", " 30 Maserati Bora 15.0 8 301.0 335 ... 14.60 0 1 5 8\n", " 31 Volvo 142E 21.4 4 121.0 109 ... 18.60 1 1 4 2\n", " \n", " [32 rows x 12 columns],\n", " Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa\n", " 5 5.4 3.9 1.7 0.4 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica\n", " 5 150 5.9 3.0 5.1 1.8 virginica,\n", " len supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0\n", " 14 22.5 VC 1.0]" ] }, "metadata": { "tags": [] }, "execution_count": 10 } ] }, { "cell_type": "markdown", "metadata": { "id": "lW8GUsUvt00N", "colab_type": "text" }, "source": [ "## Read partial area of PDF\n", "\n", "If you want to set a certain part of page, you can use `area` option.\n", "\n", "Note that as of tabula-py 2.0.0, `multiple_tables` option became `True` so if you want to use multiple `area` options like `[[0, 0, 100, 50], [0, 50, 100, 100]]`, you need to set `multiple_tables=False`." ] }, { "cell_type": "code", "metadata": { "id": "Ea9NwvdYluSF", "colab_type": "code", "outputId": "03b1acf7-09f6-4224-9c02-4ad8ddc85437", "colab": { "base_uri": "https://localhost:8080/", "height": 325 } }, "source": [ "# set area option\n", "dfs = tabula.read_pdf(pdf_path, area=[126,149,212,462], pages=2)\n", "dfs[0]" ], "execution_count": 11, "outputs": [ { "output_type": "stream", "text": [ "Got stderr: Jun 04, 2020 8:24:12 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:12 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0Sepal.WidthPetal.LengthPetal.WidthSpecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
53.91.70.4setosaNaN
\n", "
" ], "text/plain": [ " Unnamed: 0 Sepal.Width Petal.Length Petal.Width Species\n", "0 5.1 3.5 1.4 0.2 setosa\n", "1 4.9 3.0 1.4 0.2 setosa\n", "2 4.7 3.2 1.3 0.2 setosa\n", "3 4.6 3.1 1.5 0.2 setosa\n", "4 5.0 3.6 1.4 0.2 setosa\n", "5 3.9 1.7 0.4 setosa NaN" ] }, "metadata": { "tags": [] }, "execution_count": 11 } ] }, { "cell_type": "markdown", "metadata": { "id": "_G5QO2-pPgbw", "colab_type": "text" }, "source": [ "## Read giving column information" ] }, { "cell_type": "code", "metadata": { "id": "4kByGX6GPf_c", "colab_type": "code", "outputId": "9370bcba-3b0b-4546-baf8-919bfdac65a8", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "pdf_path2 = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/campaign_donors.pdf\"\n", "\n", "dfs = tabula.read_pdf(pdf_path2, columns=[47, 147, 256, 310, 375, 431, 504], guess=False, pages=1)\n", "df = dfs[0].drop([\"Unnamed: 0\"], axis=1)\n", "df" ], "execution_count": 12, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ApellidoNombreMatriculaCuitFechaTipoImporte
0MENAJUAN MARTÍN27.083.46020-27083460-509/10/2013EFECTIVO$ 10.000,00
1MOLLEMATÍAS25.348.54720-25348547-809/10/2013EFECTIVO$ 10.000,00
2MOLLEVIFEDERICO OSCAR25.028.24620-25028246-009/10/2013EFECTIVO$ 10.000,00
3PERAZZOPABLO DANIEL25.348.39420-25348394-709/10/2013EFECTIVO$ 10.000,00
4PICARDIFRANCO EDUARDO27.382.27120-27382271-309/10/2013EFECTIVO$ 10.000,00
5PISONICARLOS ENRIQUE26.034.82320-26034823-009/10/2013EFECTIVO$ 10.000,00
6PONTORIEROMARÍA PAULA23.249.59727-23249597-409/10/2013EFECTIVO$ 10.000,00
7PULESTONJUAN MIGUEL11.895.66120-11895661-409/10/2013EFECTIVO$ 10.000,00
8REMÓNMABEL AURORA11.292.93927-11292939-309/10/2013EFECTIVO$ 10.000,00
9SARRABAYROUSEDIEGO24.662.89920-24662899-909/10/2013EFECTIVO$ 10.000,00
10SPATOLAANALÍA CARMEN24.560.92227-24560922-709/10/2013EFECTIVO$ 10.000,00
11STAMILLASERGIO ADRIÁN29.364.22620-29364226-609/10/2013EFECTIVO$ 10.000,00
12SZARANGOWICZGUSTAVO ALEJANDRO25.096.24420-25096244-509/10/2013EFECTIVO$ 10.000,00
13TAILHADELUIS RODOLFO21.386.29920-21386299-609/10/2013EFECTIVO$ 10.000,00
14TEDESCHIADRIÁN ALBERTO24.171.50720-24171507-909/10/2013EFECTIVO$ 10.000,00
15URRIZAMARÍA TERESA18.135.60427-18135604-409/10/2013EFECTIVO$ 10.000,00
16USTARROZGERÓNIMO JAVIER24.912.94720-24912947-009/10/2013EFECTIVO$ 10.000,00
17VALSANGIACOMO BLANCOFERNANDO JORGE26.800.20320-26800203-109/10/2013EFECTIVO$ 10.000,00
18VICENTEPABLO ARIEL21.897.58620-21897586-109/10/2013EFECTIVO$ 10.000,00
19AMBURIHUGO ALBERTO14.096.56020-14096560-009/10/2013EFECTIVO$ 20.000,00
20BERRACLAUDIA SUSANA14.433.11227-14433112-009/10/2013EFECTIVO$ 10.000,00
21LASALARICARDO ALBERTO21.760.81120-21760811-309/10/2013EFECTIVO$ 10.000,00
22AZPITARTEMARCELO CARLOS16.018.56920-16018569-509/10/2013EFECTIVO$ 10.000,00
23BERARDOCRISTINA BEATRIZ12.609.61527-12609615-709/10/2013EFECTIVO$ 10.000,00
24OREIRORODOLFO MIGUEL13.655.72823-13655728-909/10/2013EFECTIVO$ 10.000,00
25FAIENZAMIGUEL ERNESTO27.264.63820-27264638-509/10/2013EFECTIVO$ 20.000,00
26GRANILLO FERNANDEZJUAN MANUEL27.235.28020-27235280-209/10/2013EFECTIVO$ 10.000,00
27RODRIGUEZ PINGITORECLAUDIA MONICA23.343.33227-23343332-809/10/2013EFECTIVO$ 10.000,00
28CORBELLATERESITA GRACIELA11.353.49127-11353491-009/10/2013EFECTIVO$ 5.000,00
29CORVINOGERMAN HORACIO27.491.52420-27491524-309/10/2013EFECTIVO$ 20.000,00
30GARCIA DELATOURAGUSTINA29.501.23027-29501230-209/10/2013EFECTIVO$ 5.000,00
31AGUIRRELIDIA ELIZABETH17.997.63427-17997634-509/10/2013EFECTIVO$ 5.000,00
32FORNERORAUL OSCAR10.177.16723-10177167-909/10/2013EFECTIVO$ 5.000,00
33SKOCILICNATALIA ELIZABETH30.237.73727-30237737-009/10/2013EFECTIVO$ 5.000,00
34SARRACARMEN11.812.38127-11812381-109/10/2013EFECTIVO$ 20.000,00
35VIVALDOMARÍA ITATÍ20.458.21427-20458214-409/10/2013EFECTIVO$ 10.000,00
36LORENZOFERNANDO LUIS22.608.38020-22608380-509/10/2013EFECTIVO$ 15.000,00
37VESTILLEROCARLOS SEBASTIAN25.638.59520-25638595-409/10/2013EFECTIVO$ 10.000,00
38CASTROMARIA VICTORIA22.642.06123-22642061-409/10/2013EFECTIVO$ 10.000,00
39PÉREZ SIMONDINIANDREA FABIANA17.768.99227-17768992-609/10/2013EFECTIVO$ 10.000,00
40CLAVERO MITRELILIANA INES11.176.76027-11176760-809/10/2013EFECTIVO$ 10.000,00
41SÁNCHEZMARIANA CLARA20.205.65127-20205651-809/10/2013EFECTIVO$ 10.000,00
42TALLÓNMATÍAS NORBERTO33.498.60120-33498601-309/10/2013EFECTIVO$ 10.000,00
43SUAREZFERNANDO11.633.29120-11633291-509/10/2013EFECTIVO$ 10.000,00
44TARSINOMARIA EVELYN23.276.48227-23276482-709/10/2013EFECTIVO$ 10.000,00
45GRIMBERG MARQUEZPAULA27.680.60027-27680600-409/10/2013EFECTIVO$ 10.000,00
46THORPMARIO18.179.10420-18179104-809/10/2013EFECTIVO$ 10.000,00
47BARABANLORENA ELIZABETH23.747.10627-23747106-209/10/2013EFECTIVO$ 10.000,00
48FRECHEROEZEQUIEL27.746.11520-27746115-409/10/2013EFECTIVO$ 10.000,00
49TORRESCARLOS HUGO25.957.22320-25957223-209/10/2013EFECTIVO$ 10.000,00
50BILLERESGASTON MARTIN23.301.94820-23301948-909/10/2013EFECTIVO$ 10.000,00
51RODRIGUEZEDGARDO JAVIER21.502.79320-21502793-809/10/2013EFECTIVO$ 10.000,00
52KARPINSKYENRIQUE MARCELO14.877.26620-14877266-609/10/2013EFECTIVO$ 10.000,00
53GRIMBERG MARQUEZJUAN CARLOS7.831.24020-07831240-909/10/2013EFECTIVO$ 10.000,00
54BOGADO GONZALEZJULIO BERNABE27.592.81420-27592814-409/10/2013EFECTIVO$ 10.000,00
55NaNNaNNaNNaNANEXO I-A-1 Página 12 de 14
\n", "
" ], "text/plain": [ " Apellido Nombre ... Tipo Importe\n", "0 MENA JUAN MARTÍN ... EFECTIVO $ 10.000,00\n", "1 MOLLE MATÍAS ... EFECTIVO $ 10.000,00\n", "2 MOLLEVI FEDERICO OSCAR ... EFECTIVO $ 10.000,00\n", "3 PERAZZO PABLO DANIEL ... EFECTIVO $ 10.000,00\n", "4 PICARDI FRANCO EDUARDO ... EFECTIVO $ 10.000,00\n", "5 PISONI CARLOS ENRIQUE ... EFECTIVO $ 10.000,00\n", "6 PONTORIERO MARÍA PAULA ... EFECTIVO $ 10.000,00\n", "7 PULESTON JUAN MIGUEL ... EFECTIVO $ 10.000,00\n", "8 REMÓN MABEL AURORA ... EFECTIVO $ 10.000,00\n", "9 SARRABAYROUSE DIEGO ... EFECTIVO $ 10.000,00\n", "10 SPATOLA ANALÍA CARMEN ... EFECTIVO $ 10.000,00\n", "11 STAMILLA SERGIO ADRIÁN ... EFECTIVO $ 10.000,00\n", "12 SZARANGOWICZ GUSTAVO ALEJANDRO ... EFECTIVO $ 10.000,00\n", "13 TAILHADE LUIS RODOLFO ... EFECTIVO $ 10.000,00\n", "14 TEDESCHI ADRIÁN ALBERTO ... EFECTIVO $ 10.000,00\n", "15 URRIZA MARÍA TERESA ... EFECTIVO $ 10.000,00\n", "16 USTARROZ GERÓNIMO JAVIER ... EFECTIVO $ 10.000,00\n", "17 VALSANGIACOMO BLANC OFERNANDO JORGE ... EFECTIVO $ 10.000,00\n", "18 VICENTE PABLO ARIEL ... EFECTIVO $ 10.000,00\n", "19 AMBURI HUGO ALBERTO ... EFECTIVO $ 20.000,00\n", "20 BERRA CLAUDIA SUSANA ... EFECTIVO $ 10.000,00\n", "21 LASALA RICARDO ALBERTO ... EFECTIVO $ 10.000,00\n", "22 AZPITARTE MARCELO CARLOS ... EFECTIVO $ 10.000,00\n", "23 BERARDO CRISTINA BEATRIZ ... EFECTIVO $ 10.000,00\n", "24 OREIRO RODOLFO MIGUEL ... EFECTIVO $ 10.000,00\n", "25 FAIENZA MIGUEL ERNESTO ... EFECTIVO $ 20.000,00\n", "26 GRANILLO FERNANDEZ JUAN MANUEL ... EFECTIVO $ 10.000,00\n", "27 RODRIGUEZ PINGITORE CLAUDIA MONICA ... EFECTIVO $ 10.000,00\n", "28 CORBELLA TERESITA GRACIELA ... EFECTIVO $ 5.000,00\n", "29 CORVINO GERMAN HORACIO ... EFECTIVO $ 20.000,00\n", "30 GARCIA DELATOUR AGUSTINA ... EFECTIVO $ 5.000,00\n", "31 AGUIRRE LIDIA ELIZABETH ... EFECTIVO $ 5.000,00\n", "32 FORNERO RAUL OSCAR ... EFECTIVO $ 5.000,00\n", "33 SKOCILIC NATALIA ELIZABETH ... EFECTIVO $ 5.000,00\n", "34 SARRA CARMEN ... EFECTIVO $ 20.000,00\n", "35 VIVALDO MARÍA ITATÍ ... EFECTIVO $ 10.000,00\n", "36 LORENZO FERNANDO LUIS ... EFECTIVO $ 15.000,00\n", "37 VESTILLERO CARLOS SEBASTIAN ... EFECTIVO $ 10.000,00\n", "38 CASTRO MARIA VICTORIA ... EFECTIVO $ 10.000,00\n", "39 PÉREZ SIMONDINI ANDREA FABIANA ... EFECTIVO $ 10.000,00\n", "40 CLAVERO MITRE LILIANA INES ... EFECTIVO $ 10.000,00\n", "41 SÁNCHEZ MARIANA CLARA ... EFECTIVO $ 10.000,00\n", "42 TALLÓN MATÍAS NORBERTO ... EFECTIVO $ 10.000,00\n", "43 SUAREZ FERNANDO ... EFECTIVO $ 10.000,00\n", "44 TARSINO MARIA EVELYN ... EFECTIVO $ 10.000,00\n", "45 GRIMBERG MARQUEZ PAULA ... EFECTIVO $ 10.000,00\n", "46 THORP MARIO ... EFECTIVO $ 10.000,00\n", "47 BARABAN LORENA ELIZABETH ... EFECTIVO $ 10.000,00\n", "48 FRECHERO EZEQUIEL ... EFECTIVO $ 10.000,00\n", "49 TORRES CARLOS HUGO ... EFECTIVO $ 10.000,00\n", "50 BILLERES GASTON MARTIN ... EFECTIVO $ 10.000,00\n", "51 RODRIGUEZ EDGARDO JAVIER ... EFECTIVO $ 10.000,00\n", "52 KARPINSKY ENRIQUE MARCELO ... EFECTIVO $ 10.000,00\n", "53 GRIMBERG MARQUEZ JUAN CARLOS ... EFECTIVO $ 10.000,00\n", "54 BOGADO GONZALEZ JULIO BERNABE ... EFECTIVO $ 10.000,00\n", "55 NaN NaN ... XO I-A-1 Págin a 12 de 14\n", "\n", "[56 rows x 7 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 12 } ] }, { "cell_type": "markdown", "metadata": { "id": "kPjnNeHnuBr9", "colab_type": "text" }, "source": [ "## Extract to JSON, TSV, or CSV\n", "\n", "tabula-py has capability to convert not only DataFrame but also JSON, TSV, or CSV. You can set output format with `output_format` option." ] }, { "cell_type": "code", "metadata": { "id": "-H1qqAQeluSO", "colab_type": "code", "outputId": "45d889d0-bdb3-41b8-f8aa-b7b4c8fa4465", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "# read pdf as JSON\n", "tabula.read_pdf(pdf_path, output_format=\"json\")" ], "execution_count": 13, "outputs": [ { "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Got stderr: Jun 04, 2020 8:24:24 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:24 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/plain": [ "[{'bottom': 520.3189,\n", " 'data': [[{'height': 12.186347961425781,\n", " 'left': 247.14917,\n", " 'text': 'mpg',\n", " 'top': 125.17005,\n", " 'width': 30.773834228515625},\n", " {'height': 12.186347961425781,\n", " 'left': 277.923,\n", " 'text': 'cyl',\n", " 'top': 125.17005,\n", " 'width': 24.407867431640625},\n", " {'height': 12.186347961425781,\n", " 'left': 302.33087,\n", " 'text': 'disp',\n", " 'top': 125.17005,\n", " 'width': 34.6478271484375},\n", " {'height': 12.186347961425781,\n", " 'left': 336.9787,\n", " 'text': 'hp',\n", " 'top': 125.17005,\n", " 'width': 26.899566650390625},\n", " {'height': 12.186347961425781,\n", " 'left': 363.87827,\n", " 'text': 'drat',\n", " 'top': 125.17005,\n", " 'width': 30.24810791015625},\n", " {'height': 12.186347961425781,\n", " 'left': 394.12637,\n", " 'text': 'wt',\n", " 'top': 125.17005,\n", " 'width': 34.64752197265625},\n", " {'height': 12.186347961425781,\n", " 'left': 428.7739,\n", " 'text': 'qsec',\n", " 'top': 125.17005,\n", " 'width': 34.64801025390625},\n", " {'height': 12.186347961425781,\n", " 'left': 463.4219,\n", " 'text': 'vs',\n", " 'top': 125.17005,\n", " 'width': 21.1429443359375},\n", " {'height': 12.186347961425781,\n", " 'left': 484.56485,\n", " 'text': 'am',\n", " 'top': 125.17005,\n", " 'width': 25.238006591796875},\n", " {'height': 12.186347961425781,\n", " 'left': 509.80286,\n", " 'text': 'gear',\n", " 'top': 125.17005,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.352630615234375,\n", " 'left': 247.14917,\n", " 'text': '21.0',\n", " 'top': 137.3564,\n", " 'width': 30.773834228515625},\n", " {'height': 12.352630615234375,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 137.3564,\n", " 'width': 24.407867431640625},\n", " {'height': 12.352630615234375,\n", " 'left': 302.33087,\n", " 'text': '160.0',\n", " 'top': 137.3564,\n", " 'width': 34.6478271484375},\n", " {'height': 12.352630615234375,\n", " 'left': 336.9787,\n", " 'text': '110',\n", " 'top': 137.3564,\n", " 'width': 26.899566650390625},\n", " {'height': 12.352630615234375,\n", " 'left': 363.87827,\n", " 'text': '3.90',\n", " 'top': 137.3564,\n", " 'width': 30.24810791015625},\n", " {'height': 12.352630615234375,\n", " 'left': 394.12637,\n", " 'text': '2.620',\n", " 'top': 137.3564,\n", " 'width': 34.64752197265625},\n", " {'height': 12.352630615234375,\n", " 'left': 428.7739,\n", " 'text': '16.46',\n", " 'top': 137.3564,\n", " 'width': 34.64801025390625},\n", " {'height': 12.352630615234375,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 137.3564,\n", " 'width': 21.1429443359375},\n", " {'height': 12.352630615234375,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 137.3564,\n", " 'width': 25.238006591796875},\n", " {'height': 12.352630615234375,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 137.3564,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35186767578125,\n", " 'left': 247.14917,\n", " 'text': '21.0',\n", " 'top': 149.70903,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35186767578125,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 149.70903,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35186767578125,\n", " 'left': 302.33087,\n", " 'text': '160.0',\n", " 'top': 149.70903,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35186767578125,\n", " 'left': 336.9787,\n", " 'text': '110',\n", " 'top': 149.70903,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35186767578125,\n", " 'left': 363.87827,\n", " 'text': '3.90',\n", " 'top': 149.70903,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35186767578125,\n", " 'left': 394.12637,\n", " 'text': '2.875',\n", " 'top': 149.70903,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35186767578125,\n", " 'left': 428.7739,\n", " 'text': '17.02',\n", " 'top': 149.70903,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35186767578125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 149.70903,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35186767578125,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 149.70903,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35186767578125,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 149.70903,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35662841796875,\n", " 'left': 247.14917,\n", " 'text': '22.8',\n", " 'top': 162.0609,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35662841796875,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 162.0609,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35662841796875,\n", " 'left': 302.33087,\n", " 'text': '108.0',\n", " 'top': 162.0609,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35662841796875,\n", " 'left': 336.9787,\n", " 'text': '93',\n", " 'top': 162.0609,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35662841796875,\n", " 'left': 363.87827,\n", " 'text': '3.85',\n", " 'top': 162.0609,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35662841796875,\n", " 'left': 394.12637,\n", " 'text': '2.320',\n", " 'top': 162.0609,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35662841796875,\n", " 'left': 428.7739,\n", " 'text': '18.61',\n", " 'top': 162.0609,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35662841796875,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 162.0609,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35662841796875,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 162.0609,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35662841796875,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 162.0609,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.352005004882812,\n", " 'left': 247.14917,\n", " 'text': '21.4',\n", " 'top': 174.41753,\n", " 'width': 30.773834228515625},\n", " {'height': 12.352005004882812,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 174.41753,\n", " 'width': 24.407867431640625},\n", " {'height': 12.352005004882812,\n", " 'left': 302.33087,\n", " 'text': '258.0',\n", " 'top': 174.41753,\n", " 'width': 34.6478271484375},\n", " {'height': 12.352005004882812,\n", " 'left': 336.9787,\n", " 'text': '110',\n", " 'top': 174.41753,\n", " 'width': 26.899566650390625},\n", " {'height': 12.352005004882812,\n", " 'left': 363.87827,\n", " 'text': '3.08',\n", " 'top': 174.41753,\n", " 'width': 30.24810791015625},\n", " {'height': 12.352005004882812,\n", " 'left': 394.12637,\n", " 'text': '3.215',\n", " 'top': 174.41753,\n", " 'width': 34.64752197265625},\n", " {'height': 12.352005004882812,\n", " 'left': 428.7739,\n", " 'text': '19.44',\n", " 'top': 174.41753,\n", " 'width': 34.64801025390625},\n", " {'height': 12.352005004882812,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 174.41753,\n", " 'width': 21.1429443359375},\n", " {'height': 12.352005004882812,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 174.41753,\n", " 'width': 25.238006591796875},\n", " {'height': 12.352005004882812,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 174.41753,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351882934570312,\n", " 'left': 247.14917,\n", " 'text': '18.7',\n", " 'top': 186.76953,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351882934570312,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 186.76953,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351882934570312,\n", " 'left': 302.33087,\n", " 'text': '360.0',\n", " 'top': 186.76953,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351882934570312,\n", " 'left': 336.9787,\n", " 'text': '175',\n", " 'top': 186.76953,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351882934570312,\n", " 'left': 363.87827,\n", " 'text': '3.15',\n", " 'top': 186.76953,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351882934570312,\n", " 'left': 394.12637,\n", " 'text': '3.440',\n", " 'top': 186.76953,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351882934570312,\n", " 'left': 428.7739,\n", " 'text': '17.02',\n", " 'top': 186.76953,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351882934570312,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 186.76953,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351882934570312,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 186.76953,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351882934570312,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 186.76953,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.356597900390625,\n", " 'left': 247.14917,\n", " 'text': '18.1',\n", " 'top': 199.12141,\n", " 'width': 30.773834228515625},\n", " {'height': 12.356597900390625,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 199.12141,\n", " 'width': 24.407867431640625},\n", " {'height': 12.356597900390625,\n", " 'left': 302.33087,\n", " 'text': '225.0',\n", " 'top': 199.12141,\n", " 'width': 34.6478271484375},\n", " {'height': 12.356597900390625,\n", " 'left': 336.9787,\n", " 'text': '105',\n", " 'top': 199.12141,\n", " 'width': 26.899566650390625},\n", " {'height': 12.356597900390625,\n", " 'left': 363.87827,\n", " 'text': '2.76',\n", " 'top': 199.12141,\n", " 'width': 30.24810791015625},\n", " {'height': 12.356597900390625,\n", " 'left': 394.12637,\n", " 'text': '3.460',\n", " 'top': 199.12141,\n", " 'width': 34.64752197265625},\n", " {'height': 12.356597900390625,\n", " 'left': 428.7739,\n", " 'text': '20.22',\n", " 'top': 199.12141,\n", " 'width': 34.64801025390625},\n", " {'height': 12.356597900390625,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 199.12141,\n", " 'width': 21.1429443359375},\n", " {'height': 12.356597900390625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 199.12141,\n", " 'width': 25.238006591796875},\n", " {'height': 12.356597900390625,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 199.12141,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351959228515625,\n", " 'left': 247.14917,\n", " 'text': '14.3',\n", " 'top': 211.47801,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351959228515625,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 211.47801,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351959228515625,\n", " 'left': 302.33087,\n", " 'text': '360.0',\n", " 'top': 211.47801,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351959228515625,\n", " 'left': 336.9787,\n", " 'text': '245',\n", " 'top': 211.47801,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351959228515625,\n", " 'left': 363.87827,\n", " 'text': '3.21',\n", " 'top': 211.47801,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351959228515625,\n", " 'left': 394.12637,\n", " 'text': '3.570',\n", " 'top': 211.47801,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351959228515625,\n", " 'left': 428.7739,\n", " 'text': '15.84',\n", " 'top': 211.47801,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351959228515625,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 211.47801,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351959228515625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 211.47801,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351959228515625,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 211.47801,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351806640625,\n", " 'left': 247.14917,\n", " 'text': '24.4',\n", " 'top': 223.82997,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351806640625,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 223.82997,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351806640625,\n", " 'left': 302.33087,\n", " 'text': '146.7',\n", " 'top': 223.82997,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351806640625,\n", " 'left': 336.9787,\n", " 'text': '62',\n", " 'top': 223.82997,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351806640625,\n", " 'left': 363.87827,\n", " 'text': '3.69',\n", " 'top': 223.82997,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351806640625,\n", " 'left': 394.12637,\n", " 'text': '3.190',\n", " 'top': 223.82997,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351806640625,\n", " 'left': 428.7739,\n", " 'text': '20.00',\n", " 'top': 223.82997,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351806640625,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 223.82997,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351806640625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 223.82997,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351806640625,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 223.82997,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.356719970703125,\n", " 'left': 247.14917,\n", " 'text': '22.8',\n", " 'top': 236.18178,\n", " 'width': 30.773834228515625},\n", " {'height': 12.356719970703125,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 236.18178,\n", " 'width': 24.407867431640625},\n", " {'height': 12.356719970703125,\n", " 'left': 302.33087,\n", " 'text': '140.8',\n", " 'top': 236.18178,\n", " 'width': 34.6478271484375},\n", " {'height': 12.356719970703125,\n", " 'left': 336.9787,\n", " 'text': '95',\n", " 'top': 236.18178,\n", " 'width': 26.899566650390625},\n", " {'height': 12.356719970703125,\n", " 'left': 363.87827,\n", " 'text': '3.92',\n", " 'top': 236.18178,\n", " 'width': 30.24810791015625},\n", " {'height': 12.356719970703125,\n", " 'left': 394.12637,\n", " 'text': '3.150',\n", " 'top': 236.18178,\n", " 'width': 34.64752197265625},\n", " {'height': 12.356719970703125,\n", " 'left': 428.7739,\n", " 'text': '22.90',\n", " 'top': 236.18178,\n", " 'width': 34.64801025390625},\n", " {'height': 12.356719970703125,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 236.18178,\n", " 'width': 21.1429443359375},\n", " {'height': 12.356719970703125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 236.18178,\n", " 'width': 25.238006591796875},\n", " {'height': 12.356719970703125,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 236.18178,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351882934570312,\n", " 'left': 247.14917,\n", " 'text': '19.2',\n", " 'top': 248.5385,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351882934570312,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 248.5385,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351882934570312,\n", " 'left': 302.33087,\n", " 'text': '167.6',\n", " 'top': 248.5385,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351882934570312,\n", " 'left': 336.9787,\n", " 'text': '123',\n", " 'top': 248.5385,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351882934570312,\n", " 'left': 363.87827,\n", " 'text': '3.92',\n", " 'top': 248.5385,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351882934570312,\n", " 'left': 394.12637,\n", " 'text': '3.440',\n", " 'top': 248.5385,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351882934570312,\n", " 'left': 428.7739,\n", " 'text': '18.30',\n", " 'top': 248.5385,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351882934570312,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 248.5385,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351882934570312,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 248.5385,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351882934570312,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 248.5385,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.3564453125,\n", " 'left': 247.14917,\n", " 'text': '17.8',\n", " 'top': 260.89038,\n", " 'width': 30.773834228515625},\n", " {'height': 12.3564453125,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 260.89038,\n", " 'width': 24.407867431640625},\n", " {'height': 12.3564453125,\n", " 'left': 302.33087,\n", " 'text': '167.6',\n", " 'top': 260.89038,\n", " 'width': 34.6478271484375},\n", " {'height': 12.3564453125,\n", " 'left': 336.9787,\n", " 'text': '123',\n", " 'top': 260.89038,\n", " 'width': 26.899566650390625},\n", " {'height': 12.3564453125,\n", " 'left': 363.87827,\n", " 'text': '3.92',\n", " 'top': 260.89038,\n", " 'width': 30.24810791015625},\n", " {'height': 12.3564453125,\n", " 'left': 394.12637,\n", " 'text': '3.440',\n", " 'top': 260.89038,\n", " 'width': 34.64752197265625},\n", " {'height': 12.3564453125,\n", " 'left': 428.7739,\n", " 'text': '18.90',\n", " 'top': 260.89038,\n", " 'width': 34.64801025390625},\n", " {'height': 12.3564453125,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 260.89038,\n", " 'width': 21.1429443359375},\n", " {'height': 12.3564453125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 260.89038,\n", " 'width': 25.238006591796875},\n", " {'height': 12.3564453125,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 260.89038,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.352142333984375,\n", " 'left': 247.14917,\n", " 'text': '16.4',\n", " 'top': 273.24683,\n", " 'width': 30.773834228515625},\n", " {'height': 12.352142333984375,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 273.24683,\n", " 'width': 24.407867431640625},\n", " {'height': 12.352142333984375,\n", " 'left': 302.33087,\n", " 'text': '275.8',\n", " 'top': 273.24683,\n", " 'width': 34.6478271484375},\n", " {'height': 12.352142333984375,\n", " 'left': 336.9787,\n", " 'text': '180',\n", " 'top': 273.24683,\n", " 'width': 26.899566650390625},\n", " {'height': 12.352142333984375,\n", " 'left': 363.87827,\n", " 'text': '3.07',\n", " 'top': 273.24683,\n", " 'width': 30.24810791015625},\n", " {'height': 12.352142333984375,\n", " 'left': 394.12637,\n", " 'text': '4.070',\n", " 'top': 273.24683,\n", " 'width': 34.64752197265625},\n", " {'height': 12.352142333984375,\n", " 'left': 428.7739,\n", " 'text': '17.40',\n", " 'top': 273.24683,\n", " 'width': 34.64801025390625},\n", " {'height': 12.352142333984375,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 273.24683,\n", " 'width': 21.1429443359375},\n", " {'height': 12.352142333984375,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 273.24683,\n", " 'width': 25.238006591796875},\n", " {'height': 12.352142333984375,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 273.24683,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35186767578125,\n", " 'left': 247.14917,\n", " 'text': '17.3',\n", " 'top': 285.59897,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35186767578125,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 285.59897,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35186767578125,\n", " 'left': 302.33087,\n", " 'text': '275.8',\n", " 'top': 285.59897,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35186767578125,\n", " 'left': 336.9787,\n", " 'text': '180',\n", " 'top': 285.59897,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35186767578125,\n", " 'left': 363.87827,\n", " 'text': '3.07',\n", " 'top': 285.59897,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35186767578125,\n", " 'left': 394.12637,\n", " 'text': '3.730',\n", " 'top': 285.59897,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35186767578125,\n", " 'left': 428.7739,\n", " 'text': '17.60',\n", " 'top': 285.59897,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35186767578125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 285.59897,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35186767578125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 285.59897,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35186767578125,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 285.59897,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.357086181640625,\n", " 'left': 247.14917,\n", " 'text': '15.2',\n", " 'top': 297.95084,\n", " 'width': 30.773834228515625},\n", " {'height': 12.357086181640625,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 297.95084,\n", " 'width': 24.407867431640625},\n", " {'height': 12.357086181640625,\n", " 'left': 302.33087,\n", " 'text': '275.8',\n", " 'top': 297.95084,\n", " 'width': 34.6478271484375},\n", " {'height': 12.357086181640625,\n", " 'left': 336.9787,\n", " 'text': '180',\n", " 'top': 297.95084,\n", " 'width': 26.899566650390625},\n", " {'height': 12.357086181640625,\n", " 'left': 363.87827,\n", " 'text': '3.07',\n", " 'top': 297.95084,\n", " 'width': 30.24810791015625},\n", " {'height': 12.357086181640625,\n", " 'left': 394.12637,\n", " 'text': '3.780',\n", " 'top': 297.95084,\n", " 'width': 34.64752197265625},\n", " {'height': 12.357086181640625,\n", " 'left': 428.7739,\n", " 'text': '18.00',\n", " 'top': 297.95084,\n", " 'width': 34.64801025390625},\n", " {'height': 12.357086181640625,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 297.95084,\n", " 'width': 21.1429443359375},\n", " {'height': 12.357086181640625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 297.95084,\n", " 'width': 25.238006591796875},\n", " {'height': 12.357086181640625,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 297.95084,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.3515625,\n", " 'left': 247.14917,\n", " 'text': '10.4',\n", " 'top': 310.30792,\n", " 'width': 30.773834228515625},\n", " {'height': 12.3515625,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 310.30792,\n", " 'width': 24.407867431640625},\n", " {'height': 12.3515625,\n", " 'left': 302.33087,\n", " 'text': '472.0',\n", " 'top': 310.30792,\n", " 'width': 34.6478271484375},\n", " {'height': 12.3515625,\n", " 'left': 336.9787,\n", " 'text': '205',\n", " 'top': 310.30792,\n", " 'width': 26.899566650390625},\n", " {'height': 12.3515625,\n", " 'left': 363.87827,\n", " 'text': '2.93',\n", " 'top': 310.30792,\n", " 'width': 30.24810791015625},\n", " {'height': 12.3515625,\n", " 'left': 394.12637,\n", " 'text': '5.250',\n", " 'top': 310.30792,\n", " 'width': 34.64752197265625},\n", " {'height': 12.3515625,\n", " 'left': 428.7739,\n", " 'text': '17.98',\n", " 'top': 310.30792,\n", " 'width': 34.64801025390625},\n", " {'height': 12.3515625,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 310.30792,\n", " 'width': 21.1429443359375},\n", " {'height': 12.3515625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 310.30792,\n", " 'width': 25.238006591796875},\n", " {'height': 12.3515625,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 310.30792,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35186767578125,\n", " 'left': 247.14917,\n", " 'text': '10.4',\n", " 'top': 322.6595,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35186767578125,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 322.6595,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35186767578125,\n", " 'left': 302.33087,\n", " 'text': '460.0',\n", " 'top': 322.6595,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35186767578125,\n", " 'left': 336.9787,\n", " 'text': '215',\n", " 'top': 322.6595,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35186767578125,\n", " 'left': 363.87827,\n", " 'text': '3.00',\n", " 'top': 322.6595,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35186767578125,\n", " 'left': 394.12637,\n", " 'text': '5.424',\n", " 'top': 322.6595,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35186767578125,\n", " 'left': 428.7739,\n", " 'text': '17.82',\n", " 'top': 322.6595,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35186767578125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 322.6595,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35186767578125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 322.6595,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35186767578125,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 322.6595,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.357086181640625,\n", " 'left': 247.14917,\n", " 'text': '14.7',\n", " 'top': 335.01135,\n", " 'width': 30.773834228515625},\n", " {'height': 12.357086181640625,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 335.01135,\n", " 'width': 24.407867431640625},\n", " {'height': 12.357086181640625,\n", " 'left': 302.33087,\n", " 'text': '440.0',\n", " 'top': 335.01135,\n", " 'width': 34.6478271484375},\n", " {'height': 12.357086181640625,\n", " 'left': 336.9787,\n", " 'text': '230',\n", " 'top': 335.01135,\n", " 'width': 26.899566650390625},\n", " {'height': 12.357086181640625,\n", " 'left': 363.87827,\n", " 'text': '3.23',\n", " 'top': 335.01135,\n", " 'width': 30.24810791015625},\n", " {'height': 12.357086181640625,\n", " 'left': 394.12637,\n", " 'text': '5.345',\n", " 'top': 335.01135,\n", " 'width': 34.64752197265625},\n", " {'height': 12.357086181640625,\n", " 'left': 428.7739,\n", " 'text': '17.42',\n", " 'top': 335.01135,\n", " 'width': 34.64801025390625},\n", " {'height': 12.357086181640625,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 335.01135,\n", " 'width': 21.1429443359375},\n", " {'height': 12.357086181640625,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 335.01135,\n", " 'width': 25.238006591796875},\n", " {'height': 12.357086181640625,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 335.01135,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351531982421875,\n", " 'left': 247.14917,\n", " 'text': '32.4',\n", " 'top': 347.36844,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351531982421875,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 347.36844,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351531982421875,\n", " 'left': 302.33087,\n", " 'text': '78.7',\n", " 'top': 347.36844,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351531982421875,\n", " 'left': 336.9787,\n", " 'text': '66',\n", " 'top': 347.36844,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351531982421875,\n", " 'left': 363.87827,\n", " 'text': '4.08',\n", " 'top': 347.36844,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351531982421875,\n", " 'left': 394.12637,\n", " 'text': '2.200',\n", " 'top': 347.36844,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351531982421875,\n", " 'left': 428.7739,\n", " 'text': '19.47',\n", " 'top': 347.36844,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351531982421875,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 347.36844,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351531982421875,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 347.36844,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351531982421875,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 347.36844,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.3570556640625,\n", " 'left': 247.14917,\n", " 'text': '30.4',\n", " 'top': 359.71997,\n", " 'width': 30.773834228515625},\n", " {'height': 12.3570556640625,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 359.71997,\n", " 'width': 24.407867431640625},\n", " {'height': 12.3570556640625,\n", " 'left': 302.33087,\n", " 'text': '75.7',\n", " 'top': 359.71997,\n", " 'width': 34.6478271484375},\n", " {'height': 12.3570556640625,\n", " 'left': 336.9787,\n", " 'text': '52',\n", " 'top': 359.71997,\n", " 'width': 26.899566650390625},\n", " {'height': 12.3570556640625,\n", " 'left': 363.87827,\n", " 'text': '4.93',\n", " 'top': 359.71997,\n", " 'width': 30.24810791015625},\n", " {'height': 12.3570556640625,\n", " 'left': 394.12637,\n", " 'text': '1.615',\n", " 'top': 359.71997,\n", " 'width': 34.64752197265625},\n", " {'height': 12.3570556640625,\n", " 'left': 428.7739,\n", " 'text': '18.52',\n", " 'top': 359.71997,\n", " 'width': 34.64801025390625},\n", " {'height': 12.3570556640625,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 359.71997,\n", " 'width': 21.1429443359375},\n", " {'height': 12.3570556640625,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 359.71997,\n", " 'width': 25.238006591796875},\n", " {'height': 12.3570556640625,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 359.71997,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351959228515625,\n", " 'left': 247.14917,\n", " 'text': '33.9',\n", " 'top': 372.07703,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351959228515625,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 372.07703,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351959228515625,\n", " 'left': 302.33087,\n", " 'text': '71.1',\n", " 'top': 372.07703,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351959228515625,\n", " 'left': 336.9787,\n", " 'text': '65',\n", " 'top': 372.07703,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351959228515625,\n", " 'left': 363.87827,\n", " 'text': '4.22',\n", " 'top': 372.07703,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351959228515625,\n", " 'left': 394.12637,\n", " 'text': '1.835',\n", " 'top': 372.07703,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351959228515625,\n", " 'left': 428.7739,\n", " 'text': '19.90',\n", " 'top': 372.07703,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351959228515625,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 372.07703,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351959228515625,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 372.07703,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351959228515625,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 372.07703,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351531982421875,\n", " 'left': 247.14917,\n", " 'text': '21.5',\n", " 'top': 384.429,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351531982421875,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 384.429,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351531982421875,\n", " 'left': 302.33087,\n", " 'text': '120.1',\n", " 'top': 384.429,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351531982421875,\n", " 'left': 336.9787,\n", " 'text': '97',\n", " 'top': 384.429,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351531982421875,\n", " 'left': 363.87827,\n", " 'text': '3.70',\n", " 'top': 384.429,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351531982421875,\n", " 'left': 394.12637,\n", " 'text': '2.465',\n", " 'top': 384.429,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351531982421875,\n", " 'left': 428.7739,\n", " 'text': '20.01',\n", " 'top': 384.429,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351531982421875,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 384.429,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351531982421875,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 384.429,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351531982421875,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 384.429,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.357025146484375,\n", " 'left': 247.14917,\n", " 'text': '15.5',\n", " 'top': 396.78052,\n", " 'width': 30.773834228515625},\n", " {'height': 12.357025146484375,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 396.78052,\n", " 'width': 24.407867431640625},\n", " {'height': 12.357025146484375,\n", " 'left': 302.33087,\n", " 'text': '318.0',\n", " 'top': 396.78052,\n", " 'width': 34.6478271484375},\n", " {'height': 12.357025146484375,\n", " 'left': 336.9787,\n", " 'text': '150',\n", " 'top': 396.78052,\n", " 'width': 26.899566650390625},\n", " {'height': 12.357025146484375,\n", " 'left': 363.87827,\n", " 'text': '2.76',\n", " 'top': 396.78052,\n", " 'width': 30.24810791015625},\n", " {'height': 12.357025146484375,\n", " 'left': 394.12637,\n", " 'text': '3.520',\n", " 'top': 396.78052,\n", " 'width': 34.64752197265625},\n", " {'height': 12.357025146484375,\n", " 'left': 428.7739,\n", " 'text': '16.87',\n", " 'top': 396.78052,\n", " 'width': 34.64801025390625},\n", " {'height': 12.357025146484375,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 396.78052,\n", " 'width': 21.1429443359375},\n", " {'height': 12.357025146484375,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 396.78052,\n", " 'width': 25.238006591796875},\n", " {'height': 12.357025146484375,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 396.78052,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35205078125,\n", " 'left': 247.14917,\n", " 'text': '15.2',\n", " 'top': 409.13754,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35205078125,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 409.13754,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35205078125,\n", " 'left': 302.33087,\n", " 'text': '304.0',\n", " 'top': 409.13754,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35205078125,\n", " 'left': 336.9787,\n", " 'text': '150',\n", " 'top': 409.13754,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35205078125,\n", " 'left': 363.87827,\n", " 'text': '3.15',\n", " 'top': 409.13754,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35205078125,\n", " 'left': 394.12637,\n", " 'text': '3.435',\n", " 'top': 409.13754,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35205078125,\n", " 'left': 428.7739,\n", " 'text': '17.30',\n", " 'top': 409.13754,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35205078125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 409.13754,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35205078125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 409.13754,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35205078125,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 409.13754,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351348876953125,\n", " 'left': 247.14917,\n", " 'text': '13.3',\n", " 'top': 421.4896,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351348876953125,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 421.4896,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351348876953125,\n", " 'left': 302.33087,\n", " 'text': '350.0',\n", " 'top': 421.4896,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351348876953125,\n", " 'left': 336.9787,\n", " 'text': '245',\n", " 'top': 421.4896,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351348876953125,\n", " 'left': 363.87827,\n", " 'text': '3.73',\n", " 'top': 421.4896,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351348876953125,\n", " 'left': 394.12637,\n", " 'text': '3.840',\n", " 'top': 421.4896,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351348876953125,\n", " 'left': 428.7739,\n", " 'text': '15.41',\n", " 'top': 421.4896,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351348876953125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 421.4896,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351348876953125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 421.4896,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351348876953125,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 421.4896,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.357208251953125,\n", " 'left': 247.14917,\n", " 'text': '19.2',\n", " 'top': 433.84094,\n", " 'width': 30.773834228515625},\n", " {'height': 12.357208251953125,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 433.84094,\n", " 'width': 24.407867431640625},\n", " {'height': 12.357208251953125,\n", " 'left': 302.33087,\n", " 'text': '400.0',\n", " 'top': 433.84094,\n", " 'width': 34.6478271484375},\n", " {'height': 12.357208251953125,\n", " 'left': 336.9787,\n", " 'text': '175',\n", " 'top': 433.84094,\n", " 'width': 26.899566650390625},\n", " {'height': 12.357208251953125,\n", " 'left': 363.87827,\n", " 'text': '3.08',\n", " 'top': 433.84094,\n", " 'width': 30.24810791015625},\n", " {'height': 12.357208251953125,\n", " 'left': 394.12637,\n", " 'text': '3.845',\n", " 'top': 433.84094,\n", " 'width': 34.64752197265625},\n", " {'height': 12.357208251953125,\n", " 'left': 428.7739,\n", " 'text': '17.05',\n", " 'top': 433.84094,\n", " 'width': 34.64801025390625},\n", " {'height': 12.357208251953125,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 433.84094,\n", " 'width': 21.1429443359375},\n", " {'height': 12.357208251953125,\n", " 'left': 484.56485,\n", " 'text': '0',\n", " 'top': 433.84094,\n", " 'width': 25.238006591796875},\n", " {'height': 12.357208251953125,\n", " 'left': 509.80286,\n", " 'text': '3',\n", " 'top': 433.84094,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35186767578125,\n", " 'left': 247.14917,\n", " 'text': '27.3',\n", " 'top': 446.19815,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35186767578125,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 446.19815,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35186767578125,\n", " 'left': 302.33087,\n", " 'text': '79.0',\n", " 'top': 446.19815,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35186767578125,\n", " 'left': 336.9787,\n", " 'text': '66',\n", " 'top': 446.19815,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35186767578125,\n", " 'left': 363.87827,\n", " 'text': '4.08',\n", " 'top': 446.19815,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35186767578125,\n", " 'left': 394.12637,\n", " 'text': '1.935',\n", " 'top': 446.19815,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35186767578125,\n", " 'left': 428.7739,\n", " 'text': '18.90',\n", " 'top': 446.19815,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35186767578125,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 446.19815,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35186767578125,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 446.19815,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35186767578125,\n", " 'left': 509.80286,\n", " 'text': '4',\n", " 'top': 446.19815,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35150146484375,\n", " 'left': 247.14917,\n", " 'text': '26.0',\n", " 'top': 458.55002,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35150146484375,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 458.55002,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35150146484375,\n", " 'left': 302.33087,\n", " 'text': '120.3',\n", " 'top': 458.55002,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35150146484375,\n", " 'left': 336.9787,\n", " 'text': '91',\n", " 'top': 458.55002,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35150146484375,\n", " 'left': 363.87827,\n", " 'text': '4.43',\n", " 'top': 458.55002,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35150146484375,\n", " 'left': 394.12637,\n", " 'text': '2.140',\n", " 'top': 458.55002,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35150146484375,\n", " 'left': 428.7739,\n", " 'text': '16.70',\n", " 'top': 458.55002,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35150146484375,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 458.55002,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35150146484375,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 458.55002,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35150146484375,\n", " 'left': 509.80286,\n", " 'text': '5',\n", " 'top': 458.55002,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.357025146484375,\n", " 'left': 247.14917,\n", " 'text': '30.4',\n", " 'top': 470.90152,\n", " 'width': 30.773834228515625},\n", " {'height': 12.357025146484375,\n", " 'left': 277.923,\n", " 'text': '4',\n", " 'top': 470.90152,\n", " 'width': 24.407867431640625},\n", " {'height': 12.357025146484375,\n", " 'left': 302.33087,\n", " 'text': '95.1',\n", " 'top': 470.90152,\n", " 'width': 34.6478271484375},\n", " {'height': 12.357025146484375,\n", " 'left': 336.9787,\n", " 'text': '113',\n", " 'top': 470.90152,\n", " 'width': 26.899566650390625},\n", " {'height': 12.357025146484375,\n", " 'left': 363.87827,\n", " 'text': '3.77',\n", " 'top': 470.90152,\n", " 'width': 30.24810791015625},\n", " {'height': 12.357025146484375,\n", " 'left': 394.12637,\n", " 'text': '1.513',\n", " 'top': 470.90152,\n", " 'width': 34.64752197265625},\n", " {'height': 12.357025146484375,\n", " 'left': 428.7739,\n", " 'text': '16.90',\n", " 'top': 470.90152,\n", " 'width': 34.64801025390625},\n", " {'height': 12.357025146484375,\n", " 'left': 463.4219,\n", " 'text': '1',\n", " 'top': 470.90152,\n", " 'width': 21.1429443359375},\n", " {'height': 12.357025146484375,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 470.90152,\n", " 'width': 25.238006591796875},\n", " {'height': 12.357025146484375,\n", " 'left': 509.80286,\n", " 'text': '5',\n", " 'top': 470.90152,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.351776123046875,\n", " 'left': 247.14917,\n", " 'text': '15.8',\n", " 'top': 483.25854,\n", " 'width': 30.773834228515625},\n", " {'height': 12.351776123046875,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 483.25854,\n", " 'width': 24.407867431640625},\n", " {'height': 12.351776123046875,\n", " 'left': 302.33087,\n", " 'text': '351.0',\n", " 'top': 483.25854,\n", " 'width': 34.6478271484375},\n", " {'height': 12.351776123046875,\n", " 'left': 336.9787,\n", " 'text': '264',\n", " 'top': 483.25854,\n", " 'width': 26.899566650390625},\n", " {'height': 12.351776123046875,\n", " 'left': 363.87827,\n", " 'text': '4.22',\n", " 'top': 483.25854,\n", " 'width': 30.24810791015625},\n", " {'height': 12.351776123046875,\n", " 'left': 394.12637,\n", " 'text': '3.170',\n", " 'top': 483.25854,\n", " 'width': 34.64752197265625},\n", " {'height': 12.351776123046875,\n", " 'left': 428.7739,\n", " 'text': '14.50',\n", " 'top': 483.25854,\n", " 'width': 34.64801025390625},\n", " {'height': 12.351776123046875,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 483.25854,\n", " 'width': 21.1429443359375},\n", " {'height': 12.351776123046875,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 483.25854,\n", " 'width': 25.238006591796875},\n", " {'height': 12.351776123046875,\n", " 'left': 509.80286,\n", " 'text': '5',\n", " 'top': 483.25854,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.356109619140625,\n", " 'left': 247.14917,\n", " 'text': '19.7',\n", " 'top': 495.61032,\n", " 'width': 30.773834228515625},\n", " {'height': 12.356109619140625,\n", " 'left': 277.923,\n", " 'text': '6',\n", " 'top': 495.61032,\n", " 'width': 24.407867431640625},\n", " {'height': 12.356109619140625,\n", " 'left': 302.33087,\n", " 'text': '145.0',\n", " 'top': 495.61032,\n", " 'width': 34.6478271484375},\n", " {'height': 12.356109619140625,\n", " 'left': 336.9787,\n", " 'text': '175',\n", " 'top': 495.61032,\n", " 'width': 26.899566650390625},\n", " {'height': 12.356109619140625,\n", " 'left': 363.87827,\n", " 'text': '3.62',\n", " 'top': 495.61032,\n", " 'width': 30.24810791015625},\n", " {'height': 12.356109619140625,\n", " 'left': 394.12637,\n", " 'text': '2.770',\n", " 'top': 495.61032,\n", " 'width': 34.64752197265625},\n", " {'height': 12.356109619140625,\n", " 'left': 428.7739,\n", " 'text': '15.50',\n", " 'top': 495.61032,\n", " 'width': 34.64801025390625},\n", " {'height': 12.356109619140625,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 495.61032,\n", " 'width': 21.1429443359375},\n", " {'height': 12.356109619140625,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 495.61032,\n", " 'width': 25.238006591796875},\n", " {'height': 12.356109619140625,\n", " 'left': 509.80286,\n", " 'text': '5',\n", " 'top': 495.61032,\n", " 'width': 30.24798583984375}],\n", " [{'height': 12.35247802734375,\n", " 'left': 247.14917,\n", " 'text': '15.0',\n", " 'top': 507.96643,\n", " 'width': 30.773834228515625},\n", " {'height': 12.35247802734375,\n", " 'left': 277.923,\n", " 'text': '8',\n", " 'top': 507.96643,\n", " 'width': 24.407867431640625},\n", " {'height': 12.35247802734375,\n", " 'left': 302.33087,\n", " 'text': '301.0',\n", " 'top': 507.96643,\n", " 'width': 34.6478271484375},\n", " {'height': 12.35247802734375,\n", " 'left': 336.9787,\n", " 'text': '335',\n", " 'top': 507.96643,\n", " 'width': 26.899566650390625},\n", " {'height': 12.35247802734375,\n", " 'left': 363.87827,\n", " 'text': '3.54',\n", " 'top': 507.96643,\n", " 'width': 30.24810791015625},\n", " {'height': 12.35247802734375,\n", " 'left': 394.12637,\n", " 'text': '3.570',\n", " 'top': 507.96643,\n", " 'width': 34.64752197265625},\n", " {'height': 12.35247802734375,\n", " 'left': 428.7739,\n", " 'text': '14.60',\n", " 'top': 507.96643,\n", " 'width': 34.64801025390625},\n", " {'height': 12.35247802734375,\n", " 'left': 463.4219,\n", " 'text': '0',\n", " 'top': 507.96643,\n", " 'width': 21.1429443359375},\n", " {'height': 12.35247802734375,\n", " 'left': 484.56485,\n", " 'text': '1',\n", " 'top': 507.96643,\n", " 'width': 25.238006591796875},\n", " {'height': 12.35247802734375,\n", " 'left': 509.80286,\n", " 'text': '5',\n", " 'top': 507.96643,\n", " 'width': 30.24798583984375}]],\n", " 'extraction_method': 'lattice',\n", " 'height': 395.14886474609375,\n", " 'left': 247.14917,\n", " 'right': 540.05084,\n", " 'top': 125.17005,\n", " 'width': 292.90167236328125}]" ] }, "metadata": { "tags": [] }, "execution_count": 13 } ] }, { "cell_type": "markdown", "metadata": { "id": "tzXgZzOLuchk", "colab_type": "text" }, "source": [ "## Convert PDF tables into CSV, TSV, or JSON files\n", "\n", "You can convert files directly rather creating Python objects with `convert_into()` function." ] }, { "cell_type": "code", "metadata": { "id": "7wA5RL3SluSV", "colab_type": "code", "outputId": "7c740d0a-1a85-42fb-9f3d-c351a93a336f", "colab": { "base_uri": "https://localhost:8080/", "height": 163 } }, "source": [ "# You can convert from pdf into JSON, CSV, TSV\n", "\n", "tabula.convert_into(pdf_path, \"test.json\", output_format=\"json\")\n", "!cat test.json" ], "execution_count": 14, "outputs": [ { "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Got stderr: Jun 04, 2020 8:24:28 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:28 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "[{\"extraction_method\":\"lattice\",\"top\":125.17005,\"left\":247.14917,\"width\":292.90167236328125,\"height\":395.14886474609375,\"right\":540.05084,\"bottom\":520.3189,\"data\":[[{\"top\":125.17005,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.186347961425781,\"text\":\"mpg\"},{\"top\":125.17005,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.186347961425781,\"text\":\"cyl\"},{\"top\":125.17005,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.186347961425781,\"text\":\"disp\"},{\"top\":125.17005,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.186347961425781,\"text\":\"hp\"},{\"top\":125.17005,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.186347961425781,\"text\":\"drat\"},{\"top\":125.17005,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.186347961425781,\"text\":\"wt\"},{\"top\":125.17005,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.186347961425781,\"text\":\"qsec\"},{\"top\":125.17005,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.186347961425781,\"text\":\"vs\"},{\"top\":125.17005,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.186347961425781,\"text\":\"am\"},{\"top\":125.17005,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.186347961425781,\"text\":\"gear\"}],[{\"top\":137.3564,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.352630615234375,\"text\":\"21.0\"},{\"top\":137.3564,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.352630615234375,\"text\":\"6\"},{\"top\":137.3564,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.352630615234375,\"text\":\"160.0\"},{\"top\":137.3564,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.352630615234375,\"text\":\"110\"},{\"top\":137.3564,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.352630615234375,\"text\":\"3.90\"},{\"top\":137.3564,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.352630615234375,\"text\":\"2.620\"},{\"top\":137.3564,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.352630615234375,\"text\":\"16.46\"},{\"top\":137.3564,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.352630615234375,\"text\":\"0\"},{\"top\":137.3564,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.352630615234375,\"text\":\"1\"},{\"top\":137.3564,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.352630615234375,\"text\":\"4\"}],[{\"top\":149.70903,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35186767578125,\"text\":\"21.0\"},{\"top\":149.70903,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35186767578125,\"text\":\"6\"},{\"top\":149.70903,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35186767578125,\"text\":\"160.0\"},{\"top\":149.70903,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35186767578125,\"text\":\"110\"},{\"top\":149.70903,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35186767578125,\"text\":\"3.90\"},{\"top\":149.70903,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35186767578125,\"text\":\"2.875\"},{\"top\":149.70903,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35186767578125,\"text\":\"17.02\"},{\"top\":149.70903,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35186767578125,\"text\":\"0\"},{\"top\":149.70903,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35186767578125,\"text\":\"1\"},{\"top\":149.70903,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35186767578125,\"text\":\"4\"}],[{\"top\":162.0609,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35662841796875,\"text\":\"22.8\"},{\"top\":162.0609,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35662841796875,\"text\":\"4\"},{\"top\":162.0609,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35662841796875,\"text\":\"108.0\"},{\"top\":162.0609,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35662841796875,\"text\":\"93\"},{\"top\":162.0609,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35662841796875,\"text\":\"3.85\"},{\"top\":162.0609,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35662841796875,\"text\":\"2.320\"},{\"top\":162.0609,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35662841796875,\"text\":\"18.61\"},{\"top\":162.0609,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35662841796875,\"text\":\"1\"},{\"top\":162.0609,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35662841796875,\"text\":\"1\"},{\"top\":162.0609,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35662841796875,\"text\":\"4\"}],[{\"top\":174.41753,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.352005004882812,\"text\":\"21.4\"},{\"top\":174.41753,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.352005004882812,\"text\":\"6\"},{\"top\":174.41753,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.352005004882812,\"text\":\"258.0\"},{\"top\":174.41753,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.352005004882812,\"text\":\"110\"},{\"top\":174.41753,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.352005004882812,\"text\":\"3.08\"},{\"top\":174.41753,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.352005004882812,\"text\":\"3.215\"},{\"top\":174.41753,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.352005004882812,\"text\":\"19.44\"},{\"top\":174.41753,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.352005004882812,\"text\":\"1\"},{\"top\":174.41753,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.352005004882812,\"text\":\"0\"},{\"top\":174.41753,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.352005004882812,\"text\":\"3\"}],[{\"top\":186.76953,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351882934570312,\"text\":\"18.7\"},{\"top\":186.76953,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351882934570312,\"text\":\"8\"},{\"top\":186.76953,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351882934570312,\"text\":\"360.0\"},{\"top\":186.76953,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351882934570312,\"text\":\"175\"},{\"top\":186.76953,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351882934570312,\"text\":\"3.15\"},{\"top\":186.76953,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351882934570312,\"text\":\"3.440\"},{\"top\":186.76953,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351882934570312,\"text\":\"17.02\"},{\"top\":186.76953,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351882934570312,\"text\":\"0\"},{\"top\":186.76953,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351882934570312,\"text\":\"0\"},{\"top\":186.76953,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351882934570312,\"text\":\"3\"}],[{\"top\":199.12141,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.356597900390625,\"text\":\"18.1\"},{\"top\":199.12141,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.356597900390625,\"text\":\"6\"},{\"top\":199.12141,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.356597900390625,\"text\":\"225.0\"},{\"top\":199.12141,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.356597900390625,\"text\":\"105\"},{\"top\":199.12141,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.356597900390625,\"text\":\"2.76\"},{\"top\":199.12141,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.356597900390625,\"text\":\"3.460\"},{\"top\":199.12141,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.356597900390625,\"text\":\"20.22\"},{\"top\":199.12141,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.356597900390625,\"text\":\"1\"},{\"top\":199.12141,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.356597900390625,\"text\":\"0\"},{\"top\":199.12141,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.356597900390625,\"text\":\"3\"}],[{\"top\":211.47801,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351959228515625,\"text\":\"14.3\"},{\"top\":211.47801,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351959228515625,\"text\":\"8\"},{\"top\":211.47801,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351959228515625,\"text\":\"360.0\"},{\"top\":211.47801,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351959228515625,\"text\":\"245\"},{\"top\":211.47801,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351959228515625,\"text\":\"3.21\"},{\"top\":211.47801,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351959228515625,\"text\":\"3.570\"},{\"top\":211.47801,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351959228515625,\"text\":\"15.84\"},{\"top\":211.47801,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351959228515625,\"text\":\"0\"},{\"top\":211.47801,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351959228515625,\"text\":\"0\"},{\"top\":211.47801,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351959228515625,\"text\":\"3\"}],[{\"top\":223.82997,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351806640625,\"text\":\"24.4\"},{\"top\":223.82997,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351806640625,\"text\":\"4\"},{\"top\":223.82997,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351806640625,\"text\":\"146.7\"},{\"top\":223.82997,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351806640625,\"text\":\"62\"},{\"top\":223.82997,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351806640625,\"text\":\"3.69\"},{\"top\":223.82997,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351806640625,\"text\":\"3.190\"},{\"top\":223.82997,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351806640625,\"text\":\"20.00\"},{\"top\":223.82997,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351806640625,\"text\":\"1\"},{\"top\":223.82997,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351806640625,\"text\":\"0\"},{\"top\":223.82997,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351806640625,\"text\":\"4\"}],[{\"top\":236.18178,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.356719970703125,\"text\":\"22.8\"},{\"top\":236.18178,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.356719970703125,\"text\":\"4\"},{\"top\":236.18178,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.356719970703125,\"text\":\"140.8\"},{\"top\":236.18178,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.356719970703125,\"text\":\"95\"},{\"top\":236.18178,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.356719970703125,\"text\":\"3.92\"},{\"top\":236.18178,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.356719970703125,\"text\":\"3.150\"},{\"top\":236.18178,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.356719970703125,\"text\":\"22.90\"},{\"top\":236.18178,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.356719970703125,\"text\":\"1\"},{\"top\":236.18178,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.356719970703125,\"text\":\"0\"},{\"top\":236.18178,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.356719970703125,\"text\":\"4\"}],[{\"top\":248.5385,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351882934570312,\"text\":\"19.2\"},{\"top\":248.5385,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351882934570312,\"text\":\"6\"},{\"top\":248.5385,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351882934570312,\"text\":\"167.6\"},{\"top\":248.5385,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351882934570312,\"text\":\"123\"},{\"top\":248.5385,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351882934570312,\"text\":\"3.92\"},{\"top\":248.5385,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351882934570312,\"text\":\"3.440\"},{\"top\":248.5385,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351882934570312,\"text\":\"18.30\"},{\"top\":248.5385,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351882934570312,\"text\":\"1\"},{\"top\":248.5385,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351882934570312,\"text\":\"0\"},{\"top\":248.5385,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351882934570312,\"text\":\"4\"}],[{\"top\":260.89038,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.3564453125,\"text\":\"17.8\"},{\"top\":260.89038,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.3564453125,\"text\":\"6\"},{\"top\":260.89038,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.3564453125,\"text\":\"167.6\"},{\"top\":260.89038,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.3564453125,\"text\":\"123\"},{\"top\":260.89038,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.3564453125,\"text\":\"3.92\"},{\"top\":260.89038,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.3564453125,\"text\":\"3.440\"},{\"top\":260.89038,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.3564453125,\"text\":\"18.90\"},{\"top\":260.89038,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.3564453125,\"text\":\"1\"},{\"top\":260.89038,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.3564453125,\"text\":\"0\"},{\"top\":260.89038,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.3564453125,\"text\":\"4\"}],[{\"top\":273.24683,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.352142333984375,\"text\":\"16.4\"},{\"top\":273.24683,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.352142333984375,\"text\":\"8\"},{\"top\":273.24683,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.352142333984375,\"text\":\"275.8\"},{\"top\":273.24683,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.352142333984375,\"text\":\"180\"},{\"top\":273.24683,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.352142333984375,\"text\":\"3.07\"},{\"top\":273.24683,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.352142333984375,\"text\":\"4.070\"},{\"top\":273.24683,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.352142333984375,\"text\":\"17.40\"},{\"top\":273.24683,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.352142333984375,\"text\":\"0\"},{\"top\":273.24683,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.352142333984375,\"text\":\"0\"},{\"top\":273.24683,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.352142333984375,\"text\":\"3\"}],[{\"top\":285.59897,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35186767578125,\"text\":\"17.3\"},{\"top\":285.59897,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35186767578125,\"text\":\"8\"},{\"top\":285.59897,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35186767578125,\"text\":\"275.8\"},{\"top\":285.59897,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35186767578125,\"text\":\"180\"},{\"top\":285.59897,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35186767578125,\"text\":\"3.07\"},{\"top\":285.59897,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35186767578125,\"text\":\"3.730\"},{\"top\":285.59897,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35186767578125,\"text\":\"17.60\"},{\"top\":285.59897,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35186767578125,\"text\":\"0\"},{\"top\":285.59897,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35186767578125,\"text\":\"0\"},{\"top\":285.59897,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35186767578125,\"text\":\"3\"}],[{\"top\":297.95084,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.357086181640625,\"text\":\"15.2\"},{\"top\":297.95084,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.357086181640625,\"text\":\"8\"},{\"top\":297.95084,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.357086181640625,\"text\":\"275.8\"},{\"top\":297.95084,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.357086181640625,\"text\":\"180\"},{\"top\":297.95084,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.357086181640625,\"text\":\"3.07\"},{\"top\":297.95084,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.357086181640625,\"text\":\"3.780\"},{\"top\":297.95084,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.357086181640625,\"text\":\"18.00\"},{\"top\":297.95084,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.357086181640625,\"text\":\"0\"},{\"top\":297.95084,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.357086181640625,\"text\":\"0\"},{\"top\":297.95084,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.357086181640625,\"text\":\"3\"}],[{\"top\":310.30792,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.3515625,\"text\":\"10.4\"},{\"top\":310.30792,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.3515625,\"text\":\"8\"},{\"top\":310.30792,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.3515625,\"text\":\"472.0\"},{\"top\":310.30792,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.3515625,\"text\":\"205\"},{\"top\":310.30792,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.3515625,\"text\":\"2.93\"},{\"top\":310.30792,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.3515625,\"text\":\"5.250\"},{\"top\":310.30792,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.3515625,\"text\":\"17.98\"},{\"top\":310.30792,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.3515625,\"text\":\"0\"},{\"top\":310.30792,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.3515625,\"text\":\"0\"},{\"top\":310.30792,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.3515625,\"text\":\"3\"}],[{\"top\":322.6595,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35186767578125,\"text\":\"10.4\"},{\"top\":322.6595,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35186767578125,\"text\":\"8\"},{\"top\":322.6595,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35186767578125,\"text\":\"460.0\"},{\"top\":322.6595,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35186767578125,\"text\":\"215\"},{\"top\":322.6595,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35186767578125,\"text\":\"3.00\"},{\"top\":322.6595,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35186767578125,\"text\":\"5.424\"},{\"top\":322.6595,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35186767578125,\"text\":\"17.82\"},{\"top\":322.6595,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35186767578125,\"text\":\"0\"},{\"top\":322.6595,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35186767578125,\"text\":\"0\"},{\"top\":322.6595,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35186767578125,\"text\":\"3\"}],[{\"top\":335.01135,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.357086181640625,\"text\":\"14.7\"},{\"top\":335.01135,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.357086181640625,\"text\":\"8\"},{\"top\":335.01135,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.357086181640625,\"text\":\"440.0\"},{\"top\":335.01135,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.357086181640625,\"text\":\"230\"},{\"top\":335.01135,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.357086181640625,\"text\":\"3.23\"},{\"top\":335.01135,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.357086181640625,\"text\":\"5.345\"},{\"top\":335.01135,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.357086181640625,\"text\":\"17.42\"},{\"top\":335.01135,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.357086181640625,\"text\":\"0\"},{\"top\":335.01135,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.357086181640625,\"text\":\"0\"},{\"top\":335.01135,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.357086181640625,\"text\":\"3\"}],[{\"top\":347.36844,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351531982421875,\"text\":\"32.4\"},{\"top\":347.36844,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351531982421875,\"text\":\"4\"},{\"top\":347.36844,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351531982421875,\"text\":\"78.7\"},{\"top\":347.36844,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351531982421875,\"text\":\"66\"},{\"top\":347.36844,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351531982421875,\"text\":\"4.08\"},{\"top\":347.36844,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351531982421875,\"text\":\"2.200\"},{\"top\":347.36844,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351531982421875,\"text\":\"19.47\"},{\"top\":347.36844,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351531982421875,\"text\":\"1\"},{\"top\":347.36844,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351531982421875,\"text\":\"1\"},{\"top\":347.36844,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351531982421875,\"text\":\"4\"}],[{\"top\":359.71997,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.3570556640625,\"text\":\"30.4\"},{\"top\":359.71997,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.3570556640625,\"text\":\"4\"},{\"top\":359.71997,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.3570556640625,\"text\":\"75.7\"},{\"top\":359.71997,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.3570556640625,\"text\":\"52\"},{\"top\":359.71997,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.3570556640625,\"text\":\"4.93\"},{\"top\":359.71997,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.3570556640625,\"text\":\"1.615\"},{\"top\":359.71997,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.3570556640625,\"text\":\"18.52\"},{\"top\":359.71997,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.3570556640625,\"text\":\"1\"},{\"top\":359.71997,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.3570556640625,\"text\":\"1\"},{\"top\":359.71997,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.3570556640625,\"text\":\"4\"}],[{\"top\":372.07703,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351959228515625,\"text\":\"33.9\"},{\"top\":372.07703,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351959228515625,\"text\":\"4\"},{\"top\":372.07703,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351959228515625,\"text\":\"71.1\"},{\"top\":372.07703,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351959228515625,\"text\":\"65\"},{\"top\":372.07703,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351959228515625,\"text\":\"4.22\"},{\"top\":372.07703,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351959228515625,\"text\":\"1.835\"},{\"top\":372.07703,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351959228515625,\"text\":\"19.90\"},{\"top\":372.07703,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351959228515625,\"text\":\"1\"},{\"top\":372.07703,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351959228515625,\"text\":\"1\"},{\"top\":372.07703,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351959228515625,\"text\":\"4\"}],[{\"top\":384.429,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351531982421875,\"text\":\"21.5\"},{\"top\":384.429,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351531982421875,\"text\":\"4\"},{\"top\":384.429,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351531982421875,\"text\":\"120.1\"},{\"top\":384.429,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351531982421875,\"text\":\"97\"},{\"top\":384.429,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351531982421875,\"text\":\"3.70\"},{\"top\":384.429,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351531982421875,\"text\":\"2.465\"},{\"top\":384.429,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351531982421875,\"text\":\"20.01\"},{\"top\":384.429,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351531982421875,\"text\":\"1\"},{\"top\":384.429,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351531982421875,\"text\":\"0\"},{\"top\":384.429,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351531982421875,\"text\":\"3\"}],[{\"top\":396.78052,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.357025146484375,\"text\":\"15.5\"},{\"top\":396.78052,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.357025146484375,\"text\":\"8\"},{\"top\":396.78052,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.357025146484375,\"text\":\"318.0\"},{\"top\":396.78052,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.357025146484375,\"text\":\"150\"},{\"top\":396.78052,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.357025146484375,\"text\":\"2.76\"},{\"top\":396.78052,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.357025146484375,\"text\":\"3.520\"},{\"top\":396.78052,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.357025146484375,\"text\":\"16.87\"},{\"top\":396.78052,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.357025146484375,\"text\":\"0\"},{\"top\":396.78052,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.357025146484375,\"text\":\"0\"},{\"top\":396.78052,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.357025146484375,\"text\":\"3\"}],[{\"top\":409.13754,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35205078125,\"text\":\"15.2\"},{\"top\":409.13754,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35205078125,\"text\":\"8\"},{\"top\":409.13754,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35205078125,\"text\":\"304.0\"},{\"top\":409.13754,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35205078125,\"text\":\"150\"},{\"top\":409.13754,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35205078125,\"text\":\"3.15\"},{\"top\":409.13754,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35205078125,\"text\":\"3.435\"},{\"top\":409.13754,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35205078125,\"text\":\"17.30\"},{\"top\":409.13754,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35205078125,\"text\":\"0\"},{\"top\":409.13754,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35205078125,\"text\":\"0\"},{\"top\":409.13754,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35205078125,\"text\":\"3\"}],[{\"top\":421.4896,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351348876953125,\"text\":\"13.3\"},{\"top\":421.4896,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351348876953125,\"text\":\"8\"},{\"top\":421.4896,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351348876953125,\"text\":\"350.0\"},{\"top\":421.4896,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351348876953125,\"text\":\"245\"},{\"top\":421.4896,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351348876953125,\"text\":\"3.73\"},{\"top\":421.4896,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351348876953125,\"text\":\"3.840\"},{\"top\":421.4896,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351348876953125,\"text\":\"15.41\"},{\"top\":421.4896,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351348876953125,\"text\":\"0\"},{\"top\":421.4896,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351348876953125,\"text\":\"0\"},{\"top\":421.4896,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351348876953125,\"text\":\"3\"}],[{\"top\":433.84094,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.357208251953125,\"text\":\"19.2\"},{\"top\":433.84094,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.357208251953125,\"text\":\"8\"},{\"top\":433.84094,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.357208251953125,\"text\":\"400.0\"},{\"top\":433.84094,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.357208251953125,\"text\":\"175\"},{\"top\":433.84094,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.357208251953125,\"text\":\"3.08\"},{\"top\":433.84094,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.357208251953125,\"text\":\"3.845\"},{\"top\":433.84094,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.357208251953125,\"text\":\"17.05\"},{\"top\":433.84094,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.357208251953125,\"text\":\"0\"},{\"top\":433.84094,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.357208251953125,\"text\":\"0\"},{\"top\":433.84094,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.357208251953125,\"text\":\"3\"}],[{\"top\":446.19815,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35186767578125,\"text\":\"27.3\"},{\"top\":446.19815,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35186767578125,\"text\":\"4\"},{\"top\":446.19815,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35186767578125,\"text\":\"79.0\"},{\"top\":446.19815,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35186767578125,\"text\":\"66\"},{\"top\":446.19815,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35186767578125,\"text\":\"4.08\"},{\"top\":446.19815,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35186767578125,\"text\":\"1.935\"},{\"top\":446.19815,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35186767578125,\"text\":\"18.90\"},{\"top\":446.19815,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35186767578125,\"text\":\"1\"},{\"top\":446.19815,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35186767578125,\"text\":\"1\"},{\"top\":446.19815,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35186767578125,\"text\":\"4\"}],[{\"top\":458.55002,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35150146484375,\"text\":\"26.0\"},{\"top\":458.55002,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35150146484375,\"text\":\"4\"},{\"top\":458.55002,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35150146484375,\"text\":\"120.3\"},{\"top\":458.55002,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35150146484375,\"text\":\"91\"},{\"top\":458.55002,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35150146484375,\"text\":\"4.43\"},{\"top\":458.55002,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35150146484375,\"text\":\"2.140\"},{\"top\":458.55002,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35150146484375,\"text\":\"16.70\"},{\"top\":458.55002,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35150146484375,\"text\":\"0\"},{\"top\":458.55002,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35150146484375,\"text\":\"1\"},{\"top\":458.55002,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35150146484375,\"text\":\"5\"}],[{\"top\":470.90152,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.357025146484375,\"text\":\"30.4\"},{\"top\":470.90152,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.357025146484375,\"text\":\"4\"},{\"top\":470.90152,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.357025146484375,\"text\":\"95.1\"},{\"top\":470.90152,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.357025146484375,\"text\":\"113\"},{\"top\":470.90152,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.357025146484375,\"text\":\"3.77\"},{\"top\":470.90152,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.357025146484375,\"text\":\"1.513\"},{\"top\":470.90152,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.357025146484375,\"text\":\"16.90\"},{\"top\":470.90152,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.357025146484375,\"text\":\"1\"},{\"top\":470.90152,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.357025146484375,\"text\":\"1\"},{\"top\":470.90152,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.357025146484375,\"text\":\"5\"}],[{\"top\":483.25854,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.351776123046875,\"text\":\"15.8\"},{\"top\":483.25854,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.351776123046875,\"text\":\"8\"},{\"top\":483.25854,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.351776123046875,\"text\":\"351.0\"},{\"top\":483.25854,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.351776123046875,\"text\":\"264\"},{\"top\":483.25854,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.351776123046875,\"text\":\"4.22\"},{\"top\":483.25854,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.351776123046875,\"text\":\"3.170\"},{\"top\":483.25854,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.351776123046875,\"text\":\"14.50\"},{\"top\":483.25854,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.351776123046875,\"text\":\"0\"},{\"top\":483.25854,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.351776123046875,\"text\":\"1\"},{\"top\":483.25854,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.351776123046875,\"text\":\"5\"}],[{\"top\":495.61032,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.356109619140625,\"text\":\"19.7\"},{\"top\":495.61032,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.356109619140625,\"text\":\"6\"},{\"top\":495.61032,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.356109619140625,\"text\":\"145.0\"},{\"top\":495.61032,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.356109619140625,\"text\":\"175\"},{\"top\":495.61032,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.356109619140625,\"text\":\"3.62\"},{\"top\":495.61032,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.356109619140625,\"text\":\"2.770\"},{\"top\":495.61032,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.356109619140625,\"text\":\"15.50\"},{\"top\":495.61032,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.356109619140625,\"text\":\"0\"},{\"top\":495.61032,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.356109619140625,\"text\":\"1\"},{\"top\":495.61032,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.356109619140625,\"text\":\"5\"}],[{\"top\":507.96643,\"left\":247.14917,\"width\":30.773834228515625,\"height\":12.35247802734375,\"text\":\"15.0\"},{\"top\":507.96643,\"left\":277.923,\"width\":24.407867431640625,\"height\":12.35247802734375,\"text\":\"8\"},{\"top\":507.96643,\"left\":302.33087,\"width\":34.6478271484375,\"height\":12.35247802734375,\"text\":\"301.0\"},{\"top\":507.96643,\"left\":336.9787,\"width\":26.899566650390625,\"height\":12.35247802734375,\"text\":\"335\"},{\"top\":507.96643,\"left\":363.87827,\"width\":30.24810791015625,\"height\":12.35247802734375,\"text\":\"3.54\"},{\"top\":507.96643,\"left\":394.12637,\"width\":34.64752197265625,\"height\":12.35247802734375,\"text\":\"3.570\"},{\"top\":507.96643,\"left\":428.7739,\"width\":34.64801025390625,\"height\":12.35247802734375,\"text\":\"14.60\"},{\"top\":507.96643,\"left\":463.4219,\"width\":21.1429443359375,\"height\":12.35247802734375,\"text\":\"0\"},{\"top\":507.96643,\"left\":484.56485,\"width\":25.238006591796875,\"height\":12.35247802734375,\"text\":\"1\"},{\"top\":507.96643,\"left\":509.80286,\"width\":30.24798583984375,\"height\":12.35247802734375,\"text\":\"5\"}]]}]" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "RASBy7Y5luSf", "colab_type": "code", "outputId": "0c27def2-8832-4b97-c49d-22c65896d79f", "colab": { "base_uri": "https://localhost:8080/", "height": 701 } }, "source": [ "tabula.convert_into(pdf_path, \"test.tsv\", output_format=\"tsv\")\n", "!cat test.tsv" ], "execution_count": 15, "outputs": [ { "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Got stderr: Jun 04, 2020 8:24:31 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:31 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "mpg\tcyl\tdisp\thp\tdrat\twt\tqsec\tvs\tam\tgear\r\n", "21.0\t6\t160.0\t110\t3.90\t2.620\t16.46\t0\t1\t4\r\n", "21.0\t6\t160.0\t110\t3.90\t2.875\t17.02\t0\t1\t4\r\n", "22.8\t4\t108.0\t93\t3.85\t2.320\t18.61\t1\t1\t4\r\n", "21.4\t6\t258.0\t110\t3.08\t3.215\t19.44\t1\t0\t3\r\n", "18.7\t8\t360.0\t175\t3.15\t3.440\t17.02\t0\t0\t3\r\n", "18.1\t6\t225.0\t105\t2.76\t3.460\t20.22\t1\t0\t3\r\n", "14.3\t8\t360.0\t245\t3.21\t3.570\t15.84\t0\t0\t3\r\n", "24.4\t4\t146.7\t62\t3.69\t3.190\t20.00\t1\t0\t4\r\n", "22.8\t4\t140.8\t95\t3.92\t3.150\t22.90\t1\t0\t4\r\n", "19.2\t6\t167.6\t123\t3.92\t3.440\t18.30\t1\t0\t4\r\n", "17.8\t6\t167.6\t123\t3.92\t3.440\t18.90\t1\t0\t4\r\n", "16.4\t8\t275.8\t180\t3.07\t4.070\t17.40\t0\t0\t3\r\n", "17.3\t8\t275.8\t180\t3.07\t3.730\t17.60\t0\t0\t3\r\n", "15.2\t8\t275.8\t180\t3.07\t3.780\t18.00\t0\t0\t3\r\n", "10.4\t8\t472.0\t205\t2.93\t5.250\t17.98\t0\t0\t3\r\n", "10.4\t8\t460.0\t215\t3.00\t5.424\t17.82\t0\t0\t3\r\n", "14.7\t8\t440.0\t230\t3.23\t5.345\t17.42\t0\t0\t3\r\n", "32.4\t4\t78.7\t66\t4.08\t2.200\t19.47\t1\t1\t4\r\n", "30.4\t4\t75.7\t52\t4.93\t1.615\t18.52\t1\t1\t4\r\n", "33.9\t4\t71.1\t65\t4.22\t1.835\t19.90\t1\t1\t4\r\n", "21.5\t4\t120.1\t97\t3.70\t2.465\t20.01\t1\t0\t3\r\n", "15.5\t8\t318.0\t150\t2.76\t3.520\t16.87\t0\t0\t3\r\n", "15.2\t8\t304.0\t150\t3.15\t3.435\t17.30\t0\t0\t3\r\n", "13.3\t8\t350.0\t245\t3.73\t3.840\t15.41\t0\t0\t3\r\n", "19.2\t8\t400.0\t175\t3.08\t3.845\t17.05\t0\t0\t3\r\n", "27.3\t4\t79.0\t66\t4.08\t1.935\t18.90\t1\t1\t4\r\n", "26.0\t4\t120.3\t91\t4.43\t2.140\t16.70\t0\t1\t5\r\n", "30.4\t4\t95.1\t113\t3.77\t1.513\t16.90\t1\t1\t5\r\n", "15.8\t8\t351.0\t264\t4.22\t3.170\t14.50\t0\t1\t5\r\n", "19.7\t6\t145.0\t175\t3.62\t2.770\t15.50\t0\t1\t5\r\n", "15.0\t8\t301.0\t335\t3.54\t3.570\t14.60\t0\t1\t5\r\n" ], "name": "stdout" } ] }, { "cell_type": "code", "metadata": { "id": "9WPnL5QwluSo", "colab_type": "code", "outputId": "ffb94f43-18a4-489c-b786-3bc2177de0ae", "colab": { "base_uri": "https://localhost:8080/", "height": 719 } }, "source": [ "tabula.convert_into(pdf_path, \"test.csv\", output_format=\"csv\", stream=True)\n", "!cat test.csv" ], "execution_count": 16, "outputs": [ { "output_type": "stream", "text": [ "'pages' argument isn't specified.Will extract only from page 1 by default.\n", "Got stderr: Jun 04, 2020 8:24:35 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:35 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "stream", "text": [ "\"\",mpg,cyl,disp,hp,drat,wt,qsec,vs,am,gear,carb\r\n", "Mazda RX4,21.0,6,160.0,110,3.90,2.620,16.46,0,1,4,4\r\n", "Mazda RX4 Wag,21.0,6,160.0,110,3.90,2.875,17.02,0,1,4,4\r\n", "Datsun 710,22.8,4,108.0,93,3.85,2.320,18.61,1,1,4,1\r\n", "Hornet 4 Drive,21.4,6,258.0,110,3.08,3.215,19.44,1,0,3,1\r\n", "Hornet Sportabout,18.7,8,360.0,175,3.15,3.440,17.02,0,0,3,2\r\n", "Valiant,18.1,6,225.0,105,2.76,3.460,20.22,1,0,3,1\r\n", "Duster 360,14.3,8,360.0,245,3.21,3.570,15.84,0,0,3,4\r\n", "Merc 240D,24.4,4,146.7,62,3.69,3.190,20.00,1,0,4,2\r\n", "Merc 230,22.8,4,140.8,95,3.92,3.150,22.90,1,0,4,2\r\n", "Merc 280,19.2,6,167.6,123,3.92,3.440,18.30,1,0,4,4\r\n", "Merc 280C,17.8,6,167.6,123,3.92,3.440,18.90,1,0,4,4\r\n", "Merc 450SE,16.4,8,275.8,180,3.07,4.070,17.40,0,0,3,3\r\n", "Merc 450SL,17.3,8,275.8,180,3.07,3.730,17.60,0,0,3,3\r\n", "Merc 450SLC,15.2,8,275.8,180,3.07,3.780,18.00,0,0,3,3\r\n", "Cadillac Fleetwood,10.4,8,472.0,205,2.93,5.250,17.98,0,0,3,4\r\n", "Lincoln Continental,10.4,8,460.0,215,3.00,5.424,17.82,0,0,3,4\r\n", "Chrysler Imperial,14.7,8,440.0,230,3.23,5.345,17.42,0,0,3,4\r\n", "Fiat 128,32.4,4,78.7,66,4.08,2.200,19.47,1,1,4,1\r\n", "Honda Civic,30.4,4,75.7,52,4.93,1.615,18.52,1,1,4,2\r\n", "Toyota Corolla,33.9,4,71.1,65,4.22,1.835,19.90,1,1,4,1\r\n", "Toyota Corona,21.5,4,120.1,97,3.70,2.465,20.01,1,0,3,1\r\n", "Dodge Challenger,15.5,8,318.0,150,2.76,3.520,16.87,0,0,3,2\r\n", "AMC Javelin,15.2,8,304.0,150,3.15,3.435,17.30,0,0,3,2\r\n", "Camaro Z28,13.3,8,350.0,245,3.73,3.840,15.41,0,0,3,4\r\n", "Pontiac Firebird,19.2,8,400.0,175,3.08,3.845,17.05,0,0,3,2\r\n", "Fiat X1-9,27.3,4,79.0,66,4.08,1.935,18.90,1,1,4,1\r\n", "Porsche 914-2,26.0,4,120.3,91,4.43,2.140,16.70,0,1,5,2\r\n", "Lotus Europa,30.4,4,95.1,113,3.77,1.513,16.90,1,1,5,2\r\n", "Ford Pantera L,15.8,8,351.0,264,4.22,3.170,14.50,0,1,5,4\r\n", "Ferrari Dino,19.7,6,145.0,175,3.62,2.770,15.50,0,1,5,6\r\n", "Maserati Bora,15.0,8,301.0,335,3.54,3.570,14.60,0,1,5,8\r\n", "Volvo 142E,21.4,4,121.0,109,4.11,2.780,18.60,1,1,4,2\r\n" ], "name": "stdout" } ] }, { "cell_type": "markdown", "metadata": { "id": "W8HrDTruu-mb", "colab_type": "text" }, "source": [ "## Use lattice mode for more accurate extraction for spreadsheet style tables\n", "\n", "If your tables have lines separating cells, you can use `lattice` option. By default, tabula-py sets `guess=True`, which is the same behavior for default of tabula app. If your tables don't have separation lines, you can try `stream` option.\n", "\n", "As it mentioned, try tabula app before struglling with tabula-py option. Or, [PDFplumber](https://github.com/jsvine/pdfplumber) can be an alternative since it has different extraction strategy." ] }, { "cell_type": "code", "metadata": { "id": "_g4_QK0SnfV4", "colab_type": "code", "outputId": "f1a66bc7-c90e-470c-d62a-a3d4a35bfaf1", "colab": { "base_uri": "https://localhost:8080/", "height": 669 } }, "source": [ "pdf_path3 = \"https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/spanning_cells.pdf\"\n", "dfs = tabula.read_pdf(\n", " pdf_path3,\n", " pages=\"1\",\n", " lattice=True,\n", " pandas_options={\"header\": [0, 1]},\n", " area=[0, 0, 50, 100],\n", " relative_area=True,\n", " multiple_tables=False,\n", ")\n", "dfs[0]" ], "execution_count": 17, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Improved operation scenarioUnnamed: 1_level_0Unnamed: 2_level_0Unnamed: 3_level_0Unnamed: 4_level_0Unnamed: 5_level_0
Volume servers in:20072008200920102011
0Server closets1,5051,5801,6431,6731,689
1Server rooms1,5121,5861,6461,6771,693
2Localized data centers1,5121,5861,6461,6771,693
3Mid-tier data centers1,5121,5861,6461,6771,693
4Enterprise-class data centers1,5121,5861,6461,6771,693
5Best practice scenarioNaNNaNNaNNaNNaN
6Volume servers in:20072008200920102011
7Server closets1,4561,4391,3861,2961,326
8Server rooms1,4651,4721,4271,3341,371
9Localized data centers1,4651,4711,4261,3341,371
10Mid-tier data centers1,4651,4711,4261,3341,371
11Enterprise-class data centers1,4651,4711,4261,3341,371
12State-of-the-art scenarioNaNNaNNaNNaNNaN
13Volume servers in:20072008200920102011
14Server closets1,4851,4711,4241,3151,349
15Server rooms1,4951,5731,5861,4241,485
16Localized data centers1,4951,5721,5851,4241,485
17Mid-tier data centers1,4951,5721,5851,4241,485
18Enterprise-class data centers1,4951,5721,5851,4241,485
\n", "
" ], "text/plain": [ " Improved operation scenario ... Unnamed: 5_level_0\n", " Volume servers in: ... 2011\n", "0 Server closets ... 1,689\n", "1 Server rooms ... 1,693\n", "2 Localized data centers ... 1,693\n", "3 Mid-tier data centers ... 1,693\n", "4 Enterprise-class data centers ... 1,693\n", "5 Best practice scenario ... NaN\n", "6 Volume servers in: ... 2011\n", "7 Server closets ... 1,326\n", "8 Server rooms ... 1,371\n", "9 Localized data centers ... 1,371\n", "10 Mid-tier data centers ... 1,371\n", "11 Enterprise-class data centers ... 1,371\n", "12 State-of-the-art scenario ... NaN\n", "13 Volume servers in: ... 2011\n", "14 Server closets ... 1,349\n", "15 Server rooms ... 1,485\n", "16 Localized data centers ... 1,485\n", "17 Mid-tier data centers ... 1,485\n", "18 Enterprise-class data centers ... 1,485\n", "\n", "[19 rows x 6 columns]" ] }, "metadata": { "tags": [] }, "execution_count": 17 } ] }, { "cell_type": "markdown", "metadata": { "id": "RGW2EtKkwXl6", "colab_type": "text" }, "source": [ "## Use tabula app template\n", "\n", "tabula-py can handle tabula app template, which has area options set by GUI app to reuse." ] }, { "cell_type": "code", "metadata": { "id": "IVcltBwUvcAc", "colab_type": "code", "outputId": "5e6e2778-4eea-49af-97b2-540b7e3394d1", "colab": { "base_uri": "https://localhost:8080/", "height": 1000 } }, "source": [ "template_path = \"https://github.com/chezou/tabula-py/raw/master/tests/resources/data.tabula-template.json\"\n", "tabula.read_pdf_with_template(pdf_path, template_path)" ], "execution_count": 18, "outputs": [ { "output_type": "stream", "text": [ "Got stderr: Jun 04, 2020 8:24:53 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:53 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n", "Got stderr: Jun 04, 2020 8:24:55 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:55 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n", "Got stderr: Jun 04, 2020 8:24:57 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font Symbol\n", "Jun 04, 2020 8:24:57 AM org.apache.pdfbox.pdmodel.font.PDType1Font \n", "WARNING: Using fallback font LiberationSans for base font ZapfDingbats\n", "\n" ], "name": "stderr" }, { "output_type": "execute_result", "data": { "text/plain": [ "[ Unnamed: 0 mpg cyl disp hp ... qsec vs am gear carb\n", " 0 Mazda RX4 21.0 6 160.0 110 ... 16.46 0 1 4 4\n", " 1 Mazda RX4 Wag 21.0 6 160.0 110 ... 17.02 0 1 4 4\n", " 2 Datsun 710 22.8 4 108.0 93 ... 18.61 1 1 4 1\n", " 3 Hornet 4 Drive 21.4 6 258.0 110 ... 19.44 1 0 3 1\n", " 4 Hornet Sportabout 18.7 8 360.0 175 ... 17.02 0 0 3 2\n", " 5 Valiant 18.1 6 225.0 105 ... 20.22 1 0 3 1\n", " 6 Duster 360 14.3 8 360.0 245 ... 15.84 0 0 3 4\n", " 7 Merc 240D 24.4 4 146.7 62 ... 20.00 1 0 4 2\n", " 8 Merc 230 22.8 4 140.8 95 ... 22.90 1 0 4 2\n", " 9 Merc 280 19.2 6 167.6 123 ... 18.30 1 0 4 4\n", " 10 Merc 280C 17.8 6 167.6 123 ... 18.90 1 0 4 4\n", " 11 Merc 450SE 16.4 8 275.8 180 ... 17.40 0 0 3 3\n", " 12 Merc 450SL 17.3 8 275.8 180 ... 17.60 0 0 3 3\n", " 13 Merc 450SLC 15.2 8 275.8 180 ... 18.00 0 0 3 3\n", " 14 Cadillac Fleetwood 10.4 8 472.0 205 ... 17.98 0 0 3 4\n", " 15 Lincoln Continental 10.4 8 460.0 215 ... 17.82 0 0 3 4\n", " 16 Chrysler Imperial 14.7 8 440.0 230 ... 17.42 0 0 3 4\n", " 17 Fiat 128 32.4 4 78.7 66 ... 19.47 1 1 4 1\n", " 18 Honda Civic 30.4 4 75.7 52 ... 18.52 1 1 4 2\n", " 19 Toyota Corolla 33.9 4 71.1 65 ... 19.90 1 1 4 1\n", " 20 Toyota Corona 21.5 4 120.1 97 ... 20.01 1 0 3 1\n", " 21 Dodge Challenger 15.5 8 318.0 150 ... 16.87 0 0 3 2\n", " 22 AMC Javelin 15.2 8 304.0 150 ... 17.30 0 0 3 2\n", " 23 Camaro Z28 13.3 8 350.0 245 ... 15.41 0 0 3 4\n", " 24 Pontiac Firebird 19.2 8 400.0 175 ... 17.05 0 0 3 2\n", " 25 Fiat X1-9 27.3 4 79.0 66 ... 18.90 1 1 4 1\n", " 26 Porsche 914-2 26.0 4 120.3 91 ... 16.70 0 1 5 2\n", " 27 Lotus Europa 30.4 4 95.1 113 ... 16.90 1 1 5 2\n", " 28 Ford Pantera L 15.8 8 351.0 264 ... 14.50 0 1 5 4\n", " 29 Ferrari Dino 19.7 6 145.0 175 ... 15.50 0 1 5 6\n", " 30 Maserati Bora 15.0 8 301.0 335 ... 14.60 0 1 5 8\n", " 31 Volvo 142E 21.4 4 121.0 109 ... 18.60 1 1 4 2\n", " \n", " [32 rows x 12 columns],\n", " Unnamed: 0 Sepal.Width Petal.Length Petal.Width Species\n", " 0 5.1 3.5 1.4 0.2 setosa\n", " 1 4.9 3.0 1.4 0.2 setosa\n", " 2 4.7 3.2 1.3 0.2 setosa\n", " 3 4.6 3.1 1.5 0.2 setosa\n", " 4 5.0 3.6 1.4 0.2 setosa,\n", " Unnamed: 0 Sepal.Length Sepal.Width Petal.Length Petal.Width Species\n", " 0 145 6.7 3.3 5.7 2.5 virginica\n", " 1 146 6.7 3.0 5.2 2.3 virginica\n", " 2 147 6.3 2.5 5.0 1.9 virginica\n", " 3 148 6.5 3.0 5.2 2.0 virginica\n", " 4 149 6.2 3.4 5.4 2.3 virginica,\n", " Unnamed: 0 supp dose\n", " 0 4.2 VC 0.5\n", " 1 11.5 VC 0.5\n", " 2 7.3 VC 0.5\n", " 3 5.8 VC 0.5\n", " 4 6.4 VC 0.5\n", " 5 10.0 VC 0.5\n", " 6 11.2 VC 0.5\n", " 7 11.2 VC 0.5\n", " 8 5.2 VC 0.5\n", " 9 7.0 VC 0.5\n", " 10 16.5 VC 1.0\n", " 11 16.5 VC 1.0\n", " 12 15.2 VC 1.0\n", " 13 17.3 VC 1.0]" ] }, "metadata": { "tags": [] }, "execution_count": 18 } ] }, { "cell_type": "markdown", "metadata": { "id": "i0Jxoh9ZSRyv", "colab_type": "text" }, "source": [ "If you have any question, ask on [StackOverflow](https://stackoverflow.com/search?q=tabula-py)." ] } ] }