Я использую ItextSharp lib для написания PDF. Я должен напечатать имя студента в шаблоне сертификата PDF. Я не могу выровнять имя студента по центру с фиксированной координатой y.
private byte[] CreatePDF2(UserCourseViewModel userCourse)
{
PdfReader reader = new PdfReader(new RandomAccessFileOrArray(Request.MapPath("/Templates/Certificate.pdf")), null);
Rectangle size = reader.GetPageSizeWithRotation(1);
Document doc = new Document(size);
using (MemoryStream output = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(doc, output);
doc.Open();
PdfContentByte cb = writer.DirectContent;
cb.BeginText();
try
{
PdfImportedPage page = writer.GetImportedPage(reader, 1);
cb.AddTemplate(page,0,0);
cb.SetFontAndSize(BaseFont.CreateFont(), 24);
cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "Student Name", (size.Width) / 2, 350, 0);
}
finally
{
cb.EndText();
}
doc.Close();
return output.ToArray();
}
По-видимому, Y-координата верна, поскольку координата x находится не в центре. Я не могу понять, каким образом, независимо от имени студента, он всегда будет горизонтально центрирован на сертификате.
Я открыт для любого другого инструмента, так как мое требование очень простое, мне просто нужно открыть шаблон PDF и написать имя студента в сертификате курса. (ITextSharp кажется слишком сложным для этой задачи)