【问题标题】:HR tag is not implemented in iTextSharpHR 标签未在 iTextSharp 中实现
【发布时间】:2013-06-11 18:39:13
【问题描述】:

我在使用 HTMLWorker 时遇到标签 HR 的一个问题,我的代码是:

var document = new Document(PageSize.A4, 50, 50, 25, 25);
var output = new MemoryStream();
var writer = PdfWriter.GetInstance(document, output);
document.Open();
String contents = File.ReadAllText("C://TemplateCotizaciones//Cotizacion.html");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader (contents), null);

但是,当html中包含一个标签HR时,HTMLWorker的ParseToList方法抛出异常“nullReferenceException”

例如: 我有错误:

hello<br/>
<hr>
world

并且没有错误

hello<br/>

world

你知道为什么吗?我认为 HR 没有在 ParseToList 的代码中实现。 你知道如何在 html 中写一行而不用 html 中的 HR(由 HTMLWorker.ParseToList 支持)吗?

感谢您的建议和帮助

【问题讨论】:

  • 会和&lt;hr/&gt;一起接受吗?
  • 是的,但错误仍然存​​在
  • 发现这个:itext-general.2136553.n4.nabble.com/… 说要改用 XMLWorker。
  • 它不起作用,我更改为 var worker = new HTMLWorker(document);
  • 是的,它不支持。我也用
    检查了它。

标签: c# html itextsharp


【解决方案1】:

HTMLWorker 已弃用。 XMLWorker 仍受支持,但不是实现“html 到 pdf”功能的最新方式。 pdfHTML 是用于将 HTML 转换为 pdf 的最新 iText7 插件。 它支持 HTML5 和 CSS3。

一个小代码示例:

public void createPdf(String src, String dest, String resources) throws IOException {
    try {
        FileOutputStream outputStream = new FileOutputStream(dest);

        WriterProperties writerProperties = new WriterProperties();
        //Add metadata
        writerProperties.addXmpMetadata();

        PdfWriter pdfWriter = new PdfWriter(outputStream, writerProperties);

        PdfDocument pdfDoc = new PdfDocument(pdfWriter);
        pdfDoc.getCatalog().setLang(new PdfString("en-US"));
        //Set the document to be tagged
        pdfDoc.setTagged();
        pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));

        //Set meta tags
        PdfDocumentInfo pdfMetaData = pdfDoc.getDocumentInfo();
        pdfMetaData.setAuthor("Samuel Huylebroeck");
        pdfMetaData.addCreationDate();
        pdfMetaData.getProducer();
        pdfMetaData.setCreator("iText Software");
        pdfMetaData.setKeywords("example, accessibility");
        pdfMetaData.setSubject("PDF accessibility");
        //Title is derived from html

        // pdf conversion
        ConverterProperties props = new ConverterProperties();
        FontProvider fp = new FontProvider();
        fp.addStandardPdfFonts();
        fp.addDirectory(resources);//The noto-nashk font file (.ttf extension) is placed in the resources

        props.setFontProvider(fp);
        props.setBaseUri(resources);
        //Setup custom tagworker factory for better tagging of headers
        DefaultTagWorkerFactory tagWorkerFactory = new AccessibilityTagWorkerFactory();
        props.setTagWorkerFactory(tagWorkerFactory);

        HtmlConverter.convertToPdf(new FileInputStream(src), pdfDoc, props);
        pdfDoc.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

通过http://itextpdf.com/itext7/pdfHTML了解更多信息

【讨论】:

    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 2013-10-27
    • 2012-01-21
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多