2013-08-19 5 views
7

में पीडीएफ कन्वर्ट करने के लिए पर सिफारिश के लिए खोज रहे मैं कुछ एक आगामी नीलामी में सूचीबद्ध संपत्तियों पर कुछ विश्लेषण करना चाहते हैं। दुर्भाग्यवश, नीलामी चलाने वाला शहर सूचनात्मक प्रारूप में जानकारी प्रकाशित नहीं करता है बल्कि नीलामी के लिए जाने वाली संपत्तियों के 700+ page PDF प्रदान करता है।कैसे संरचित प्रारूप

मुझे आश्चर्य है कि समुदाय के पास कोई विचार है कि मैं पार्सिंग से कैसे संपर्क कर सकता हूं, पीडीएफ ने डीबी में सम्मिलन के लिए एक संरचित प्रारूप में या गुणों की स्प्रेडशीट बनाने के लिए कहा।

यहां प्रत्येक पृष्ठ का प्रतिनिधित्व करता है की एक छवि है: Property Guide

और यहाँ एक पृष्ठ है कि कुछ गुण को सूचीबद्ध करता है: Sample List of Properties

मैं अजगर और गहरे लाल रंग का साथ सहज तो मैं किसी भी मुद्दे नहीं है कर रहा हूँ एक समाधान को पटकथा, लेकिन क्योंकि "कॉलम" और उन कॉलम में डेटा एक साथ बंधे आवश्यक नहीं हैं, ऐसा लगता है कि यह एक संदिग्ध प्रस्ताव होगा।

किसी भी विचार की सराहना की जाएगी।

+0

मेरे सोचा पाठ कनवर्टर करने के लिए एक पीडीएफ उपयोग करने के लिए और फिर पाठ फ़ाइल (यह सोचते हैं कि कनवर्टर आप एक उम्मीद के मुताबिक उत्पादन प्रारूप देता है) को पार्स होगा। –

+0

हाँ, मैंने कोशिश की। मैंने कोशिश की एक रूबी परियोजना है (https://github.com/kitplummer/pdftohtmlr) और यह जंक थूक गया। – doremi

+0

पाठ के बारे में क्या? ऐसा लगता है कि यह एचटीएमएल करता है। –

उत्तर

1

Convert आदेश pdftotext का उपयोग कर Xpdf से संदेश भेजने।

pdftottext.exe -layout -f 23 -l 510 AuctionBook2013.pdf AuctionBook2013.txt 

इस रूपांतरण पाठ वास्तव में उसके मूल लेआउट (कारण -layout विकल्प) में छोड़ देता है:

मैं निम्नलिखित के साथ अपनी फ़ाइल बदल दिया। विकल्प -f और -l पृष्ठों को निकालने के लिए की सीमा के पहले और अंतिम पृष्ठ संख्या से संकेत मिलता है।

वहाँ से, पार्स आसान होना चाहिए - स्तंभ 8 में एक नंबर, एक रिकॉर्ड की पहली पंक्ति को इंगित करता है एक रिक्त पंक्ति रिकॉर्ड समाप्त होता है। एक रिकॉर्ड के भीतर तत्वों की सटीक स्थिति के लिए गाइड का पालन करें।

1

3 घंटे के लिए इस के साथ आसपास mucking के बाद, मैं डेटा से एक parseable XML दस्तावेज़ बनाने के लिए कर रहा था। दुर्भाग्यवश, मैं उन चरणों के पूरी तरह से पुन: प्रयोज्य सेट को एक साथ रखने में असफल रहा था जिसका उपयोग मैं भावी नीलामी प्रकाशनों के लिए कर सकता हूं।

एक के रूप में अलग रूप में, मैं फोन और लॉस एंजिल्स काउंटी पूछने के लिए अगर वे (एक्सेल, आदि) नीलामी के लिए संपत्तियों की एक वैकल्पिक प्रारूप प्रदान कर सकता है और जवाब नहीं था प्रयास किया था। यह आपके लिए सरकार है।

यहाँ मेरी दृष्टिकोण के एक उच्च-स्तरीय दृश्य है:

  • Poppler
  • उपयोग रेगुलर एक्सप्रेशन से foo का उपयोग कर डेटा से XML नोड्स को साफ और बनाने के लिए एक पाठ फ़ाइल में पीडीएफ कन्वर्ट
  • त्रुटियों को ढूंढने के लिए एक्सएमएल ब्यूटीफायर/सत्यापनकर्ता का उपयोग करें और क्लीनअप
  • Google मानचित्र लिंक नोड जोड़ने के लिए पायथन/रूबी का उपयोग करें, और एलए काउंटी निर्धारक मानचित्र (http://assessormap.co.la.ca.us/mapping/rolldata.asp?ain=APN-GOES_HERE) और
  • से लिंक करें रूबी

साथ सीएसवी को

  • Convert एक्सएमएल मैं क्योंकि यह तेजी से था और यह लाइन नंबर सहित सटीक त्रुटि की सूचना देना, दे दी है मेरी एक्सएमएल सजाने वाला/सत्यापनकर्ता के रूप में http://xmlbeautifier.com/ इस्तेमाल किया।

    उपयोग Homebrew मैक के लिए Poppler स्थापित करने के लिए:

    brew install poppler 
    

    Poppler स्थापित किया गया है के बाद, आप पीडीएफ कन्वर्ट करने के लिए pdftotext उपयोगिता का प्रयोग करना चाहिए:

    pdftotext -layout -f 24 -l 687 AuctionBook2013.pdf auction_book.txt 
    

    यहाँ एक्सएमएल के एक पूर्वावलोकन है (Click here for full XML):

    <?xml version="1.0" encoding="UTF-8"?> 
    <listings> 
        <item id="1"> 
         <nsb>536</nsb> 
         <minbid>3,422</minbid> 
         <apn>2006 003 001</apn> 
         <delinquent_year>03</delinquent_year> 
         <apn_old>2006 003 001</apn_old> 
         <description>LICENSED SURVEYOR'S MAP 
          AS PER BK 25 PG 28 OF L S LOT 1    
          BLK 1 ASSESSED TO J AND S 
          LIMITED LLC C/O DUNA CSARDAS - 
          JULIUS JANCSO LOCATION COUNTY OF 
          LOS ANGELES</description> 
         <address>VACANT LOT</address> 
        </item> 
    

    संपादित करें: रूबी जोड़ना मैंने एक्सएमएल को एक सीएसवी में परिवर्तित करने के लिए लिखा था।

    require 'rexml/document' 
    require 'CSV' 
    
    class Auction 
    
        def initialize 
    
        f = File.new('AuctionBook2013.xml', 'r') 
        doc = REXML::Document.new(f) 
    
        CSV.open("auction.csv", "w+b") do |csv| 
         csv << ['id', 'minbid', 'apn', 'delinquent_year', 'apn_old', 'description', 'address'] 
    
         doc.elements.each('/listings/item') do |item| 
         csv << [item.attributes['id'], 
           item.elements['minbid'].text, 
           item.elements['apn'].text, 
           item.elements['delinquent_year'].text, 
           item.elements['apn_old'].text, 
           item.elements['description'].text, 
           item.elements['address'].text] 
         end 
        end 
        end 
    end 
    
    a = Auction.new() 
    

    Link to Final CSV

  • संबंधित मुद्दे