The best is to start with the examples

https://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ExtractEmbeddedFiles.java?view=markup

Tilman

Am 04.04.2021 um 14:49 schrieb Gilad Denneboom:
My approach was wrong, I think. I needed to use createInputStream for what
I was after, not createOutputStream... Anyway, thanks for looking into it!

On Sun, Apr 4, 2021 at 2:41 PM Gilad Denneboom <[email protected]>
wrote:

OK, I see... I thought it would be an OutputStream object, but casting to
that didn't work, but casting to FilterOutputStream does work.
I don't think I'll be able to use that to directly open the attached PDF
file, though, or is there a way to do it after all?

On Sun, Apr 4, 2021 at 2:25 PM Tilman Hausherr <[email protected]>
wrote:

Your screenshot shows COSStream.$1. That's an anonymous class in
COSStream. And this is the code in COSStream that is used:

          return new FilterOutputStream(cosOut)
          {
              @Override
              public void write(byte[] b, int off, int len) throws
IOException
              {
                  this.out.write(b, off, len);
              }

              @Override
              public void close() throws IOException
              {
                  super.close();
                  setInt(COSName.LENGTH, (int)randomAccess.length());
                  isWriting = false;
              }
          };

So your class is a FilterOutputStream, which is an OutputStream.

Tilman

Am 04.04.2021 um 14:20 schrieb Gilad Denneboom:
https://drive.google.com/file/d/15nTOjbmvysrMhBEg8JF7e6vck80q6J20/view?usp=sharing
On Sun, Apr 4, 2021 at 2:12 PM Tilman Hausherr <[email protected]>
wrote:

Am 04.04.2021 um 13:48 schrieb Gilad Denneboom:
Sorry, I see that PDEmbeddedFile extends PDStream, so that is the
right function.
Then how do you explain this (see the output in the Console)?
I don't see anything because your image was an attachment (mine too but
Thunderbird makes them inline) and your attachment was removed by
Apache. You'll have to upload it somewhere.

Tilman


image.png


On Sun, Apr 4, 2021 at 1:43 PM Gilad Denneboom
<[email protected] <mailto:[email protected]>> wrote:

      You're looking in the wrong place. Look under PDEmbeddedFile's
      createOutputStream method. What does it return?

      On Sun, Apr 4, 2021 at 11:53 AM Tilman Hausherr
      <[email protected] <mailto:[email protected]>> wrote:

          Here's what I see in the source code:


https://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java?revision=1888047&view=markup#l216
          <
https://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java?revision=1888047&view=markup#l216

          Tilman

          Am 04.04.2021 um 11:29 schrieb Gilad Denneboom:
          Hi all,

          I'm trying to load an embedded PDF file as a new PDDocument
object so I can
          read its contents and the way to do it seems to be to get
the
output stream
          from PDStream, convert it to an ByteArrayOutputStream and
then
load that
          directly.

          However, when I call the createOutputStream method of my
PDStream object,
          the output is a COSStream object, not a OutputStream one, as
both the
          internal method reference and the online documentation
suggest
it should be
          (See:

https://pdfbox.apache.org/docs/2.0.13/javadocs/org/apache/pdfbox/pdmodel/common/PDStream.html#createOutputStream
<

https://pdfbox.apache.org/docs/2.0.13/javadocs/org/apache/pdfbox/pdmodel/common/PDStream.html#createOutputStream
--
          ).

          Is this an incorrect documentation or implementation? What
can
I do to
          overcome this issue and load the COSStream object as a new
document?
          I'm using PDFBox 2.0.23, by the way.

          Regards, Gilad.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to