使用包含在 HTML 中的外部 CSS 类的 PdfSharp 从 HTML 片段创建 PDF
Posted
技术标签:
【中文标题】使用包含在 HTML 中的外部 CSS 类的 PdfSharp 从 HTML 片段创建 PDF【英文标题】:Create PDF from HTML snippet using PdfSharp having external CSS classes included in the HTML 【发布时间】:2015-09-24 13:15:11 【问题描述】:我想知道有什么办法可以
使用 PdfSharp
having external CSS
从 html sn-p 创建 PDFclasses included in the HTML
.
我找到了一种使用 HTML 内容生成 pdf 文件的方法,但我的 css 类没有应用于 PDF。
这是我对简单 html 字符串的处理方式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.Drawing;
using TheArtOfDev.HtmlRenderer.PdfSharp;
using PdfSharp;
public partial class _Default : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
PdfDocument pdf = PdfGenerator.GeneratePdf("<h1>tests</h1><p>test para</p>", PageSize.A4,20,null,null,null);
pdf.Save(@"C\testPDF.pdf");
这是它的生成方式:
但我想要的是包含这样的 HTML 字符串:
<h1>tests</h1><p class='para1'>test para</p>
有什么方法可以实现吗?使用不同的库不是问题,唯一的问题是使用的库应该是开源的。
【问题讨论】:
【参考方案1】:您可以将您的样式包含在 head 部分中,它将正确呈现:
var testHtml = @"<head>
<style>
.test
background-color: linen;
color: maroon;
</style>
</head>
<body class=""test"">
<p>
<h1>Hello World</h1>
This is html rendered text with css and image.
</p>
<p>
<img src=""http://fc62.deviantart.com/fs11/i/2006/236/d/e/The_Planet_Express_Ship_by_gasclown.jpg"" 100"" 100"">
</p>
</body>";
更多 - 您只需将 url 添加到样式表即可!
【讨论】:
我有这个问题。当我从头部删除 css 时,正在打印 pdf,但是使用样式,pdf 看起来像一个白页:/ @DiSaSteR 如果我理解正确,您想显示带有样式的 pdf,但打印时不带样式?在这种情况下,在删除 css 后,您需要重建 pdf 然后打印。也许你可以分享一个有问题的简单例子,然后我会帮助你。以上是关于使用包含在 HTML 中的外部 CSS 类的 PdfSharp 从 HTML 片段创建 PDF的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JS 将样式修改为 HTML 元素(使用 CSS 外部样式)?