JPG to PDF Convertor в С#
Я хотел бы конвертировать из изображения (например, jpg или png) в PDF.
Я проверил ImageMagickNET, но это слишком сложно для моих нужд.
Какие еще .NET-решения или код существуют для преобразования изображения в PDF?
Ответы
Ответ 1
iTextSharp делает это довольно чисто и является открытым исходным кодом. Кроме того, он очень хорошая сопроводительная книга автора, которую я рекомендую, если вы закончите делать более интересные вещи, такие как управление формами. Для нормального использования в списках рассылки и в группах новостей есть много ресурсов для образцов того, как делать общие вещи.
EDIT: как указано в @Chirag comment, @Darin answer имеет код, который определенно компилируется с помощью текущие версии.
Использование примера:
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);
}
}
}
Забастовкa >
Ответ 2
Легко с 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();
}
}
}
Ответ 3
Нам очень повезло с PDFSharp (мы используем его для преобразования TIFF и Text в PDF для сотен медицинских заявлений каждый день).
http://pdfsharp.com/PDFsharp/
Ответ 4
Такая задача может быть легко выполнена с помощью Docotic.Pdf library.
Вот пример, который создает 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);
}
}
Отказ от ответственности: я работаю для поставщика библиотеки.
Ответ 5
Другой рабочий код, попробуйте
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());
}
}
Ответ 6
не уверен, что вы ищете только бесплатные решения с открытым исходным кодом или с учетом коммерческих. Но если вы включаете коммерческие решения, есть инструментарий под названием EasyPDF SDK, который предлагает API для преобразования изображений (плюс ряд других типов файлов) в PDF. Он поддерживает С# и может быть найден здесь:
http://www.pdfonline.com/
Код С# выглядит следующим образом:
Printer oPrinter = new Printer();
ImagePrintJob oPrintJob = oPrinter.ImagePrintJob;
oPrintJob.PrintOut(imageFile, pdfFile);
Чтобы быть полностью прозрачным, я должен отказаться от того, что я действительно работаю над создателями EasyPDF SDK (отсюда и моя ручка), поэтому это предложение не лишено какой-либо личной предубежденности:) Но не стесняйтесь проверить версию eval, интересно. Ура!
Ответ 7
Много инструментов для сравнения. Я использую PrimoPDF (БЕСПЛАТНО) http://www.primopdf.com/, который вы отправляете для печати файла, и вы печатаете его в формате pdf на свой диск. работает в Windows