Examples of PdfDictionary


Examples of org.pdfclown.objects.PdfDictionary

      // Get the data object associated to the indirect object!
      PdfDataObject dataObject = indirectObject.getDataObject();
      // Is this data object a stream?
      if(dataObject instanceof PdfStream)
      {
        PdfDictionary header = ((PdfStream)dataObject).getHeader();
        // Is this stream an image?
        if(header.containsKey(PdfName.Type)
          && header.get(PdfName.Type).equals(PdfName.XObject)
          && header.get(PdfName.Subtype).equals(PdfName.Image))
        {
          // Which kind of image?
          if(header.get(PdfName.Filter).equals(PdfName.DCTDecode)) // JPEG image.
          {
            // Get the image data (keeping it encoded)!
            IBuffer body = ((PdfStream)dataObject).getBody(false);
            // Export the image!
            exportImage(
              body,
              getOutputPath() + java.io.File.separator + "ImageExtractionSample_" + (index++) + ".jpg"
              );
          }
          else // Unsupported image.
          {System.out.println("Image XObject " + indirectObject.getReference() + " couldn't be extracted (filter: " + header.get(PdfName.Filter) + ")");}
        }
      }
    }
   
    return true;
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

  public XRefStream(
    File file
    )
  {
    this(
      new PdfDictionary(
        new PdfName[]
          {PdfName.Type},
        new PdfDirectObject[]
          {PdfName.XRef}
        ),
      new Buffer(),
      file
      );
    PdfDictionary header = getHeader();
    for(Entry<PdfName,PdfDirectObject> entry : file.getTrailer().entrySet())
    {
      PdfName key = entry.getKey();
      if(key.equals(PdfName.Root)
        || key.equals(PdfName.Info)
        || key.equals(PdfName.ID))
      {header.put(key,entry.getValue());}
    }
  }
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

      indexArray.add(new PdfInteger(prevObjectNumber-((PdfInteger)indexArray.get(indexArray.size()-1)).getValue()+1)); // Number of entries in the previous subsection.
    }

    // 2. Header.
    {
      final PdfDictionary header = getHeader();
      header.put(
        PdfName.Index,
        indexArray
        );
      header.put(
        PdfName.Size,
        new PdfInteger(file.getIndirectObjects().size()+1)
        );
      header.put(
        PdfName.W,
        new PdfArray(
          new PdfInteger(entryFieldSizes[0]),
          new PdfInteger(entryFieldSizes[1]),
          new PdfInteger(entryFieldSizes[2])
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

      entries = new TreeMap<Integer,XRefEntry>();

      final IBuffer body = getBody();
      if(body.getLength() > 0)
      {
        final PdfDictionary header = getHeader();
        final int size = ((PdfInteger)header.get(PdfName.Size)).getValue();
        final int[] entryFieldSizes;
        {
          final PdfArray entryFieldSizesObject = (PdfArray)header.get(PdfName.W);
          entryFieldSizes = new int[entryFieldSizesObject.size()];
          for(int index = 0, length = entryFieldSizes.length; index < length; index++)
          {entryFieldSizes[index] = ((PdfInteger)entryFieldSizesObject.get(index)).getValue();}
        }

        final PdfArray subsectionBounds;
        if(header.containsKey(PdfName.Index))
        {subsectionBounds = (PdfArray)header.get(PdfName.Index);}
        else
        {
          subsectionBounds = new PdfArray();
          subsectionBounds.add(new PdfInteger(0));
          subsectionBounds.add(new PdfInteger(size));
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

      // 1. Header.
      stream.write(TrailerChunk);

      // 2. Body.
      // Update its entries:
      PdfDictionary trailer = file.getTrailer();
      // * Size
      trailer.put(PdfName.Size,new PdfInteger(xrefSize));
      // * Prev
      if(parser == null)
      {trailer.remove(PdfName.Prev);} // [FIX:0.0.4:5] It (wrongly) kept the 'Prev' entry of multiple-section xref tables.
      else
      {trailer.put(PdfName.Prev,new PdfInteger((int)parser.retrieveXRefOffset()));}
      // Serialize its contents!
      trailer.writeTo(stream); stream.write(Chunk.LineFeed);

      // 3. Tail.
      writeTail(startxref);
    }
    catch(Exception e)
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

    )
  {
    /*
      NOTE: 'Win' entry may be undefined.
    */
    PdfDictionary parametersObject = (PdfDictionary)getBaseDataObject().get(PdfName.Win);
    if(parametersObject == null)
      return null;

    return new WinParametersObject(parametersObject,getContainer());
  }
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

      String fileName
      )
    {
      super(
        context.getFile(),
        new PdfDictionary()
        );

      setFileName(fileName);
    }
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

    )
  {
    if(reference == null)
      return null;

    PdfDictionary dataObject = (PdfDictionary)reference.getDataObject();
    PdfName fieldType = (PdfName)dataObject.get(PdfName.FT);
    PdfInteger fieldFlags = (PdfInteger)dataObject.get(PdfName.Ff);
    int fieldFlagsValue = (fieldFlags == null ? 0 : fieldFlags.getRawValue());
    if(fieldType.equals(PdfName.Btn)) // Button.
    {
      if((fieldFlagsValue & FlagsEnum.Pushbutton.getCode()) > 0) // Pushbutton.
        return new PushButton(reference);
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

    Widget widget
    )
  {
    this(widget.getBaseObject());

    PdfDictionary baseDataObject = getBaseDataObject();
    baseDataObject.put(PdfName.FT, fieldType);
    baseDataObject.put(PdfName.T, new PdfTextString(name));
  }
View Full Code Here

Examples of org.pdfclown.objects.PdfDictionary

  {
    StringBuilder buffer = new StringBuilder();
    {
      Stack<String> partialNameStack = new Stack<String>();
      {
        PdfDictionary parent = getBaseDataObject();
        while(parent != null)
        {
          partialNameStack.push(((PdfTextString)parent.get(PdfName.T)).getValue());
          parent = (PdfDictionary)parent.resolve(PdfName.Parent);
        }
      }
      while(!partialNameStack.isEmpty())
      {
        if(buffer.length() > 0)
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.