我需要使用少量html页面创建单个pdf。实际上HTML有表格。每个HTML(表)都有不同的列数,因此它必须导出具有不同的oriontations的pdf。
例如:
根据上面的场景,需要出现第一个带有纵向模式的html页面和带有横向的第二个html页面。
在下面的“代码块02” lst 是一个包含2个属性的列表。 (请参阅'Code Block 01') 如果 lst Oriantation指定为0,则将其视为横向和其他肖像。
代码块01
public class PdfExportDoc
{
public int Oriantation { get; set; }
public string Html { get; set; }
}
除方向外,所有工作正常。
代码块02
using (var ms = new MemoryStream())
{
using (var doc = new Document())
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
foreach (var ele in lst)
{
using (var srHtml = new StringReader(ele.Html))
{
if (ele.Oriantation == 0)
{
doc.SetPageSize(PageSize.A4.Rotate());
}
else
{
doc.SetPageSize(PageSize.A4);
}
XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml);
doc.NewPage();
}
}
doc.Close();
}
}
bytes = ms.ToArray();
}
htmlPg1数据拖动2页,htmlPg2只有一个。这就是数据的格式。
但实际上我需要这样的pdf。
请告诉我这样做的方向。
答案 0 :(得分:0)
这解决了我的问题。 我明白布鲁诺。您已在删除的答案中说过,如果新页面为空白,则不会添加新页面。所以我在创建paraseXHtml之前和之后都添加了doc.NewPage。多亏了你以前的指示。
function checkMojang() {
var mojangStatus = mojang.status();
mojangStatus.then(function (message) {
var response = JSON.parse(message);
for (i = 0; i < response.length; i++) { // iterate over response array
var item = response[i]; // get item from array
var key = Object.keys(item)[0]; // get the key of the item
var value = item[key]; // get the value of the item
if (value === 'yellow' || value === 'red') {
// do something, like adding it to a list
}
}
});
}