diff --git a/camelot/utils.py b/camelot/utils.py index 29939f68..b331fbfa 100644 --- a/camelot/utils.py +++ b/camelot/utils.py @@ -592,6 +592,9 @@ def split_textline(table, textline, direction, flag_size=False, strip_text=""): cut_text = [] bbox = textline.bbox try: + if textline.is_empty(): + return [(-1, -1, textline.get_text())] + if direction == "horizontal" and not textline.is_empty(): x_overlap = [ i @@ -622,7 +625,8 @@ def split_textline(table, textline, direction, flag_size=False, strip_text=""): else: # TODO: add test if cut == x_cuts[-1]: - cut_text.append((r, cut[0] + 1, obj)) + new_idx = min(cut[0] + 1, len(table.cols) - 1) + cut_text.append((r, new_idx, obj)) elif isinstance(obj, LTAnno): cut_text.append((r, cut[0], obj)) elif direction == "vertical" and not textline.is_empty(): @@ -655,7 +659,8 @@ def split_textline(table, textline, direction, flag_size=False, strip_text=""): else: # TODO: add test if cut == y_cuts[-1]: - cut_text.append((cut[0] - 1, c, obj)) + new_idx = max(cut[0] - 1, 0) + cut_text.append((new_idx, c, obj)) elif isinstance(obj, LTAnno): cut_text.append((cut[0], c, obj)) except IndexError: diff --git a/tests/data.py b/tests/data.py index 6d743183..2309ab78 100644 --- a/tests/data.py +++ b/tests/data.py @@ -3263,3 +3263,578 @@ ["", "", "", "", "", "Test Average =", "47.6", "7.7", "0", "122.9", "$713"], ["", "", "", "", "", "LSD (0.10) =", "5.7", "0.3", "ns", "37.8", "566.4"], ] + +data_lattice_split_text = [ + [ + "S. No.", + "Name of Licensee", + "License No.& Date", + "Category", + "Service area", + "Date of \nsigning UL", + "Effective Date", + "Authorized person", + "Registered Office Address", + "Contact No. Mobile", + "Mail ID", + ], + [ + "1", + "Mukand Infotel Pvt. Ltd.", + "820-1217/13-LR", + "B", + "Assam", + "10-01-2014", + "10-01-2014", + "Mr. Rishi Gupta", + "AC Dutta Lane , FA Road Kumarpara, Guwahati- 781001, \nAsaam", + "09859920400", + "mukandinfotel@mukandgroup.in", + ], + [ + "2", + "Edge Telecommunications \nPvt. Ltd.", + "821-11/2013-DS", + "B", + "Delhi", + "28-01-2014", + "28-01-2014", + "Mr. Ajay Jain", + "1/9875, Gali No. 1, West Gorakh Park, Shahdara, Delhi – \n110032", + "9871553635", + "ajay@edgetechnologies.biz", + ], + [ + "3", + "Southern Online Bio \nTechnologies Ltd", + "821-05/2013-DS", + "B", + "Andhra Pradesh", + "06-02-2014", + "10-12-2013", + "Mr. Satish Kumar \nNanubala", + "A3, 3rd Floor, Office Block, Samrat Complex, \nSaifabad, Hyderabad-500 004", + "040-23241444", + "satish@sol.net.in ,info@sol.net.in", + ], + [ + "4", + "Blaze Net Limited", + "821-13/2013-DS", + "B", + "Gujarat and Mumbai", + "10-02-2014", + "25-01-2014", + "Mr. Sharad Varia", + "20, Paraskunj Society, Part I, Nr. Umiyavijay, Satellite Road, \nAhmedabad-380015 Gujarat", + "9825610953", + "sharad@blazenet.biz", + ], + [ + "5", + "Unified Voice \nCommunication Pvt. Ltd.", + "821-07/2013-DS", + "B", + "Tamilnadu (including \nChennai)", + "20-02-2014", + "20-02-2014", + "Mr. K.Rajubharathan", + "Old No. 14 (New No. 35), 4th Main Road, CIT Nagar, \nNanthanam, Chennai – 600035", + "9840051838", + "raju@voicecomglobal.com", + ], + [ + "6", + "Synchrist Network Services \nPvt. Ltd", + "821-15/2013-DS", + "B", + "Mumbai", + "21-02-2014", + "21-02-2014", + "Mr. Kiran Kumar \nKatara", + "Shop No. 5, New Lake Palace Co-op-Hsg. Ltd.,\nPlot No. 7-B, Opp Adishankaracharya Road,\nPowai, Mumbai – 400076 (MH)", + "9920477434", + "", + ], + [ + "7", + "Vala Infotech Pvt. Ltd. ( \nNow Known as M/s \nFiberpipe Communications \nPvt. Limited)", + "821-09/2013-DS", + "B", + "Gujarat", + "24-02-2014", + "24-02-2014", + "Mr. Bharat R Vala, \nM.D.", + "Dhanlaxmi Building, Room No. 309,\n3rd Floor, Near Central Bank, Navsari – 396445 \nGujarat", + "09825145505\n 09940100119", + "manishvala@hotmail.com", + ], + [ + "8", + "Arjun Telecom Pvt. \nLtd(surrendered)", + "821-26/2013-DS", + "C", + "Chengalpattu \n(Kancheepuram)", + "25-02-2014", + "25-02-2014", + "Mr. N.Kannapaan, \nManaging Director", + "New No. 1, Old No. 4, 1st Floor, Kamakodi Nagar, \nValasaravakkam, Chennai – 600087", + "9940100119", + "n.vijaykannappan@gmail. Com", + ], + [ + "9", + "CNS Infotel Services Pvt. \nLtd.", + "821-49/2013-DS", + "B", + "Jammu & Kashmir", + "26-02-2014", + "26-02-2014", + "Mr. Reyaz Ahmed \nMir (M.D.)", + "M.A. Road, opp. Women College, Sri Nagar – 190001 \nJammu and Kashmir", + "09205433377/66/941904\n7414 / 9205059003", + "reyazmir@cns24X7.net , \ninfo@cns24X7.net", + ], + [ + "10", + "Micronova Network \nSolutions Pvt. Ltd.", + "821-02/2013-DS", + "B", + "Tamilnadu (including \nChennai)", + "27-02-2014", + "27-02-2014", + "Mr. R.Guruprasad, \nDirector", + "#17, Bull Temple Road, Basavanagudi, Bangalore-560004.", + "8050027555/9742744811", + "Guruprasad@micronovaimpex. com", + ], + [ + "11", + "Apollo Online Services \nPrivate Limited", + "821-18/2013-DS", + "B", + "Andhra Pradesh", + "03-03-2014", + "03-03-2014", + "Mr. A.Sasidhar, \nManager Corporates", + "12-13-387, Nane No. 1, St.-No.1, Tarnaka, Secunderabad-\n500017", + "9912387000", + "andolesasi@gmail.com \n/bsreddy1214@gmail.com", + ], + [ + "12", + "Bittel Telecom Private \nLimited", + "821-14/2013-DS", + "B", + "Kolkata and Maharastra", + "04-03-2014", + "04-03-2014", + "Mr. Amit Paul \nDurector", + "2nd Floor, Central Plaza, 41, Bipin Behary Ganguly Street, \nKolkata-700012", + "", + "info@bittel.in", + ], + [ + "13", + "DDC Broad Band Pvt. Ltd", + "821-29/2013-DS", + "B", + "Delhi", + "05-03-2014", + "05-03-2014", + "Mr. Ravi Gupta", + "Office No. 2, First Floor, Local shopping centre, uday park, \nNew Delhi-110049", + "9810499760", + "ravigupta@inddc.in", + ], + [ + "14", + "Candor Infosolution \nPvt.Ltd.", + "821-34/2013-DS", + "", + "Delhi", + "06-03-2014", + "06-03-2014", + "Mr. Kaushal Kumar, \nDirector", + "7A, Berasarai New Delhi-110016, Opp. Old JNU Campus \nNew Delhi - 110016.", + "9999841537", + "kaushal@candorsolution.com", + ], + [ + "15", + "C.J.Online Pvt. Ltd.", + "821-59/2013-DS", + "C+C", + "Gurgaon SSA and \nSonipat SSA", + "11-03-2014", + "11-03-2014", + "Mr. Ram Autar \nChharria, Director", + "J-18, Gandhi Nagar Gwalior (M.P.)", + "9811038188", + "rc@cjnet4u.com", + ], + [ + "16", + "Gazon Communications \nIndia Limited", + "821-30/2013-DS", + "B", + "Maharastra", + "12-03-2014", + "12-03-2014", + "Mr. Kishor Desarda, \nM.D.", + "Parason House, 28, Venkatesh Nagar, Jalna Road, \nAurangabad (M.S.) 431001", + "9762055555", + "kishor@gazonindia.com", + ], + [ + "17", + "AIR IT Infrastructure Pvt \nLtd (Now known as M/s \nEsto Internet Pvt. Limited)", + "821-21/2013-DS", + "C", + "Solan", + "12-03-2014", + "12-03-2014", + "Mr. Manish Kumar, \nDirector", + "435/1, Sector 45A, Chandigrarh-160045", + "8966960000", + "askus@airitindia.com", + ], + [ + "18", + "Access Smart Solutions \nIndia Pvt Ltd", + "821-19/2013-DS", + "B", + "Andhra Pradesh", + "13-03-2014", + "13-03-2014", + "Mr. Sultan Basha \nShaik (Director)", + "Plot No. 40 & 41, Flat No. 201, Shreya's PVR North West, \nBalaji Nagar, Kukatpally, Hyderbad, Andhra Pradesh- \n500072", + "", + "info@access-smart.in", + ], + [ + "19", + "Dnetworks Internet Services \nPvt. Ltd.", + "821-44/2013-DS", + "B", + "Delhi", + "26-03-2014", + "26-03-2014", + "Mr. Durgesh \nAhlawat, Director", + "E-5a, Chanakya Place, Street no-21, New Delhi 110059", + "9871203541", + "durgesh.network@gmail.com", + ], + [ + "20", + "Protolink Infotech Private \nLimited", + "821-25/2013-DS", + "C", + "Surat", + "27-03-2014", + "27-03-2014", + "Mr. Kaushik Kumar \nH. Randeriya", + "1/142, Bhandariwad, nr. Hanumanterkri, randder, Surat-\n395005, Gujarat.395005.", + "9979112000", + "info@protokink.net", + ], + [ + "21", + "Plusnet Communications \nPvt. Ltd.", + "821-40/2013-DS", + "B", + "Gujarat", + "27-03-2014", + "27-03-2014", + "Mr. Mayurkumar O. \nKalathiya, Director", + "City Arcede 5E 770, NR DSP Banglow, Jamnagar-361001, \nGujarat.", + "-9909072797", + "nidhimirani2012@gmail.com", + ], + [ + "22", + "Go WiFi Networking \nSolutions Pvt. Ltd", + "821-54/2013-DS", + "C", + "cuttack", + "28-03-2014", + "28-03-2014", + "Md. Javed Akhtar, \nManaging Director", + "217, Purusottampur, Jajpur Town-755001, odisha", + "Ph: 9437545260", + "javed@gowifi.in", + ], + [ + "23", + "NCore Creative \nTechnologies Pvt. Ltd.", + "821-60/2013-DS", + "C", + "Kota", + "31-03-2014", + "31-03-2014", + "Mr. Rakesh \nBagla(Director)", + "47, Nai Dhan Mandi, Mukhy Dakaghar, Nai Dhan Mandi, \nKota., Raj.-324001", + "9214066666", + "ncorecreative@gmial.com", + ], + [ + "24", + "Mahanagar Telephone \nNigam Limited", + "821-43/2013-DS", + "", + "", + "01-04-2014", + "06-11-2013", + "Smt Vandana Gupta \nGM(RA& C)", + "Mahanagar Telephone Nigam Limited Mahanagar \nDoorsanchar sadan 5th floor, 9, CGO Complex, Lodhi Road, \nNew Delhi-110003", + "9868137726", + "gmraco@bol.net.in \nalok.mtnlra@gmail.com", + ], + [ + "25", + "Mobiwalkers Digital Media \nPvt. Ltd.", + "821-51/2013-DS", + "B", + "Andhra Pradesh and \nKarnataka.", + "04-04-2014", + "04-04-2014", + "Mr. Inampudi Kiran \nKumar, Director", + "Mobiwalkers Digital Media Pvt. Ltd. Flat No. P1, Block A, \n4th floor, Sai Srinivasa Enclave, 116/2, Doddathogur, \nElectronic city, phase-I, Bangalore- 560100", + "9620333333", + "info@mobiwalkers.com", + ], + [ + "26", + "Benchmark Infotech \nServices Private Limited", + "821-37//2013-DS", + "B", + "Bihar", + "16-04-2014", + "16-04-2014", + "Mr. Tazuddin Ansari, \n(Account Manager", + "P-275A, C.I.T Road, Phoolbagan. 1st floor, Scheme-IVM, \nKolkata-700054.", + "8017518110", + "account@benchmarkinfo.com", + ], + [ + "27", + "Neo Tel Private Limited", + "821-32/2013-DS", + "B", + "Delhi", + "22-04-2014", + "22-04-2014", + "Mr. Lalit Kumar, \nDirector", + "Flat No. – 502, Siddharth Co-operative Society,\nSector – 56, Gurgaon-122011, Haryana", + "", + "lalit72@yahoo.com", + ], + [ + "28", + "Trikon Electronics Private \nLimited", + "821-24/2013-DS", + "B", + "Mumbai", + "23-04-2014", + "11-11-2013", + "Mr. Deven Verma, \nDirector", + "101 Sarvesh, Off Bhawani Shankar Road, Near \nKabutarkhana Dadar (W) Mumbai-400028", + "sai prasad Mob.no. \n9820678728", + "deven@staff.ownmail.com", + ], + [ + "29", + "Software Technology Parks \nof India", + "821-42/2013-DS", + "A", + "All India", + "23-04-2014", + "15-01-2014", + "Mr. Devesh Tyagi, \nDirector", + "Eletronic Niketan, 6 CGO Complex, Lodi road, \nNew Delhi – 110 003.", + "MON> No. 9717180034", + "devesh@stpi.in", + ], + [ + "30", + "Sanchit Infocom Private \nLimited", + "821-31/2013-DS", + "B", + "Punjab", + "24-04-2014", + "24-04-2014", + "Harsh Kumar, \nDirector", + "381-A, Green Avenue,\nAmritsar – 143001", + "MON> No. 9815350666", + "harshagarwal61@gmail.com", + ], + [ + "31", + "CIT Neo Tel Private \nLimited", + "821-33/2013-DS", + "B", + "Karnataka", + "25-04-2014", + "25-04-2014", + "Mr. Lalit Kumar, \nDirector", + "B-25, 2nd Floor, South Ext., Part-2, New Delhi-110049", + "Mob. No. 9871142245.", + "lalit72@yahoo.com", + ], + [ + "32", + "Dehradun E Net Solutions \nPrivate Limited", + "821-08/2013-DS", + "B+B", + "Uttar Pradesh(West) and \nHaryana", + "28-04-2014", + "28-04-2014", + "Mr. Gautam Sehgal, \nDirector", + "180, Gen Aurora Hall, Sandhu Centre, Near Transport \nNagar, Dehradun (Uttrakhand) – 248006", + "Mob. No. 8126188100", + "admin@enet.net.in", + ], + [ + "33", + "Siti Cable Network Limited", + "821-39/2013-DS", + "A", + "All India", + "29-04-2014", + "07-12-2013", + "Mr. Virender Singh \nThakur, Manager-\nLegal", + "135, Continental Building, Dr. Annie Besant Road, Worli, \nMumbai-400018", + "Mob. No. +91-\n8447040077", + "", + ], + [ + "34", + "L S Fibernet Pvt. Ltd.", + "821-06/2013-DS", + "B", + "Andhra Pradesh", + "30-04-2014", + "30-04-2014", + "Mr. Vadlamudi \nLalitth Kumar, MD", + "Plot No. 55, Hills Colony, Vanasthalipuram, Hyderabad-500 \n070", + "Mob. No. +91-\n9848783353", + "lalith@isbroadband.com", + ], + [ + "35", + "Blu Ultraband Internet \nServices Private Limited", + "821-35/2013-DS", + "B+B", + "Andhra Pradesh and \nTamilnadu", + "01-05-2014", + "01-05-2014", + "Mr. Phanikanth \nKudapa, Director", + "88-C, Race Course Rd, Coimbatore-641018", + "Mob. No. 9246650225", + "phani@bluwifi.in", + ], + [ + "36", + "Smart Aleck wireless Pvt. \nLtd.", + "821-53/2013-DS", + "B", + "Mumbai", + "02-05-2014", + "02-05-2014", + "Mr. Naveen Krishna \nMurthy Sunku, \nDirector", + "231/1842, Motilal Nagar No.1, Goregaon(West) Mumbai-\n400104", + "Mob. No. 09133682902", + "navinsunku24@yahoo.com", + ], + [ + "37", + "Kappa Internet Services \nPvt. Ltd.", + "821-58/2013-DS", + "B", + "Madhya Pradesh", + "07-05-2014", + "07-05-2014", + "Mr. Krishan Kant \nAgrawal , M.D.", + "I-RA-8, Vigyan Nagar, Kota-324005", + "Mob. No. 9672970111", + "krshn@kappa.net.in", + ], + [ + "38", + "Infonet Online Solutions \nPvt. Ltd.", + "821-64/2013-DS", + "C", + "Hyderabad", + "08-05-2014", + "08-05-2014", + "Mr. Mohd. Sajid \nRizwan, Director", + "13-6-822/1/B/1, Near Pillar No. 197, Upperpally, Rajendra \nnagar, Hyderabad-500030 A.P.", + "Mob. No 9177718706", + "ms_rizwaan@rediffmail.com", + ], + [ + "39", + "Dhanvi Internet Solutions \nPvt. Ltd.", + "821-38/2013-DS", + "B", + "Gujarat", + "15-05-2014", + "15-05-2014", + "Mr. Bharatkumar \nDave , M.D.", + "B-701, Samudra Complex Near Hotel Classic Gold C.G. \nRoad, Navrang pura , Ahmedabad-380006", + "Mob. No 9879508860", + "bharat@dhanviinformatics.com", + ], + [ + "40", + "Blackpride Tech \nCommunication Pvt. Ltd.", + "821-62/2013-DS", + "B", + "Andhra Pradesh", + "20-05-2014", + "20-05-2014", + "Mr. K. Sreenath, \nM.D.", + "Flat No. – 24D8, Black2, Panchavati Apartments, Pragathi \nNagar, Nizampet, Ranga Reddy District- 500090", + "Mob. No. 9493536649", + "blackpridegroups@gmail.com", + ], + [ + "41", + "Intech Online Pvt.Ltd.", + "821-67/2013-DS", + "B", + "Maharashtra & Mumbai", + "21-05-2014", + "21-05-2014", + "Mr. Amol Ulhas \nNalawade, Directory", + "301, 4th floor, B-Wing, Rane, Bhuvan, Next to Anand \nCinema, Kopri, Thane (East)- 400603", + "Mob. No. 09594199000", + "info@intechonline.net", + ], + [ + "42", + "Perfect Internet Pvt Ltd", + "821-16/2013-DS", + "B", + "Delhi", + "22-05-2014", + "22-05-2014", + "Mr. Prashant \nGuharay, Director", + "Plot No. 178, Kh No. 60, Gali No. D-6, Chattarpur Pahari, \nNew Delhi-110030.", + "Mob. No. 9818766125", + "prashant@perfectinternet.in", + ], + [ + "43", + "IndusInd Media & \nCommunications Ltd.( \nLicense transferred to M/s \nPlanet E-Shop Holdings \nIndia Limited), After that \nname has been changed to \nM/S Oneott Intertainment \nLtd.", + "821-52/2013-DS", + "A", + "All India", + "27-05-2014", + "04-12-2013", + "Mr. Vivek. Garg-\nChief Technology \nOffcer", + "315-G New Charni Road, Next to Hinduja College Mumbai- \n400093", + "Mob. No. 9008302626", + "vivek.garg@incablenet.net", + ], +] diff --git a/tests/files/split_text_lattice.pdf b/tests/files/split_text_lattice.pdf new file mode 100644 index 00000000..f1cf5136 Binary files /dev/null and b/tests/files/split_text_lattice.pdf differ diff --git a/tests/test_lattice.py b/tests/test_lattice.py index d2803049..a8b8c807 100644 --- a/tests/test_lattice.py +++ b/tests/test_lattice.py @@ -105,3 +105,13 @@ def test_lattice_arabic(testdir): filename = os.path.join(testdir, "tabula/arabic.pdf") tables = camelot.read_pdf(filename) assert_frame_equal(df, tables[0].df) + + +@skip_on_windows +def test_lattice_split_text(testdir): + df = pd.DataFrame(data_lattice_split_text) + + filename = os.path.join(testdir, "split_text_lattice.pdf") + tables = camelot.read_pdf(filename, line_scale=60, split_text=True) + + assert_frame_equal(df, tables[0].df)