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

Split does not work on pdf created by LibreOffice Writer #434

Closed
reusing-code opened this issue Feb 12, 2022 · 2 comments
Closed

Split does not work on pdf created by LibreOffice Writer #434

reusing-code opened this issue Feb 12, 2022 · 2 comments
Assignees
Labels

Comments

@reusing-code
Copy link

reusing-code commented Feb 12, 2022

I tried splitting a document crated by LibreOffice Writer. The first page looks fine, but all other pages are completely empty when displaying them.

I used pdfcpu commit 8c35cdc
Compiled with go 1.17 on Ubuntu 21.04
executed command: pdfcpu split three_pages.pdf .

Here is a very simple pdf to reproduce the issue: three_pages.pdf

Validation shows the following results:
Original pdf:

validating(mode=relaxed) three_pages.pdf ...
validation ok

First splitted page:

validating(mode=relaxed) three_pages_1.pdf ...
validation ok

Second page:

validating(mode=relaxed) three_pages_2.pdf ...
validation error (obj#:3): pdfcpu: dereferenceDict: wrong type pdfcpu.StreamDict <<<
<Filter, FlateDecode>
<Length, (4 0 R)>

Third page:

validating(mode=relaxed) three_pages_3.pdf ...
validation error (obj#:3): pdfcpu: dereferenceDict: wrong type pdfcpu.Integer <137>

Full validation report for page 2:

pdfcpu validate -vv three_pages_2.pdf
validating(mode=relaxed) three_pages_2.pdf ...
 READ: 2022/02/12 16:45:32 Read: begin
 INFO: 2022/02/12 16:45:32 PDF Version 1.5 conforming reader
 READ: 2022/02/12 16:45:32 readXRefTable: begin
 READ: 2022/02/12 16:45:32 scanning for offsetLastXRefSection starting at 469
 READ: 2022/02/12 16:45:32 Offset last xrefsection: 712
 READ: 2022/02/12 16:45:32 buildXRefTableStartingAt: begin
 READ: 2022/02/12 16:45:32 headerVersion begin
 READ: 2022/02/12 16:45:32 headerVersion: end, found header version: 1.7
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 712
 READ: 2022/02/12 16:45:32 xref line 1: <8 0 obj>
 READ: 2022/02/12 16:45:32 xref line 2: <<</Filter/FlateDecode/ID[<9c996cfdbe531c3bab0d133ae0be75e1> <9c996cfdbe531c3bab0d133ae0be75e1>]/Index[0 9]/Info 6 0 R/Length 49/Root 1 0 R/Size 9/Type/XRef/W[1 2 2]>>>
 READ: 2022/02/12 16:45:32 buildXRefTableStartingAt: found xref stream
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 712
 READ: 2022/02/12 16:45:32 parseXRefStream: begin at offset 712
 READ: 2022/02/12 16:45:32 buffer: endInd=242 streamInd=175
 READ: 2022/02/12 16:45:32 parseXRefStream: endInd=242(f2) streamInd=175(af)
 READ: 2022/02/12 16:45:32 parseXRefStream: xrefstm obj#:8 gen:0
 READ: 2022/02/12 16:45:32 parseXRefStream: dereferencing object 8
 READ: 2022/02/12 16:45:32 parseXRefStream: we have an object: <<
	<Filter, FlateDecode>
	<ID, [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]>
	<Index, [0 9]>
	<Info, (6 0 R)>
	<Length, 49>
	<Root, (1 0 R)>
	<Size, 9>
	<Type, XRef>
	<W, [1 2 2]>
>>
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: begin
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: end w/o decode parms
 READ: 2022/02/12 16:45:32 xRefStreamDict: streamobject #8
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: begin
<<
	<Filter, FlateDecode>
	<ID, [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]>
	<Index, [0 9]>
	<Info, (6 0 R)>
	<Length, 49>
	<Root, (1 0 R)>
	<Size, 9>
	<Type, XRef>
	<W, [1 2 2]>
>>
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 894
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: seeked to offset:894
 READ: 2022/02/12 16:45:32 readStreamContent: begin streamLength:49
 READ: 2022/02/12 16:45:32 readStreamContent: count=49, buflen=49(31)
 READ: 2022/02/12 16:45:32 readStreamContent: end
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: end: len(streamDictRaw)=49
 READ: 2022/02/12 16:45:32 saveDecodedStreamContent: begin decode=true
TRACE: 2022/02/12 16:45:32 DecodeFlate begin
 READ: 2022/02/12 16:45:32 saveDecodedStreamContent: end
 READ: 2022/02/12 16:45:32 parseTrailerInfo begin
 READ: 2022/02/12 16:45:32 parseTrailerInfo: Root object: (1 0 R)
 READ: 2022/02/12 16:45:32 parseTrailerInfo: Info object: (6 0 R)
 READ: 2022/02/12 16:45:32 parseTrailerInfo: ID object: [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]
 READ: 2022/02/12 16:45:32 parseTrailerInfo end
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream begin
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: begin xrefEntryLen = 5
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: objCount:9 [0 1 2 3 4 5 6 7 8]
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: len(buf):45 objCount*xrefEntryLen:45
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #0 is unused, next free is object#0, generation=65535
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #1 is in use at offset=15, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #2 is compressed at obj     7[1]
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #3 is in use at offset=79, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #4 is in use at offset=60, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #5 is compressed at obj     7[0]
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #6 is in use at offset=592, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #7 is in use at offset=295, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: Object #8 is in use at offset=712, generation=0
 READ: 2022/02/12 16:45:32 extractXRefTableEntriesFromXRefStream: end
 READ: 2022/02/12 16:45:32 parseXRefStream: Insert new xRefTable entry for Object 8
 READ: 2022/02/12 16:45:32 parseXRefStream: end
 READ: 2022/02/12 16:45:32 buildXRefTableStartingAt: end
TRACE: 2022/02/12 16:45:32 EnsureValidFreeList begin
TRACE: 2022/02/12 16:45:32 EnsureValidFreeList: empty free list.
 READ: 2022/02/12 16:45:32 readXRefTable: end
 READ: 2022/02/12 16:45:32 dereferenceXRefTable: begin
 READ: 2022/02/12 16:45:32 decodeObjectStreams: begin
 READ: 2022/02/12 16:45:32 decodeObjectStreams: parsing object stream for obj#7
 READ: 2022/02/12 16:45:32 ParseObject: begin, obj#7, offset:295
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 295
 READ: 2022/02/12 16:45:32 buffer: endInd=290 streamInd=67
 READ: 2022/02/12 16:45:32 object: small stream within buffer, parse until stream
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: begin
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: end w/o decode parms
 READ: 2022/02/12 16:45:32 streamDictForObject: end, Streamobject #7
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: begin
<<
	<Filter, FlateDecode>
	<First, 9>
	<Length, 205>
	<N, 2>
	<Type, ObjStm>
>>
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 369
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: seeked to offset:369
 READ: 2022/02/12 16:45:32 readStreamContent: begin streamLength:205
 READ: 2022/02/12 16:45:32 readStreamContent: count=205, buflen=205(CD)
 READ: 2022/02/12 16:45:32 readStreamContent: end
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: end: len(streamDictRaw)=205
 READ: 2022/02/12 16:45:32 saveDecodedStreamContent: begin decode=true
TRACE: 2022/02/12 16:45:32 DecodeFlate begin
 READ: 2022/02/12 16:45:32 saveDecodedStreamContent: end
 READ: 2022/02/12 16:45:32 decodeObjectStreams: object stream #7
 READ: 2022/02/12 16:45:32 decodeObjectStreams: decoding object stream 7:
 READ: 2022/02/12 16:45:32 parseObjectStream begin: decoding 2 objects.
 READ: 2022/02/12 16:45:32 parseObjectStream: objString = <</Contents 3 0 R/Group<</CS/DeviceRGB/I true/S/Transparency>>/MediaBox[0.000000000000 0.000000000000 595.303937007874 841.889763779528]/Parent 2 0 R/Resources<</Font 3 0 R/ProcSet[/PDF/Text]>>/Type/Page>>
 READ: 2022/02/12 16:45:32 compressedObject: begin
 READ: 2022/02/12 16:45:32 compressedObject: end, dict
 READ: 2022/02/12 16:45:32 parseObjectStream: [0] = obj 5:
<<
	<Contents, (3 0 R)>
	<Group, <<
		<CS, DeviceRGB>
		<I, true>
		<S, Transparency>
	>>>
	<MediaBox, [0.00 0.00 595.30 841.89]>
	<Parent, (2 0 R)>
	<Resources, <<
		<Font, (3 0 R)>
		<ProcSet, [PDF Text]>
	>>>
	<Type, Page>
>>
 READ: 2022/02/12 16:45:32 parseObjectStream: objString = <</Count 1/Kids[5 0 R]/MediaBox[0.000000000000 0.000000000000 595.000000000000 842.000000000000]/Type/Pages>>
 READ: 2022/02/12 16:45:32 compressedObject: begin
 READ: 2022/02/12 16:45:32 compressedObject: end, dict
 READ: 2022/02/12 16:45:32 parseObjectStream: [1] = obj 2:
<<
	<Count, 1>
	<Kids, [(5 0 R)]>
	<MediaBox, [0.00 0.00 595.00 842.00]>
	<Type, Pages>
>>
 READ: 2022/02/12 16:45:32 parseObjectStream end
 READ: 2022/02/12 16:45:32 decodeObjectStreams: decoded object stream 7:
 READ: 2022/02/12 16:45:32 decodeObjectStreams: end
 READ: 2022/02/12 16:45:32 dereferenceObjects: begin
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 0
 READ: 2022/02/12 16:45:32 free object 0
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 1
 READ: 2022/02/12 16:45:32 in use object 1
 READ: 2022/02/12 16:45:32 dereferenceObject: dereferencing object 1
 READ: 2022/02/12 16:45:32 ParseObject: begin, obj#1, offset:15
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 15
 READ: 2022/02/12 16:45:32 object: small obj w/o stream, parse until endobj
 READ: 2022/02/12 16:45:32 dict: end, #1
 READ: 2022/02/12 16:45:32 dereferenceObject: end obj 1 of 9
<<<
	<Pages, (2 0 R)>
	<Type, Catalog>
>>>
 READ: 2022/02/12 16:45:32 logStream: no ObjectStreamDict
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 2
 READ: 2022/02/12 16:45:32 decompressXRefTableEntry: compressed object 2 at 7[1]
 READ: 2022/02/12 16:45:32 decompressXRefTableEntry: end, Obj 7[1]:
<<<
	<Count, 1>
	<Kids, [(5 0 R)]>
	<MediaBox, [0.00 0.00 595.00 842.00]>
	<Type, Pages>
>>>
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 3
 READ: 2022/02/12 16:45:32 in use object 3
 READ: 2022/02/12 16:45:32 dereferenceObject: dereferencing object 3
 READ: 2022/02/12 16:45:32 ParseObject: begin, obj#3, offset:79
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 79
 READ: 2022/02/12 16:45:32 buffer: endInd=209 streamInd=45
 READ: 2022/02/12 16:45:32 object: small stream within buffer, parse until stream
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: begin
 READ: 2022/02/12 16:45:32 pdfFilterPipeline: end w/o decode parms
 READ: 2022/02/12 16:45:32 streamDictForObject: end, Streamobject #3
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: begin
<<
	<Filter, FlateDecode>
	<Length, (4 0 R)>
>>
 READ: 2022/02/12 16:45:32 int64Object begin: 4
 READ: 2022/02/12 16:45:32 dereferencedObject: dereferencing object 4
 READ: 2022/02/12 16:45:32 ParseObject: begin, obj#4, offset:60
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 60
 READ: 2022/02/12 16:45:32 object: small obj w/o stream, parse until endobj
 READ: 2022/02/12 16:45:32 int64Object end: 4
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: new indirect streamLength:146
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 131
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: seeked to offset:131
 READ: 2022/02/12 16:45:32 readStreamContent: begin streamLength:146
 READ: 2022/02/12 16:45:32 readStreamContent: count=146, buflen=146(92)
 READ: 2022/02/12 16:45:32 readStreamContent: end
 READ: 2022/02/12 16:45:32 LoadEncodedStreamContent: end: len(streamDictRaw)=146
 READ: 2022/02/12 16:45:32 saveDecodedStreamContent: begin decode=false
 READ: 2022/02/12 16:45:32 dereferenceObject: end obj 3 of 9
<<<
	<Filter, FlateDecode>
	<Length, (4 0 R)>
>>>
 READ: 2022/02/12 16:45:32 logStream: no stream content
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 4
 READ: 2022/02/12 16:45:32 in use object 4
 READ: 2022/02/12 16:45:32 logStream: no ObjectStreamDict
 READ: 2022/02/12 16:45:32 handleCachedStreamDict: using cached object 4 of 9
<146>
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 5
 READ: 2022/02/12 16:45:32 decompressXRefTableEntry: compressed object 5 at 7[0]
 READ: 2022/02/12 16:45:32 decompressXRefTableEntry: end, Obj 7[0]:
<<<
	<Contents, (3 0 R)>
	<Group, <<
		<CS, DeviceRGB>
		<I, true>
		<S, Transparency>
	>>>
	<MediaBox, [0.00 0.00 595.30 841.89]>
	<Parent, (2 0 R)>
	<Resources, <<
		<Font, (3 0 R)>
		<ProcSet, [PDF Text]>
	>>>
	<Type, Page>
>>>
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 6
 READ: 2022/02/12 16:45:32 in use object 6
 READ: 2022/02/12 16:45:32 dereferenceObject: dereferencing object 6
 READ: 2022/02/12 16:45:32 ParseObject: begin, obj#6, offset:592
 READ: 2022/02/12 16:45:32 newPositionedReader: positioned to offset: 592
 READ: 2022/02/12 16:45:32 object: small obj w/o stream, parse until endobj
 READ: 2022/02/12 16:45:32 dict: end, #6
 READ: 2022/02/12 16:45:32 dereferenceObject: end obj 6 of 9
<<<
	<CreationDate, (D:20220212162316+01'00')>
	<ModDate, (D:20220212162316+01'00')>
	<Producer, (pdfcpu v0.3.13 dev)>
>>>
 READ: 2022/02/12 16:45:32 logStream: no ObjectStreamDict
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 7
 READ: 2022/02/12 16:45:32 in use object 7
 READ: 2022/02/12 16:45:32 logStream: objectStream content = 5 0 2 205<</Contents 3 0 R/Group<</CS/DeviceRGB/I true/S/Transparency>>/MediaBox[0.000000000000 0.000000000000 595.303937007874 841.889763779528]/Parent 2 0 R/Resources<</Font 3 0 R/ProcSet[/PDF/Text]>>/Type/Page>><</Count 1/Kids[5 0 R]/MediaBox[0.000000000000 0.000000000000 595.000000000000 842.000000000000]/Type/Pages>>
 READ: 2022/02/12 16:45:32 logStream: objectStream objArr = [
	<<
		<Contents, (3 0 R)>
		<Group, <<
			<CS, DeviceRGB>
			<I, true>
			<S, Transparency>
		>>>
		<MediaBox, [0.00 0.00 595.30 841.89]>
		<Parent, (2 0 R)>
		<Resources, <<
			<Font, (3 0 R)>
			<ProcSet, [PDF Text]>
		>>>
		<Type, Page>
	>>
	
	<<
		<Count, 1>
		<Kids, [(5 0 R)]>
		<MediaBox, [0.00 0.00 595.00 842.00]>
		<Type, Pages>
	>>
	]
 READ: 2022/02/12 16:45:32 handleCachedStreamDict: using cached object 7 of 9
<<<
	<Filter, FlateDecode>
	<First, 9>
	<Length, 205>
	<N, 2>
	<Type, ObjStm>
>>>
 READ: 2022/02/12 16:45:32 dereferenceObject: begin, dereferencing object 8
 READ: 2022/02/12 16:45:32 in use object 8
 READ: 2022/02/12 16:45:32 logStream: no ObjectStreamDict
 READ: 2022/02/12 16:45:32 handleCachedStreamDict: using cached object 8 of 9
<<<
	<Filter, FlateDecode>
	<ID, [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]>
	<Index, [0 9]>
	<Info, (6 0 R)>
	<Length, 49>
	<Root, (1 0 R)>
	<Size, 9>
	<Type, XRef>
	<W, [1 2 2]>
>>>
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:2 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:5 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:4 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:3 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:3 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:2 gen:0 
 READ: 2022/02/12 16:45:32 dereferenceObjects: end
 READ: 2022/02/12 16:45:32 identifyRootVersion: begin
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:1 gen:0 
 READ: 2022/02/12 16:45:32 dereferenceXRefTable: end
 READ: 2022/02/12 16:45:32 Read: end
 INFO: 2022/02/12 16:45:32 validating
VALID: 2022/02/12 16:45:32 *** validateXRefTable begin ***
VALID: 2022/02/12 16:45:32 *** validateRootObject begin ***
VALID: 2022/02/12 16:45:32 validateNameEntry begin: entry=Type
VALID: 2022/02/12 16:45:32 validateNameEntry end: entry=Type
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:2 gen:0 
VALID: 2022/02/12 16:45:32 validateResources: This page node has 1 pages
VALID: 2022/02/12 16:45:32 validateRectangleEntry begin: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateNumberArrayEntry begin: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateArrayEntry begin: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateArrayEntry end: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateNumberArrayEntry end: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateRectangleEntry end: entry=MediaBox
VALID: 2022/02/12 16:45:32 validateRectangleEntry begin: entry=CropBox
VALID: 2022/02/12 16:45:32 validateNumberArrayEntry begin: entry=CropBox
VALID: 2022/02/12 16:45:32 validateArrayEntry begin: entry=CropBox
VALID: 2022/02/12 16:45:32 validateIntegerEntry begin: entry=Rotate
VALID: 2022/02/12 16:45:32 validatePagesDict: PageNode: (5 0 R)
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:5 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:3 gen:0 
TRACE: 2022/02/12 16:45:32 FindTableEntry: obj#:3 gen:0 
TRACE: 2022/02/12 16:45:32 freeList begin
STATS: 2022/02/12 16:45:32 XRefTable:
*************************************************************************************************
HeaderVersion: 1.7
has 1 pages
using object streams
using xref streams
XRefTable:
                     Size: 9
              Root object: (1 0 R)
              Info object: (6 0 R)
                ID object: [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]
XRefTable with 9 entries:
    0: f   next=       0 generation=65535
    1:   offset=      15 generation=0 pdfcpu.Dict type=Catalog 
<<
	<Pages, (2 0 R)>
	<Type, Catalog>
>>
    2: was compressed 7[1] generation=0 pdfcpu.Dict type=Pages 
<<
	<Count, 1>
	<Kids, []>
	<MediaBox, [0.00 0.00 595.00 842.00]>
	<Type, Pages>
>>
    3:   offset=      79 generation=0 pdfcpu.StreamDict 
<<
	<Filter, FlateDecode>
	<Length, (4 0 R)>
>>
decoded stream content (length = 0)

    4:   offset=      60 generation=0 pdfcpu.Integer 
146
    5: was compressed 7[0] generation=0 pdfcpu.Dict type=Page 
<<
	<Contents, (3 0 R)>
	<Group, <<
		<CS, DeviceRGB>
		<I, true>
		<S, Transparency>
	>>>
	<MediaBox, [0.00 0.00 595.30 841.89]>
	<Parent, (2 0 R)>
	<Resources, <<
		<Font, (3 0 R)>
		<ProcSet, [PDF Text]>
	>>>
	<Type, Page>
>>
    6:   offset=     592 generation=0 pdfcpu.Dict 
<<
	<CreationDate, (D:20220212162316+01'00')>
	<ModDate, (D:20220212162316+01'00')>
	<Producer, (pdfcpu v0.3.13 dev)>
>>
    7:   offset=     295 generation=0 pdfcpu.ObjectStreamDict 
<<
	<Filter, FlateDecode>
	<First, 9>
	<Length, 205>
	<N, 2>
	<Type, ObjStm>
>>
object stream count:2 size of objectarray:2
    8:   offset=     712 generation=0 pdfcpu.XRefStreamDict 
<<
	<Filter, FlateDecode>
	<ID, [<9C996CFDBE531C3BAB0D133AE0BE75E1> <9C996CFDBE531C3BAB0D133AE0BE75E1>]>
	<Index, [0 9]>
	<Info, (6 0 R)>
	<Length, 49>
	<Root, (1 0 R)>
	<Size, 9>
	<Type, XRef>
	<W, [1 2 2]>
>>

Empty free list.

Total pages: 1
No font info available.

No image info available.


STATS: 2022/02/12 16:45:32 Timing:
STATS: 2022/02/12 16:45:32 read                 :  0.002s  92.8%
STATS: 2022/02/12 16:45:32 validate             :  0.000s   7.2%
STATS: 2022/02/12 16:45:32 total processing time:  0.002s

STATS: 2022/02/12 16:45:32 Original:
STATS: 2022/02/12 16:45:32 File size            : 981 (981 bytes)
STATS: 2022/02/12 16:45:32 Total binary data    : 400 (400 bytes) 40.8%
STATS: 2022/02/12 16:45:32 Total other data     : 581 (581 bytes) 59.2%

Fatal: pdfcpu: dereferenceDict: wrong type pdfcpu.StreamDict <<<
	<Filter, FlateDecode>
	<Length, (4 0 R)>
>>>
github.com/pdfcpu/pdfcpu/pkg/pdfcpu.(*XRefTable).DereferenceDict
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/dereference.go:277
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validateFontResourceDict
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/font.go:1002
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validateResourceDict
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:45
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validatePageResources
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:114
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validatePageDict
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:773
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.processPagesKids
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:982
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validatePagesDict
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:1014
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validatePages
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/pages.go:1036
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.validateRootObject
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/xReftable.go:948
github.com/pdfcpu/pdfcpu/pkg/pdfcpu/validate.XRefTable
	/home/tobi/workspace/go/pdfcpu/pkg/pdfcpu/validate/xReftable.go:40
github.com/pdfcpu/pdfcpu/pkg/api.ValidateContext
	/home/tobi/workspace/go/pdfcpu/pkg/api/api.go:70
github.com/pdfcpu/pdfcpu/pkg/api.Validate
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:51
github.com/pdfcpu/pdfcpu/pkg/api.ValidateFile
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:92
github.com/pdfcpu/pdfcpu/pkg/api.ValidateFiles
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:115
github.com/pdfcpu/pdfcpu/pkg/cli.Validate
	/home/tobi/workspace/go/pdfcpu/pkg/cli/cli.go:32
github.com/pdfcpu/pdfcpu/pkg/cli.Process
	/home/tobi/workspace/go/pdfcpu/pkg/cli/process.go:35
main.process
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/process.go:119
main.processValidateCommand
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/process.go:175
main.commandMap.process
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/cmd.go:142
main.main
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/main.go:55
runtime.main
	/usr/local/go/src/runtime/proc.go:255
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:1581
validation error (obj#:3)
github.com/pdfcpu/pdfcpu/pkg/api.Validate
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:56
github.com/pdfcpu/pdfcpu/pkg/api.ValidateFile
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:92
github.com/pdfcpu/pdfcpu/pkg/api.ValidateFiles
	/home/tobi/workspace/go/pdfcpu/pkg/api/validate.go:115
github.com/pdfcpu/pdfcpu/pkg/cli.Validate
	/home/tobi/workspace/go/pdfcpu/pkg/cli/cli.go:32
github.com/pdfcpu/pdfcpu/pkg/cli.Process
	/home/tobi/workspace/go/pdfcpu/pkg/cli/process.go:35
main.process
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/process.go:119
main.processValidateCommand
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/process.go:175
main.commandMap.process
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/cmd.go:142
main.main
	/home/tobi/workspace/go/pdfcpu/cmd/pdfcpu/main.go:55
runtime.main
	/usr/local/go/src/runtime/proc.go:255
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:1581
@hhrutter
Copy link
Collaborator

Hello!

Thanks for reporting this.
I will check it out.

@hhrutter
Copy link
Collaborator

This is fixed with latest commit.

Thanks for using pdfcpu 💚

adamgreenhall added a commit to adamgreenhall/pdfcpu that referenced this issue Apr 28, 2022
* Fix pdfcpu#442, pdfcpu#443

* Fix pdfcpu#437

* Fix pdfcpu#434

* Fix pdfcpu#429

* Fix pdfcpu#438

* Fix pdfcpu#440

* Fix pdfcpu#380

* Fix pdfcpu#446

* Add Fedora instructions (pdfcpu#439)

* Fix pdfcpu#389

* Fix pdfcpu#357, pdfcpu#451

* Fix free list validation

* Cleanup

* Fix pdfcpu#453

* Fix pdfcpu#457

* Revert "Revert "Fix pdfcpu#385""

This reverts commit bbe8e25.

Co-authored-by: Horst Rutter <hhrutter@gmail.com>
Co-authored-by: Fabio Alessandro Locati <77888+Fale@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants