diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py
index abd1fa5d8a..6b94064da5 100644
--- a/src/libprs500/ebooks/lrf/html/convert_from.py
+++ b/src/libprs500/ebooks/lrf/html/convert_from.py
@@ -717,7 +717,14 @@ class HTMLConverter(object):
@param css: A dict
'''
src = tag.string if hasattr(tag, 'string') else tag
+ if len(src) > 32767:
+ pos = 0
+ while pos < len(src):
+ self.add_text(src[pos:pos+32767], css, pseudo_css, force_span_use)
+ pos += 32767
+ return
src = src.replace('\r\n', '\n').replace('\r', '\n')
+
if pseudo_css.has_key('first-letter') and len(src) > 1:
src = src.lstrip()
f = src[0]
diff --git a/src/libprs500/ebooks/lrf/pylrs/pylrf.py b/src/libprs500/ebooks/lrf/pylrs/pylrf.py
index d4b97df603..b9587a5ac7 100644
--- a/src/libprs500/ebooks/lrf/pylrs/pylrf.py
+++ b/src/libprs500/ebooks/lrf/pylrs/pylrf.py
@@ -69,10 +69,15 @@ PYLRF_VERSION = "1.0"
# anyway.
#
+class LrfError(Exception):
+ pass
+
def writeByte(f, byte):
f.write(struct.pack(" 65535:
+ raise LrfError('Cannot encode a number greater than 65535 in a word.')
f.write(struct.pack(" 65535:
+ raise LrfError('Cannot write strings longer than 65535 characters.')
+ writeWord(f, length)
writeString(f, string)
def writeRaw(f, string, encoding):
@@ -327,11 +335,6 @@ TAG_INFO = dict(
-class LrfError(Exception):
- pass
-
-
-
class ObjectTableEntry(object):
def __init__(self, objId, offset, size):
self.objId = objId