Fix table of contents not preserved in PDF/A
This commit is contained in:
@@ -128,6 +128,7 @@ Assemblies
|
||||
|
||||
These test resources are assemblies or derivatives from other previously mentioned files, released under the same license terms as their input files.
|
||||
|
||||
- baiona_gray.png (from baiona.png)
|
||||
- cardinal.pdf (four cardinal directions, baked-in rotated copies of LinnSequencer.jpg)
|
||||
- ccitt.pdf (LinnSequencer.jpg, converted to CCITT encoding)
|
||||
- encrypted_algo4.pdf (congress.jpg, encrypted with algorithm 4 - not supported by PyPDF2)
|
||||
@@ -135,12 +136,11 @@ These test resources are assemblies or derivatives from other previously mention
|
||||
- jbig2.pdf (congress.jpg, converted to JBIG2 encoding)
|
||||
- multipage.pdf (from several other files)
|
||||
- palette.pdf (congress.jpg, converted to a 256-color palette)
|
||||
- rotated_skew.pdf (a /Rotate'd and skewed document from LinnSequencer.jpg)
|
||||
- skew.pdf (from LinnSequencer.jpg, skew simulated by adjusting the transformation matrix)
|
||||
- skew-encrypted.pdf (skew.pdf with encryption - access supported by PyPDF2, password is "password")
|
||||
- baiona_gray.png (from baiona.png)
|
||||
- poster.pdf (from LinnSequencer.jpg)
|
||||
|
||||
- rotated_skew.pdf (a /Rotate'd and skewed document from LinnSequencer.jpg)
|
||||
- skew-encrypted.pdf (skew.pdf with encryption - access supported by PyPDF2, password is "password")
|
||||
- skew.pdf (from LinnSequencer.jpg, skew simulated by adjusting the transformation matrix)
|
||||
- toc.pdf (from formxobject.pdf, trivial.pdf)
|
||||
|
||||
|
||||
.. _`Wikimedia: LinnSequencer`: https://upload.wikimedia.org/wikipedia/en/b/b7/LinnSequencer_hardware_MIDI_sequencer_brochure_page_2_300dpi.jpg
|
||||
|
||||
Binary file not shown.
+21
-1
@@ -18,6 +18,7 @@
|
||||
|
||||
import pytest
|
||||
import PyPDF2 as pypdf
|
||||
import fitz
|
||||
|
||||
from ocrmypdf.pdfa import file_claims_pdfa
|
||||
from ocrmypdf.exceptions import ExitCode
|
||||
@@ -93,4 +94,23 @@ def test_high_unicode(spoof_tesseract_noop, resources, no_outpdf):
|
||||
'--output-type', 'pdfa',
|
||||
env=spoof_tesseract_noop)
|
||||
|
||||
assert p.returncode == ExitCode.bad_args, err
|
||||
assert p.returncode == ExitCode.bad_args, err
|
||||
|
||||
|
||||
@pytest.mark.parametrize('ocr_option', ['--skip-text', '--force-ocr'])
|
||||
@pytest.mark.parametrize('output_type', ['pdf', 'pdfa'])
|
||||
def test_bookmarks_preserved(spoof_tesseract_noop, output_type, ocr_option,
|
||||
resources, outpdf):
|
||||
input_file = resources / 'toc.pdf'
|
||||
before_toc = fitz.Document(str(input_file)).getToC()
|
||||
|
||||
check_ocrmypdf(
|
||||
input_file, outpdf,
|
||||
ocr_option,
|
||||
'--output-type', output_type,
|
||||
env=spoof_tesseract_noop)
|
||||
|
||||
after_toc = fitz.Document(str(outpdf)).getToC()
|
||||
print(before_toc)
|
||||
print(after_toc)
|
||||
assert before_toc == after_toc
|
||||
|
||||
Reference in New Issue
Block a user