noDRM / DeDRM_tools

DeDRM tools for ebooks
6.56k stars 287 forks source link

FYI only: DeDRM didn't work for PDF until I removed adobe key #512

Open jazzhands11 opened 3 months ago

jazzhands11 commented 3 months ago

Question / bug report

First, thank you so much for this plugin - it's very much appreciated.

Just an FYI, not sure if this is even helpful:

I couldn't get the plugin to make a decrypted pdf until I removed the adobe key from the calibre configuration. I'm not sure why that is, and I'm glad I figured it out, but I wanted you to know that the key was causing an issue for me.

I included the log of the failed job.

Which version of Calibre are you running?

7.6

Which version of the DeDRM plugin are you running?

10.0.3

If applicable, which version of the Kindle software are you running?

No response

Log output

calibre, version 7.6.0 (darwin, embedded-python: True)
Conversion error: Failed: Convert book 1 of 1 (Geometry-2)

Convert book 1 of 1 (Geometry-2)
DeDRM v10.0.3: Trying to decrypt 4uqw06pw.pdf
DeDRM v10.0.3: 4uqw06pw.pdf is a PDF ebook with encryption EBX_HANDLER
DeDRM v10.0.3: 4uqw06pw.pdf is a PDF ebook (EBX) for UUID 3f0af816-f873-48f3-9b9d-b9d47ac35c7b
Running file type plugin DeDRM failed with traceback:
Traceback (most recent call last):
  File "encodings/hex_codec.py", line 19, in hex_decode
ValueError: string argument should contain only ASCII characters

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "calibre/customize/ui.py", line 187, in _run_filetype_plugins
  File "calibre_plugins.dedrm.__init__", line 1063, in run
    decrypted_ebook = self.PDFDecrypt(path_to_ebook)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "calibre_plugins.dedrm.__init__", line 923, in PDFDecrypt
    return self.PDFIneptDecrypt(path_to_ebook)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "calibre_plugins.dedrm.__init__", line 695, in PDFIneptDecrypt
    userkey = codecs.decode(userkeyhex, 'hex')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: decoding with 'hex' codec failed (ValueError: string argument should contain only ASCII characters)
Conversion options changed from defaults:
  no_default_epub_cover: True
  epub_version: '3'
  margin_left: 3.0
  margin_top: 3.0
  read_metadata_from_opf: '/var/folders/n1/hkwdlh7x30z5rcgrdb8622680000gn/C/calibre_7.6.0_tmp_anvis1tv/boqirpj7.opf'
  no_svg_cover: True
  verbose: 2
  margin_right: 3.0
  margin_bottom: 3.0
  output_profile: 'kindle_pw3'
Resolved conversion options
calibre version: 7.6.0
{'asciiize': False,
 'author_sort': None,
 'authors': None,
 'base_font_size': 0.0,
 'book_producer': None,
 'change_justification': 'original',
 'chapter': "//*[((name()='h1' or name()='h2') and re:test(., "
            "'\\s*((chapter|book|section|part)\\s+)|((prolog|prologue|epilogue)(\\s+|$))', "
            "'i')) or @class = 'chapter']",
 'chapter_mark': 'pagebreak',
 'comments': None,
 'cover': None,
 'debug_pipeline': None,
 'dehyphenate': True,
 'delete_blank_paragraphs': True,
 'disable_font_rescaling': False,
 'dont_split_on_page_breaks': False,
 'duplicate_links_in_toc': False,
 'embed_all_fonts': False,
 'embed_font_family': None,
 'enable_heuristics': False,
 'epub_flatten': False,
 'epub_inline_toc': False,
 'epub_max_image_size': 'none',
 'epub_toc_at_end': False,
 'epub_version': '3',
 'expand_css': False,
 'extra_css': None,
 'extract_to': None,
 'filter_css': '',
 'fix_indents': True,
 'flow_size': 260,
 'font_size_mapping': None,
 'format_scene_breaks': True,
 'html_unwrap_factor': 0.4,
 'input_encoding': None,
 'input_profile': <calibre.customize.profiles.InputProfile object at 0x11d069cd0>,
 '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': 3.0,
 'margin_left': 3.0,
 'margin_right': 3.0,
 'margin_top': 3.0,
 'markup_chapter_headings': True,
 'max_toc_links': 50,
 'minimum_line_height': 120.0,
 'new_pdf_engine': False,
 'no_chapters_in_toc': False,
 'no_default_epub_cover': True,
 'no_images': False,
 'no_inline_navbars': False,
 'no_svg_cover': True,
 'output_profile': <calibre.customize.profiles.KindlePaperWhite3Output object at 0x11d07c890>,
 'page_breaks_before': "//*[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': '/var/folders/n1/hkwdlh7x30z5rcgrdb8622680000gn/C/calibre_7.6.0_tmp_anvis1tv/boqirpj7.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': '',
 '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,
 'toc_title': None,
 'transform_css_rules': '[]',
 'transform_html_rules': '[]',
 'unsmarten_punctuation': False,
 'unwrap_factor': 0.45,
 'unwrap_lines': True,
 'use_auto_toc': False,
 'verbose': 2}
