2016-05-26 2 views
0

Я преобразовал изображение в byte[], используя memystream, а затем добавил byte[] в pdf, используя itextsharp. Теперь мое требование - добавить определенный текст над изображением, который дает некоторую информацию об изображении.Добавить текст выше и ниже изображения в pdf с помощью itextsharp (asp.net, C#)

это мой код

private void generatepdf(byte[] byteImage) 
    { 
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(byteImage); 
    image.ScalePercent(0.3f * 100); 
    using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream()) 
    { 
     Document document = new Document(PageSize.A4, 188f, 88f, 10f, 10f); 
     PdfWriter writer = PdfWriter.GetInstance(document, memoryStream); 
     document.Open(); 
     document.Add(image); 
     document.Close(); 
     byte[] bytes = memoryStream.ToArray(); 
     memoryStream.Close(); 

     Response.Clear(); 
     Response.ContentType = "application/pdf"; 
     Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf"); 
     Response.ContentType = "application/pdf"; 
     Response.Buffer = true; 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.BinaryWrite(bytes); 
     Response.End(); 
    } 

Как я могу добавить текст и конвертировать в байтах, а затем отправить его через к объекту PDF. Или есть лучший способ вести меня в правильном направлении.

ответ

2

вы можете попробовать, как этот

 private void generatepdf(byte[] byteImage) 
     { 
      iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(byteImage); 
      image.ScalePercent(0.3f * 100); 
      using (MemoryStream memoryStream = new System.IO.MemoryStream()) 
      { 
       Document document = new Document(PageSize.A4, 188f, 88f, 10f, 10f); 
       PdfWriter writer = PdfWriter.GetInstance(document, memoryStream); 

       string text1 = "before image"; 
       Paragraph text1Title = new Paragraph(text1); 

       string text2 = "after image"; 
       Paragraph text2Title = new Paragraph(text2); 

       document.Open(); 
       document.Add(text1Title); 
       document.Add(image); 
       document.Add(text2Title); 
       document.Close(); 
       byte[] bytes = memoryStream.ToArray(); 
       memoryStream.Close(); 

       Response.Clear(); 
       Response.ContentType = "application/pdf"; 
       Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf"); 
       Response.ContentType = "application/pdf"; 
       Response.Buffer = true; 
       Response.Cache.SetCacheability(HttpCacheability.NoCache); 
       Response.BinaryWrite(bytes); 
       Response.End(); 
      } 
     } 
+0

Спасибо, это сработало, однако, как я могу установить положение этого текста/изображения в формате PDF. Я попробовал Image.SetAbsolutePostion (X, Y) для изображения, но тщетно. –

+0

скажите мне, что вы хотите сделать –

+0

Я хочу установить текст в определенном положении, то есть (X, Y) координаты в pdf. –

Смежные вопросы