using System; using System.Collections.Generic; using System.IO; using iText.IO.Image; using iText.IO.Source; using iText.IO.Util; using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; namespace iText.Highlevel.Chapter03 { /// Bruno Lowagie (iText Software) public class C03E19_PagedImages { public const String TEST1 = "../../../resources/img/test/animated_fox_dog.gif"; public const String TEST2 = "../../../resources/img/test/amb.jb2"; public const String TEST3 = "../../../resources/img/test/marbles.tif"; public const String DEST = "../../../results/chapter03/paged_images.pdf"; public static void Main(String[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new C03E19_PagedImages().CreatePdf(DEST); } public virtual void CreatePdf(String dest) { PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); Document document = new Document(pdf); Image img; // Animated GIF Uri url1 = UrlUtil.ToURL(TEST1); IList list = ImageDataFactory.CreateGifFrames(url1); foreach (ImageData data in list) { img = new iText.Layout.Element.Image(data); document.Add(img); } // JBIG2 Uri url2 = UrlUtil.ToURL(TEST2); IRandomAccessSource ras2 = new RandomAccessSourceFactory().CreateSource(url2); RandomAccessFileOrArray raf2 = new RandomAccessFileOrArray(ras2); int pages2 = Jbig2ImageData.GetNumberOfPages(raf2); for (int i = 1; i <= pages2; i++) { img = new iText.Layout.Element.Image(ImageDataFactory.CreateJbig2(url2, i)); document.Add(img); } // TIFF Uri url3 = UrlUtil.ToURL(TEST3); IRandomAccessSource ras3 = new RandomAccessSourceFactory().CreateSource(url3); RandomAccessFileOrArray raf3 = new RandomAccessFileOrArray(ras3); int pages3 = TiffImageData.GetNumberOfPages(raf3); for (int i_1 = 1; i_1 <= pages3; i_1++) { img = new iText.Layout.Element.Image(ImageDataFactory.CreateTiff(url3, true, i_1, true)); document.Add(img); } document.Close(); } } }