使用itextsharp以pdf格式打印icard

时间:2012-06-12 07:29:38

标签: c# asp.net pdf itextsharp

我想创建一个带有Icard的PDF文件。

以下是代码:

iTextSharp.text.Font custFont = new iTextSharp.text.Font() { Size=6f};
int borderSize = 1;
Document IcardDoc = new Document(PageSize.HALFLETTER);
PdfWriter.GetInstance(IcardDoc, Response.OutputStream);
IcardDoc.Open();

PdfPTable icardTable = new PdfPTable(2);
iTextSharp.text.Image logoImage = iTextSharp.text.Image.GetInstance(Server.MapPath("~/images/logo.jpg"));
logoImage.WidthPercentage = 15f;
PdfPCell cell = new PdfPCell(logoImage, false);
cell.PaddingLeft = 10f;
cell.PaddingTop = 10f;
cell.PaddingBottom = 10f;
cell.PaddingRight = 10f;
cell.Colspan = 2;
cell.Border = 0;
cell.HorizontalAlignment = 1;
icardTable.AddCell(cell);
icardTable.AddCell(new PdfPCell(new Phrase("Name:", custFont)) { Border = borderSize });
icardTable.AddCell(new PdfPCell(new Phrase(student.firstname + " " + student.lastname, custFont)) { Border = borderSize });

打印文档尺寸为8.5厘米高,5.4厘米宽。

所以需要以这种方式适应它,是否有任何解决方案,因为上面的代码不适合页面上的表格和适当的大小?

任何其他格式也会像word等一样。

2 个答案:

答案 0 :(得分:1)

找到了解决方案:

Document IcardDoc = new Document(new Retangele(200f, 315f),35f,35f,0f,0f);

并相应地调整表格的宽度:

PdfPTable icardTable = new PdfPTable(2);
icardTable.WidthPercentage = 140f;

将表格精确地放在页面上,如果减少矩形width,则增加表格WidthPercentage,反之亦然。 您还需要关注Document类构造函数

中定义为35f的左右边距

这对我有用。

答案 1 :(得分:0)

var pgSize = new iTextSharp.text.Rectangle(1042, 651);
var doc = new iTextSharp.text.Document(pgSize, 0, 0, 0, 0);