画像(jpgやpngなど)からPDFに変換したい。
私はチェックアウトしました ImageMagickNET ですが、私のニーズには複雑すぎます。
画像をPDFに変換するための他の.NETソリューションまたはコードはありますか?
iTextSharp は非常にクリーンで、オープンソースです。また、それは 著者による非常に優れた付随する本 を持っています。フォームの管理など、もっと面白いことをしてしまう場合にお勧めします。通常の使用方法については、メーリングリストやニュースグループに、一般的なことを行う方法のサンプルに関する豊富なリソースがあります。
編集: @ Chiragのコメント で言及したように、- @ Darinの回答 には、確実に現在のバージョンでコンパイルできるコードがあります。
使用例:
public static void ImagesToPdf(string[] imagepaths, string pdfpath) { using(var doc = new iTextSharp.text.Document()) { iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pdfpath, FileMode.Create)); doc.Open(); foreach (var item in imagepaths) { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(item); doc.Add(image); } } }
簡単 iTextSharp :
class Program
{
static void Main(string[] args)
{
Document document = new Document();
using (var stream = new FileStream("test.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
PdfWriter.GetInstance(document, stream);
document.Open();
using (var imageStream = new FileStream("test.jpg", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
var image = Image.GetInstance(imageStream);
document.Add(image);
}
document.Close();
}
}
}
私たちが幸運だったのはPDFSharpです(TIFFとテキストにPDF毎日数百の医療請求の変換に使用しています))。
別の作業コード、試してください
public void ImagesToPdf(string[] imagepaths, string pdfpath)
{
iTextSharp.text.Rectangle pageSize = null;
using (var srcImage = new Bitmap(imagepaths[0].ToString()))
{
pageSize = new iTextSharp.text.Rectangle(0, 0, srcImage.Width, srcImage.Height);
}
using (var ms = new MemoryStream())
{
var document = new iTextSharp.text.Document(pageSize, 0, 0, 0, 0);
iTextSharp.text.pdf.PdfWriter.GetInstance(document, ms).SetFullCompression();
document.Open();
var image = iTextSharp.text.Image.GetInstance(imagepaths[0].ToString());
document.Add(image);
document.Close();
File.WriteAllBytes(pdfpath+"cheque.pdf", ms.ToArray());
}
}
このようなタスクは Docotic.Pdfライブラリ を使用して簡単に実行できます。
以下は、与えられた画像から実際にPDF(JPGだけでなく)を作成する)サンプルです:
public static void imagesToPdf(string[] images, string pdfName)
{
using (PdfDocument pdf = new PdfDocument())
{
for (int i = 0; i < images.Length; i++)
{
if (i > 0)
pdf.AddPage();
PdfPage page = pdf.Pages[i];
string imagePath = images[i];
PdfImage pdfImage = pdf.AddImage(imagePath);
page.Width = pdfImage.Width;
page.Height = pdfImage.Height;
page.Canvas.DrawImage(pdfImage, 0, 0);
}
pdf.Save(pdfName);
}
}
免責事項:私はライブラリのベンダーのために働いています。
無料/オープンソースのソリューションを探しているのか、商用のソリューションも検討しているのかどうかはわかりません。しかし、商用ソリューションを含める場合は、EasyPDF SDKと呼ばれるツールキットがあり、画像(および他の多くのファイルタイプ)をPDFに変換するためのAPIを提供します。それはC#をサポートし、ここで見つけることができます:
http://www.pdfonline.com/
C#コードは次のようになります。
Printer oPrinter = new Printer();
ImagePrintJob oPrintJob = oPrinter.ImagePrintJob;
oPrintJob.PrintOut(imageFile, pdfFile);
完全に透明にするために、私はEasyPDF SDKのメーカー(したがって私のハンドル)のために働いていることを放棄する必要があります。そのため、この提案には個人的な偏見がないわけではありません。乾杯!