我正在ASP.Net WebForms应用程序中使用iText 5 .NET (以前称为iTextSharp),以使用户生成ID卡。身份证需要卡片的整个区域作为信息,它们以2列的形式排列。
我在主布局中使用了表格,但无法将表格设置为全宽和全高。文档的边框和表格之间始终有一个区域。
我不知道文档是否具有默认填充或有什么问题。
是否可以将PDF文档中的表格设置为全角和全角?
这是现在的样子的图像:
已将表格的单元格着色为黄色和粉红色,以查看表格和说明。希望整个文档都是黄色和粉红色。
这是我的代码:
// 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);