2016-05-26 4 views
0

ich ein Bild umgewandelt habe in byte[] Memorystream und anschließend hinzugefügt, um die byte[] zu einem pdf iTextSharp verwenden. Jetzt ist meine Anforderung, einen bestimmten Text über dem Bild hinzuzufügen, der einige Informationen über das Bild gibt.Text oben und unten ein Bild in einer PDF-Datei mit iTextSharp (asp.net, C#)

dies ist mein Code

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(); 
    } 

Wie kann ich einen Text hinzufügen und in Bytes umwandeln und sie dann an das PDF-Objekt senden durch. Oder gibt es einen besseren Weg, um mich in die richtige Richtung zu führen?

Antwort

2

können Sie versuchen, wie diese

 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

Danke, es hat funktioniert, aber wie kann ich die Position dieses Text/Bild im pdf eingestellt. Ich habe Image.SetAbsolutePostion (X, Y) für Bild versucht, aber vergeblich. –

+0

sagen Sie mir, was Sie tun möchten –

+0

Ich möchte den Text an einer bestimmten Position, d. H. (X, Y) -Koordinaten in der PDF. –