Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用itextsharp(asp.net,C#)在pdf中的图像上方和下方添加文本_C#_Asp.net_Itextsharp - Fatal编程技术网

使用itextsharp(asp.net,C#)在pdf中的图像上方和下方添加文本

使用itextsharp(asp.net,C#)在pdf中的图像上方和下方添加文本,c#,asp.net,itextsharp,C#,Asp.net,Itextsharp,我使用memorystream将图像转换为字节[],然后使用itextsharp将字节[]添加到pdf中。 现在我的要求是在图像上方添加一个特定的文本,它提供了一些关于图像的信息 这是我的密码 private void generatepdf(byte[] byteImage) { iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(byteImage); image.ScalePercent(0.3f

我使用memorystream将图像转换为
字节[]
,然后使用itextsharp将
字节[]
添加到pdf中。 现在我的要求是在图像上方添加一个特定的文本,它提供了一些关于图像的信息

这是我的密码

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对象。或者有没有更好的方法来指引我正确的方向

你可以这样试试

        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();
            }
        }
你可以这样试试

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

谢谢,它工作了,但是,我如何设置该文本/图像在pdf中的位置。我尝试了Image.SetAbsolutePostion(X,Y)作为图像,但没有成功。告诉我你想做什么我想将文本设置在一个特定的位置,即pdf中的(X,Y)坐标。谢谢,它起到了作用,但是,如何在pdf中设置文本/图像的位置。我尝试了Image.setAbsolutePosition(X,Y)作为图像,但没有成功。告诉我你想做什么我想将文本设置在一个特定的位置,即pdf中的(X,Y)坐标。