예제 #1
0
        public static Error ConvertHtmlFileToPDF(string sourceFile, string targetFile, bool bLandscape = false,
                                                 HtmlToPdfPageProperties pageProps = null)
        {
            if (pageProps == null)
            {
                pageProps = new HtmlToPdfPageProperties();
            }

            // To convert to PDF we use the Winnovative HTML-PDF library.
            var error = new Error();

            // Create the PDF converter. Optionally the HTML viewer width can
            // be specified as parameter
            // The default HTML viewer width is 1024 pixels.
            var pdfConverter = new PdfConverter();

            // set the license key - required
            pdfConverter.LicenseKey = "R8nYyNnI2MjRxtjI29nG2drG0dHR0Q==";     // Eval license
            //pdfConverter.LicenseKey = "Mb+vvq++r6amvqewrr6tr7CvrLCnp6en";       // Paid for license

            // set the converter options - optional
            pdfConverter.PdfDocumentOptions.PdfPageSize         = ConvertPageSize(pageProps.PageSize);
            pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;
            pdfConverter.PdfDocumentOptions.PdfPageOrientation  = (bLandscape ? PdfPageOrientation.Landscape : PdfPageOrientation.Portrait);

            // Html viewer
            if (pageProps.ViewerWidth != 0)
            {
                pdfConverter.HtmlViewerWidth = pageProps.ViewerWidth;
            }

            // set if header and footer are shown in the PDF - optional - default is false
            pdfConverter.PdfDocumentOptions.ShowHeader = false;  // cbAddHeader.Checked;
            pdfConverter.PdfDocumentOptions.ShowFooter = false;  // cbAddFooter.Checked;
            // set if the HTML content is resized if necessary to fit the PDF
            // page width - default is true
            pdfConverter.PdfDocumentOptions.FitWidth = true;    // cbFitWidth.Checked;

            // set the embedded fonts option - optional - default is false
            pdfConverter.PdfDocumentOptions.EmbedFonts = true;      // cbEmbedFonts.Checked;
            // set the live HTTP links option - optional - default is true
            pdfConverter.PdfDocumentOptions.LiveUrlsEnabled = true; // cbLiveLinks.Checked;

            // Set PDF page margins in points or leave them not set to have a PDF page without pageProps
            if (pageProps.Left != 0)
            {
                pdfConverter.PdfDocumentOptions.LeftMargin = pageProps.Left;
            }
            if (pageProps.Right != 0)
            {
                pdfConverter.PdfDocumentOptions.RightMargin = pageProps.Right;
            }
            if (pageProps.Top != 0)
            {
                pdfConverter.PdfDocumentOptions.TopMargin = pageProps.Top;
            }
            if (pageProps.Bottom != 0)
            {
                pdfConverter.PdfDocumentOptions.BottomMargin = pageProps.Bottom;
            }

            // set if the JavaScript is enabled during conversion to a PDF - default
            // is true
            pdfConverter.JavaScriptEnabled = false;  // cbClientScripts.Checked;

            // set if the images in PDF are compressed with JPEG to reduce the
            // PDF document size - default is true
            pdfConverter.PdfDocumentOptions.JpegCompressionEnabled = true;  // cbJpegCompression.Checked;

            // Performs the conversion and get the pdf document bytes that can
            try {
                pdfConverter.SavePdfFromHtmlFileToFile(sourceFile, targetFile);
            } catch (Exception e1) {
                error.SetError(e1);
            }
            return(error);
        }
