mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Clean RTF combine borders
This commit is contained in:
parent
be93bd120a
commit
4aa12408f2
@ -16,7 +16,9 @@
|
|||||||
# #
|
# #
|
||||||
#########################################################################
|
#########################################################################
|
||||||
import os, tempfile
|
import os, tempfile
|
||||||
|
|
||||||
from calibre.ebooks.rtf2xml import copy
|
from calibre.ebooks.rtf2xml import copy
|
||||||
|
|
||||||
class CombineBorders:
|
class CombineBorders:
|
||||||
"""Combine borders in RTF tokens to make later processing easier"""
|
"""Combine borders in RTF tokens to make later processing easier"""
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
@ -32,28 +34,31 @@ class CombineBorders:
|
|||||||
self.__state = 'default'
|
self.__state = 'default'
|
||||||
self.__bord_pos = 'default'
|
self.__bord_pos = 'default'
|
||||||
self.__bord_att = []
|
self.__bord_att = []
|
||||||
|
|
||||||
def found_bd(self, line):
|
def found_bd(self, line):
|
||||||
#cw<bd<bor-t-r-vi
|
#cw<bd<bor-t-r-vi
|
||||||
self.__state = 'border'
|
self.__state = 'border'
|
||||||
self.__bord_pos = line[6:16]
|
self.__bord_pos = line[6:16]
|
||||||
|
|
||||||
def __default_func(self, line):
|
def __default_func(self, line):
|
||||||
#cw<bd<bor-t-r-vi
|
#cw<bd<bor-t-r-vi
|
||||||
if self.__first_five == 'cw<bd':
|
if self.__first_five == 'cw<bd':
|
||||||
self.found_bd(line)
|
self.found_bd(line)
|
||||||
return ''
|
return ''
|
||||||
return line
|
return line
|
||||||
|
|
||||||
def end_border(self, line, write_obj):
|
def end_border(self, line, write_obj):
|
||||||
joiner = "|"
|
border_string = "|".join(self.__bord_att)
|
||||||
border_string = joiner.join(self.__bord_att)
|
|
||||||
self.__bord_att = []
|
self.__bord_att = []
|
||||||
write_obj.write('cw<bd<%s<nu<%s\n' % (self.__bord_pos,
|
write_obj.write('cw<bd<%s<nu<%s\n' % (self.__bord_pos,
|
||||||
border_string))
|
border_string))
|
||||||
self.__state = 'default'
|
self.__state = 'default'
|
||||||
self.__bord_string = ''
|
self.__bord_string = ''
|
||||||
if self.__first_five == 'cw<bd':
|
if self.__first_five == 'cw<bd':
|
||||||
self. found_bd(line)
|
self. found_bd(line)
|
||||||
else:
|
else:
|
||||||
write_obj.write(line)
|
write_obj.write(line)
|
||||||
|
|
||||||
def add_to_border_desc(self, line):
|
def add_to_border_desc(self, line):
|
||||||
#cw<bt<bdr-hair__<nu<true
|
#cw<bt<bdr-hair__<nu<true
|
||||||
#cw<bt<bdr-linew<nu<0.50
|
#cw<bt<bdr-linew<nu<0.50
|
||||||
@ -65,26 +70,22 @@ class CombineBorders:
|
|||||||
else:
|
else:
|
||||||
num = ':' + num
|
num = ':' + num
|
||||||
self.__bord_att.append(border_desc + num)
|
self.__bord_att.append(border_desc + num)
|
||||||
|
|
||||||
def __border_func(self, line, write_obj):
|
def __border_func(self, line, write_obj):
|
||||||
if self.__first_five != 'cw<bt':
|
if self.__first_five != 'cw<bt':
|
||||||
self.end_border(line, write_obj)
|
self.end_border(line, write_obj)
|
||||||
else:
|
else:
|
||||||
self.add_to_border_desc(line)
|
self.add_to_border_desc(line)
|
||||||
|
|
||||||
def combine_borders(self):
|
def combine_borders(self):
|
||||||
read_obj = open(self.__file, 'r')
|
with open(self.__file, 'r') as read_obj,
|
||||||
write_obj = open(self.__write_to, 'w')
|
open(self.__write_to, 'w') as write_obj:
|
||||||
line_to_read = 'dummy'
|
for line in read_obj:
|
||||||
while line_to_read:
|
self.__first_five = line[0:5]
|
||||||
line_to_read = read_obj.readline()
|
if self.__state == 'border':
|
||||||
line = line_to_read
|
self.__border_func(line, write_obj)
|
||||||
self.__first_five = line[0:5]
|
else:
|
||||||
if self.__state == 'border':
|
write_obj.write(self.__default_func(line))
|
||||||
self.__border_func(line, write_obj)
|
|
||||||
else:
|
|
||||||
to_print = self.__default_func(line)
|
|
||||||
write_obj.write(to_print)
|
|
||||||
read_obj.close()
|
|
||||||
write_obj.close()
|
|
||||||
copy_obj = copy.Copy(bug_handler = self.__bug_handler)
|
copy_obj = copy.Copy(bug_handler = self.__bug_handler)
|
||||||
if self.__copy:
|
if self.__copy:
|
||||||
copy_obj.copy_file(self.__write_to, "combine_borders.data")
|
copy_obj.copy_file(self.__write_to, "combine_borders.data")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user