Cop*_*ill 19 c# pdf jpeg image-conversion
我想从图像(如jpg或png)转换为PDF.
我已经查看了ImageMagickNET,但它对我的需求来说太复杂了.
还有哪些其他.NET解决方案或代码可用于将图像转换为PDF?
Dar*_*rov 28
使用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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Rub*_*ink 17
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
另一个工作代码,试试吧
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());
}
}
Run Code Online (Sandbox Code Playgroud)
我们非常幸运的一个是 PDFSharp(我们每天将它用于 TIFF 和文本到 PDF 的转换,以处理数百个医疗索赔)。