2013-06-17 6 views
2

다음 코드는 폼의 컨트롤에서 비트 맵을 만든 다음 JPEG로 저장 대화 상자를 표시합니다. 누구든지 iTextSharp와 함께 PDF로 비트 맵 bm을 저장하는 코드를 도울 수 있습니까?C# iTextSharp로 비트 맵 저장

Bitmap bm = null; 
bm = new Bitmap(this.RCofactorTBS.SelectedTab.Width, this.RCofactorTBS.SelectedTab.Height); 
this.RCofactorTBS.SelectedTab.DrawToBitmap(bm, this.RCofactorTBS.SelectedTab.ClientRectangle); 

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.Filter = "JPEG|*.jpeg"; 
dialog.Title = "Save Test As Jpeg"; 
dialog.ShowDialog(); 

if (dialog.FileName != "" && bm != null) 
{ 
    bm.Save(dialog.FileName); 
} 

답변

7

System.Drawing.Image image = System.Drawing.Image.FromFile("Your image file path"); 
      Document doc = new Document(PageSize.A4); 
      PdfWriter.GetInstance(doc, new FileStream("image.pdf", FileMode.Create)); 
      doc.Open(); 
      iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Jpeg); 
      doc.Add(pdfImage); 
      doc.Close(); 

는 생각이 먼저 파일에 이미지를 저장하지 않는 것입니다 here

+0

에서 참조 시도 할 수 있습니다. 파일에 먼저 저장하지 않고 "bm"개체를 pdf에 저장하려고합니다. – Glen

+0

비트 맵을 이미지에 직접 전달할 수 있습니다. –

+0

당신의 PdfWriter를 사용하고 있습니다, 메신저 iTextSharp를 사용하고 있습니까? – Glen

0
public void exportarPDF(Bitmap img){   
    // System.Drawing.Image image = System.Drawing.Image.FromFile("C://snippetsource.jpg"); Aca graba con un archivo fisico 
    System.Drawing.Image image = img; //Here I passed a bitmap 
    Document doc = new Document(PageSize.A4); 
    PdfWriter.GetInstance(doc, new FileStream("C://image.pdf", FileMode.Create)); 
    doc.Open(); 
    iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(image, 
      System.Drawing.Imaging.ImageFormat.Jpeg); 
    doc.Add(pdfImage); 
    doc.Close(); 
} 
+2

이 코드가 질문에 대답하는 이유에 대한 설명 (영어로, 대부분의 사용자는 스페인어로 된 설명을 사용하기가 어려움)에서 [편집]하십시오. 코드 전용 답변은 솔루션을 가르치지 않기 때문에 [낙담] (http://meta.stackexchange.com/q/148272/274165)입니다. –

+0

@NathanTuggy 여기에 영어로 된 코멘트가 있습니다. // 여기 비트 맵 이미지를 전달했습니다. – JB06