Пример #1
0
        /// <summary>
        /// Generate a PDF from an HTML Document, can contain several pages
        /// </summary>
        /// <returns>path of the temporary PDF file</returns>
        public static string GeneratePDFFromHTML(string AHTMLDoc, string APdfPath)
        {
            if (AHTMLDoc.Length == 0)
            {
                return(string.Empty);
            }

            if (!Directory.Exists(APdfPath))
            {
                Directory.CreateDirectory(APdfPath);
            }

            Random rand     = new Random();
            string filename = string.Empty;

            do
            {
                filename = APdfPath + Path.DirectorySeparatorChar +
                           rand.Next(1, 1000000).ToString() + ".pdf";
            } while (File.Exists(filename));

            if (TLogging.DebugLevel > 0)
            {
                StreamWriter sw = new StreamWriter(filename.Replace(".pdf", ".html"));
                sw.WriteLine(AHTMLDoc);
                sw.Close();
            }

            try
            {
                PrintDocument doc = new PrintDocument();

                TPdfPrinter  pdfPrinter  = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eFormLetter);
                TPrinterHtml htmlPrinter = new TPrinterHtml(AHTMLDoc, String.Empty, pdfPrinter);

                pdfPrinter.Init(eOrientation.ePortrait, htmlPrinter, eMarginType.ePrintableArea);

                pdfPrinter.SavePDF(filename);
            }
            catch (Exception e)
            {
                TLogging.Log("Exception while writing PDF: " + e.Message);
                TLogging.Log(e.StackTrace);
                throw;
            }

            return(filename);
        }
Пример #2
0
        private bool PrintToPDF(string AFilename, bool AWrapColumn)
        {
            PrintDocument doc = new PrintDocument();

            TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eReport);
            TReportPrinterLayout layout = new TReportPrinterLayout(FResultList, FParameterList, pdfPrinter, AWrapColumn);

            pdfPrinter.Init(eOrientation.ePortrait, layout, eMarginType.ePrintableArea);

            pdfPrinter.SavePDF(AFilename);

            return true;
        }
        private void PrintReportToPDF(string ASaveASFilename, string ALetterTemplateFilename)
        {
            if (FMainDS.AEpTransaction.DefaultView.Count == 0)
            {
                return;
            }

            string HtmlDocument = PrepareHTMLReport(ALetterTemplateFilename);

            if (HtmlDocument.Length == 0)
            {
                return;
            }

            // print to pdf
            PrintDocument doc = new PrintDocument();

            TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eFormLetter);
            TPrinterHtml htmlPrinter = new TPrinterHtml(HtmlDocument,
                String.Empty,
                pdfPrinter);
            pdfPrinter.Init(eOrientation.ePortrait, htmlPrinter, eMarginType.ePrintableArea);

            pdfPrinter.SavePDF(ASaveASFilename);
        }
Пример #4
0
        void TbbSavePDFClick(object sender, EventArgs e)
        {
            PrintDocument doc = new PrintDocument();

            TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eFormLetter);
            TPrinterHtml htmlPrinter = new TPrinterHtml(txtHTMLText.Text,
                String.Empty,
                pdfPrinter);

            pdfPrinter.Init(eOrientation.ePortrait, htmlPrinter, eMarginType.ePrintableArea);

            pdfPrinter.SavePDF("test.pdf");

            System.Diagnostics.Process.Start(Path.GetFullPath("test.pdf"));
        }
Пример #5
0
        void BtnPrintReportPDFClick(object sender, EventArgs e)
        {
            OpenFileDialog DialogOpen = new OpenFileDialog();

            // see file in sub directory test data.
            // create file with method TResultList.WriteBinaryFile
            DialogOpen.Filter = "Binary Report File (*.bin)|*.bin";
            DialogOpen.RestoreDirectory = true;
            DialogOpen.Title = "Open Binary Report File";

            if (DialogOpen.ShowDialog() == DialogResult.OK)
            {
                TResultList Results = new TResultList();
                TParameterList Parameters;
                Results.ReadBinaryFile(DialogOpen.FileName, out Parameters);

                TPetraIdentity PetraIdentity = new TPetraIdentity(
                    "TESTUSER", "", "", "", "", DateTime.MinValue,
                    DateTime.MinValue, DateTime.MinValue, 0, -1, -1, false,
                    false);

                UserInfo.GUserInfo = new TPetraPrincipal(PetraIdentity, null);

                PrintDocument doc = new PrintDocument();

                TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eReport);
                TReportPrinterLayout layout = new TReportPrinterLayout(Results, Parameters, pdfPrinter, true);

                pdfPrinter.Init(eOrientation.ePortrait, layout, eMarginType.ePrintableArea);

                pdfPrinter.SavePDF("test.pdf");

                System.Diagnostics.Process.Start(Path.GetFullPath("test.pdf"));
            }
        }
Пример #6
0
        void TbbPrintPDFToScreenClick(object sender, EventArgs e)
        {
            PrintDocument doc = new PrintDocument();

            TPdfPrinter pdfPrinter = new TPdfPrinter(doc, TGfxPrinter.ePrinterBehaviour.eFormLetter);
            TPrinterHtml htmlPrinter = new TPrinterHtml(txtHTMLText.Text,
                String.Empty,
                pdfPrinter);

            pdfPrinter.Init(eOrientation.ePortrait, htmlPrinter, eMarginType.ePrintableArea);

            FGfxPrinter = pdfPrinter;

            doc.EndPrint += new PrintEventHandler(this.PrintDocument_EndPrint);

            printPreviewControl1.Document = doc;
            printPreviewControl1.InvalidatePreview();

            printPreviewControl1.Rows = 1;
        }