Am 23.02.2016 um 23:54 schrieb Brzrk One:
Ah! A clue!
Opening the load() output with PDFDebugger from 2.0RC3 complains of a
Registry error:
Feb 23, 2016 5:36:20 PM java.util.prefs.WindowsPreferences <init>
WARNING:
Could not open/create prefs root node Software\JavaSoft\Prefs at
root 0x80000002.
Windows RegCreateKeyEx(...) returned error code 5.
Which I promptly ignored.
create the node "Software\JavaSoft\Prefs" in your registry. But the
error is harmless.
Opening the loadNonSeq() output with PDFDebugger from 2.0RC3 includes
the same Registry error, plus this diagnostic:
There is no such thing as "loadNonSeq() output with PDFDebugger from
2.0RC3". There is only "PDFDebugger from 2.0RC3" and no error comes from
your file.
Feb 23, 2016 5:36:33 PM org.apache.pdfbox.filter.FlateFilter decode
SEVERE: FlateFilter: stop reading corrupt stream due to a
DataFormatException
and the stack trace shown below in a dialog box whenever it attempts
to display a Page object,
each due to:
java.util.zip.DataFormatException: unknown compression method
The two output document structures are mostly the same, however for
the loadNonSeq() output, the Info directory looks like it is still
encoded:
Inline image 1
whereas, for the load() output, the Info directory looks decoded:
Inline image 2
Which page brought you this exception with the 2.0 PDFDebugger?
Tilman
Is this an decryption/re-encryption issue because of the /P setting?
Here's the stack trace:
java.lang.RuntimeException: java.util.concurrent.ExecutionException:
java.io.IOException: java.util.zip.DataFormatException: unknown
compression method
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:175)
sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:95)
Caused by: java.util.concurrent.ExecutionException:
java.io.IOException: java.util.zip.DataFormatException: unknown
compression method
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:164)
sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:95)
Caused by: java.io.IOException: java.util.zip.DataFormatException:
unknown compression method
org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:82)
org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69)
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163)
org.apache.pdfbox.pdmodel.PDPage.getContents(PDPage.java:148)
org.apache.pdfbox.pdfparser.PDFStreamParser.<init>(PDFStreamParser.java:92)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:461)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:445)
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:187)
org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:68)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:155)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:138)
java.lang.Thread.run(Thread.java:619)
Caused by: java.util.zip.DataFormatException: unknown compression method
java.util.zip.Inflater.inflateBytes(Native Method)
java.util.zip.Inflater.inflate(Inflater.java:238)
java.util.zip.Inflater.inflate(Inflater.java:256)
org.apache.pdfbox.filter.FlateFilter.decompress(FlateFilter.java:104)
org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:73)
org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69)
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163)
org.apache.pdfbox.pdmodel.PDPage.getContents(PDPage.java:148)
org.apache.pdfbox.pdfparser.PDFStreamParser.<init>(PDFStreamParser.java:92)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:461)
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:445)
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:187)
org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:68)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:155)
org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:138)
java.lang.Thread.run(Thread.java:619)
On Tue, Feb 23, 2016 at 5:30 PM, Brzrk One <[email protected]
<mailto:[email protected]>> wrote:
Well, I'm looking at the output of our application code, which is
unfortunately both proprietary and much more complicated than the
command line utilities.
After loading this document with loadNonSeq(), getting the
warning, and continuing to do our processing (mostly adding
annotations), the output contains all blank pages.
The same processing code with load() produces output with content
on all the pages.
On Tue, Feb 23, 2016 at 4:22 PM, Tilman Hausherr
<[email protected] <mailto:[email protected]>> wrote:
Am 23.02.2016 um 22:19 schrieb Brzrk One:
I get all that. I just don't see where in loadNonSeq() it
is refusing to
copy content.
Not at all. It is really just a warning when opening.
The refusal is in the command line utility source.
Tilman
On Tue, Feb 23, 2016 at 3:40 PM, Tilman Hausherr
<[email protected] <mailto:[email protected]>>
wrote:
Am 23.02.2016 um 21:33 schrieb Brzrk One:
loadNonSeq() seems to respect it too?
sneaking in a bogus
AccessPermissions.canExtractContent() did not alter
this.
What does load() do that loadNonSeq() does not?
(Or vice versa.)
They use different parsing strategies. Additionally, a
difference is that
loadNonSeq immediately decrypts, and brings up the
warning.
Tilman
On Tue, Feb 23, 2016 at 2:54 PM, Tilman Hausherr
<[email protected] <mailto:[email protected]>>
wrote:
Am 23.02.2016 um 20:44 schrieb Brzrk One:
The file is:
http://www.bmv.com.mx/docs-pub/infoifrs/infoifrs_588674_2015-01_1.pdf
The file is indeed protected against text
extraction. Our command line
utilities respect this. The methods (of
PDFTextStripper) ignore it, they
expect you to handle it. See in the examples
source code how to extract
text.
Tilman
On Tue, Feb 23, 2016 at 12:05 PM, Tilman
Hausherr <[email protected]
<mailto:[email protected]>
wrote:
Am 23.02.2016 um 17:53 schrieb Brzrk One:
With pdfbox-1.8.11, using the
bottom-up parser (loadNonSeq) on a
document
that has security ContentCopying:
NotAllowed results in:
org.apache.pdfbox.pdfparser.NonSequentialPDFParser
- PDF file
'some_temp_file.pdf' does not
allow extracting content
And the output pages are all blank.
The top-down parser (load) has no
such issue.
Is there a workaround?
I looked in the source code, this
warning comes only in the non
sequential
parser. There's a similar error
message in the ExtractText command line
utility ("You do not have permission
to extract text").
The best would be to upload the file
somewhere.
Tilman
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
<mailto:[email protected]>
For additional commands, e-mail:
[email protected]
<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
<mailto:[email protected]>
For additional commands, e-mail:
[email protected]
<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected]
<mailto:[email protected]>
For additional commands, e-mail:
[email protected]
<mailto:[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
<mailto:[email protected]>
For additional commands, e-mail: [email protected]
<mailto:[email protected]>