質問

画像(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への変換に使用しています)。

http://pdfsharp.com/PDFsharp/

別の作業コード、試してみてください

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で動作します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top