2014-12-24 2 views
0

У меня есть два изображения, и я хочу преобразовать их в один файл PDF с одним изображением на странице ... Что это самый простой способ сделать это на C#?Два изображения в один файл в формате PDF по одному изображению на страницу

Edit: Я попытался следующий код (добавил PdfSharp ссылка):

string source1 = @"MySource1.JPG"; 
string source2 = @"MySource2.JPG"; 
string destinaton = @"MyDest.pdf"; 

PdfDocument doc = new PdfDocument(); 
doc.Pages.Add(new PdfPage()); 
doc.Pages.Add(new PdfPage()); 

XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]); 
XImage img = XImage.FromFile(source1); 

XGraphics xgr2 = XGraphics.FromPdfPage(doc.Pages[1]); 
XImage img2 = XImage.FromFile(source2); 

xgr.DrawImage(img, 0, 0); 
xgr2.DrawImage(img2, 0, 0); 
doc.Save(destinaton); 
doc.Close(); 

Теперь создать PDF с моими двумя страницами, но теперь проблема в том, что изображения обрезаются и не в их оригинале размер! размер изображений - 3264x2448. Как я могу исправить размер изображения до размера документа PDF?

+1

[Aspose.Pdf] (http://www.aspose.com/.net/pdf-component.aspx) или [Spire.Pdf] (http://www.e-iceblue.com/Introduce/pdf -для-нетто-introduce.html). –

+0

Я не пробовал что-то до сих пор, если у кого-то есть простой код, который выполняет эту задачу, пожалуйста, напишите ... –

+0

wow ** если у кого-то есть простой код ** !!! Это не работает здесь. Вы должны попробовать, а затем сообщить нам, что не работает. – TheVillageIdiot

ответ

1

Есть несколько перегруженные DrawImage. Используйте перегрузку, которая позволяет указать размер получателя изображения.

Три строки кода позволяют рассчитать размер изображения, чтобы использовать полную страницу (с запасом по желанию), сохраняя соотношение сторон.

1

Если вы знаете размер PDF документ, вы можете изменить размер изображения, как:

Bitmap objBitmap = new Bitmap(objImage, new Size(size1, size2)); 

где objImage является исходное изображение.

или как:

public static Image resizeImage(Image imgToResize, Size size) 
    { 
     return (Image)(new Bitmap(imgToResize, size)); 
    } 

    objBitmap = resizeImage(objBitmap, new Size(size1,size2));