如何使用itext 7从HTML div生成PDF并将其保存到.net中服务器上的文件夹中

问题描述 投票:1回答:1

我正在尝试创建一个CV构建器,将用户编辑的CV保存到项目中的文件夹中,以便通过电子邮件进行进一步处理,我已经达到了使用itext创建HTML div的PDF,但是没有CSS或我从数据库返回的任何文本值。通过一些研究,我发现我的问题可以通过使用itext 7和附加的pdfHTML来解决,但是找不到任何适当的例子来说明如何将它与我的ASP.NET代码一起使用。非常感谢任何帮助。

Bellow是我用于生成PDF的单击按钮事件的代码

    protected void ButtonDownload_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
   //Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);

    contentdiv.RenderControl(hw); //convert the div to PDF
    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    string filename = base.Server.MapPath("~/PDF/" + "UserCV.pdf");
    HttpContext.Current.Request.SaveAs(filename, false);
    Response.End();
}

qazxsw poi qazxsw poi HTML页面标题下方的文本是标签,其值通过从数据库中检索值来设置

c# asp.net itext
1个回答
0
投票

这是关于如何使用This picture shows the pdf result i get when i click the download button的示例

此示例非常广泛,因为它还设置了文档属性,并注册了自定义Font。

And this is html page it is trying to convert

}

这里最相关的是

pdfHTML

这基本上告诉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("Joris Schellekens"); pdfMetaData.addCreationDate(); pdfMetaData.getProducer(); pdfMetaData.setCreator("JS"); 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(); } 执行输入流的转换(由src指定),将内容放在 HtmlConverter.convertToPdf(new FileInputStream(src), pdfDoc, props); 中并使用给定的pdfHTML(由pdfDoc指定)。

© www.soinside.com 2019 - 2024. All rights reserved.