0

我正在使用 ITextSharp 从 HTML 字符串创建 PDF。我已经编写了以下代码,但是如果 strReplace 是我的带有标签的 HTML 字符串,我如何在 C# 中使用 itextSharp 生成 PDF?

      MemoryStream PDFData = new MemoryStream();
      Document document = new Document(PageSize.LETTER, 50, 50, 80, 50);
      PdfWriter PDFWriter = PdfWriter.GetInstance(document, PDFData);
      PDFWriter.ViewerPreferences = PdfWriter.PageModeUseOutlines;


     document.Open();
     AddOutline(PDFWriter, "", document.PageSize.Height);

     document.Add(new Paragraph("\r\n"));

       StringBuilder strReplace = new StringBuilder();
       strReplace.Append(strTemplate);


                        var query = (from c in objAMSContainer.tblincomes
                                     join o in objAMSContainer.tblincomedetails on     c.colId equals o.ColId
                                     where c.colId == 9
                                     && c.colIsDeleted == false
                                     select new { c.colId, o.colQuantity, o.colPrice, o.colAmount }).ToList();

                        for (int j = 0; j < query.Count; j++)
                        {

                            // strReplace.Replace("[ITEM]", Convert.ToString(query[j].colId));
                            strReplace.Replace("${QTY}", Convert.ToString(query[j].colQuantity));
                            strReplace.Replace("${PRICE}", Convert.ToString(query[j].colPrice));
                            strReplace.Replace("${TOTAL}", Convert.ToString(query[j].colAmount));

                        }
4

1 回答 1

0

不是最好的方法,但您可以通过 iText 的 HTML 到 PDF 转换器运行它。

// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(strReplace);
MemoryStream stream = new MemoryStream(byteArray);


//get the XMLWorkerHelper Instance
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
//convert to PDF
worker.parseXHtml(PDFWriter , document, stream);

//close the document
   document.close();
   //close the writer
   pdfWriter.close();
于 2013-04-15T14:59:49.903 回答