using System;
using System.Collections.Generic;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.codec;
namespace TIFtoPDF
{
class Program
{
//将多个tif文件合并成一个pdf文件
private static void tifToPdf(IEnumerable<string> arr, string sFilePdf)
{
FileInfo _toFile
= new FileInfo
(sFilePdf
);
// 创建一个文档对象
Document doc
= new Document
(PageSize
.A3,
0,
0,
0,
0);
int pages = 0;
FileStream fs
=new FileStream
(sFilePdf,FileMode
.OpenOrCreate);
// 定义输出位置并把文档对象装入输出对象中
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
// 打开文档对象
doc.Open();
foreach(string sFileTif in arr)
{
PdfContentByte cb = writer.DirectContent;
RandomAccessFileOrArray ra
= new RandomAccessFileOrArray
(sFileTif
);
int comps = TiffImage.GetNumberOfPages(ra);
for (int c = 0; c < comps; ++c)
{
Image img = TiffImage.GetTiffImage(ra, c + 1);
if (img != null)
{
img.ScalePercent(7200f / img.DpiX, 7200f / img.DpiY);
doc
.SetPageSize(new Rectangle
(img
.ScaledWidth, img
.ScaledHeight));
img.SetAbsolutePosition(0,0);
cb.AddImage(img);
doc.NewPage();
++pages;
}
}
ra.Close();// 关闭
}
// 关闭文档对象,释放资源
doc.Close();
}
public static void Main(string[] args)
{
tifToPdf
(new string[]{@"C:\test.tif"},
@"C:\test.pdf");
}
}
}