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
|
||||
|
||||
from calibre.ebooks.rtf2xml import copy
|
||||
|
||||
class CombineBorders:
|
||||
"""Combine borders in RTF tokens to make later processing easier"""
|
||||
def __init__(self,
|
||||
@ -32,19 +34,21 @@ class CombineBorders:
|
||||
self.__state = 'default'
|
||||
self.__bord_pos = 'default'
|
||||
self.__bord_att = []
|
||||
|
||||
def found_bd(self, line):
|
||||
#cw<bd<bor-t-r-vi
|
||||
self.__state = 'border'
|
||||
self.__bord_pos = line[6:16]
|
||||
|
||||
def __default_func(self, line):
|
||||
#cw<bd<bor-t-r-vi
|
||||
if self.__first_five == 'cw<bd':
|
||||
self.found_bd(line)
|
||||
return ''
|
||||
return line
|
||||
|
||||
def end_border(self, line, write_obj):
|
||||
joiner = "|"
|
||||
border_string = joiner.join(self.__bord_att)
|
||||
border_string = "|".join(self.__bord_att)
|
||||
self.__bord_att = []
|
||||
write_obj.write('cw<bd<%s<nu<%s\n' % (self.__bord_pos,
|
||||
border_string))
|
||||
@ -54,6 +58,7 @@ class CombineBorders:
|
||||
self. found_bd(line)
|
||||
else:
|
||||
write_obj.write(line)
|
||||
|
||||
def add_to_border_desc(self, line):
|
||||
#cw<bt<bdr-hair__<nu<true
|
||||
#cw<bt<bdr-linew<nu<0.50
|
||||
@ -65,26 +70,22 @@ class CombineBorders:
|
||||
else:
|
||||
num = ':' + num
|
||||
self.__bord_att.append(border_desc + num)
|
||||
|
||||
def __border_func(self, line, write_obj):
|
||||
if self.__first_five != 'cw<bt':
|
||||
self.end_border(line, write_obj)
|
||||
else:
|
||||
self.add_to_border_desc(line)
|
||||
|
||||
def combine_borders(self):
|
||||
read_obj = open(self.__file, 'r')
|
||||
write_obj = open(self.__write_to, 'w')
|
||||
line_to_read = 'dummy'
|
||||
while line_to_read:
|
||||
line_to_read = read_obj.readline()
|
||||
line = line_to_read
|
||||
with open(self.__file, 'r') as read_obj,
|
||||
open(self.__write_to, 'w') as write_obj:
|
||||
for line in read_obj:
|
||||
self.__first_five = line[0:5]
|
||||
if self.__state == 'border':
|
||||
self.__border_func(line, write_obj)
|
||||
else:
|
||||
to_print = self.__default_func(line)
|
||||
write_obj.write(to_print)
|
||||
read_obj.close()
|
||||
write_obj.close()
|
||||
write_obj.write(self.__default_func(line))
|
||||
copy_obj = copy.Copy(bug_handler = self.__bug_handler)
|
||||
if self.__copy:
|
||||
copy_obj.copy_file(self.__write_to, "combine_borders.data")
|
||||
|
Loading…
x
Reference in New Issue
Block a user