C#でのJPGからPDFへのコンバーター
-
10-07-2019 - |
質問
画像(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ライブラリを使用して簡単に実行できます。
これは、指定された画像(実際にはJPGだけでなく)からPDFを作成するサンプルです。
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のメーカーのために働いていることを否認する必要があります(したがって私のハンドルです)ので、この提案には個人的な偏りがないわけではありません:)再興味があります。乾杯!
多くのdiffツールがあります。私が使用しているのは、PrimoPDF(無料) http://www.primopdf.com/ です。ファイルを作成し、それをドライブにpdf形式で印刷します。 Windowsで動作します