static void Main(string[] args) { string path = System.Reflection.Assembly.GetExecutingAssembly().Location; path = System.IO.Path.GetDirectoryName(path); path = System.IO.Path.Combine(path, "SignatureTest.pdf"); var pdfdoc = new Xfinium.Pdf.PdfFixedDocument(); var pdfpage = pdfdoc.Pages.Add(); var pen = new PdfPen(new PdfRgbColor(0, 0, 0), 3); var brush = new PdfBrush(new PdfRgbColor(255, 255, 120)); pdfpage.Graphics.DrawEllipse(pen, brush, 100, 100, 400, 400, 0); brush = new PdfBrush(new PdfRgbColor(255, 255, 255)); pdfpage.Graphics.DrawEllipse(pen, brush, 200, 250, 30, 30, 0); pdfpage.Graphics.DrawEllipse(pen, brush, 370, 250, 30, 30, 0); pdfpage.Graphics.DrawArc(pen, 180, 300, 260, 150, 200, 120); brush = new PdfBrush(new PdfRgbColor(0, 0, 0)); pdfpage.Graphics.DrawString("Hello World", new PdfStandardFont(PdfStandardFontFace.Helvetica, 30), brush, 225.0, 550.0); // TODO: Figure out what is needed for signing this PDF //var signature = new Xfinium.Pdf.Forms.PdfSignatureField("Sign Here"); //pdfpage.Fields.Add(signature); //signature.Widgets[0].VisualRectangle = new PdfVisualRectangle(50, 600, 100, 100); pdfdoc.Save(path); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var pdf = Rhino.FileIO.FilePdf.Create(); Xfinium.Pdf.PdfFixedDocument pdfDoc = pdf.PdfDocumentImplementation() as Xfinium.Pdf.PdfFixedDocument; var coverPage = pdfDoc.Pages.Add(); using (var font = new System.Drawing.Font("Arial", 30)) { var pdffont = new Xfinium.Pdf.Graphics.PdfUnicodeTrueTypeFont(font, false); pdffont.Underline = true; var color = new Xfinium.Pdf.Graphics.PdfRgbColor(0, 0, 0); var appearance = new Xfinium.Pdf.Graphics.PdfStringAppearanceOptions(pdffont, null, new Xfinium.Pdf.Graphics.PdfBrush(color)); var layout = new Xfinium.Pdf.Graphics.PdfStringLayoutOptions(); layout.HorizontalAlign = Xfinium.Pdf.Graphics.PdfStringHorizontalAlign.Center; layout.X = coverPage.Width / 2; layout.Y = coverPage.Height / 2; coverPage.Graphics.DrawString("New Development Day 2018", appearance, layout); } const int w = (int)(8.5 * 300); const int h = 11 * 300; var views = doc.Views.GetViewList(true, false); for (int i = 0; i < views.Length; i++) { var view = views[i]; var viewcapture = new Rhino.Display.ViewCaptureSettings(view, new System.Drawing.Size(w, h), 300); int pageIndex = pdf.AddPage(viewcapture) - 1; using (var font = new System.Drawing.Font("Arial", 80)) { var pdffont = new Xfinium.Pdf.Graphics.PdfUnicodeTrueTypeFont(font, false); var color = new Xfinium.Pdf.Graphics.PdfRgbColor(40, 40, 40); var pen = new Xfinium.Pdf.Graphics.PdfPen(color, 3); var appearance = new Xfinium.Pdf.Graphics.PdfStringAppearanceOptions(pdffont, pen, null); var layout = new Xfinium.Pdf.Graphics.PdfStringLayoutOptions(); layout.HorizontalAlign = Xfinium.Pdf.Graphics.PdfStringHorizontalAlign.Center; layout.Rotation = 45; layout.X = coverPage.Width / 2; layout.Y = coverPage.Height / 2; pdfDoc.Pages[pageIndex].Graphics.DrawString("Top Secret", appearance, layout); } using (var font = new System.Drawing.Font("Arial", 20)) { var pdffont = new Xfinium.Pdf.Graphics.PdfUnicodeTrueTypeFont(font, false); var color = new Xfinium.Pdf.Graphics.PdfRgbColor(0, 0, 0); var appearance = new Xfinium.Pdf.Graphics.PdfStringAppearanceOptions(pdffont, null, new Xfinium.Pdf.Graphics.PdfBrush(color)); var layout = new Xfinium.Pdf.Graphics.PdfStringLayoutOptions(); layout.HorizontalAlign = Xfinium.Pdf.Graphics.PdfStringHorizontalAlign.Right; layout.X = coverPage.Width * 0.9; layout.Y = coverPage.Height * 0.9; pdfDoc.Pages[pageIndex].Graphics.DrawString($"Page {i+1} of {views.Length}", appearance, layout); } } string path = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); path = System.IO.Path.Combine(path, "DevDaySamplePDF.pdf"); pdf.Write(path); return(Result.Success); }