Blog

 
1:   using System;
2:   using System.IO;
3:   using System.Drawing.Imaging;
4:  
5:   using iTextSharp.text;
6:   using iTextSharp.text.pdf;
7:  
8:   namespace iTextSharp.tutorial.Chap06
9:   {
10:       /// <summary>
11:       /// TIFF and CCITT
12:       /// </summary>
13:       public class Chap0611 
14:       {
15:           
16:           public Chap0611() 
17:           {
18:               // creation of the document with a certain size and certain margins
19:               Document document = new Document(PageSize.A4, 50, 50, 50, 50);
20:               //Document.compress = false;
21:               try 
22:               {
23:                   // creation of the different writers
24:                   PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Chap0611.pdf", FileMode.Create));
25:  
26:                   System.Drawing.Bitmap bm = new System.Drawing.Bitmap("338814-00.tif");
27:                   int total = bm.GetFrameCount(FrameDimension.Page);
28:                               
29:                   Console.WriteLine("Number of images in this TIFF: " + total);
30:  
31:                   // Which of the multiple images in the TIFF file do we want to load
32:                   // 0 refers to the first, 1 to the second and so on.
33:                   document.Open();
34:                   PdfContentByte cb = writer.DirectContent;
35:                   for (int k = 0; k < total; ++k) 
36:                   {
37:                       bm.SelectActiveFrame(FrameDimension.Page, k);
38:                       Image img = Image.GetInstance(bm, null, true);
39:                       img.ScalePercent(72f / 200f * 100);
40:                       img.SetAbsolutePosition(0, 0);
41:                       Console.WriteLine("Image: " + k);
42:                       cb.AddImage(img);
43:                       document.NewPage();
44:                   }
45:                   document.Close();
46:               }
47:               catch (Exception de) 
48:               {
49:                   Console.Error.WriteLine(de.Message);
50:                   Console.Error.WriteLine(de.StackTrace);
51:               }
52:           }
53:       }
54:   }