Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-1306

Transparent PNG file display with black border

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.7.0
    • None
    • None

    Description

      Hi,

      I have added Transparent PNG file in PDF with PDFBox and it's display black border around image. I have added same PNG file with IText and it's display good in PDF.

      I have used below function to add PNG file. I am using latest PDFBox SVN code to add PNG file.

      public void createPDFFromImage( String inputFile, String image, String outputFile )
      throws IOException, COSVisitorException
      {
      // the document
      PDDocument doc = null;
      try
      {
      doc = PDDocument.load( inputFile );
      //we will add the image to the first page.
      PDPage page = (PDPage)doc.getDocumentCatalog().getAllPages().get( 0 );

      PDXObjectImage ximage = null;

      /*if( image.toLowerCase().endsWith( ".jpg" ) )

      { ximage = new PDJpeg(doc, new FileInputStream( image ) ); }

      else if (image.toLowerCase().endsWith(".tif") || image.toLowerCase().endsWith(".tiff"))

      { ximage = new PDCcitt(doc, new RandomAccessFile(new File(image),"r")); }

      else

      { BufferedImage awtImage = ImageIO.read( new File( image ) ); FileInputStream inputStream = new FileInputStream(image); PDStream stream = new PDStream(doc, inputStream); ximage = new PDPixelMap(stream); //throw new IOException( "Image type not supported:" + image ); }

      */

      System.out.println("Testing");
      BufferedImage stampImage = null;
      try

      { stampImage = ImageIO.read(new File(image)); }

      catch(Exception e)

      { e.printStackTrace(); }

      ximage = new PDJpeg(doc, stampImage );
      //ximage = new PDPixelMap(doc, stampImage);
      COSStream stream = ximage.getCOSStream();
      PDStream pdStream = new PDStream(stream);
      ximage = new PDPixelMap(pdStream);
      //BoxImage imageData = BoxImage.getInstance(image);

      //System.out.println(""+imageData.getImageType());
      PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true, true);
      AffineTransform transform = new AffineTransform(stampImage.getWidth(), 0, 0, stampImage.getHeight(), 20, 200);
      //contentStream.drawImage( ximage, 20, 20 );
      contentStream.drawXObject(ximage, transform);
      contentStream.close();
      doc.save( outputFile );
      }
      finally
      {
      if( doc != null )

      { doc.close(); }

      }
      }

      Attachments

        1. African_Elephant_Transparent.png
          95 kB
          Manoj Patel
        2. GeneratedFileIText.pdf
          125 kB
          Manoj Patel
        3. GeneratedFilePDFBox.pdf
          18 kB
          Manoj Patel
        4. iText_NEW.pdf
          80 kB
          Manoj Patel
        5. NEW.png
          3 kB
          Manoj Patel
        6. PDFBox_NEW.pdf
          101 kB
          Manoj Patel

        Activity

          People

            lehmi Andreas Lehmkühler
            patelmanoj Manoj Patel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: