簡體   English   中英

ABCpdf,在“模板”中呈現HTML:如何增加邊距?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM