[{"data":1,"prerenderedAt":453},["ShallowReactive",2],{"project-13729301":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":47,"what":48,"said":71,"maker_in_thread":174,"shape":182,"grid":187,"attempts":416,"same_week":417,"maker_shows":39,"maker_hidden":445,"reader_version":446,"card":447},"13729301","PDFLayoutTextStripper","Converts PDF to text while keeping the layout","title","Show HN: PDFLayoutTextStripper – Converts PDF to text while keeping the layout","https:\u002F\u002Fgithub.com\u002FJonathanLink\u002FPDFLayoutTextStripper","github.com","jlink",1487983370,2017,283,92,81,2242,4,"legend","data","pdf text extraction","library",[24,25,26,27,28],"pdf to text","pdf layout","pdfbox","text extraction","java library","curious",0.029,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,16,0,6,30,{"execution":38,"idea":41,"performance":43,"privacy":44},{"positive":39,"critical":40},1,2,{"positive":42,"critical":42},3,{"positive":34,"critical":34},{"positive":34,"critical":34},[39,34,34,34,42,34,34,34,34,34,34,34,34,34,46,46,46,42,42,34,42,42,42,42,42,42,39,34,34,34,34,34,39,42,46,46,18,46,42,39],5,null,{"problem":49,"audience":47,"pricing":47,"motivation":56,"time_to_build":47,"stack":60,"openness":69,"stage":70,"team_size":70},{"value":50,"source":51,"evidence":52},"Extracting text from PDFs while preserving the page layout","maker",[53],{"id":54,"by":11,"text":55},"13731364","During the development I compared my results with the ones of pdftotext utility and i obtained more or less similar results. The objective of my code was to have an equivalent…",{"value":57,"source":51,"evidence":58},"Build an equivalent tool easily embeddable in Java\u002FAndroid projects and learn Apache PDFBox",[59],{"id":54,"by":11,"text":55},[61,65],{"value":62,"source":51,"evidence":63},"Java",[64],{"id":54,"by":11,"text":55},{"value":66,"source":51,"evidence":67},"Apache PDFBox",[68],{"id":54,"by":11,"text":55},"open_source","unknown",{"praise":72,"objections":85,"requests":107,"questions":129,"alternatives":144},[73],{"value":74,"source":75,"evidence":76},"PDFBox is a solid base for PDF parsing","commenter",[77,81],{"id":78,"by":79,"text":80},"13730217","robinhowlett","Nice. I recently got very familiar with PDFBox and parsing complex layouts - it is a great library.",{"id":82,"by":83,"text":84},"13730282","agumonkey","Fun, I did the same thing as a clojure repl exploration to pipe PDF text to a bare Swing GUI (I know, a little absurd in a way). The deja vu made squint for a minute. ps: pdfbox…",[86,101],{"value":87,"source":75,"evidence":88},"PDF text extraction is inherently hard and copy-paste from PDF often yields garbage",[89,93,97],{"id":90,"by":91,"text":92},"13731292","ptaipale","PDF is not very fine. Copy-paste from PDF very often results in complete rubbish, even when it is not deliberately prevented (which the format allows, and then you have to do OCR).",{"id":94,"by":95,"text":96},"13733145","maxxxxx","Have you ever actually tried to parse PDF with software? It's a sheer nightmare. PDF often gets produced from text processors that have very rich format information. PDF strips…",{"id":98,"by":99,"text":100},"13748783","vram22","I had used the xpdf [1] package, a C library and a set of CLI tools (mentioned by others in this thread too, and which the pdftotext command-line utility and xppdf\u002Fpdftotext…",{"value":102,"source":51,"evidence":103},"Only handles tables, unlike Tabula, per maker's own comparison",[104],{"id":105,"by":11,"text":106},"13731502","I didn't know about Tabula and i've given a try at the instant. Apparently it only extracts tables and ignores everything around. This might be good in some cases but it is a…",[108,115,122],{"value":109,"source":75,"evidence":110},"Support for empty table cells",[111],{"id":112,"by":113,"text":114},"13730763","curiousgal","Although I haven't tested this yet, these utilities tend to fail when fed a table with empty cells.",{"value":116,"source":75,"evidence":117},"PDF to HTML conversion with correct line breaks",[118],{"id":119,"by":120,"text":121},"13730535","Animats","Is there a PDF to HTML converter which can consistently get line breaks right?",{"value":123,"source":75,"evidence":124},"Combine with OCR engines for layout analysis",[125],{"id":126,"by":127,"text":128},"13730157","WalterGR","Fairly frequently, OCR engines are posted here. But almost without exception, they lack layout analysis, which renders them largely useless. Is this something that could be…",[130,137],{"value":131,"source":75,"evidence":132},"Does it work better than pdftotext --layout?",[133],{"id":134,"by":135,"text":136},"13729654","tyingq","Curious if this works better than the pdftotext utility that comes in the Debian poppler-utils package. That has a --layout option that works really well sometimes and really…",{"value":138,"source":75,"evidence":139},"Does it keep both layout and SHA-1 hash?",[140],{"id":141,"by":142,"text":143},"13729991","kzrdude","But does it keep both the layout and Sha-1 hash? Not sure it's HN worthy otherwise.",[145,152,160,167],{"value":146,"source":75,"evidence":147},"Tabula",[148],{"id":149,"by":150,"text":151},"13730030","nemild","For those interested in converting PDF tables into CSV, there's also Tabula ( http:\u002F\u002Ftabula.technology\u002F ) (Used by many journalists to analyze the data in PDFs)",{"value":153,"source":75,"evidence":154},"pdftotext (xpdf \u002F poppler)",[155,156],{"id":134,"by":135,"text":136},{"id":157,"by":158,"text":159},"13730599","dmoo","Also available for windows and mac at http:\u002F\u002Fwww.foolabs.com\u002Fxpdf\u002Fdownload.html",{"value":161,"source":75,"evidence":162},"docparser.com",[163],{"id":164,"by":165,"text":166},"13730505","2_listerine_pls","check docparser.com",{"value":168,"source":75,"evidence":169},"pdf.co",[170],{"id":171,"by":172,"text":173},"13730706","eumm","Tabula is the nice free tool but requires technical background to run it. There is a free https:\u002F\u002Fpdf.co with both online and offline tools (Windows) for PDF to CSV. (disclaimer:…",{"comments":175,"answered":39,"key":176},10,[177,178,179],{"id":105,"text":106},{"id":54,"text":55},{"id":180,"text":181},"13731818","yes, definitely not easy but fortunately pdfbox offers a solid base to start with.",{"commenters":183,"max_depth":184,"maker_replies":175,"first_comment_mins":185,"lifespan_hours":186},56,7,11,165,[188,190,194,197,200,204,207,209,211,214,216,218,220,222,224,227,229,232,235,238,241,244,246,248,250,253,256,258,260,262,265,267,271,272,276,279,282,285,288,291,293,295,299,300,303,305,307,309,310,313,314,316,318,320,323,326,329,333,336,339,341,345,347,350,352,355,358,361,364,367,369,372,374,377,379,380,382,384,387,390,392,395,397,398,399,400,402,405,408,411,413,415],[149,34,39,189,150,34],"project\u002Fcritical\u002Fnone",[191,34,34,192,193,34],"13730647","other\u002Fneutral\u002Fidea","scrollaway",[195,34,34,192,196,34],"13731069","vog",[198,34,34,192,199,34],"13731117","halomru",[201,34,34,202,203,34],"13731144","other\u002Fneutral\u002Fnone","TeMPOraL",[205,34,34,202,206,34],"13735596","saghm",[90,34,34,208,91,34],"other\u002Fcritical\u002Fidea",[210,34,34,202,199,34],"13731376",[212,34,34,202,213,34],"13731429","fiatjaf",[94,34,42,215,95,34],"project\u002Fneutral\u002Fexecution",[217,34,34,192,213,34],"13731422",[219,34,34,192,213,34],"13731446",[221,34,34,192,193,34],"13731484",[223,34,34,208,95,34],"13733039",[225,34,34,202,226,34],"13737680","brianwawok",[228,34,34,202,95,34],"13738627",[230,34,34,202,231,34],"13744373","grkvlt",[233,34,34,202,234,34],"13731524","acbart",[236,34,34,192,237,34],"13731991","simooooo",[239,34,34,202,240,34],"13732008","wslh",[242,34,34,192,243,34],"13734057","krick",[245,34,34,192,193,34],"13735327",[247,34,34,208,243,34],"13738114",[249,34,34,202,193,34],"13740883",[251,34,34,252,243,34],"13787167","commenter\u002Fcritical\u002Fnone",[254,34,34,192,255,34],"13736143","Mikhail_Edoshin",[257,34,34,202,243,34],"13738136",[259,34,34,202,255,34],"13741604",[171,34,34,261,172,34],"commenter\u002Fneutral\u002Fnone",[263,34,34,261,264,34],"13733024","jazzido",[266,34,34,261,172,34],"13738198",[268,34,34,269,270,34],"13731306","other\u002Fpositive\u002Fnone","krakaukiosk",[105,34,34,202,11,39],[273,39,46,274,275,34],"13729764","project\u002Fpositive\u002Fidea","rsync",[277,39,46,274,278,34],"13730002","bsharitt",[280,39,34,261,281,34],"13731439","JetSpiegel",[283,39,34,261,284,34],"13730648","zatkin",[286,39,34,261,287,34],"13730664","shakna",[289,39,46,274,290,34],"13733118","phillc73",[292,39,42,215,287,34],"13735990",[134,40,42,294,135,34],"project\u002Fneutral\u002Fperformance",[296,40,42,297,298,34],"13729748","project\u002Fneutral\u002Fnone","spcrngr",[157,40,34,202,158,34],[301,40,34,269,302,34],"13731241","krylon",[304,40,34,202,135,34],"13732381",[54,40,34,306,11,39],"project\u002Fpositive\u002Fexecution",[308,40,42,215,135,34],"13731648",[180,40,34,215,11,39],[311,40,42,297,312,34],"13732066","skrause",[98,40,42,297,99,34],[126,42,42,315,127,34],"project\u002Fneutral\u002Fidea",[317,42,34,202,165,34],"13730493",[319,42,34,261,172,34],"13730713",[321,42,42,297,322,34],"13730890","RandomBookmarks",[324,42,34,202,325,34],"13730992","PretzelFisch",[327,18,34,328,11,39],"13729343","maker\u002Fneutral\u002Fnone",[330,18,42,331,332,34],"13729551","project\u002Fneutral\u002Fprivacy","akouri",[334,18,42,331,335,34],"13729603","marak830",[337,18,42,331,338,34],"13729724","a3n",[340,18,42,331,335,34],"13730080",[342,18,39,343,344,34],"13729592","project\u002Fcritical\u002Fidea","rodw",[346,18,34,261,11,39],"13731378",[348,18,34,202,349,34],"13731829","flexie",[351,18,34,261,344,34],"13732281",[353,18,34,192,354,34],"13729868","logicallee",[356,18,34,202,357,34],"13729990","cozzyd",[359,18,34,261,360,34],"13730447","coulix",[362,18,34,261,363,34],"13730937","vgb2k11",[365,18,34,261,366,34],"13731687","jhlgkhkhil",[368,18,34,261,354,34],"13731787",[370,18,34,208,371,34],"13730568","yeldarb",[373,18,34,192,354,34],"13731121",[375,18,34,208,376,34],"13730715","fsiefken",[378,18,34,192,354,34],"13731107",[164,18,39,343,165,34],[381,18,34,202,11,39],"13731399",[383,18,34,202,270,34],"13732885",[385,18,42,331,386,34],"13730943","andreif",[388,46,46,389,335,34],"13729489","project\u002Fpositive\u002Fnone",[391,46,34,261,11,39],"13731143",[393,46,46,394,335,34],"13731166","maker\u002Fpositive\u002Fnone",[396,46,34,261,11,39],"13731528",[82,35,42,297,83,34],[78,184,46,389,79,34],[119,32,42,297,120,34],[401,32,34,297,11,39],"13731382",[403,32,46,394,404,34],"13783618","ganwar",[112,406,39,407,113,34],9,"project\u002Fcritical\u002Fexecution",[409,406,46,306,410,34],"13731049","gpvos",[412,406,39,407,113,34],"13731706",[414,406,34,215,11,39],"13731842",[141,175,39,343,142,34],[],[418,423,427,432,437,441],{"id":419,"name":420,"points":421,"category":422},"13763469","Gutenberg",305,"dev_tools",{"id":424,"name":425,"points":426,"category":422},"13762077","BootShellCredentialProvider",264,{"id":428,"name":429,"points":430,"category":431},"13762032","Lumix Engine",260,"games",{"id":433,"name":434,"points":435,"category":436},"13724118","Hasura",259,"infrastructure",{"id":438,"name":439,"points":440,"category":20},"13738051","PumpkinDB",190,{"id":442,"name":443,"points":444,"category":422},"13764060","fman",178,false,"v2",{"id":448,"name":5,"line":6,"ai":445,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":449,"top":18,"kw":450,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":451,"url":9,"mix":452,"praise":74,"objection":87,"sub":21},13729301,0.03,[24,25,26,27,28],"1000300000000055533033333310000013554531",[32,33,34,35],1794036552983]