If you’ve ever tried to do anything with data provided to you in PDFs, you know how painful it is — there's no easy way to copy-and-paste rows of data out of PDF files. PDFTableExtractor allows you to extract that data into a CSV or Microsoft Excel spreadsheet using a simple, easy-to-use commands.
1 Introduction
The table extractor class is a library for extracting tables from PDF files based o n the ideas from Tabula Technology.
2 Example 1
The following example extracts a table from the document
var textractor = new Ax.pdf.TableExtractor(new Ax.net.URL("https://bitbucket.org/deister/axional-docs-resources/raw/master/PDF/tabula/PDF_OCR5.pdf")); // Reguires tabular extractor set! textractor.setTabular(true).extract(); var pdftables = textractor.getDocumentTables(); if (false) { console.log("=== TABLES OF DOCUMENT ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var pdftables = textractor.getTablesMatching("Descripci.*"); if (false) { console.log("=== TABLES MATCHING ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var rs = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(4).toResultSet( [ "Descripci", "Cant", "P. Unit.", "Total", ], [ "concepto", "cantidat", "precio", "total", ], [ Ax.sql.Types.CHAR, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL ] ); console.log(rs);
+-------------------------------------------------------------------------------------------------------+--------------+------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------+
|<null> |<null> |<null> |<null> |<null> |
|concepto |cantidat |precio |total |__meta__ |
|char(0) |decimal(0, 12)|decimal(0, 12) |decimal(0, 12) |char(0) |
+-------------------------------------------------------------------------------------------------------+--------------+------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------+
|SERVICIO EXTRA DE LIMPIEZA DE 3 HORAS REALIZADO EN EL MES DE AGOSTO EN SUS INSTALACIONES DE VILABLAREIX|1.000000000000|1,052.190000000000|1,052.190000000000|SERVICIO EXTRA DE LIMPIEZA DE 3 HORAS REALIZADO EN EL MES DE
AGOSTO EN SUS INSTALACIONES DE VILABLAREIX,1,00,1.052,19,,1.052,19|
+-------------------------------------------------------------------------------------------------------+--------------+------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------+
3 Example 2
The following example extracts a table from the document
var textractor = new Ax.pdf.TableExtractor(new Ax.net.URL("https://bitbucket.org/deister/axional-docs-resources/raw/master/PDF/tabula/PDF_BIG1.pdf")); // Reguires tabular extractor set to false. // Uses automatic detected BasicExtractor cause its not tabular so it will not use SpreadSheetExtractor textractor.setTabular(false).extract(); console.log("=== TABLES OF DOCUMENT ==="); var pdftables = textractor.getDocumentTables(); if (false) { console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var pdftables = textractor.getTablesMatching("Descripci.*"); if (false) { console.log("=== TABLES MATCHING ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } /** * Create a Resultset for the matching columns with the column names and expected data types */ var rs1 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet( [ "Cód", "Descripc", "Unidades", "Precio", "Iva", "Importe" ], [ "codigo", "concepto", "cantidat", "precio", "iva", "total", ], [ Ax.sql.Types.CHAR, Ax.sql.Types.CHAR, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL ] ); console.log(rs1); /** * Create an automatic resultset */ var rs2 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet(); console.log(rs2);
ResultSet Nª 1
+--------+--------------------------------+----------------+---------------+---------------+-------------------+---------------------------------------------------------------------------------+
|<null> |<null> |<null> |<null> |<null> |<null> |<null> |
|codigo |concepto |cantidat |precio |iva |total |__meta__ |
|char(0) |char(0) |decimal(0, 12) |decimal(0, 12) |decimal(0, 12) |decimal(0, 12) |char(0) |
+--------+--------------------------------+----------------+---------------+---------------+-------------------+---------------------------------------------------------------------------------+
|673088.1|ALDOSOMNIL 1 MG |1.000000000000 |1.290000000000 |4.000000000000 |1.290000000000 |673088.1,ALDOSOMNIL 1 MG,1 UN,1,29,4,00,1,29 |
|712273.9|ALDOCUMAR 10 MG. |93.000000000000 |5.420000000000 |4.000000000000 |504.060000000000 |712273.9,ALDOCUMAR 10 MG.,93 UN,5,42,4,00,504,06 |
|655449.4|PAIDOTERIN DESCONGESTIVO 100 ML |29.000000000000 |5.090000000000 |4.000000000000 |147.610000000000 |655449.4,PAIDOTERIN DESCONGESTIVO 100 ML,29 UN,5,09,4,00,147,61 |
|673089.8|ALDOSOMNIL 2 MG |4.000000000000 |1.480000000000 |4.000000000000 |5.920000000000 |673089.8,ALDOSOMNIL 2 MG,4 UN,1,48,4,00,5,92 |
|700624.4|SILVEDERMA CREMA 50 GRAMOS |500.000000000000|4.120000000000 |4.000000000000 |2,060.000000000000 |700624.4,SILVEDERMA CREMA 50 GRAMOS,500 UN,4,12,4,00,2.060,00 |
|768283.7|SILVEDERMA 10G/ML SUSP. PULV. |24.000000000000 |5.100000000000 |4.000000000000 |122.400000000000 |768283.7,SILVEDERMA 10G/ML SUSP. PULV.,24 UN,5,10,4,00,122,40 |
| |CUTÁNEA | | | | |,CUTÁNEA,,,, |
|794370.9|BECLORINO 50 MCG SUSP PARA |3.000000000000 |2.010000000000 |4.000000000000 |6.030000000000 |794370.9,BECLORINO 50 MCG SUSP PARA,3 UN,2,01,4,00,6,03 |
| |PULVER NASAL | | | | |,PULVER NASAL,,,, |
|653296.6|PROCTOSTEROID AEROSOL ESPUMA |1.000000000000 |7.000000000000 |4.000000000000 |7.000000000000 |653296.6,PROCTOSTEROID AEROSOL ESPUMA,1 UN,7,00,4,00,7,00 |
|725902.2|BUDESONIDA A-U 64 MICROGRAMOS |85.000000000000 |3.330000000000 |4.000000000000 |283.050000000000 |725902.2,BUDESONIDA A-U 64 MICROGRAMOS,85 UN,3,33,4,00,283,05 |
| |200 D EFG | | | | |,200 D EFG,,,, |
|725289.4|PAIDOCORT 3 MG/ML SOLUCIÓN |8.000000000000 |13.890000000000|4.000000000000 |111.120000000000 |725289.4,PAIDOCORT 3 MG/ML SOLUCIÓN,8 UN,13,89,4,00,111,12 |
| |ORAL | | | | |,ORAL,,,, |
|797183.2|SALBUTAMOL ALDO-UNION |900.000000000000|1.600000000000 |4.000000000000 |1,440.000000000000 |797183.2,SALBUTAMOL ALDO-UNION,900 UN,1,60,4,00,1.440,00 |
|936781.7|TEROMOL RETARD COMPRIMIDOS |7.000000000000 |2.270000000000 |4.000000000000 |15.890000000000 |936781.7,TEROMOL RETARD COMPRIMIDOS,7 UN,2,27,4,00,15,89 |
|870345.6|ALDOCUMAR 1MG |43.000000000000 |1.230000000000 |4.000000000000 |52.890000000000 |870345.6,ALDOCUMAR 1MG,43 UN,1,23,4,00,52,89 |
|870352.4|ALDOCUMAR 3 MG |3.000000000000 |2.020000000000 |4.000000000000 |6.060000000000 |870352.4,ALDOCUMAR 3 MG,3 UN,2,02,4,00,6,06 |
|870428.6|ALDOCUMAR 5 MG |18.000000000000 |2.790000000000 |4.000000000000 |50.220000000000 |870428.6,ALDOCUMAR 5 MG,18 UN,2,79,4,00,50,22 |
|177690.7|NEBUALDO (C/E) |4.000000000000 |32.650000000000|21.000000000000|130.600000000000 |177690.7,NEBUALDO (C/E),4 UN,32,65,21,00,130,60 |
|653404.5|IBUPROFENO A-U 20 MG/ML |2.000000000000 |1.600000000000 |4.000000000000 |3.200000000000 |653404.5,IBUPROFENO A-U 20 MG/ML,2 UN,1,60,4,00,3,20 |
| |SUSP.ORAL EFG | | | | |,SUSP.ORAL EFG,,,, |
|650654.7|FORMOTEROL ALDO-UNION 12 MCG |27.000000000000 |14.440000000000|4.000000000000 |389.880000000000 |650654.7,FORMOTEROL ALDO-UNION 12 MCG,27 UN,14,44,4,00,389,88 |
|668830.4|BUDESONIDA NASAL A-U 100 MCG |144.000000000000|5.200000000000 |4.000000000000 |748.800000000000 |668830.4,BUDESONIDA NASAL A-U 100 MCG,144 UN,5,20,4,00,748,80 |
| |200 DOSIS | | | | |,200 DOSIS,,,, |
|653830.2|BROMURO IPRAT.SOL.A-U 250MCG |2.000000000000 |3.650000000000 |4.000000000000 |7.300000000000 |653830.2,BROMURO IPRAT.SOL.A-U 250MCG,2 UN,3,65,4,00,7,30 |
|668905.9|BUDESONIDA 50MCG 200 DOSIS HFA |34.000000000000 |4.840000000000 |4.000000000000 |164.560000000000 |668905.9,BUDESONIDA 50MCG 200 DOSIS HFA,34 UN,4,84,4,00,164,56 |
|799015.4|BUDESONIDA 200MCG 200DOSIS HFA |131.000000000000|12.970000000000|4.000000000000 |1,699.070000000000 |799015.4,BUDESONIDA 200MCG 200DOSIS HFA,131 UN,12,97,4,00,1.699,07 |
|651628.7|BUDESONIDA A-U 0,25MG/ML |24.000000000000 |3.940000000000 |4.000000000000 |94.560000000000 |651628.7,BUDESONIDA A-U 0,25MG/ML,24 UN,3,94,4,00,94,56 |
| |SUSP.INHALACION | | | | |,SUSP.INHALACION,,,, |
|651626.3|BUDESONIDA A-U 0,5MG/ML SUSP. |67.000000000000 |7.880000000000 |4.000000000000 |527.960000000000 |651626.3,BUDESONIDA A-U 0,5MG/ML SUSP.,67 UN,7,88,4,00,527,96 |
| |INHALACION | | | | |,INHALACION,,,, |
| |UDESONIDA A-U 0,5MG/ML SUSP. | | | | |,UDESONIDA A-U 0,5MG/ML SUSP.,,,, |
| |INHALACION | | | | |,INHALACION,,,, |
|725241.2|BUDESONIDA 100MCG 200DOSIS HFA |27.000000000000 |7.880000000000 |4.000000000000 |212.760000000000 |725241.2,BUDESONIDA 100MCG 200DOSIS HFA,27 UN,7,88,4,00,212,76 |
|672312.8|ATROALDO 20 |231.000000000000|2.920000000000 |4.000000000000 |674.520000000000 |672312.8,ATROALDO 20,231 UN,2,92,4,00,674,52 |
| |MCG/PULS.SOL.INH.ENV.PRESION | | | | |,MCG/PULS.SOL.INH.ENV.PRESION,,,, |
|663046.4|BROMURO IPRATROPIO AU 500MCG |11.000000000000 |4.850000000000 |4.000000000000 |53.350000000000 |663046.4,BROMURO IPRATROPIO AU 500MCG,11 UN,4,85,4,00,53,35 |
| |SOL INH | | | | |,SOL INH,,,, |
|677362.8|SALBUAIR 2,5MG SOL INH NEBULIZ |6.000000000000 |11.770000000000|4.000000000000 |70.620000000000 |677362.8,SALBUAIR 2,5MG SOL INH NEBULIZ,6 UN,11,77,4,00,70,62 |
| |60 AMPOLL | | | | |,60 AMPOLL,,,, |
|677363.5|SALBUAIR 5MG SOL INH POR NEBULIZ|1.000000000000 |16.850000000000|4.000000000000 |16.850000000000 |677363.5,SALBUAIR 5MG SOL INH POR NEBULIZ,1 UN,16,85,4,00,16,85 |
| |60AMPOL | | | | |,60AMPOL,,,, |
|672718.8|BUDESONIDA 200MCG 120 DOSIS |65.000000000000 |8.540000000000 |4.000000000000 |555.100000000000 |672718.8,BUDESONIDA 200MCG 120 DOSIS,65 UN,8,54,4,00,555,10 |
| |HFA | | | | |,HFA,,,, |
|677602.5|COMBIPRASAL 0,5/2,5MG SOL INH |135.000000000000|9.880000000000 |4.000000000000 |1,333.800000000000 |677602.5,COMBIPRASAL 0,5/2,5MG SOL INH,135 UN,9,88,4,00,1.333,80 |
| |NEBUL 20AM | | | | |,NEBUL 20AM,,,, |
|700623.7|SILVEDERMA CREMA 10 MG/G 100G |180.000000000000|5.970000000000 |4.000000000000 |1,074.600000000000 |700623.7,SILVEDERMA CREMA 10 MG/G 100G,180 UN,5,97,4,00,1.074,60 |
| |SILVEDERMA CREMA 10 MG/G 100G | | | | |,SILVEDERMA CREMA 10 MG/G 100G,,,, |
|709756.3|NASOALDO 50MCG PULS.SUSP.PARA |22.000000000000 |5.760000000000 |4.000000000000 |126.720000000000 |709756.3,NASOALDO 50MCG PULS.SUSP.PARA,22 UN,5,76,4,00,126,72 |
| |PULV NASAL | | | | |,PULV NASAL,,,, |
|656720.3|DEPRELIO X 30 CAPSULAS |70.000000000000 |1.600000000000 |4.000000000000 |112.000000000000 |656720.3,DEPRELIO X 30 CAPSULAS,70 UN,1,60,4,00,112,00 |
|750794.9|ENTERO SILICONA X 250 CC |18.000000000000 |6.340000000000 |4.000000000000 |114.120000000000 |750794.9,ENTERO SILICONA X 250 CC,18 UN,6,34,4,00,114,12 |
|758466.7|FLOGOTER 40 CAPSULAS |1.000000000000 |1.330000000000 |4.000000000000 |1.330000000000 |758466.7,FLOGOTER 40 CAPSULAS,1 UN,1,33,4,00,1,33 |
| |FLOGOTER 40 CAPSULAS | | | | |,FLOGOTER 40 CAPSULAS,,,, |
|758458.2|FLOGOTER X 12 SUPOSITORIOS |2.000000000000 |1.250000000000 |4.000000000000 |2.500000000000 |758458.2,FLOGOTER X 12 SUPOSITORIOS,2 UN,1,25,4,00,2,50 |
|673090.4|HISTAVERIN JARABE 250 CC |8.000000000000 |3.170000000000 |4.000000000000 |25.360000000000 |673090.4,HISTAVERIN JARABE 250 CC,8 UN,3,17,4,00,25,36 |
|872820.6|TEDIPRIMA X 16 CAPSULAS |1.000000000000 |1.150000000000 |4.000000000000 |1.150000000000 |872820.6,TEDIPRIMA X 16 CAPSULAS,1 UN,1,15,4,00,1,15 |
|872838.1|TEDIPRIMA X 100 ML |2.000000000000 |1.070000000000 |4.000000000000 |2.140000000000 |872838.1,TEDIPRIMA X 100 ML,2 UN,1,07,4,00,2,14 |
| |TEDIPRIMA X 100 ML SUS.ORAL | | | | |,TEDIPRIMA X 100 ML SUS.ORAL,,,, |
|700524.7|TIRODRIL 5mg. 40 COMPRIMIDOS |212.000000000000|4.860000000000 |4.000000000000 |1,030.320000000000 |700524.7,TIRODRIL 5mg. 40 COMPRIMIDOS,212 UN,4,86,4,00,1.030,32 |
|958371.2|URSOBILANE 150MG X 60 CAPSULAS |24.000000000000 |4.820000000000 |4.000000000000 |115.680000000000 |958371.2,URSOBILANE 150MG X 60 CAPSULAS,24 UN,4,82,4,00,115,68 |
|755587.2|URSOBILANE 300MG X 60 CAPSULAS |154.000000000000|9.640000000000 |4.000000000000 |1,484.560000000000 |755587.2,URSOBILANE 300MG X 60 CAPSULAS,154 UN,9,64,4,00,1.484,56 |
|688076.0|URSOBILANE 500 60CAPS |83.000000000000 |16.070000000000|4.000000000000 |1,333.810000000000 |688076.0,URSOBILANE 500 60CAPS,83 UN,16,07,4,00,1.333,81 |
|697589.3|ERITROMICINA ESTEDI 250 MCG 40 |1.000000000000 |2.460000000000 |4.000000000000 |2.460000000000 |697589.3,ERITROMICINA ESTEDI 250 MCG 40,1 UN,2,46,4,00,2,46 |
| |CÁPS | | | | |,CÁPS,,,, |
|728122.1|TIRODRIL 10 MG 40 COMPRIMIDOS |17.000000000000 |8.930000000000 |4.000000000000 |151.810000000000 |728122.1,TIRODRIL 10 MG 40 COMPRIMIDOS,17 UN,8,93,4,00,151,81 |
| | | | | | |,,----------------------------------------------------------------------------,,,|
| | | | | |17,075.030000000000|,,Total Bruto,,,17.075,03 |
| | | | | | |,,----------------------------------------------------------------------------,,,|
| | | | | |17,075.030000000000|,,Neto,,,17.075,03 |
+--------+--------------------------------+----------------+---------------+---------------+-------------------+---------------------------------------------------------------------------------+
ResultSet Nª 2
+----------------------+--------------------------------+----------------------------------------------------------------------------+---------------+---------------+-------------------+--------+
|<null> |<null> |<null> |<null> |<null> |<null> |<null> |
|decimal(0, 12) |A |B |C |D |E |__meta__|
| |object |object |decimal(0, 12) |decimal(0, 12) |decimal(0, 12) |char(0) |
+----------------------+--------------------------------+----------------------------------------------------------------------------+---------------+---------------+-------------------+--------+
|6,730,881.000000000000|ALDOSOMNIL 1 MG |1 UN |1.290000000000 |4.000000000000 |1.290000000000 |673088.1|
|7,122,739.000000000000|ALDOCUMAR 10 MG. |93 UN |5.420000000000 |4.000000000000 |504.060000000000 |712273.9|
|6,554,494.000000000000|PAIDOTERIN DESCONGESTIVO 100 ML |29 UN |5.090000000000 |4.000000000000 |147.610000000000 |655449.4|
|6,730,898.000000000000|ALDOSOMNIL 2 MG |4 UN |1.480000000000 |4.000000000000 |5.920000000000 |673089.8|
|7,006,244.000000000000|SILVEDERMA CREMA 50 GRAMOS |500 UN |4.120000000000 |4.000000000000 |2,060.000000000000 |700624.4|
|7,682,837.000000000000|SILVEDERMA 10G/ML SUSP. PULV. |24 UN |5.100000000000 |4.000000000000 |122.400000000000 |768283.7|
| |CUTÁNEA | | | | | |
|7,943,709.000000000000|BECLORINO 50 MCG SUSP PARA |3 UN |2.010000000000 |4.000000000000 |6.030000000000 |794370.9|
| |PULVER NASAL | | | | | |
|6,532,966.000000000000|PROCTOSTEROID AEROSOL ESPUMA |1 UN |7.000000000000 |4.000000000000 |7.000000000000 |653296.6|
|7,259,022.000000000000|BUDESONIDA A-U 64 MICROGRAMOS |85 UN |3.330000000000 |4.000000000000 |283.050000000000 |725902.2|
| |200 D EFG | | | | | |
|7,252,894.000000000000|PAIDOCORT 3 MG/ML SOLUCIÓN |8 UN |13.890000000000|4.000000000000 |111.120000000000 |725289.4|
| |ORAL | | | | | |
|7,971,832.000000000000|SALBUTAMOL ALDO-UNION |900 UN |1.600000000000 |4.000000000000 |1,440.000000000000 |797183.2|
|9,367,817.000000000000|TEROMOL RETARD COMPRIMIDOS |7 UN |2.270000000000 |4.000000000000 |15.890000000000 |936781.7|
|8,703,456.000000000000|ALDOCUMAR 1MG |43 UN |1.230000000000 |4.000000000000 |52.890000000000 |870345.6|
|8,703,524.000000000000|ALDOCUMAR 3 MG |3 UN |2.020000000000 |4.000000000000 |6.060000000000 |870352.4|
|8,704,286.000000000000|ALDOCUMAR 5 MG |18 UN |2.790000000000 |4.000000000000 |50.220000000000 |870428.6|
|1,776,907.000000000000|NEBUALDO (C/E) |4 UN |32.650000000000|21.000000000000|130.600000000000 |177690.7|
|6,534,045.000000000000|IBUPROFENO A-U 20 MG/ML |2 UN |1.600000000000 |4.000000000000 |3.200000000000 |653404.5|
| |SUSP.ORAL EFG | | | | | |
|6,506,547.000000000000|FORMOTEROL ALDO-UNION 12 MCG |27 UN |14.440000000000|4.000000000000 |389.880000000000 |650654.7|
|6,688,304.000000000000|BUDESONIDA NASAL A-U 100 MCG |144 UN |5.200000000000 |4.000000000000 |748.800000000000 |668830.4|
| |200 DOSIS | | | | | |
|6,538,302.000000000000|BROMURO IPRAT.SOL.A-U 250MCG |2 UN |3.650000000000 |4.000000000000 |7.300000000000 |653830.2|
|6,689,059.000000000000|BUDESONIDA 50MCG 200 DOSIS HFA |34 UN |4.840000000000 |4.000000000000 |164.560000000000 |668905.9|
|7,990,154.000000000000|BUDESONIDA 200MCG 200DOSIS HFA |131 UN |12.970000000000|4.000000000000 |1,699.070000000000 |799015.4|
|6,516,287.000000000000|BUDESONIDA A-U 0,25MG/ML |24 UN |3.940000000000 |4.000000000000 |94.560000000000 |651628.7|
| |SUSP.INHALACION | | | | | |
|6,516,263.000000000000|BUDESONIDA A-U 0,5MG/ML SUSP. |67 UN |7.880000000000 |4.000000000000 |527.960000000000 |651626.3|
| |INHALACION | | | | | |
| |UDESONIDA A-U 0,5MG/ML SUSP. | | | | | |
| |INHALACION | | | | | |
|7,252,412.000000000000|BUDESONIDA 100MCG 200DOSIS HFA |27 UN |7.880000000000 |4.000000000000 |212.760000000000 |725241.2|
|6,723,128.000000000000|ATROALDO 20 |231 UN |2.920000000000 |4.000000000000 |674.520000000000 |672312.8|
| |MCG/PULS.SOL.INH.ENV.PRESION | | | | | |
|6,630,464.000000000000|BROMURO IPRATROPIO AU 500MCG |11 UN |4.850000000000 |4.000000000000 |53.350000000000 |663046.4|
| |SOL INH | | | | | |
|6,773,628.000000000000|SALBUAIR 2,5MG SOL INH NEBULIZ |6 UN |11.770000000000|4.000000000000 |70.620000000000 |677362.8|
| |60 AMPOLL | | | | | |
|6,773,635.000000000000|SALBUAIR 5MG SOL INH POR NEBULIZ|1 UN |16.850000000000|4.000000000000 |16.850000000000 |677363.5|
| |60AMPOL | | | | | |
|6,727,188.000000000000|BUDESONIDA 200MCG 120 DOSIS |65 UN |8.540000000000 |4.000000000000 |555.100000000000 |672718.8|
| |HFA | | | | | |
|6,776,025.000000000000|COMBIPRASAL 0,5/2,5MG SOL INH |135 UN |9.880000000000 |4.000000000000 |1,333.800000000000 |677602.5|
| |NEBUL 20AM | | | | | |
|7,006,237.000000000000|SILVEDERMA CREMA 10 MG/G 100G |180 UN |5.970000000000 |4.000000000000 |1,074.600000000000 |700623.7|
| |SILVEDERMA CREMA 10 MG/G 100G | | | | | |
|7,097,563.000000000000|NASOALDO 50MCG PULS.SUSP.PARA |22 UN |5.760000000000 |4.000000000000 |126.720000000000 |709756.3|
| |PULV NASAL | | | | | |
|6,567,203.000000000000|DEPRELIO X 30 CAPSULAS |70 UN |1.600000000000 |4.000000000000 |112.000000000000 |656720.3|
|7,507,949.000000000000|ENTERO SILICONA X 250 CC |18 UN |6.340000000000 |4.000000000000 |114.120000000000 |750794.9|
|7,584,667.000000000000|FLOGOTER 40 CAPSULAS |1 UN |1.330000000000 |4.000000000000 |1.330000000000 |758466.7|
| |FLOGOTER 40 CAPSULAS | | | | | |
|7,584,582.000000000000|FLOGOTER X 12 SUPOSITORIOS |2 UN |1.250000000000 |4.000000000000 |2.500000000000 |758458.2|
|6,730,904.000000000000|HISTAVERIN JARABE 250 CC |8 UN |3.170000000000 |4.000000000000 |25.360000000000 |673090.4|
|8,728,206.000000000000|TEDIPRIMA X 16 CAPSULAS |1 UN |1.150000000000 |4.000000000000 |1.150000000000 |872820.6|
|8,728,381.000000000000|TEDIPRIMA X 100 ML |2 UN |1.070000000000 |4.000000000000 |2.140000000000 |872838.1|
| |TEDIPRIMA X 100 ML SUS.ORAL | | | | | |
|7,005,247.000000000000|TIRODRIL 5mg. 40 COMPRIMIDOS |212 UN |4.860000000000 |4.000000000000 |1,030.320000000000 |700524.7|
|9,583,712.000000000000|URSOBILANE 150MG X 60 CAPSULAS |24 UN |4.820000000000 |4.000000000000 |115.680000000000 |958371.2|
|7,555,872.000000000000|URSOBILANE 300MG X 60 CAPSULAS |154 UN |9.640000000000 |4.000000000000 |1,484.560000000000 |755587.2|
|6,880,760.000000000000|URSOBILANE 500 60CAPS |83 UN |16.070000000000|4.000000000000 |1,333.810000000000 |688076.0|
|6,975,893.000000000000|ERITROMICINA ESTEDI 250 MCG 40 |1 UN |2.460000000000 |4.000000000000 |2.460000000000 |697589.3|
| |CÁPS | | | | | |
|7,281,221.000000000000|TIRODRIL 10 MG 40 COMPRIMIDOS |17 UN |8.930000000000 |4.000000000000 |151.810000000000 |728122.1|
| | |----------------------------------------------------------------------------| | | | |
| | |Total Bruto | | |17,075.030000000000| |
| | |----------------------------------------------------------------------------| | | | |
| | |Neto | | |17,075.030000000000| |
+----------------------+--------------------------------+----------------------------------------------------------------------------+---------------+---------------+-------------------+--------+
4 Example 3
The following example extracts a table from the document
var textractor = new Ax.pdf.TableExtractor(new Ax.net.URL("https://drive.google.com/uc?export=download&id=1pT4IAAP7fGA0NLAywPTp8YASFtPtrHir")); // Reguires tabular extractor set to false. // Uses automatic detected BasicExtractor cause its not tabular so it will not use SpreadSheetExtractor textractor.setTabular(false).extract(); var pdftables = textractor.getDocumentTables(); if (false) { console.log("=== TABLES OF DOCUMENT ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var pdftables = textractor.getTablesMatching("CANTIDAD.*"); if (false) { console.log("=== TABLES MATCHING ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } /** * Create an automatic resultset */ var rs1 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet(); console.log(rs1);
+---------------------------------------------------------------+---------------+----------------------------------------+-------------------+---------------+------------------+---------------------------------------------------------------+
|<null> |<null> |<null> |<null> |<null> |<null> |<null> |
|object |A |B |C |D |E |__meta__ |
| |decimal(0, 12) |object |object |decimal(0, 12) |decimal(0, 12) |char(0) |
+---------------------------------------------------------------+---------------+----------------------------------------+-------------------+---------------+------------------+---------------------------------------------------------------+
|División FARMACEUTICA | | | | | |División FARMACEUTICA |
|No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664| | | | | |No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664|
|651659.1 |1.000000000000 |ALOXIDIL 50 MG/ML. (60 ML.) |4,00 |6.400000000000 |6.400000000000 |651659.1 |
|328249.9 |1.000000000000 |AFTEX GEL 15 ML. |21,00 |7.500000000000 |7.500000000000 |328249.9 |
|809277.2 |5.000000000000 |PRANZO, SOLUCION 200 ML. |4,00 |5.170000000000 |25.850000000000 |809277.2 |
|150951.2 |2.000000000000 |CICLODIET PLUS 60 CAPSULAS |10,00 |10.870000000000|21.740000000000 |150951.2 |
|660425.0 |12.000000000000|CAPSICIN CREMA 50 GR. |4,00 |13.780000000000|165.360000000000 |660425.0 |
|154231.1 |1.000000000000 |AFTEX JUNIOR GEL ORAL 15 ML. |21,00 |7.500000000000 |7.500000000000 |154231.1 |
|177820.8 |2.000000000000 |VITACRECIL COMPLEX 90 CAPSULAS |10,00 |16.530000000000|33.060000000000 |177820.8 |
|150952.9 |5.000000000000 |AFTEX COLUTORIO 150 ML. |21,00 |6.900000000000 |34.500000000000 |150952.9 |
|200610.2 |3.000000000000 |AFTEX SPRAY 20 ML.SOLUCION |21,00 |7.450000000000 |22.350000000000 |200610.2 |
|155921.0 |2.000000000000 |UROMIL 30 CAPSULAS |10,00 |8.380000000000 |16.760000000000 |155921.0 |
|154232.8 |1.000000000000 |AFTEX BABY GEL ORAL 15 ML. |21,00 |7.500000000000 |7.500000000000 |154232.8 |
|238493.4 |7.000000000000 |PAN-REUMOL 200 ML.,SOLUC. |21,00 |5.410000000000 |37.870000000000 |238493.4 |
|154819.1 |4.000000000000 |AFTEX SPRAY 30 ML. |21,00 |9.020000000000 |36.080000000000 |154819.1 |
|898254.7 |13.000000000000|CAPSICIN CREMA 30 GRS. |4,00 |8.270000000000 |107.510000000000 |898254.7 |
|672823.9 |1.000000000000 |LODERM SOLUCION 70 ML. (C.N.672823.9) |4,00 |2.400000000000 |2.400000000000 |672823.9 |
|161225.0 |1.000000000000 |GINECOMPLEX PLUS 60 CAPSULAS |10,00 |9.640000000000 |9.640000000000 |161225.0 |
|162361.4 |1.000000000000 |BUCALSONE PLUS 50 ML. |21,00 |5.510000000000 |5.510000000000 |162361.4 |
|164302.5 |4.000000000000 |HYALURON MUCUS 30 G. |21,00 |5.400000000000 |21.600000000000 |164302.5 |
|160691.4 |2.000000000000 |AFTEX FILM GEL ORAL 10 ML. |21,00 |8.250000000000 |16.500000000000 |160691.4 |
|167348.0 |3.000000000000 |VITACRECIL COMPLEX FORTE 90 CAPSULAS |10,00 |17.550000000000|52.650000000000 |167348.0 |
|168447.9 |14.000000000000|MOLUSK SOLUCION 3 GR. |21,00 |10.310000000000|144.340000000000 |168447.9 |
|170490.0 |8.000000000000 |MELATOZINC 60 CAPSULAS |10,00 |5.020000000000 |40.160000000000 |170490.0 |
|170491.7 |1.000000000000 |MELATOZINC 120 CAPSULAS |10,00 |8.020000000000 |8.020000000000 |170491.7 |
|169521.5 |13.000000000000|SEPTOMIDA SPRAY 50 ML. |21,00 |6.140000000000 |79.820000000000 |169521.5 |
|183683.0 |6.000000000000 |FERROSOL GOTAS 30 ML+SOBRE 1,9 G |10,00 |9.010000000000 |54.060000000000 |183683.0 |
|197724.3 |1.000000000000 |FERROSOL FLASH BUCODISP. 14 MG 30 SOBRES|10,00 |14.900000000000|14.900000000000 |197724.3 |
| | | |Suma anterior .....| |979.580000000000 | |
|División FARMA-DERMOCOSMETICA | | | | | |División FARMA-DERMOCOSMETICA |
|No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664| | | | | |No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664|
|371773.1 |1.000000000000 |BELCILS CREMA VITALIZANTE PARA PESTAÑAS |21,00 |6.280000000000 |6.280000000000 |371773.1 |
|200714.7 |1.000000000000 |BELCILS LAPIZ NEGRO TEXTURA CREMOSA |21,00 |5.570000000000 |5.570000000000 |200714.7 |
|373829.3 |2.000000000000 |HIDRACEL MAT 50 ML. |21,00 |7.500000000000 |15.000000000000 |373829.3 |
|183292.4 |1.000000000000 |BELCILS MED GOTAS OFTAL.HIDRATANTES |10,00 |6.630000000000 |6.630000000000 |183292.4 |
|División FARMA-OTC | | | | | |División FARMA-OTC |
|No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664| | | | | |No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664|
|814194.4 |4.000000000000 |RADIO SALIL ANTIINFL 30 G |4,00 |3.660000000000 |14.640000000000 |814194.4 |
|196967.5 |3.000000000000 |AFTASPRAY 20 ML. SOLUCION |21,00 |7.450000000000 |22.350000000000 |196967.5 |
|969394.7 |54.000000000000|RADIO SALIL ANTIINFL 60 G |4,00 |5.280000000000 |285.120000000000 |969394.7 |
|997221.9 |28.000000000000|RADIO SALIL SPRAY 130 ML |4,00 |6.460000000000 |180.880000000000 |997221.9 |
|993600.6 |56.000000000000|DENTISPRAY, SOLUCION 5 ML. |4,00 |6.390000000000 |357.840000000000 |993600.6 |
|221374.6 |1.000000000000 |DENTIBLANC BLANQUEADOR INTENSIVO 100 ML.|21,00 |4.960000000000 |4.960000000000 |221374.6 |
|699983.7 |13.000000000000|ORALSONE ADULTOS 12 COMP. |4,00 |5.150000000000 |66.950000000000 |699983.7 |
|214676.1 |2.000000000000 |SALTRATOS CREMA BALSAMICA 100 ML. |21,00 |6.930000000000 |13.860000000000 |214676.1 |
|371880.6 |1.000000000000 |SALTRATOS SALES, 200 GRAMOS |21,00 |4.040000000000 |4.040000000000 |371880.6 |
|183217.7 |27.000000000000|ORALCHUP |10,00 |6.780000000000 |183.060000000000 |183217.7 |
|División DERMATOLOGICA | | | | | |División DERMATOLOGICA |
|No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664| | | | | |No Albarán: 1054559 No Pedido: 702309 Su Pedido: 2107-0012664|
|300061.1 |2.000000000000 |EMOLIENTA LABIOS 15 ML. |21,00 |3.460000000000 |6.920000000000 |300061.1 |
|177821.5 |1.000000000000 |EMOLIENTA NASAL 10 ML. |21,00 |3.270000000000 |3.270000000000 |177821.5 |
| | | |Suma anterior .....| |2,156.950000000000| |
|663756.2 |4.000000000000 |MINOXIDIL VIÑAS 50 MG/ML.(180 ML.) |4,00 |14.410000000000|57.640000000000 |663756.2 |
|651660.7 |4.000000000000 |MINOXIDIL VIÑAS 50 MG/ML. (60 ML.) |4,00 |8.000000000000 |32.000000000000 |651660.7 |
|202924.8 |1.000000000000 |FV VISUAL SOBRES (20 SOBRES) |10,00 |9.690000000000 |9.690000000000 |202924.8 |
|699918.9 |1.000000000000 |COPINAL 30 CAPS. |4,00 |3.270000000000 |3.270000000000 |699918.9 |
|151842.2 |7.000000000000 |BLEFARIX 50 TOALLITAS |21,00 |10.370000000000|72.590000000000 |151842.2 |
|244889.6 |1.000000000000 |ROSADERM GEL-CREMA, 30 ML. |21,00 |9.030000000000 |9.030000000000 |244889.6 |
|375741.6 |1.000000000000 |SEPTOMIDA SOBRES, 30 S. |21,00 |10.740000000000|10.740000000000 |375741.6 |
|160423.1 |1.000000000000 |VASELIX 20 % 15 ML. |21,00 |9.430000000000 |9.430000000000 |160423.1 |
|244871.1 |2.000000000000 |SEPTOMIDA SOBRES, 12 S. |21,00 |7.570000000000 |15.140000000000 |244871.1 |
|177030.1 |2.000000000000 |EMOLIENTA EMULSION FLUIDA 250 ML. |21,00 |9.190000000000 |18.380000000000 |177030.1 |
|262832.8 |4.000000000000 |BLEFARIX GEL TUBO 30 ML. |21,00 |5.860000000000 |23.440000000000 |262832.8 |
|189605.6 |1.000000000000 |BLEFARIX VITAL.CREMA 4 ML. |21,00 |4.940000000000 |4.940000000000 |189605.6 |
|219774.9 |2.000000000000 |EMOLIENTA UÑAS, 15 ML. |21,00 |3.630000000000 |7.260000000000 |219774.9 |
|229419.6 |5.000000000000 |BLEFARIX 20 TOALLITAS |21,00 |5.540000000000 |27.700000000000 |229419.6 |
|935478.7 |7.000000000000 |METRONIDAZOL VIÑAS 0,75 % |4,00 |3.440000000000 |24.080000000000 |935478.7 |
|729152.7 |3.000000000000 |PIGMENTASA CREMA 25 GRS. |4,00 |17.990000000000|53.970000000000 |729152.7 |
|163574.7 |1.000000000000 |ROSADERM FAST GEL CREMA 30 ML. |21,00 |10.150000000000|10.150000000000 |163574.7 |
|661905.6 |1.000000000000 |MAXPIL 1 MG. FINASTERIDA, 28 COMPRIMIDOS|4,00 |18.850000000000|18.850000000000 |661905.6 |
|162870.1 |7.000000000000 |VISUAL PLUS 30 CAPSULAS |10,00 |12.230000000000|85.610000000000 |162870.1 |
|653732.9 |2.000000000000 |ACNEMIN 20 MG 50 CAPSULAS |4,00 |21.900000000000|43.800000000000 |653732.9 |
|167543.9 |1.000000000000 |VASELIX 10% GEL CAPILAR 30 G. |21,00 |12.160000000000|12.160000000000 |167543.9 |
|173107.4 |6.000000000000 |EMOLIENTA PALPEBRAL 10 ML. |21,00 |6.000000000000 |36.000000000000 |173107.4 |
|703266.3 |6.000000000000 |MINOXIDIL VIÑAS 50 MG/ML.(240 ML.) |4,00 |15.050000000000|90.300000000000 |703266.3 |
|181484.5 |2.000000000000 |EMOLIENTA QP 300 ML. |21,00 |14.580000000000|29.160000000000 |181484.5 |
+---------------------------------------------------------------+---------------+----------------------------------------+-------------------+---------------+------------------+---------------------------------------------------------------+
5 Example 4
The following example extracts a table from the document
var textractor = new Ax.pdf.TableExtractor(new Ax.net.URL("https://drive.google.com/uc?export=download&id=1LiMnAq-E0DTLY3G7q4UM4Yq4bz_T1iXC")); // Reguires tabular extractor set to false. textractor.setTabular(true).extract(); var pdftables = textractor.getDocumentTables(); if (true) { console.log("=== TABLES OF DOCUMENT ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var pdftables = textractor.getTablesMatching("CONCEPTO.*"); if (true) { console.log("=== TABLES MATCHING ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var rs1 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet(); console.log(rs1);
+----------------+-----------+-----------+--------------+---------------+---------------+--------------+---------------+------+----------------+
|<null> |<null> |<null> |<null> |<null> |<null> |<null> |<null> |<null>|<null> |
|object |A |B |C |D |E |F |G |H |__meta__ |
| |object |object |decimal(0, 12)|decimal(0, 12) |decimal(0, 12) |decimal(0, 12)|decimal(0, 12) |date |char(0) |
+----------------+-----------+-----------+--------------+---------------+---------------+--------------+---------------+------+----------------+
|6260KPZ - 776669|Operaciones|operaciones|1.000000000000|15.000000000000|21.000000000000| | | |6260KPZ - 776669|
|TOTAL | | | |15.000000000000| |3.150000000000|18.150000000000| |TOTAL |
+----------------+-----------+-----------+--------------+---------------+---------------+--------------+---------------+------+----------------+
6 Example 5
The following example extracts a table from the document
var textractor = new Ax.pdf.TableExtractor(new Ax.net.URL("https://drive.google.com/uc?export=download&id=1rxM40Hix256tyqEQNqCBB1oQSe4eqguS")); // Reguires tabular extractor set! textractor.setTabular(true).extract(); var pdftables = textractor.getDocumentTables(); if (false) { console.log("=== TABLES OF DOCUMENT ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } var pdftables = textractor.getTablesMatching("Descripci.*"); if (false) { console.log("=== TABLES MATCHING ==="); console.log(pdftables); for (var pdftable of pdftables) { console.log("<TABLE>"); console.log(pdftable); console.log(" <CONTENT>") console.log(pdftable.toCSV()); console.log(" </CONTENT>"); console.log("</TABLE>"); } } /** * Create a Resultset for the matching columns with the column names and expected data types */ var rs1 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet( [ "COD.NAC.", "Código", "Descripción", "Cantidad", "Precio", "Dto", "Importe", "%IVA" ], [ "cod_nac", "codigo", "concepto", "cantidat", "precio", "dto", "importe", "iva", ], [ Ax.sql.Types.CHAR, Ax.sql.Types.CHAR, Ax.sql.Types.CHAR, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, Ax.sql.Types.DECIMAL, ] ); console.log(rs1); /** * Create an automatic resultset */ var rs2 = pdftables.setLanguage("es").setSkipBefore(1).setSkipAfter(0).toResultSet(); console.log(rs2);
ResultSet Nª 1
+-------+-------+------------------------------------------------------------------------------------------------------------------------+--------------+----------------+----------+----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
|<null> |<null> |<null> |<null> |<null> |<null> |<null> |<null> |<null> |
|cod_nac|codigo |concepto |cantidat |precio |dto |importe |iva |__meta__ |
|char(0)|char(0)|char(0) |decimal(0, 12)|decimal(0, 12) |decimal(0,|decimal(0, 12) |decimal(0, 12)|char(0) |
| | | | | |12) | | | |
+-------+-------+------------------------------------------------------------------------------------------------------------------------+--------------+----------------+----------+----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |0880890|Albarán No:ALB-ES30-21-007056 Fecha:27/08/ Su Pedido: APITHER AUTOVACUNA INICIO SPRAY 2 VIALES Referencia Vacuna:2047378|1.000000000000|263.880000000000| |263.880000000000|4.000000000000|,0880890,Albarán No:ALB-ES30-21-007056 Fecha:27/08/ Su Pedido:APITHER AUTOVACUNA INICIO SPRAY 2 VIALES Referencia Vacuna:2047378,021,1 UN,263,8800,,263,88,4,00 |
+-------+-------+------------------------------------------------------------------------------------------------------------------------+--------------+----------------+----------+----------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
ResultSet Nª 2
+------+--------------------+------------------------------------------------------------------------------------------------------------------------+---------------+--------------+----------------+------+----------------+--------------+--------+
|<null>|<null> |<null> |<null> |<null> |<null> |<null>|<null> |<null> |<null> |
|date |A |B |C |D |E |F |G |H |__meta__|
| |decimal(0, 12) |object |decimal(0, 12) |decimal(0, 12)|decimal(0, 12) |date |decimal(0, 12) |decimal(0, 12)|char(0) |
+------+--------------------+------------------------------------------------------------------------------------------------------------------------+---------------+--------------+----------------+------+----------------+--------------+--------+
| |880,890.000000000000|Albarán No:ALB-ES30-21-007056 Fecha:27/08/ Su Pedido: APITHER AUTOVACUNA INICIO SPRAY 2 VIALES Referencia Vacuna:2047378|21.000000000000|1.000000000000|263.880000000000| |263.880000000000|4.000000000000| |
+------+--------------------+------------------------------------------------------------------------------------------------------------------------+---------------+--------------+----------------+------+----------------+--------------+--------+