Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.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
C# ITextSharp HTML到PDF转换CSS图像在转换后不显示_C#_Css_Pdf_Pdf Generation_Itext - Fatal编程技术网

C# ITextSharp HTML到PDF转换CSS图像在转换后不显示

C# ITextSharp HTML到PDF转换CSS图像在转换后不显示,c#,css,pdf,pdf-generation,itext,C#,Css,Pdf,Pdf Generation,Itext,我正在尝试将带有CSS的HTML转换为Pdf,并且已经成功了。但是,一旦我尝试从CSS向div添加图像,转换后的Pdf将不会显示图像 这是我的密码 用于Pdf内容类型 public ActionResult GeneratePdf() { var cssText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Ope

我正在尝试将带有CSS的HTML转换为Pdf,并且已经成功了。但是,一旦我尝试从CSS向div添加图像,转换后的Pdf将不会显示图像

这是我的密码

用于Pdf内容类型

  public ActionResult GeneratePdf()
                        {
                            var cssText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.css");
                            var htmlText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.html");

                            var cssArray = cssText.Trim().Split('}');

                            var cssClassesString = string.Join("} ", cssArray);

                            var memoryStream = new MemoryStream();
                            var document = new Document();
                            var writer = PdfWriter.GetInstance(document, memoryStream);
                            document.Open();

                            using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssClassesString)))
                            {
                                using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(htmlText)))
                                {
                                    XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream);
                                }
                            }

                            document.Close();

                            var pdfContent = new PdfContent
                            {
                                MemoryStream = memoryStream,
                                FileName = "SomeName"
                            };
                            return pdfContent;
                        }
                .main_div{background-color:#F8F8F8; vertical-align:center; z-index:1000000; border-width:1px; border-style:solid ;border-radius: 2px;border-color: #E0E0E0; width:400px; height:200px}
                .text_one{color: #003300;}
                .text_two{color: #0000ca;}
                .text_three{color: #e40000;}
                .tbl_page{
                    margin-top: 5px;
                    color: black;
                    background-color: cornsilk;
                    display: block;
                    border-style: solid;
                    border-color: wheat;
                    border-width: 1px;;
                    border-radius: 5px;
                    font-family: "Times New Roman", Times, serif;
                    font-size: 12px;
                    white-space: normal;
                    line-height: normal;
                }

                .tbl_cell{
                    background-color: honeydew;
                }

                td, th {
                    display: table-cell;
                }

                .tbr_raw{
                    background-color: #66CCFF;
                    text-align: center;
                }

                .image_div_background{
                    background-image: url('violin-clip-art-violin-clip-art-1.jpg');
                    height: 400px; width: 400px;
                }
使用制度; 使用System.IO; 使用System.Web.Mvc

            namespace MvcApplication1.Helpers
            {
                public class PdfContent : ActionResult
                {
                    public MemoryStream MemoryStream { get; set; }
                    public string FileName { get; set; }

                    public override void ExecuteResult(ControllerContext context)
                    {
                        if (context == null)
                        {
                            throw new ArgumentNullException("context");
                        }

                        var response = context.HttpContext.Response;
                        response.ContentType = "pdf/application";
                        response.AddHeader("content-disposition", "attachment;filename=" + FileName + ".pdf");
                        response.OutputStream.Write(MemoryStream.GetBuffer(), 0, MemoryStream.GetBuffer().Length);
                    }
                }
            }
调用Pdf的操作

  public ActionResult GeneratePdf()
                        {
                            var cssText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.css");
                            var htmlText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.html");

                            var cssArray = cssText.Trim().Split('}');

                            var cssClassesString = string.Join("} ", cssArray);

                            var memoryStream = new MemoryStream();
                            var document = new Document();
                            var writer = PdfWriter.GetInstance(document, memoryStream);
                            document.Open();

                            using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssClassesString)))
                            {
                                using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(htmlText)))
                                {
                                    XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream);
                                }
                            }

                            document.Close();

                            var pdfContent = new PdfContent
                            {
                                MemoryStream = memoryStream,
                                FileName = "SomeName"
                            };
                            return pdfContent;
                        }
                .main_div{background-color:#F8F8F8; vertical-align:center; z-index:1000000; border-width:1px; border-style:solid ;border-radius: 2px;border-color: #E0E0E0; width:400px; height:200px}
                .text_one{color: #003300;}
                .text_two{color: #0000ca;}
                .text_three{color: #e40000;}
                .tbl_page{
                    margin-top: 5px;
                    color: black;
                    background-color: cornsilk;
                    display: block;
                    border-style: solid;
                    border-color: wheat;
                    border-width: 1px;;
                    border-radius: 5px;
                    font-family: "Times New Roman", Times, serif;
                    font-size: 12px;
                    white-space: normal;
                    line-height: normal;
                }

                .tbl_cell{
                    background-color: honeydew;
                }

                td, th {
                    display: table-cell;
                }

                .tbr_raw{
                    background-color: #66CCFF;
                    text-align: center;
                }

                .image_div_background{
                    background-image: url('violin-clip-art-violin-clip-art-1.jpg');
                    height: 400px; width: 400px;
                }
CSS类

  public ActionResult GeneratePdf()
                        {
                            var cssText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.css");
                            var htmlText = System.IO.File.ReadAllText(@"C:\Users\sansa\Desktop\Ground Operations\HTMLResources\grace.html");

                            var cssArray = cssText.Trim().Split('}');

                            var cssClassesString = string.Join("} ", cssArray);

                            var memoryStream = new MemoryStream();
                            var document = new Document();
                            var writer = PdfWriter.GetInstance(document, memoryStream);
                            document.Open();

                            using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssClassesString)))
                            {
                                using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(htmlText)))
                                {
                                    XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream);
                                }
                            }

                            document.Close();

                            var pdfContent = new PdfContent
                            {
                                MemoryStream = memoryStream,
                                FileName = "SomeName"
                            };
                            return pdfContent;
                        }
                .main_div{background-color:#F8F8F8; vertical-align:center; z-index:1000000; border-width:1px; border-style:solid ;border-radius: 2px;border-color: #E0E0E0; width:400px; height:200px}
                .text_one{color: #003300;}
                .text_two{color: #0000ca;}
                .text_three{color: #e40000;}
                .tbl_page{
                    margin-top: 5px;
                    color: black;
                    background-color: cornsilk;
                    display: block;
                    border-style: solid;
                    border-color: wheat;
                    border-width: 1px;;
                    border-radius: 5px;
                    font-family: "Times New Roman", Times, serif;
                    font-size: 12px;
                    white-space: normal;
                    line-height: normal;
                }

                .tbl_cell{
                    background-color: honeydew;
                }

                td, th {
                    display: table-cell;
                }

                .tbr_raw{
                    background-color: #66CCFF;
                    text-align: center;
                }

                .image_div_background{
                    background-image: url('violin-clip-art-violin-clip-art-1.jpg');
                    height: 400px; width: 400px;
                }
这段代码将生成一个干净的HTML到Pdf的转换
除此之外,它不会在转换文件中显示应用于div背景的图像

我还尝试通过CSS将图像分配给div,但不起作用,因此当我尝试在div标记中添加带有scr属性的img标记时,它将对我起作用

试试这个

<div class="image_div_background">
<img scr="www.yourDomineName.com/violin-clip-art-violin-clip-art-1.jpg"/>
<div>


希望它对你完全有效

我不能使用内联样式我不是说你应用了内联css你只是通过img元素添加背景图像css的其余部分编写css文件你能提供html或aspx页面吗?让我们来取而代之。