Wed Mar 30, 2022 10:02 am
Hi again.
There is no file to read from, I read directly from CRM webservice
Environment Windows 10, Danish region settings
Console app dotnet 4.6
foreach (eqasia_labtest Labtest in Labtests.Entities.Skip(1))
{
PdfDocument doc = new PdfDocument();
PdfSection section1 = doc.Sections.Add();
section1.PageSettings.Orientation = PdfPageOrientation.Landscape;
section1.PageSettings.Size = PdfPageSize.A4;
PdfPageBase page = section1.Pages.Add();
PdfMargins pdfMargin = new PdfMargins();
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
pdfMargin.Left = unitCvtr.ConvertUnits(80f, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
pdfMargin.Right = unitCvtr.ConvertUnits(30f, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
pdfMargin.Top = unitCvtr.ConvertUnits(80f, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
pdfMargin.Bottom = unitCvtr.ConvertUnits(100f, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
int LabNameLength = ResultingName.Length;
// Load image to foreground
CreateImage(page);
if (Laboratory.Name != null)
{
WriteLaboratoryFirstName(Laboratory.Name, page, LabNameLength);
}
if (Laboratory.eqasia_Nameofinstiute != null)
{
WriteLaboratoryInstituteNameAndCountry(Laboratory.eqasia_Nameofinstiute + ", " + Laboratory.Address1_Country, page, LabNameLength);
}
PdfDocument destDoc = new PdfDocument();
float top = -40;
float bottom = -58;
float left = -60;
float right = -70;
foreach (PdfPageBase PDFpage in doc.Pages)
{
PdfPageBase newPage = destDoc.Pages.Add(PDFpage.Size, new PdfMargins(0));
newPage.Canvas.ScaleTransform((PDFpage.ActualSize.Width - left - right) / PDFpage.ActualSize.Width,
(PDFpage.ActualSize.Height - top - bottom) / PDFpage.ActualSize.Height);
newPage.Canvas.DrawTemplate(PDFpage.CreateTemplate(), new PointF(left, top));
}
destDoc.DocumentInformation.Author = "DTU";
destDoc.DocumentInformation.Title = "EARS-Net 2021 certificate of participation ";
destDoc.DocumentInformation.Producer = "DTU";
destDoc.SaveToFile(PathToSaveCertificate + "\\" + Laboratory.Address1_Country + "\\" + Laboratory.eqasia_Labnumber + ".pdf");
destDoc.Close();
} }
}
}
}
private static void WriteLaboratoryInstituteNameAndCountry(string ResultingName, PdfPageBase page, int labNameLength)
{
if (ResultingName.Length > 100)
{
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 10f, FontStyle.Bold));
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.Canvas.DrawString(ResultingName, font, brush, page.Canvas.ClientSize.Width / 2, 220, centerAlignment);
}
else
{
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 14f, FontStyle.Bold));
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.Canvas.DrawString(ResultingName, font, brush, page.Canvas.ClientSize.Width / 2, 220, centerAlignment);
}
}
private static void WriteLaboratoryFirstName(string ResultingName, PdfPageBase page, int NameLength)
{
if (ResultingName.Length > 100)
{
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 10f, FontStyle.Bold));
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.Canvas.DrawString(ResultingName, font, brush, page.Canvas.ClientSize.Width / 2, 200, centerAlignment);
}
else
{
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 14f, FontStyle.Bold));
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
page.Canvas.DrawString(ResultingName, font, brush, page.Canvas.ClientSize.Width / 2, 200, centerAlignment);
}
}
private static void CreateImage(PdfPageBase page)
{
PdfImage image = PdfImage.FromFile(@"c:\data\Certificate 2021.png");
float width = image.Width * 0.43f;
float height = image.Height * 0.43f;
page.Canvas.DrawImage(image, 20, 0, width, height);
}
}