DeDRM v10.0.3: Trying to decrypt 4uqw06pw.pdf
DeDRM v10.0.3: 4uqw06pw.pdf is a PDF ebook with encryption EBX_HANDLER
DeDRM v10.0.3: 4uqw06pw.pdf is a PDF ebook (EBX) for UUID 3f0af816-f873-48f3-9b9d-b9d47ac35c7b
Running file type plugin DeDRM failed with traceback:
Traceback (most recent call last):
  File "encodings/hex_codec.py", line 19, in hex_decode
ValueError: string argument should contain only ASCII characters

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "calibre/customize/ui.py", line 187, in _run_filetype_plugins
  File "calibre_plugins.dedrm.__init__", line 1063, in run
    decrypted_ebook = self.PDFDecrypt(path_to_ebook)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "calibre_plugins.dedrm.__init__", line 923, in PDFDecrypt
    return self.PDFIneptDecrypt(path_to_ebook)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "calibre_plugins.dedrm.__init__", line 695, in PDFIneptDecrypt
    userkey = codecs.decode(userkeyhex, 'hex')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: decoding with 'hex' codec failed (ValueError: string argument should contain only ASCII characters)
InputFormatPlugin: PDF Input running
on /var/folders/n1/hkwdlh7x30z5rcgrdb8622680000gn/C/calibre_7.6.0_tmp_anvis1tv/4uqw06pw.pdf
Converting file to html...
Traceback (most recent call last):
  File "runpy.py", line 198, in _run_module_as_main
  File "runpy.py", line 88, in _run_code
  File "site.py", line 41, in <module>
  File "site.py", line 37, in main
  File "calibre/utils/ipc/worker.py", line 215, in main
  File "calibre/gui2/convert/gui_conversion.py", line 38, in gui_convert_override
  File "calibre/gui2/convert/gui_conversion.py", line 25, in gui_convert
  File "calibre/ebooks/conversion/plumber.py", line 1108, in run
  File "calibre/customize/conversion.py", line 242, in __call__
  File "calibre/ebooks/conversion/plugins/pdf_input.py", line 51, in convert
  File "calibre/ebooks/pdf/pdftohtml.py", line 83, in pdftohtml
calibre.ebooks.ConversionError: pdftohtml failed with return code: 1
Syntax Error: Couldn't find the 'EBX_HANDLER' security handler
ElleKayEm commented 3 months ago

Known bug with 10.0.3 that you need to let DeDRM automatically retrieve the key on its own. Fixed in version 10.0.9. You can close this issue.

mrx0010 commented 3 months ago

I have the same issue, even I am using the version 10.0.9

sebasarena commented 1 month ago

I have the same issue, even I am using the version 10.0.9

Wow.