예제 #2
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            string       htmlToConvert = string.Empty;
            DateTime     dtNow         = DateTime.Now;
            PdfConverter pdfConverter  = new PdfConverter();

            pdfConverter.LicenseKey = "831ufGlsfGprfGlybHxvbXJtbnJlZWVl";
            pdfConverter.PdfDocumentOptions.PdfPageSize         = PdfPageSize.A4;
            pdfConverter.PdfDocumentOptions.RightMargin         = 30;
            pdfConverter.PdfDocumentOptions.LeftMargin          = 30;
            pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.NoCompression;
            pdfConverter.PdfDocumentOptions.PdfPageOrientation  = PdfPageOrientation.Portrait;
            //  pdfConverter.RenderedHtmlElementSelector = "#divcontener";

            pdfConverter.PdfFooterOptions.FooterHeight = 55;
            //pdfConverter.PdfFooterOptions.AddElement(footerHtml);
            pdfConverter.PdfDocumentOptions.ShowHeader             = true;
            pdfConverter.PdfDocumentOptions.ShowFooter             = true;
            pdfConverter.PdfDocumentOptions.FitWidth               = true;
            pdfConverter.PdfDocumentOptions.EmbedFonts             = true;
            pdfConverter.JavaScriptEnabled                         = true;
            pdfConverter.PdfDocumentOptions.JpegCompressionEnabled = true;
            pdfConverter.PdfDocumentOptions.AvoidImageBreak        = true;
            pdfConverter.ConversionDelay = 3;

            //string downLoadFileName = reportLabel.Replace(" ", "_") + "_" + Convert.ToString(dtReportInfo.Rows[0]["ProjectName"]).Replace(" ", "_") + "_" + month.Trim() + "_" + (DateTime.Now).ToString("dd_MM_yyyy_HH_mm").Trim() + ".pdf";

            //byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl(htmlToConvert);

            StringBuilder readText = new StringBuilder();

            //readText.Append(File.ReadAllText("Report-Test.htm"));
            readText.Append(File.ReadAllText("GeetaNeutriHeal _ Sample Report.html"));

            readText = readText.Replace("{CenterAddressLine1}", "Geeta Nutri Heal Center");
            readText = readText.Replace("{CenterAddressLine1}", "Pune");

            //Initiallize Dummy Data For Report
            readText = createReportWithDummyData(readText);

            //////////////////////////////////////////////

            ////Patient Details Section
            //readText = readText.Replace("{Date}", dtNow.ToString("dd/MM/yyy"));
            //readText = readText.Replace("{Time}", dtNow.ToString("HH:mm"));
            //readText = readText.Replace("{PatientName}", txtPatientName.Text);
            //readText = readText.Replace("{PatientID}", txtPatientID.Text);
            //readText = readText.Replace("{Age}", txtPatientAge.Text);
            //readText = readText.Replace("{Gender}", cmbGender.SelectedItem.ToString());
            //readText = readText.Replace("{DOB}", txtDOB.Text);

            ////Anthrpometrics Section
            //readText = readText.Replace("{MsrWt}", txtMeasuredWeight.Text);
            //readText = readText.Replace("{MsrHt}", txtMeasuredHeight.Text);
            //readText = readText.Replace("{IdealBodyWt}", txtIdealBodyWeight.Text);
            //readText = readText.Replace("{NeckCRCM}", txtNeckCircumference.Text);
            //readText = readText.Replace("{BMI}", txtCalculatedBMI.Text);
            //readText = readText.Replace("{MUAC}", txtMUAC.Text);
            //readText = readText.Replace("{BMICAT}", cmbBMICategory.SelectedItem.ToString());
            //readText = readText.Replace("{MsrWaist}", txtMeasuredWaist.Text);
            //readText = readText.Replace("{BP}", txtBloodPressure.Text);

            ////Bio Chemical Labs Section
            //readText = readText.Replace("{FastingGlucose}", txtFastingGlucose.Text);
            //readText = readText.Replace("{Creatinine}", txtCreatinine.Text);
            //readText = readText.Replace("{Albumin}", txtAlbumin.Text);
            //readText = readText.Replace("{HbA1C}", txtHbA1C.Text);
            //readText = readText.Replace("{SGPT}", txtAltSGPT.Text);
            //readText = readText.Replace("{SGOT}", txtAltSGOT.Text);
            //readText = readText.Replace("{Hematocrit}", txtHematocrit.Text);
            //readText = readText.Replace("{Triglycerides}", txtTriglycerides.Text);
            //readText = readText.Replace("{HDL}", txtHDL.Text);
            //readText = readText.Replace("{TotalChol}", txtCholesterol.Text);
            //readText = readText.Replace("{AlkPhosphate}", txtAlkalinePhosphatase.Text);
            //readText = readText.Replace("{VitD3}", txtVitaminD3.Text);
            //readText = readText.Replace("{VitB12}", txtVitaminB12.Text);
            //readText = readText.Replace("{OthersBIO}", txtOtherBiochemicalDetails.Text);

            //////////////////////////////////////////

            string temp = readText.ToString();

            string dir = Directory.GetCurrentDirectory();

            string file = txtPatientName.Text + "_" + dtNow.ToString("yyyyMMdd_HHmm");


            using (StreamWriter swReport = new StreamWriter(file + ".html"))
            {
                swReport.Write(temp);
            }


            //pdfConverter.SavePdfFromHtmlFileToFile(dir+"\\Report-Test.htm", file+".pdf");
            pdfConverter.SavePdfFromHtmlFileToFile(dir + "\\" + file + ".html", file + ".pdf");
            //pdfConverter.ConvertUrlToPdfDocumentObject("Report-Test.htm");
            //pdfConverter.ConvertHtmlFileToPdfDocumentObject("Report-Test.htm");
            //pdfConverter.SavePdfFromHtmlStringToFile(temp, "Test2.pdf");

            MessageBox.Show("Report Print Complete");
        }