gpt4 book ai didi

asp.net - iTextSharp - MVC/HTMLWorker 将一个字符串添加到段落中

转载 作者:行者123 更新时间:2023-12-02 10:56:34 27 4
gpt4 key购买 nike

我使用 Ajax 将 Telerik MVC Editor 的内容作为字符串发送到 Controller :我出来的是:

"<strong>Hello world!</strong> <object height=\"1\" id=\"plugin0\" style=\"position:absolute;z-index:1000;\" type=\"application/x-dgnria\" width=\"1\"><param name=\"tabId\" value=\"{84594B7B-865F-4AD7-A798-294A8B0EB376}\" /></object>"

在 Controller 中,我使用以下命令将字符串保存到 session 变量中:

        string comments = HttpUtility.HtmlDecode(Text);
MySession.Current.pdfText = comments;

我可以使用将其转换为 PDF

.....
HTMLWorker parser = new HTMLWorker(document);
.......

但是我无法将任何其他段落添加到同一页面,它会创建一个新页面。

我尝试使用以下内容使用 HTMLWORK 创建一个新段落:

    string PDFText = MySession.Current.pdfText;
string PDFText1 = HTMLWorker.Parse(PDFText);
StringReader reader = new StringReader(PDFText1);
paragraph.Add(reader);

我收到这些错误:

cannot convert from 'System.IO.StringReader' to 'string', and
The best overloaded method match for 'iTextSharp.text.html.simpleparser.HTMLWorker.Parse(System.IO.TextReader)' has some invalid arguments, and
The best overloaded method match for 'iTextSharp.text.Phrase.Add(string)' has some invalid arguments

非常感谢您的建议,提前致谢。

最佳答案

我在 iTextSharp 上做了很多工作,我通常遵循创建表或嵌套表的方法;如果需要,可以使用多行和多列,并使用 colspan 在页面上展开我的内容。

PdfPTable table = new PdfPTable(1);            //Create a new table with one column
PdfPCell cell = new PdfPCell(); //Create an empty cell
StyleSheet style = new StyleSheet(); //Declare a stylesheet
style.LoadTagStyle("h1", "color", "red"); //Create styles for your html tags which you think will be there in PDFText
ArrayList objects = HTMLWorker.ParseToList(new StringReader(PDFText),style); //This transforms your HTML to a list of PDF compatible objects
for (int k = 0; k < objects.Count; ++k)
{
cell.AddElement((IElement)objects[k]); //Add these objects to cell one by one
}
table.AddCell(cell); //Add cell to table
document.add(table) //Add table to the document

就像您在问题中尝试的那样,尝试使用该段落一次。否则这种方法肯定不会产生新页面。

编辑:

请查看更新后的代码

PdfPTable table = new PdfPTable(2);                //Create a new table with one column
PdfPCell cellLeft = new PdfPCell(); //Create an empty cell
StyleSheet style = new StyleSheet(); //Declare a stylesheet
style.LoadTagStyle("h1", "color", "red"); //Create styles for your html tags which you think will be there in PDFText
List<IElement> objects = HTMLWorker.ParseToList(new StringReader(PDFText),style); //This transforms your HTML to a list of PDF compatible objects
for (int k = 0; k < objects.Count; ++k)
{
cellLeft.AddElement((IElement)objects[k]); //Add these objects to cell one by one
}
table.AddCell(cellLeft); //Add cell to table
string url = "http://localhost:1713/PDF/Images/sample.jpg"; //Image Path(can give local machine path for testing)
PdfPCell cellRight = new PdfPCell();
Image jpg = Image.GetInstance(new Uri(url));
cellRight.AddElement(jpg);
table.AddCell(cellRight);
document.add(table);

请谷歌搜索内边距、边距、边框和颜色等信息。

关于asp.net - iTextSharp - MVC/HTMLWorker 将一个字符串添加到段落中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com