我iTextSharp
用于将HTML
页面转换为PDF
。我正在使用这里提供的帮助程序类,并且还尝试了使用StyleSheet.LoadTagStyle()
CSS。但是似乎没有任何作用。有什么见解吗?
编辑
我可以添加这样的样式-
.mystyle
{
color: red;
width: 400px;
}
使用以下代码-
StyleSheet css = new StyleSheet();
css.LoadStyle("mystyle", "color", "red");
css.LoadStyle("mystyle", "width", "400px");
但是,当我拥有复杂的样式时会发生什么?
div .myclass
{
/*some styles*/
}
td a.hover
{
/*some styles*/
}
td .myclass2
{
/*some styles*/
}
.myclass .myinnerclass
{
/*some styles*/
}
如何使用iTextSharp添加它?
使用StyleSheet.LoadTagStyle()使您处在正确的轨道上。
基本上,这是一个四步过程:
这是一个简单的HTTP处理程序:
<%@ WebHandler Language='C#' Class='styles' %>
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text;
using iTextSharp.text.pdf;
public class styles : IHttpHandler {
public void ProcessRequest (HttpContext context) {
HttpResponse Response = context.Response;
Response.ContentType = "application/pdf";
string Html = @"
<h1>h1</h1>
<p>A paragraph</p>
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>";
StyleSheet styles = new StyleSheet();
styles.LoadTagStyle(HtmlTags.H1, HtmlTags.FONTSIZE, "16");
styles.LoadTagStyle(HtmlTags.P, HtmlTags.FONTSIZE, "10");
styles.LoadTagStyle(HtmlTags.P, HtmlTags.COLOR, "#ff0000");
styles.LoadTagStyle(HtmlTags.UL, HtmlTags.INDENT, "10");
styles.LoadTagStyle(HtmlTags.LI, HtmlTags.LEADING, "16");
using (Document document = new Document()) {
PdfWriter.GetInstance(document, Response.OutputStream);
document.Open();
List<IElement> objects = HTMLWorker.ParseToList(
new StringReader(Html), styles
);
foreach (IElement element in objects) {
document.Add(element);
}
}
}
public bool IsReusable {
get { return false; }
}
}
您需要版本5.0.6才能运行上面的代码。对解析HTML的支持已大大改善。
问题内容: 我正在我的网站上工作,每当我在CSS文件中添加一些新行时,它只是不想使用我所做的行。 但是,他们应该没事。 举个例子。 CSS文件只在某一部分起作用,但是从某处开始只是停止使用我的文件。但是,它链接在< head >中。 我的HTML代码如下(请注意,这只是代码的一部分): 有人知道解决方案吗? 问题答案: 我忘了在CSS文件中关闭。这就是为什么所有代码都没有显示在页面上的原因。
我读了很多关于SO的帖子,并搜索了很多解决方案,所有这些似乎都回避了我的特定问题。 是否有一种方法可以使用正确的页面大小将现有的PDF复制到新文档中? 谢谢。 更新 接受了布鲁诺的建议,我仔细检查了剪裁框和媒体框。我正在使用的PDF两者都有。裁剪框数组为 但是这样做会使“文本”向右和顶部移动太多,留下不均匀的边距。 我发现通过改变左下角的坐标,裁剪框,我可以移动文本。事实上,将裁剪框设置为40、4
我正在使用一个基于Symfony的react应用程序,并试图使用react-datepicker模块包含一个datepicker。 我可以创建datepicker对象,但它的样式似乎不正确——当我单击选择日期时,页面顶部只有一个垂直的数字列表(我看到很多人在网上经历过这种情况,通常是因为他们没有导入datepicker css)。 我正在导入react-datepicker.css文件,如果我在浏
我想使用iTextSharp和rectangle(0,100,600,155)裁剪PDF文件。一切都很好,当你打开创建的*.pdf文件时,你只能看到裁剪的内容,但是!如果你解析那个pdf,仍然有信息和文本来自不可见的文档部分,我不能接受。如何完全删除该数据? 不幸的是,如果我想在不支付许可证的情况下将我的应用程序商业化,我就不能使用这些代码,所以我不得不考虑不同的库...
我用的是iTextSharp。dll将我的页面打印为pdf。我唯一的问题是pdf显示了我在页面上的CSS和JavaScript。有没有一种方法可以将iTextSharp设置为不显示CSS/JS? 是的,我把我的CSS/JS直接输入到. aspx页面——因为这是一个小项目。当然,对于一个大项目,我会把它分开。 编辑 这是我当前写入页面的语法
iTextSharp 是用来生成 PDF 文档的 C# 组件,相当于 Java 版的 iText。