ABCpdf,在 "template" 中呈现 HTML:如何添加边距?
ABCpdf, render an HTML within a "template": How to add margin?
我正在尝试在预定义的 PDF 模板内(例如在框架内)呈现 HTML。template/frame 应该到达边缘。但是 HTML 不应该那样做。所以我只需要 HTML 的某种保证金。到目前为止,这是我的代码:
var doc = new Doc();
doc.MediaBox.String = "A4";
doc.Rect.String = doc.MediaBox.String;
var id = doc.AddImageUrl(url.ToString());
doc.AddImageDoc("template.pdf", 1, doc.MediaBox);
while (doc.Chainable(id))
{
doc.Page = doc.AddPage();
id = doc.AddImageToChain(id);
doc.AddImageDoc("template.pdf", 1, doc.MediaBox);
}
for (var i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.Flatten();
}
我明白了,可以将 Rect 传递给 #AddImageDoc
。但是 #AddImageUrl
.
没有这个选项
以下是我解决问题的方法:
首先,我设置 doc.Rect
的位置和边距:
doc.Rect.Position(15, 15);
doc.Rect.Width = pageWidth - 2*15;
doc.Rect.Height = pageHeight - 2*15;
然后我用解析后的图像填充文档 URL:
var id = doc.AddImageUrl(url.ToString());
while (doc.Chainable(id))
{
doc.Page = doc.AddPage();
id = doc.AddImageToChain(id);
}
在此之后,我将 doc.Rect
重置为实际纸张的大小(在 ma 情况下:A4):
doc.Rect.String = "A4";
现在我可以遍历所有页面并将模板添加到它们:
for (var i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.AddImageDoc(template, 1, doc.Rect);
doc.Flatten();
}
我正在尝试在预定义的 PDF 模板内(例如在框架内)呈现 HTML。template/frame 应该到达边缘。但是 HTML 不应该那样做。所以我只需要 HTML 的某种保证金。到目前为止,这是我的代码:
var doc = new Doc();
doc.MediaBox.String = "A4";
doc.Rect.String = doc.MediaBox.String;
var id = doc.AddImageUrl(url.ToString());
doc.AddImageDoc("template.pdf", 1, doc.MediaBox);
while (doc.Chainable(id))
{
doc.Page = doc.AddPage();
id = doc.AddImageToChain(id);
doc.AddImageDoc("template.pdf", 1, doc.MediaBox);
}
for (var i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.Flatten();
}
我明白了,可以将 Rect 传递给 #AddImageDoc
。但是 #AddImageUrl
.
以下是我解决问题的方法:
首先,我设置 doc.Rect
的位置和边距:
doc.Rect.Position(15, 15);
doc.Rect.Width = pageWidth - 2*15;
doc.Rect.Height = pageHeight - 2*15;
然后我用解析后的图像填充文档 URL:
var id = doc.AddImageUrl(url.ToString());
while (doc.Chainable(id))
{
doc.Page = doc.AddPage();
id = doc.AddImageToChain(id);
}
在此之后,我将 doc.Rect
重置为实际纸张的大小(在 ma 情况下:A4):
doc.Rect.String = "A4";
现在我可以遍历所有页面并将模板添加到它们:
for (var i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.AddImageDoc(template, 1, doc.Rect);
doc.Flatten();
}