1) Replace the CreateDocument() method with the following code:
Code: Select all
//This method, along with CreateDocument() allow the printing of a Clinical History of more than one page.
private void butPrintMedical_Click(object sender,EventArgs e) {
MigraDoc.DocumentObjectModel.Document doc = CreateDocument();
MigraDoc.Rendering.Printing.MigraDocPrintDocument printdoc = new MigraDoc.Rendering.Printing.MigraDocPrintDocument();
MigraDoc.Rendering.DocumentRenderer renderer = new MigraDoc.Rendering.DocumentRenderer(doc);
renderer.PrepareDocument();
printdoc.Renderer = renderer;
try
{
pd = new PrintDocument();
if (PrinterL.SetPrinter(pd, PrintSituation.Default))
{
printdoc.PrinterSettings = pd.PrinterSettings;
printdoc.Print();
}
}
catch
{
MessageBox.Show(Lan.g(this, "Printer not available"));
}
}
Code: Select all
//This is a new method to create a MigraDoc object to print a Clinical History with more than one page
private MigraDoc.DocumentObjectModel.Document CreateDocument()
{
MigraDoc.DocumentObjectModel.Document doc = new MigraDoc.DocumentObjectModel.Document();
doc.DefaultPageSetup.PageWidth = MdDoc.Unit.FromInch(8.5);
doc.DefaultPageSetup.PageHeight = MdDoc.Unit.FromInch(11);
doc.DefaultPageSetup.TopMargin = MdDoc.Unit.FromInch(.5);
doc.DefaultPageSetup.LeftMargin = MdDoc.Unit.FromInch(.5);
doc.DefaultPageSetup.RightMargin = MdDoc.Unit.FromInch(.5);
MigraDoc.DocumentObjectModel.Section section = doc.AddSection();
string text;
MigraDoc.DocumentObjectModel.Font headingFont = MigraDocHelper.CreateFont(13, true);
MigraDoc.DocumentObjectModel.Font subHeadingFont = MigraDocHelper.CreateFont(10, true);
MigraDoc.DocumentObjectModel.Font bodyFontx = MigraDocHelper.CreateFont(9, false);
MigraDoc.DocumentObjectModel.Font nameFontx = MigraDocHelper.CreateFont(9, true);
MigraDoc.DocumentObjectModel.Font totalFontx = MigraDocHelper.CreateFont(9, true);
MdDoc.Paragraph par = section.AddParagraph();
MdDoc.ParagraphFormat parformat = new MdDoc.ParagraphFormat();
parformat.Alignment = MdDoc.ParagraphAlignment.Center;
parformat.Font = MigraDocHelper.CreateFont(10, true);
par.Format = parformat;
text = Lan.g(this, "Medical History For ") + PatCur.FName + " " + PatCur.LName;
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
text = Lan.g(this, "Birthdate: ") + PatCur.Birthdate.ToShortDateString();
par.AddText(text);
par.AddLineBreak();
text = Lan.g(this, "Created ") + DateTime.Now.ToString();
par.AddText(text);
par.AddLineBreak();
if (gridDiseases.Rows.Count > 0)
{
MigraDocHelper.InsertSpacer(section, 20);
par = section.AddParagraph();
par.Format.Alignment = MdDoc.ParagraphAlignment.Center;
text = Lan.g(this, "Problems");
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
MigraDocHelper.InsertSpacer(section, 10);
MigraDocHelper.DrawGrid(section, gridDiseases);
}
if (gridAllergies.Rows.Count > 0)
{
MigraDocHelper.InsertSpacer(section, 20);
par = section.AddParagraph();
par.Format.Alignment = MdDoc.ParagraphAlignment.Center;
text = Lan.g(this, "Allergies");
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
MigraDocHelper.InsertSpacer(section, 10);
MigraDocHelper.DrawGrid(section, gridAllergies);
}
MigraDocHelper.InsertSpacer(section, 20);
par = section.AddParagraph();
par.Format.Alignment = MdDoc.ParagraphAlignment.Left;
text = Lan.g(this, "Premedicate (PAC or other): ") + (checkPremed.Checked ? "Y" : "N");
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
par.AddLineBreak();
MigraDocHelper.InsertSpacer(section, 20);
text = Lan.g(this, "Medical Urgent Note");
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
text = textMedUrgNote.Text;
par.AddText(text);
par.AddLineBreak();
par.AddLineBreak();
MigraDocHelper.InsertSpacer(section, 20);
text = Lan.g(this, "Medical Summary");
par.AddFormattedText(text, headingFont);
par.AddLineBreak();
text = textMedical.Text;
par.AddFormattedText(text);
par.AddLineBreak();
text = Lan.g(this, "Medical History - Complete and Detailed");
//MigraDocHelper.InsertSpacer(section, 10);
par = section.AddParagraph();
par.AddFormattedText(text, headingFont);
par.Format.Alignment = MdDoc.ParagraphAlignment.Left;
par.Format.Font = bodyFontx;
par.AddLineBreak();
text = textMedicalComp.Text;
par = section.AddParagraph(text);
par.Format.Alignment = MdDoc.ParagraphAlignment.Left;
par.AddLineBreak();
return doc;
}