У меня была точно такая же проблема. В ответе используется цепочка, но страница, представленная в предыдущем ответе, не совсем показывает, как это сделать. Вот пример с моего сайта:
Обратите внимание, что переменная htmlOutput - это переменная в моем объекте, которая принимает значение htmlOutput, которое я хочу отобразить. Я собираю это со страницы либо просто вставив html непосредственно в переменную, либо, если это для текущей страницы, я запускаю защищенное переопределение void Render (вывод HtmlTextWriter) для Page, помещая содержимое Render в эту переменную htmlOutput. 1001 *
Doc theDoc = new Doc();
int theID;
theDoc.Page = theDoc.AddPage();
theID = theDoc.AddImageHtml(htmlOutput);
while (true)
{
theDoc.FrameRect(); // add a black border
if (!theDoc.Chainable(theID))
break;
theDoc.Page = theDoc.AddPage();
theID = theDoc.AddImageToChain(theID);
}
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
//reset back to page 1 so the pdf starts displaying there
if(theDoc.PageCount > 0)
theDoc.PageNumber = 1;
//now get your pdf content from the document
byte[] theData = theDoc.GetData();