Java Tutorial/PDF/Image
Версия от 17:44, 31 мая 2010;  (обсуждение)
Содержание
- 1 Add image to an existing Pdf document
- 2 Black and White
- 3 Convert java.awt.Image to com.lowagie.text.Image
- 4 Create chunk from Image
- 5 Get Image height and width
- 6 Image Absolute Position
- 7 Image Alignment
- 8 Image Mask
- 9 Image transition
- 10 Image Wrapping
- 11 Pattern Matrix for an image
- 12 Red and Yellow
- 13 Rotate 30 degrees
- 14 Rotate 45 degrees
- 15 Scale Absolute
- 16 Scale Percent
- 17 Scale Percent:/td>
Add image to an existing Pdf document
import java.io.FileOutputStream;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
public class MainClass {
  public static void main(String[] args) throws Exception {
    PdfReader reader = new PdfReader("HelloWorldRead.pdf");
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("HelloWorldStamper2.pdf"));
    Image img = Image.getInstance("watermark.jpg");
    img.setAbsolutePosition(200, 400);
    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    PdfContentByte under, over;
    int total = reader.getNumberOfPages() + 1;
    for (int i = 1; i < total; i++) {
      stamper.setRotateContents(false);
      under = stamper.getUnderContent(i);
      under.addImage(img);
    }
    stamper.close();
  }
}
   
   
Black and White
import java.awt.Color;
import java.awt.Toolkit;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Rectangle r = new Rectangle(PageSize.A4);
    r.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
    Document document = new Document(r);
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage("dog.gif");
    com.lowagie.text.Image img1 = com.lowagie.text.Image.getInstance(awtImage, null, true);
    document.add(img1);
    
    document.close();
  }
}
   
   
Convert java.awt.Image to com.lowagie.text.Image
import java.awt.Color;
import java.awt.Toolkit;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Rectangle r = new Rectangle(PageSize.A4);
    r.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
    Document document = new Document(r);
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage("dog.gif");
    com.lowagie.text.Image img1 = com.lowagie.text.Image.getInstance(awtImage, null);
    document.add(img1);
    
    document.close();
  }
}
   
   
Create chunk from Image
import java.io.FileOutputStream;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Chunk fox = new Chunk(Image.getInstance("fox.gif"), 0, -15);
    Chunk dog = new Chunk(Image.getInstance("dog.gif"), 0, -15);
    Paragraph p = new Paragraph("Quick brown ");
    p.add(fox);
    p.add(dog);
    document.add(p);
    document.close();
  }
}
   
   
Get Image height and width
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg1 = Image.getInstance("dog.jpg");
    jpg1.scalePercent(80);
    jpg1.setRotation((float) Math.PI / 6);
    document.add(new Paragraph("rotate 30 degrees"));
    document.add(jpg1);
    document.add(new Paragraph("Original width: " + jpg1.width() + "; original height: "
        + jpg1.height()));    
    document.close();
  }
}
   
   
Image Absolute Position
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    com.lowagie.text.Image img = null;
    Document document = new Document(new Rectangle(200, 280));
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    img = com.lowagie.text.Image.getInstance("dog.png");
    img.setAbsolutePosition(15, 15);
    document.add(img);
    document.close();
  }
}
   
   
Image Alignment
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    document.add(new Phrase("foxdog.jpg"));
    Image img1 = Image.getInstance("foxdog.jpg");
    img1.setAlignment(Image.LEFT);
    document.add(img1);
    document.add(new Phrase("foxdog.gif"));
    Image img2 = Image.getInstance("foxdog.gif");
    img2.setAlignment(Image.MIDDLE);
    document.add(img2);
    document.add(new Phrase("foxdog.png"));
    Image img3 = Image.getInstance("foxdog.png");
    img3.setAlignment(Image.RIGHT);
    document.add(img3);
    document.close();
  }
}
   
   
Image Mask
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    byte circledata[] = { (byte) 0x3c, (byte) 0x7e, (byte) 0xe7, (byte) 0xc3, (byte) 0xc3,
        (byte) 0xe7, (byte) 0x7e, (byte) 0x3c };
    Image mask = Image.getInstance(8, 8, 1, 1, circledata);
    mask.makeMask();
    mask.setInvertMask(true);
    Image img = Image.getInstance("dog.jpg");
    img.setImageMask(mask);
    document.add(img);
    document.add(Image.getInstance(8, 8, 1, 1, circledata));
    document.add(mask);
    document.close();
  }
}
   
   
Image transition
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image img = Image.getInstance("dog.jpg");
    img.setAbsolutePosition(50, 600);
    document.add(img);
    img.setAbsolutePosition(50, 300);
    document.add(img);
    document.close();
  }
}
   
   
Image Wrapping
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Phrase p = new Phrase("this is a test. ");
    Image img1 = Image.getInstance("foxdog.jpg");
    img1.setAlignment(Image.RIGHT | Image.TEXTWRAP);
    document.add(img1);
    for (int i = 0; i < 20; i++)
      document.add(p);
    Image img2 = Image.getInstance("foxdog.gif");
    img2.setAlignment(Image.MIDDLE | Image.UNDERLYING);
    document.add(img2);
    for (int i = 0; i < 30; i++)
      document.add(p);
    document.close();
  }
}
   
   
Pattern Matrix for an image
import java.awt.Color;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.CMYKColor;
import com.lowagie.text.pdf.PatternColor;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPatternPainter;
import com.lowagie.text.pdf.PdfShading;
import com.lowagie.text.pdf.PdfShadingPattern;
import com.lowagie.text.pdf.PdfSpotColor;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.ShadingColor;
import com.lowagie.text.pdf.SpotColor;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    PdfContentByte cb = writer.getDirectContent();
    PdfSpotColor psc_cmyk = new PdfSpotColor("iTextSpotColorCMYK", 0.25f, new CMYKColor(0.3f, .9f,
        .3f, .1f));
    SpotColor sc_cmyk = new SpotColor(psc_cmyk);
    Image img = Image.getInstance("dog.jpg");
    PdfPatternPainter img_pattern = cb.createPattern(img.scaledWidth(), img.scaledHeight(), img
        .scaledWidth(), img.scaledHeight());
    img_pattern.addImage(img, img.scaledWidth(), 0f, 0f, img.scaledHeight(), 0f, 0f);
    img_pattern.setPatternMatrix(1f, 0f, 0f, 1f, 60f, 60f);
    PatternColor img_color = new PatternColor(img_pattern);
    document.add(new Paragraph("This is a paragraph painted using an image pattern", new Font(
       Font.HELVETICA, 24, Font.BOLD, img_color)));
    document.close();
  }
}
   
   
Red and Yellow
import java.awt.Color;
import java.awt.Toolkit;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Rectangle r = new Rectangle(PageSize.A4);
    r.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
    Document document = new Document(r);
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage("dog.gif");
    com.lowagie.text.Image img1 = com.lowagie.text.Image.getInstance(awtImage, new Color(0xFF,
        0xFF, 0x00));
    document.add(img1);
    
    document.close();
  }
}
   
   
Rotate 30 degrees
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg1 = Image.getInstance("dog.jpg");
    jpg1.scalePercent(80);
    jpg1.setRotation((float) Math.PI / 6);
    document.add(new Paragraph("rotate 30 degrees"));
    document.add(jpg1);
    document.close();
  }
}
   
   
Rotate 45 degrees
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg1 = Image.getInstance("dog.jpg");
    jpg1.scalePercent(80);
    jpg1.setRotationDegrees(45);
    document.add(jpg1);
   
    document.close();
  }
}
   
   
Scale Absolute
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg = Image.getInstance("dog.jpg");
    jpg.scaleAbsolute(154, 94);
    document.add(new Paragraph("scaleAbsolute(154, 94)"));
    document.add(jpg);
    document.close();
  }
}
   
   
Scale Percent
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg = Image.getInstance("dog.jpg");
    jpg.scalePercent(50);
    document.add(new Paragraph("scalePercent(50)"));
    document.add(jpg);
    document.close();
  }
}
   
   
Scale Percent:/td>
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    document.open();
    Image jpg = Image.getInstance("dog.jpg");
    jpg.scalePercent(100, 50);
    document.add(new Paragraph("scalePercent(100, 50)"));
    document.add(jpg);
    document.close();
  }
}
   
