示例#1
0
 def __init__(self, rsrcmgr, codec='utf-8', pageno=1, laparams=None):
     PDFLayoutAnalyzer.__init__(self,
                                rsrcmgr,
                                pageno=pageno,
                                laparams=laparams)
     self.codec = codec
     return
示例#2
0
 def __init__(self, rsrcmgr, pageno=1, laparams=None):
     PDFLayoutAnalyzer.__init__(self,
                                rsrcmgr,
                                pageno=pageno,
                                laparams=laparams)
     self.result = None
     return
示例#3
0
 def __init__(self, rsrcmgr, outfp, ignore, lib, fontMap, icu, tags, laparams=None):
     PDFLayoutAnalyzer.__init__(self, rsrcmgr, laparams=laparams)
     #self.__codec = codec
     self.__outfp = outfp # plik do ktorego eksportujemy hOCR
     self.__lib = lib # 
     self.__num = -1 # numer strony (liczony od 0)
     self.__fontMap = fontMap # mapowanie postscriptowych nazw fontow na rodziny
     self.__icu = icu # lokalizacja ktora ma byc uzyta przez ICU do podzialu
         # na slowa; jezeli jest rowna None to znaczy, ze mamy nie dzielic na
         # slowa
     self.__specialTags = tags # czy uzywamy specjalnych tagow ocrx_bold i
         # ocrx_italic?
     #self.__fontDict = {}
     #self.__font = None
     self.__font = None # ostatnio wypisany font
     #self.__page = None
     self.__hasFont = False # czy jestesmy wewnatrz tagu <span> z definicja fontu
     #self.__isLine = False 
     self.__ignore = ignore # czy ignorujemy elementy "textgroup"
     self.__page = None # aktualnie przetwarzana strona (obiekt PDFPage)
     self.__pagebbox = None # bounding box aktualnie przetwarzanej strony
     self.__chars = [] # tu zapamietujemy znaki podczas przetwarzania elementow
         # "textline" - dzieki temu potem mamy cala zawartosc tekstowa "textline"
         # i mozemy ja wykorzystac do dzielenia na slowa
     self.__divs = [] # por. HOCRExporter
     self.__ind = 0
     self.__inWord = False
     self.__wordInd = 0
     self.__divbboxes = None
     self.__whites = None
     return
示例#4
0
 def __init__(self,
              rsrcmgr,
              laparams=None,
              stop_at=None,
              top=None,
              bottom=None):
     PDFLayoutAnalyzer.__init__(self, rsrcmgr, pageno=1, laparams=laparams)
     self.stop_at = stop_at
     self.reset(top, bottom)
示例#5
0
    def __init__(self, resource_mgr, laparams=None, imagewriter=None) -> None:
        PDFLayoutAnalyzer.__init__(self,
                                   resource_mgr,
                                   pageno=1,
                                   laparams=laparams)
        self.imagewriter = imagewriter

        self.curr_text = ""
        self.texts: List[TextInfo] = []
示例#6
0
    def __init__(self, rsrcmgr, pageno=1, laparams=None):
        PDFLayoutAnalyzer.__init__(self, rsrcmgr, pageno=pageno, laparams=laparams)

        self._parameters = ConverterParameters()

        # attributes result of the parsing
        self.meta = Meta()
        self._titles = []
        self._all_tables = []

        # intermediary results
        self._result_lines = []

        # attributes reset on each new page
        self._tables = []
        self._images = []

        # state of the device across pages
        self.previous_line = None
        self._is_citing = False
示例#7
0
 def __init__(self,
              rsrcmgr,
              ignore,
              codec='utf-8',
              pageno=1,
              laparams=None,
              outdir=None,
              lib=None,
              hocr=None,
              columnizer=None):
     PDFLayoutAnalyzer.__init__(self,
                                rsrcmgr,
                                pageno=pageno,
                                laparams=laparams)
     #self.__codec = codec
     self.__ignore = ignore  # patrz parametry pdfa2hocr.py
     #self.__outdir = outdir
     if hocr == None:  # nie eksportujemy do hOCR
         #self.__root.__isRoot = True # ustawiane w PDFMinerParserze.getResult()
         self.__node = PDFMinerNode(
             "pages")  # korzen drzewa struktury, jezeli
         # eksportujemy do hOCR niepotrzebny, bo eksportujemy strona po stronie
         self.__root = self.__node  # korzen generowanego drzewa struktury
     else:  # eksportujemy
         self.__node = None  # aktualnie przetwarzany wezel
     self.__hocr = hocr  # eksporter do hOCR
     self.__columnizer = columnizer  # obiekt przeprowadzajacy dodatkowa analize
     # uklady strony
     self.__fontDict = {}  # slownik fontow (zeby nie fontom o tej samej
     # nazwie i rozmiarze odpowiadal jeden obiekt klasy Font)
     self.__page = None  # aktualnie przetwarzana strona (obiekt PDFMinerNode)
     self.__num = -1  # numer strony liczony od 0 (PDFMinerNode.__pageid)
     self.__font = None  # ostatnio przetwarzany font
     self.__stack = [
     ]  # stos na ktorym sa przodkowie aktualnie przetwarzanego elementu
     self.__lib = lib  # zaslepka XMLLib w ktorej musimy zainicjalizowac bounding boxy stron
     # i ktora zawiera obiekt __ptree z ktorego pobierzemy fonty
     self.__pdfminerpage = None  # aktualnie przetwarzana strona (obiekt pdfminera)
     return
示例#8
0
    def paint_path(self, gstate, stroke, fill, evenodd, path):
        """
        Creates a LTNetwork out of the different drawing elements.
        """

        # ignore lines above header
        if path[0][0] in 'lm' and path[0][2] > HEADER_MIN_Y - 5:
            return

        path_string = ''.join(x[0] for x in path)

        # ignore curves
        if 'c' in path_string:
            return

        # a rectangle is never part of a table, parse it as other.
        if path_string == 'mlllh':
            return PDFLayoutAnalyzer.paint_path(self, gstate, stroke, fill,
                                                evenodd, path)
        # a line is parsed both as a line and as part of a network.
        elif path_string == 'ml':
            PDFLayoutAnalyzer.paint_path(self, gstate, stroke, fill,
                                         evenodd, path)
        # this situation may occur on the first page of the PDF; we thus
        # set it here explicitly.
        elif path_string == 'mlml':
            PDFLayoutAnalyzer.paint_path(self, gstate, stroke, fill,
                                         evenodd, path[:2])
            PDFLayoutAnalyzer.paint_path(self, gstate, stroke, fill,
                                         evenodd, path[2:])

        # ignore (non-rectangle) filled stuff
        if fill:
            return

        self._paint_network(path)
示例#9
0
 def begin_page(self, page, ctm):
     self.__pdfminerpage = page
     PDFLayoutAnalyzer.begin_page(self, page, ctm)
示例#10
0
 def __init__(self, rsrcmgr, pageno=1, laparams=None):
     PDFLayoutAnalyzer.__init__(self, rsrcmgr, pageno=pageno, laparams=laparams)
     self.__bbox = None # bounding box przetwarzanego napisu
     self.__itembbox = None # bounding box aktualnie przetwarzanego znaku
     self.__charbboxes = [] # bounding boxy znakow przetwarzanego napisu
     return
示例#11
0
 def _get_analyzer(self):
     analyzer = PDFLayoutAnalyzer(None)
     analyzer.set_ctm([1, 0, 0, 1, 0, 0])
     return analyzer
示例#12
0
 def begin_page(self, page, ctm):
     PDFLayoutAnalyzer.begin_page(self, page, ctm)
     self.cur_item = MyLTPage(self.cur_item.pageid, self.cur_item.bbox)
示例#13
0
 def __init__(self, rsrcmgr, pageno=1, laparams=None,
              showpageno=False):
     PDFLayoutAnalyzer.__init__(self, rsrcmgr, pageno=pageno, laparams=laparams)
     self.showpageno = showpageno
     self.text=""