static void Main(string[] args) { // try // { // Create an invoice form with the sample invoice data. var invoice = new InvoiceForm("../../../../assets/xml/invoice.xml"); // Create the document using MigraDoc. var document = invoice.CreateDocument(); document.UseCmykColor = true; #if DEBUG MigraDoc.DocumentObjectModel.IO.Xml.DdlWriter.WriteToFile(document, "MigraDoc.xml"); MigraDoc.DocumentObjectModel.Document document3 = null; using (StreamReader sr = File.OpenText("MigraDoc.xml")) { var errors = new MigraDoc.DocumentObjectModel.IO.DdlReaderErrors(); var reader = new MigraDoc.DocumentObjectModel.IO.Xml.DdlReader(sr, errors); document3 = reader.ReadDocument(); using (StreamWriter sw = new StreamWriter("MigraDoc.xml.error")) { foreach (MigraDoc.DocumentObjectModel.IO.DdlReaderError error in errors) { sw.WriteLine("{0}:{1} {2} {3}", error.SourceLine, error.SourceColumn, error.ErrorLevel, error.ErrorMessage); } } } #endif // Create a renderer for PDF that uses Unicode font encoding. var pdfRenderer = new PdfDocumentRenderer(true); // Set the MigraDoc document. pdfRenderer.Document = document3; // Create the PDF document. pdfRenderer.RenderDocument(); // Save the PDF document... var filename = "Invoice.pdf"; #if DEBUG // I don't want to close the document constantly... filename = "Invoice-" + Guid.NewGuid().ToString("N").ToUpper() + ".pdf"; #endif pdfRenderer.Save(filename); // ...and start a viewer. Process.Start(filename); //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //Console.ReadLine(); //} }
static void Main(string[] args) { // Create a MigraDoc document. var document = CreateDocument(); #if DEBUG MigraDoc.DocumentObjectModel.IO.Xml.DdlWriter.WriteToFile(document, "MigraDoc.xml"); using (StreamReader sr = File.OpenText("MigraDoc.xml")) { var errors = new MigraDoc.DocumentObjectModel.IO.DdlReaderErrors(); var reader = new MigraDoc.DocumentObjectModel.IO.Xml.DdlReader(sr, errors); document = reader.ReadDocument(); using (StreamWriter sw = new StreamWriter("MigraDoc.xml.error")) { foreach (MigraDoc.DocumentObjectModel.IO.DdlReaderError error in errors) { sw.WriteLine("{0}:{1} {2} {3}", error.SourceLine, error.SourceColumn, error.ErrorLevel, error.ErrorMessage); } } } #endif var ddl = MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToString(document); #if true var renderer = new RtfDocumentRenderer(); renderer.Render(document, "HelloWorld.rtf", null); #endif // ----- Unicode encoding and font program embedding in MigraDoc is demonstrated here. ----- // A flag indicating whether to create a Unicode PDF or a WinAnsi PDF file. // This setting applies to all fonts used in the PDF document. // This setting has no effect on the RTF renderer. const bool unicode = true; // Create a renderer for the MigraDoc document. var pdfRenderer = new PdfDocumentRenderer(unicode); // Associate the MigraDoc document with a renderer. pdfRenderer.Document = document; // Layout and render document to PDF. pdfRenderer.RenderDocument(); // Save the document... var filename = Guid.NewGuid() + ".pdf"; pdfRenderer.PdfDocument.Save(filename); // ...and start a viewer. Process.Start(filename); }
static void Main(string[] args) { // Create a MigraDoc document. var document = Documents.CreateDocument(); //var ddl = MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToString(document); //MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(document, "MigraDoc.mdddl"); //MigraDoc.DocumentObjectModel.IO.Xml.DdlWriter.WriteToFile(document, "MigraDoc.xml"); MigraDoc.DocumentObjectModel.Document document3 = null; using (StreamReader sr = File.OpenText("MigraDoc.xml")) { var errors = new MigraDoc.DocumentObjectModel.IO.DdlReaderErrors(); var reader = new MigraDoc.DocumentObjectModel.IO.Xml.DdlReader(sr, errors); document3 = reader.ReadDocument(); using (StreamWriter sw = new StreamWriter("MigraDoc.xml.error")) { foreach (MigraDoc.DocumentObjectModel.IO.DdlReaderError error in errors) { sw.WriteLine("{0}:{1} {2} {3}", error.SourceLine, error.SourceColumn, error.ErrorLevel, error.ErrorMessage); } } } var renderer = new PdfDocumentRenderer(true); renderer.Document = document3; renderer.RenderDocument(); // Save the document... #if DEBUG var filename = Guid.NewGuid().ToString("N").ToUpper() + ".pdf"; #else var filename = "HelloMigraDoc.pdf"; #endif renderer.PdfDocument.Save(filename); // ...and start a viewer. Process.Start(filename); }
/// <summary> /// Renders a single paragraph. /// </summary> static void SamplePage1(PdfDocument document) { var page = document.AddPage(); var gfx = XGraphics.FromPdfPage(page); // HACK² gfx.MUH = PdfFontEncoding.Unicode; var font = new XFont("Segoe UI", 13, XFontStyle.Bold); gfx.DrawString("The following paragraph was rendered using MigraDoc:", font, XBrushes.Black, new XRect(100, 100, page.Width - 200, 300), XStringFormats.Center); // You always need a MigraDoc document for rendering. var doc = new Document(); var sec = doc.AddSection(); // Add a single paragraph with some text and format information. var para = sec.AddParagraph(); para.Format.Alignment = ParagraphAlignment.Justify; para.Format.Font.Name = "Times New Roman"; para.Format.Font.Size = 12; para.Format.Font.Color = Colors.DarkGray; para.Format.Font.Color = Colors.DarkGray; para.AddText("Duisism odigna acipsum delesenisl "); para.AddFormattedText("ullum in velenit", TextFormat.Bold); para.AddText(" ipit iurero dolum zzriliquisis nit wis dolore vel et nonsequipit, velendigna " + "auguercilit lor se dipisl duismod tatem zzrit at laore magna feummod oloborting ea con vel " + "essit augiati onsequat luptat nos diatum vel ullum illummy nonsent nit ipis et nonsequis " + "niation utpat. Odolobor augait et non etueril landre min ut ulla feugiam commodo lortie ex " + "essent augait el ing eumsan hendre feugait prat augiatem amconul laoreet. ≤≥≈≠"); para.Format.Borders.Distance = "5pt"; para.Format.Borders.Color = Colors.Gold; #if DEBUG MigraDoc.DocumentObjectModel.IO.Xml.DdlWriter.WriteToFile(doc, "MigraDoc.xml"); Document doc3 = null; using (StreamReader sr = File.OpenText("MigraDoc.xml")) { var errors = new MigraDoc.DocumentObjectModel.IO.DdlReaderErrors(); var reader = new MigraDoc.DocumentObjectModel.IO.Xml.DdlReader(sr, errors); doc3 = reader.ReadDocument(); using (StreamWriter sw = new StreamWriter("MigraDoc.xml.errors")) { foreach (MigraDoc.DocumentObjectModel.IO.DdlReaderError error in errors) { sw.WriteLine("{0}:{1} {2} {3}", error.SourceLine, error.SourceColumn, error.ErrorLevel, error.ErrorMessage); } } } #endif // Create a renderer and prepare (=layout) the document. var docRenderer = new DocumentRenderer(doc3); docRenderer.PrepareDocument(); // Render the paragraph. You can render tables or shapes the same way. docRenderer.RenderObject(gfx, XUnit.FromCentimeter(5), XUnit.FromCentimeter(10), "12cm", doc3.Sections[0].LastParagraph /*para*/); }