using (var ms = new MemoryStream())
using (var document = new Document())
{
using (var writer = PdfWriter.GetInstance(document, ms))
{
document.Open();
document.SetMargins(30, 60, 60, 60);
using (var strReader = new StringReader(htmlToExport))
{
//Set factories
var htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
//Set css
var cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver (false);
// cssResolver.AddCssFile(HttpContext.Current.Server.MapPath ("~/Content/bootstrap.min.css"),
// true);
cssResolver.AddCssFile("http://localhost:8902/Content/bootstrap.css", true);
//Export
var pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker);
xmlParse.Parse(strReader);
xmlParse.Flush();
}
document.Close();
}
}
我无法在iText7中找到相关的例子来完全满足上面的要求。
您不再需要显式地传递/添加CSS文件,pdfHTML(Html2Pdf曾经是内部开发名称)可以拾取链接在HTML中的样式表。如果CSS与HTML不在同一文件夹中,您可能需要定义一个基本资源位置。
在HTML中,在标题中添加以下一行
<link rel="stylesheet" type="text/css" href="bootstrap.css"/>
的转换代码将它们添加到
File pdf = new File(pdfDest);
pdf.getParentFile().mkdirs();
PdfWriter writer = new PdfWriter(pdfDest);
PdfDocument pdfDoc = new PdfDocument(writer);
ConverterProperties converterProperties = new ConverterProperties().setBaseUri(resourceLoc);
HtmlConverter.convertToPdf(new FileInputStream(htmlSource), pdfDoc, converterProperties);
pdfDoc.close();
我正在遵循这个位置中指定的示例,将现有的HTML转换为可访问的PDF。 https://developers.itextpdf.com/de/content/itext-7-examples/itext-7-converting-html-pdf/pdfhtml-accessible-pdf-创建 有没有一种方法可以将CSS作为字符串传递给PDF转换器,而不是在html文件本身中指定它?我需要根据
我只是无法在c中转换不同的数据类型,我知道c是一种强类型语言,所以我在这里使用了,但我面临一个问题,错误消息是 从“std::string{aka std::basic_string}类型转换为“int”类型的static_
问题内容: 我有一个包含HTML标记的字符串变量。该HTML标记基本上表示电子邮件内容。 现在,我想从该字符串内容创建一个图像,该图像实际上包含HTML标记。我不想通过将这些内容写入它们来创建HTML文件。我只想使用此字符串创建图像文件。 这是我所拥有的: 如何从该字符串内容创建图像? 问题答案: 感谢大家的回应。我使用HtmlRenderer外部dll(库)来实现相同目的,并在下面的代码中找到了
从java中字符串的值创建对现有对象的引用 在我的项目中,有很多按钮(目前大约70个);每个按钮都会在数据库的jlabel中提出一个问题。现在,根据用户的选择,每个按钮(swings的jButton)将被分配颜色,这取决于用户是否想查看问题,或者他是否标记了问题的答案。 一种方法是为每个jbutton的actionperformed编码,并在每个jbutton中使用if-else来获得确切的颜色,
问题内容: 我正在开发Chrome扩展程序,我希望用户能够添加自己的CSS样式来更改扩展程序页面(而非网页)的外观。我已经研究过使用,但是似乎要分割规则,并且不允许您插入完整的样式表。有没有可以让我使用字符串在页面上创建新样式表的解决方案? 我目前不使用jQuery或类似的产品,因此最好使用纯Javascript解决方案。 问题答案: 有两种方法可以完成此操作,但是最简单的方法是创建一个元素,设置
问题内容: 问题:转弯 进入 Perl支持可以在替换字符串中使用的“ \ L”操作。 模式类不支持此操作: 此类不支持的Perl构造:[…]预处理操作\ l \ u,\ L和\ U。 https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html 问题答案: 您无法在Java正则表达式中执行此操作。您必须使用和手动进行