[英]ABCpdf, render an HTML within a “template”: How to add margin?
我正在嘗試在預定義的PDF模板(例如,框架內)中呈現HTML。模板/框架應到達邊緣。 但是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
重置為實際紙張的大小(在doc.Rect
情況下為A4):
doc.Rect.String = "A4";
現在,我可以遍歷所有頁面並將模板添加到其中:
for (var i = 1; i <= doc.PageCount; i++)
{
doc.PageNumber = i;
doc.AddImageDoc(template, 1, doc.Rect);
doc.Flatten();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.