/// <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); }
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); }
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")); }
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")); } }
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; }