PDF文档中iText 5 .NET表的完整宽度和高度

时间:2019-04-16 10:41:24

标签: asp.net itext

我正在ASP.Net WebForms应用程序中使用iText 5 .NET (以前称为iTextSharp),以使用户生成ID卡。身份证需要卡片的整个区域作为信息,它们以2列的形式排列。

我在主布局中使用了表格,但无法将表格设置为全宽和全高。文档的边框和表格之间始终有一个区域。

我不知道文档是否具有默认填充或有什么问题。

是否可以将PDF文档中的表格设置为全角和全角?

这是现在的样子的图像:

https://imgur.com/jgMHywP

已将表格的单元格着色为黄色和粉红色,以查看表格和说明。希望整个文档都是黄色和粉红色。

这是我的代码:

// PDF ERZEUGEN

// einmaligen Dateinamen erzeugen
Guid pdfDateiname = Guid.NewGuid();

string dateiendungPdf = ".pdf";
string pdfDateinameKomplett = Pfad + pdfDateiname + dateiendungPdf;

// Ausweisgrößen von Millimeter in Pixel umrechnen
float ausweishöhe = Utilities.MillimetersToPoints(Convert.ToSingle(54));
float ausweisbreite = Utilities.MillimetersToPoints(Convert.ToSingle(84.7));

// Viereck für die Ausweisgröße
iTextSharp.text.Rectangle ausweisgröße = new iTextSharp.text.Rectangle(ausweisbreite, ausweishöhe);

// Grundcontainer für das PDF
Document doc = new Document(ausweisgröße, 0, 0, 0, 0);

// Möglichkeit das PDF physikalisch in eine Datei zu schreiben
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(pdfDateinameKomplett, FileMode.Create));

writer.SetFullCompression();
writer.CloseStream = true;

// PDF-Grundcontainer für das Bestücken weiterer Elemente zugänglich machen
doc.Open();
doc.NewPage();

// 2-spaltiges Layout
PdfPTable aussenLayout = new PdfPTable(2);

//aussenLayout.WidthPercentage = 100;
aussenLayout.TotalWidth = ausweisbreite;
aussenLayout.LockedWidth = true;
aussenLayout.SpacingAfter = 0;
aussenLayout.SpacingBefore = 0;

// linke Spalte des Ausweises
PdfPCell linkeSpalte = new PdfPCell();
linkeSpalte.PaddingTop = Utilities.MillimetersToPoints(20);
linkeSpalte.Border = iTextSharp.text.Rectangle.NO_BORDER;
linkeSpalte.HorizontalAlignment = Element.ALIGN_LEFT;
linkeSpalte.BackgroundColor = BaseColor.YELLOW;

// Name Mitglied
iTextSharp.text.Font schriftMitgliedName = FontFactory.GetFont("Arial Narrow Bold", 10, BaseColor.BLACK);
Phrase labelMitgliedName = new Phrase(personObjekt.vorname + " " + personObjekt.nachname, schriftMitgliedName);
linkeSpalte.AddElement(labelMitgliedName);

// Name Stammverein

// Disziplinen
aussenLayout.AddCell(linkeSpalte);

// rechte Spalte des Ausweises
PdfPCell rechteSpalte = new PdfPCell();
rechteSpalte.PaddingTop = Utilities.MillimetersToPoints(20);
rechteSpalte.Border = iTextSharp.text.Rectangle.NO_BORDER;
rechteSpalte.HorizontalAlignment = Element.ALIGN_RIGHT;
rechteSpalte.BackgroundColor = BaseColor.PINK;

doc.Add(aussenLayout);

0 个答案:

没有答案