Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse error #679

Closed
ximbal opened this issue Aug 22, 2023 · 2 comments
Closed

Parse error #679

ximbal opened this issue Aug 22, 2023 · 2 comments
Assignees

Comments

@ximbal
Copy link

ximbal commented Aug 22, 2023

Thank you for submitting a possible bug!

Please ensure the following:

  • Your issue is based on the latest commit
  • State your OS and OS version
  • When reporting a problem with a specific PDF input file please avoid stating the organization responsible for the PDFWriter - just refer to the PDFWriter

Merging PDF documents:

if err := api.MergeCreateFile(pdfFiles, outFileName, nil); err != nil {
		return fmt.Errorf("error combining PDF files: %v", err)
	}

getting this error:

dict=imageStreamDict entry=SMask: unsupported in version 1.2
This file could be PDF/A compliant but pdfcpu only supports versions <= PDF V1.7

some questions.
Is there a way I can output the name of the pdf file that caused the error? Would it be a good idea to refactor for it?

Perhaps, having the ability to choose what to do on this cases?, maybe ignore the file and continue?

I did create a Logger, but I don't see any useful info.

LOG: 2023/08/22 17:11:12.089124 log.go:208: first key=0056fcba57186e8e4b0847a36c05d0a06b364c54a3b55e225706b705d9bdf215.pdf
LOG: 2023/08/22 17:11:12.090632 log.go:208: patchSourceObjectNumbers: ctxSource: xRefTableSize:57 trailer.Size:57 - 
LOG: 2023/08/22 17:11:12.090690 log.go:208: patchSourceObjectNumbers:   ctxDest: xRefTableSize:23 trailer.Size:23 - 
LOG: 2023/08/22 17:11:12.090767 log.go:208: patchSourceObjectNumbers end
LOG: 2023/08/22 17:11:12.090777 log.go:218: appendSourcePageTreeToDestPageTree
LOG: 2023/08/22 17:11:12.090781 log.go:218: appendSourcePageTreeToDestPageTree begin
LOG: 2023/08/22 17:11:12.090791 log.go:208: Kids before: [(4 0 R)]
LOG: 2023/08/22 17:11:12.090797 log.go:208: Kids after: [(4 0 R) (58 0 R)]
LOG: 2023/08/22 17:11:12.090802 log.go:218: appendSourcePageTreeToDestPageTree end
LOG: 2023/08/22 17:11:12.090806 log.go:218: appendSourceObjectsToDest
LOG: 2023/08/22 17:11:12.090810 log.go:218: appendSourceObjectsToDest begin
LOG: 2023/08/22 17:11:12.090814 log.go:208: adding obj 26 from src to dest
LOG: 2023/08/22 17:11:12.090820 log.go:208: adding obj 48 from src to dest
LOG: 2023/08/22 17:11:12.090824 log.go:208: adding obj 67 from src to dest
LOG: 2023/08/22 17:11:12.090828 log.go:208: adding obj 49 from src to dest
LOG: 2023/08/22 17:11:12.090832 log.go:208: adding obj 31 from src to dest
LOG: 2023/08/22 17:11:12.090835 log.go:208: adding obj 62 from src to dest
LOG: 2023/08/22 17:11:12.090839 log.go:208: adding obj 74 from src to dest
LOG: 2023/08/22 17:11:12.090842 log.go:208: adding obj 52 from src to dest
LOG: 2023/08/22 17:11:12.090846 log.go:208: adding obj 77 from src to dest
LOG: 2023/08/22 17:11:12.090849 log.go:208: adding obj 45 from src to dest
LOG: 2023/08/22 17:11:12.090853 log.go:208: adding obj 72 from src to dest
LOG: 2023/08/22 17:11:12.090856 log.go:208: adding obj 69 from src to dest
LOG: 2023/08/22 17:11:12.090860 log.go:208: adding obj 32 from src to dest
LOG: 2023/08/22 17:11:12.090863 log.go:208: adding obj 28 from src to dest
LOG: 2023/08/22 17:11:12.090867 log.go:208: adding obj 61 from src to dest
LOG: 2023/08/22 17:11:12.090870 log.go:208: adding obj 47 from src to dest
LOG: 2023/08/22 17:11:12.090874 log.go:208: adding obj 34 from src to dest
LOG: 2023/08/22 17:11:12.090877 log.go:208: adding obj 71 from src to dest
LOG: 2023/08/22 17:11:12.090881 log.go:208: adding obj 73 from src to dest
LOG: 2023/08/22 17:11:12.090884 log.go:208: adding obj 65 from src to dest
LOG: 2023/08/22 17:11:12.090887 log.go:208: adding obj 56 from src to dest
LOG: 2023/08/22 17:11:12.090891 log.go:208: adding obj 57 from src to dest
LOG: 2023/08/22 17:11:12.090895 log.go:208: adding obj 78 from src to dest
LOG: 2023/08/22 17:11:12.090898 log.go:208: adding obj 76 from src to dest
LOG: 2023/08/22 17:11:12.090901 log.go:208: adding obj 40 from src to dest
LOG: 2023/08/22 17:11:12.090905 log.go:208: adding obj 51 from src to dest
LOG: 2023/08/22 17:11:12.090909 log.go:208: adding obj 64 from src to dest
LOG: 2023/08/22 17:11:12.090912 log.go:208: adding obj 70 from src to dest
LOG: 2023/08/22 17:11:12.090916 log.go:208: adding obj 33 from src to dest
LOG: 2023/08/22 17:11:12.090919 log.go:208: adding obj 68 from src to dest
LOG: 2023/08/22 17:11:12.090923 log.go:208: adding obj 42 from src to dest
LOG: 2023/08/22 17:11:12.090927 log.go:208: adding obj 29 from src to dest
LOG: 2023/08/22 17:11:12.090930 log.go:208: adding obj 63 from src to dest
LOG: 2023/08/22 17:11:12.090934 log.go:208: adding obj 41 from src to dest
LOG: 2023/08/22 17:11:12.090937 log.go:208: adding obj 46 from src to dest
LOG: 2023/08/22 17:11:12.090941 log.go:208: adding obj 66 from src to dest
LOG: 2023/08/22 17:11:12.090945 log.go:208: adding obj 50 from src to dest
LOG: 2023/08/22 17:11:12.090948 log.go:208: adding obj 38 from src to dest
LOG: 2023/08/22 17:11:12.090951 log.go:208: adding obj 37 from src to dest
LOG: 2023/08/22 17:11:12.090955 log.go:208: adding obj 54 from src to dest
LOG: 2023/08/22 17:11:12.090958 log.go:208: adding obj 30 from src to dest
LOG: 2023/08/22 17:11:12.090962 log.go:208: adding obj 60 from src to dest
LOG: 2023/08/22 17:11:12.090971 log.go:208: adding obj 23 from src to dest
LOG: 2023/08/22 17:11:12.090974 log.go:208: adding obj 35 from src to dest
LOG: 2023/08/22 17:11:12.090976 log.go:208: adding obj 27 from src to dest
LOG: 2023/08/22 17:11:12.090979 log.go:208: adding obj 59 from src to dest
LOG: 2023/08/22 17:11:12.090981 log.go:208: adding obj 24 from src to dest
LOG: 2023/08/22 17:11:12.090984 log.go:208: adding obj 44 from src to dest
LOG: 2023/08/22 17:11:12.090986 log.go:208: adding obj 75 from src to dest
LOG: 2023/08/22 17:11:12.090988 log.go:208: adding obj 53 from src to dest
LOG: 2023/08/22 17:11:12.090990 log.go:208: adding obj 58 from src to dest
LOG: 2023/08/22 17:11:12.090993 log.go:208: adding obj 36 from src to dest
LOG: 2023/08/22 17:11:12.090995 log.go:208: adding obj 25 from src to dest
LOG: 2023/08/22 17:11:12.090997 log.go:208: adding obj 55 from src to dest
LOG: 2023/08/22 17:11:12.091000 log.go:208: adding obj 43 from src to dest
LOG: 2023/08/22 17:11:12.091002 log.go:208: adding obj 39 from src to dest
LOG: 2023/08/22 17:11:12.091004 log.go:218: appendSourceObjectsToDest end
LOG: 2023/08/22 17:11:12.091016 log.go:208: kmin=0056fcba57186e8e4b0847a36c05d0a06b364c54a3b55e225706b705d9bdf215.pdf kmax=0056fcba57186e8e4b0847a36c05d0a06b364c54a3b55e225706b705d9bdf215.pdf
LOG: 2023/08/22 17:11:12.091020 log.go:208: Insert k:00a10487d4ab29c5aeb12b771750eebecce65933d9ce2346856d58ade20eae89.pdf at end
LOG: 2023/08/22 17:11:12.091024 log.go:208: FreeObject: begin 77
LOG: 2023/08/22 17:11:12.091049 log.go:208: FreeObject: end 77
LOG: 2023/08/22 17:11:12.091052 log.go:208: FreeObject: begin 35
LOG: 2023/08/22 17:11:12.091054 log.go:208: FreeObject: end 35
LOG: 2023/08/22 17:11:12.091057 log.go:218: mergeDuplicateObjNumberIntSets
LOG: 2023/08/22 17:11:12.091060 log.go:218: mergeDuplicateObjNumberIntSets begin
LOG: 2023/08/22 17:11:12.091063 log.go:218: mergeDuplicateObjNumberIntSets end
LOG: 2023/08/22 17:11:12.092577 log.go:208: patchSourceObjectNumbers: ctxSource: xRefTableSize:57 trailer.Size:57 - 
LOG: 2023/08/22 17:11:12.092586 log.go:208: patchSourceObjectNumbers:   ctxDest: xRefTableSize:81 trailer.Size:81 - 
LOG: 2023/08/22 17:11:12.092727 log.go:208: patchSourceObjectNumbers end
LOG: 2023/08/22 17:11:12.092735 log.go:218: appendSourcePageTreeToDestPageTree
LOG: 2023/08/22 17:11:12.092739 log.go:218: appendSourcePageTreeToDestPageTree begin
LOG: 2023/08/22 17:11:12.092745 log.go:208: Kids before: [(4 0 R) (58 0 R)]
LOG: 2023/08/22 17:11:12.092751 log.go:208: Kids after: [(4 0 R) (58 0 R) (96 0 R)]
LOG: 2023/08/22 17:11:12.092754 log.go:218: appendSourcePageTreeToDestPageTree end
LOG: 2023/08/22 17:11:12.092757 log.go:218: appendSourceObjectsToDest
LOG: 2023/08/22 17:11:12.092759 log.go:218: appendSourceObjectsToDest begin
LOG: 2023/08/22 17:11:12.092762 log.go:208: adding obj 127 from src to dest
LOG: 2023/08/22 17:11:12.092765 log.go:208: adding obj 93 from src to dest
LOG: 2023/08/22 17:11:12.092768 log.go:208: adding obj 96 from src to dest
LOG: 2023/08/22 17:11:12.092770 log.go:208: adding obj 109 from src to dest
LOG: 2023/08/22 17:11:12.092773 log.go:208: adding obj 85 from src to dest
LOG: 2023/08/22 17:11:12.092775 log.go:208: adding obj 98 from src to dest
LOG: 2023/08/22 17:11:12.092778 log.go:208: adding obj 110 from src to dest
LOG: 2023/08/22 17:11:12.092780 log.go:208: adding obj 111 from src to dest
LOG: 2023/08/22 17:11:12.092782 log.go:208: adding obj 114 from src to dest
LOG: 2023/08/22 17:11:12.092785 log.go:208: adding obj 107 from src to dest
LOG: 2023/08/22 17:11:12.092787 log.go:208: adding obj 129 from src to dest
LOG: 2023/08/22 17:11:12.092790 log.go:208: adding obj 108 from src to dest
LOG: 2023/08/22 17:11:12.092792 log.go:208: adding obj 125 from src to dest
LOG: 2023/08/22 17:11:12.092795 log.go:208: adding obj 83 from src to dest
LOG: 2023/08/22 17:11:12.092797 log.go:208: adding obj 91 from src to dest
LOG: 2023/08/22 17:11:12.092800 log.go:208: adding obj 126 from src to dest
LOG: 2023/08/22 17:11:12.092802 log.go:208: adding obj 120 from src to dest
LOG: 2023/08/22 17:11:12.092812 log.go:208: adding obj 113 from src to dest
LOG: 2023/08/22 17:11:12.092816 log.go:208: adding obj 136 from src to dest
LOG: 2023/08/22 17:11:12.092819 log.go:208: adding obj 105 from src to dest
LOG: 2023/08/22 17:11:12.092823 log.go:208: adding obj 112 from src to dest
LOG: 2023/08/22 17:11:12.092826 log.go:208: adding obj 95 from src to dest
LOG: 2023/08/22 17:11:12.092835 log.go:208: adding obj 121 from src to dest
LOG: 2023/08/22 17:11:12.092838 log.go:208: adding obj 116 from src to dest
LOG: 2023/08/22 17:11:12.092841 log.go:208: adding obj 87 from src to dest
LOG: 2023/08/22 17:11:12.092845 log.go:208: adding obj 86 from src to dest
LOG: 2023/08/22 17:11:12.092849 log.go:208: adding obj 101 from src to dest
LOG: 2023/08/22 17:11:12.092853 log.go:208: adding obj 81 from src to dest
LOG: 2023/08/22 17:11:12.092855 log.go:208: adding obj 117 from src to dest
LOG: 2023/08/22 17:11:12.092858 log.go:208: adding obj 104 from src to dest
LOG: 2023/08/22 17:11:12.092861 log.go:208: adding obj 82 from src to dest
LOG: 2023/08/22 17:11:12.092863 log.go:208: adding obj 115 from src to dest
LOG: 2023/08/22 17:11:12.092866 log.go:208: adding obj 89 from src to dest
LOG: 2023/08/22 17:11:12.092871 log.go:208: adding obj 130 from src to dest
LOG: 2023/08/22 17:11:12.092874 log.go:208: adding obj 97 from src to dest
LOG: 2023/08/22 17:11:12.092876 log.go:208: adding obj 133 from src to dest
LOG: 2023/08/22 17:11:12.092878 log.go:208: adding obj 102 from src to dest
LOG: 2023/08/22 17:11:12.092881 log.go:208: adding obj 103 from src to dest
LOG: 2023/08/22 17:11:12.092883 log.go:208: adding obj 135 from src to dest
LOG: 2023/08/22 17:11:12.092885 log.go:208: adding obj 124 from src to dest
LOG: 2023/08/22 17:11:12.092891 log.go:208: adding obj 128 from src to dest
LOG: 2023/08/22 17:11:12.092893 log.go:208: adding obj 92 from src to dest
LOG: 2023/08/22 17:11:12.092895 log.go:208: adding obj 100 from src to dest
LOG: 2023/08/22 17:11:12.092898 log.go:208: adding obj 106 from src to dest
LOG: 2023/08/22 17:11:12.092900 log.go:208: adding obj 123 from src to dest
LOG: 2023/08/22 17:11:12.092902 log.go:208: adding obj 122 from src to dest
LOG: 2023/08/22 17:11:12.092905 log.go:208: adding obj 88 from src to dest
LOG: 2023/08/22 17:11:12.092907 log.go:208: adding obj 84 from src to dest
LOG: 2023/08/22 17:11:12.092909 log.go:208: adding obj 119 from src to dest
LOG: 2023/08/22 17:11:12.092912 log.go:208: adding obj 132 from src to dest
LOG: 2023/08/22 17:11:12.092914 log.go:208: adding obj 90 from src to dest
LOG: 2023/08/22 17:11:12.092916 log.go:208: adding obj 118 from src to dest
LOG: 2023/08/22 17:11:12.092919 log.go:208: adding obj 94 from src to dest
LOG: 2023/08/22 17:11:12.092921 log.go:208: adding obj 131 from src to dest
LOG: 2023/08/22 17:11:12.092923 log.go:208: adding obj 99 from src to dest
LOG: 2023/08/22 17:11:12.092925 log.go:208: adding obj 134 from src to dest
LOG: 2023/08/22 17:11:12.092928 log.go:218: appendSourceObjectsToDest end
LOG: 2023/08/22 17:11:12.092938 log.go:208: kmin=0056fcba57186e8e4b0847a36c05d0a06b364c54a3b55e225706b705d9bdf215.pdf kmax=00a10487d4ab29c5aeb12b771750eebecce65933d9ce2346856d58ade20eae89.pdf
LOG: 2023/08/22 17:11:12.092941 log.go:208: Insert k:015c6f4add404f5546fb1b9f80ba1d22ea327e35db31464a8f2a5106aea37e67.pdf at end
LOG: 2023/08/22 17:11:12.092945 log.go:208: FreeObject: begin 90
LOG: 2023/08/22 17:11:12.092947 log.go:208: FreeObject: end 90
LOG: 2023/08/22 17:11:12.092950 log.go:208: FreeObject: begin 82
LOG: 2023/08/22 17:11:12.092954 log.go:208: FreeObject: end 82
LOG: 2023/08/22 17:11:12.092956 log.go:218: mergeDuplicateObjNumberIntSets
LOG: 2023/08/22 17:11:12.092960 log.go:218: mergeDuplicateObjNumberIntSets begin
LOG: 2023/08/22 17:11:12.092962 log.go:218: mergeDuplicateObjNumberIntSets end
@hhrutter
Copy link
Collaborator

Hello!

Any PDF file you process with pdfcpu needs to pass validation.

Validation is part of all pdfcpu commands.
You can either integrate this as (optional for debugging) step 1 in your processing chain or do that on the command line:
pdfcpu val test.pdf

Hence, this is actually a parsing error:

  • Image dicts with SMask entry are supported since PDF V1.4

@hhrutter hhrutter changed the title Error combining and stamping PDFs: error combining PDF files: dict=imageStreamDict entry=SMask: unsupported in version 1.2 This file could be PDF/A compliant but pdfcpu only supports versions <= PDF V1.7 Parse error Aug 22, 2023
@hhrutter
Copy link
Collaborator

The latest commit relaxes validation of that attribute.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants