【问题标题】:ABCpdf, render an HTML within a "template": How to add margin?ABCpdf,在“模板”中呈现 HTML:如何添加边距?
【发布时间】:2015-06-01 03:01:36
【问题描述】:

我正在尝试在预定义的 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 没有这个选项。

【问题讨论】:

  • 您找到添加页边距的方法了吗?¿ 谢谢!
  • 嘿,我在这里问过,也许你可以帮助我,或者如果有人回答我,你也可以得到答案。

标签: c# pdf-generation abcpdf


【解决方案1】:

这是我如何解决问题的方法:

首先,我设置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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多