RTF to EPUB Failure IndexError pop from empty

Bug #1176738 reported by lostinlodos on 2013-05-06
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

calibre, version 0.9.29 (win32, isfrozen: True)
Conversion Error: Failed: Convert book 1 of 1 (7 Items You Won)

Convert book 1 of 1 (7 Items You Won)
Resolved conversion options
calibre version: 0.9.29
{'asciiize': False,
 'author_sort': None,
 'authors': None,
 'base_font_size': 0.0,
 'book_producer': None,
 'change_justification': u'original',
 'chapter': u"//*[((name()='h1' or name()='h2') and re:test(., '\\s*((chapter|book|section|part)\\s+)|((prolog|prologue|epilogue)(\\s+|$))', 'i')) or @class = 'chapter']",
 'chapter_mark': u'pagebreak',
 'comments': None,
 'cover': None,
 'debug_pipeline': None,
 'dehyphenate': True,
 'delete_blank_paragraphs': True,
 'disable_font_rescaling': False,
 'dont_split_on_page_breaks': True,
 'duplicate_links_in_toc': False,
 'embed_font_family': None,
 'enable_heuristics': False,
 'epub_flatten': False,
 'extra_css': None,
 'extract_to': None,
 'filter_css': u'',
 'fix_indents': True,
 'flow_size': 30000,
 'font_size_mapping': None,
 'format_scene_breaks': True,
 'html_unwrap_factor': 0.4,
 'input_encoding': None,
 'input_profile': <calibre.customize.profiles.InputProfile object at 0x0000000004BAE5C0>,
 'insert_blank_line': False,
 'insert_blank_line_size': 0.5,
 'insert_metadata': False,
 'isbn': None,
 'italicize_common_cases': True,
 'keep_ligatures': False,
 'language': None,
 'level1_toc': None,
 'level2_toc': None,
 'level3_toc': None,
 'line_height': 0.0,
 'linearize_tables': False,
 'margin_bottom': 5.0,
 'margin_left': 5.0,
 'margin_right': 5.0,
 'margin_top': 5.0,
 'markup_chapter_headings': True,
 'max_toc_links': 50,
 'minimum_line_height': 120.0,
 'no_chapters_in_toc': False,
 'no_default_epub_cover': False,
 'no_inline_navbars': False,
 'no_svg_cover': False,
 'output_profile': <calibre.customize.profiles.TabletOutput object at 0x0000000004BAEF60>,
 'page_breaks_before': u"//*[name()='h1' or name()='h2']",
 'prefer_metadata_cover': False,
 'preserve_cover_aspect_ratio': False,
 'pretty_print': True,
 'pubdate': None,
 'publisher': None,
 'rating': None,
 'read_metadata_from_opf': u'C:\\Users\\NEWADM~1\\AppData\\Local\\Temp\\calibre_qnmwsd\\8u9shj.opf',
 'remove_fake_margins': True,
 'remove_first_image': False,
 'remove_paragraph_spacing': False,
 'remove_paragraph_spacing_indent_size': 1.5,
 'renumber_headings': True,
 'replace_scene_breaks': u'',
 'search_replace': '[]',
 'series': None,
 'series_index': None,
 'smarten_punctuation': False,
 'sr1_replace': None,
 'sr1_search': None,
 'sr2_replace': None,
 'sr2_search': None,
 'sr3_replace': None,
 'sr3_search': None,
 'start_reading_at': None,
 'subset_embedded_fonts': False,
 'tags': None,
 'timestamp': None,
 'title': None,
 'title_sort': None,
 'toc_filter': None,
 'toc_threshold': 6,
 'unsmarten_punctuation': False,
 'unwrap_lines': True,
 'use_auto_toc': False,
 'verbose': 2}
InputFormatPlugin: RTF Input running
on C:\Users\NEWADM~1\AppData\Local\Temp\calibre_qnmwsd\mi2gpq.rtf
Converting RTF to XML...
Python function terminated unexpectedly
  pop from empty list (Error Code: 1)
Traceback (most recent call last):
  File "site.py", line 132, in main
  File "site.py", line 109, in run_entry_point
  File "site-packages\calibre\utils\ipc\worker.py", line 189, in main
  File "site-packages\calibre\gui2\convert\gui_conversion.py", line 31, in gui_convert_override
  File "site-packages\calibre\gui2\convert\gui_conversion.py", line 25, in gui_convert
  File "site-packages\calibre\ebooks\conversion\plumber.py", line 1009, in run
  File "site-packages\calibre\customize\conversion.py", line 239, in __call__
  File "site-packages\calibre\ebooks\conversion\plugins\rtf_input.py", line 244, in convert
  File "site-packages\calibre\ebooks\conversion\plugins\rtf_input.py", line 103, in generate_xml
  File "site-packages\calibre\ebooks\rtf2xml\ParseRtf.py", line 213, in parse_rtf
  File "site-packages\calibre\ebooks\rtf2xml\tokenize.py", line 182, in tokenize
  File "site-packages\calibre\ebooks\rtf2xml\tokenize.py", line 61, in __unicode_process
IndexError: pop from empty list

lostinlodos (lostinlodos) wrote :

Changing the component for this bug.

 assignee sengian
 tag rtf-input
 status triaged

Changed in calibre:
assignee: nobody → sengian (sengian)
status: New → Triaged
Kovid Goyal (kovid) wrote :

Save your rtf file as html in word and convert that, you will get
better results.

lostinlodos (lostinlodos) wrote :

Thanks for suggestion.

Tried that too; Don't have Word, use Kingsoft Writer. It saves as a .html and not .htm so I loose the pics. (no way to change that in the program, and renaming the file breaks the links to pictures.)

This isn't a random issue either. Appears to affect all RTF docs I have.

RTF file is actually FROM an HTML file that I converted to RTF to be able to keep pics.

Kovid Goyal (kovid) wrote :

Presumably all your RTFs are generated by the same program, so they
will all show the same issue. RTF is an awful format, use HTML instead.
Or open your rtf in wordpad and save it, that might fix the problems in

You can convert any html file that links to its pictures locally, the
pictures will be retained. If you dont have Word, get LibreOffice (its
free) and use that to convert your RTF to HTML instead.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments