Files
pdfplumber/tests/test-basics.py
T
2020-01-05 21:33:49 -05:00

66 lines
2.0 KiB
Python

#!/usr/bin/env python
import unittest
import pandas as pd
import pdfplumber
import sys, os
import six
import logging
logging.disable(logging.ERROR)
HERE = os.path.abspath(os.path.dirname(__file__))
class Test(unittest.TestCase):
def setUp(self):
path = os.path.join(HERE, "pdfs/nics-background-checks-2015-11.pdf")
self.pdf = pdfplumber.from_path(path)
def test_metadata(self):
metadata = self.pdf.metadata
assert(isinstance(metadata["Producer"], six.text_type))
def test_pagecount(self):
assert(len(self.pdf.pages) == 1)
def test_page_number(self):
assert(self.pdf.pages[0].page_number == 1)
def test_crop_and_filter(self):
def test(obj):
return obj["object_type"] == "char"
bbox = (0, 0, 200, 200)
original = self.pdf.pages[0]
step_1 = original.crop(bbox)
assert(step_1.width == 200)
assert(len(step_1.chars) < len(original.chars))
step_2 = step_1.filter(test)
assert(len(step_1.rects) > 0)
assert(len(step_2.rects) == 0)
def test_rotation(self):
rotated = pdfplumber.from_path(
os.path.join(HERE, "pdfs/nics-background-checks-2015-11-rotated.pdf")
)
assert(self.pdf.pages[0].width == 1008)
assert(self.pdf.pages[0].height == 612)
assert(rotated.pages[0].width == 612)
assert(rotated.pages[0].height == 1008)
assert(rotated.pages[0].cropbox == self.pdf.pages[0].cropbox)
assert(rotated.pages[0].bbox != self.pdf.pages[0].bbox)
def test_password(self):
path = os.path.join(HERE, "pdfs/password-example.pdf")
pdf = pdfplumber.open(path, password = "test")
assert(len(pdf.chars) > 0)
pdf.close()
def test_colors(self):
path = os.path.join(HERE, "pdfs/nics-background-checks-2015-11.pdf")
pdf = pdfplumber.open(path)
rect = pdf.pages[0].rects[0]
assert rect['non_stroking_color'] == [0.8, 1, 1]
pdf.close()