Esempio n. 1
0
            /// <summary>
            /// Singleton converter, for multi-threaded application
            /// </summary>
            /// <returns>Pdf converter</returns>
            public static IConverter GetConverter()
            {
                lock (locker)
                {
                    if (converter != null)
                    {
                        return(converter);
                    }
                }

                var      tempFolderDeployment        = new TempFolderDeployment();
                var      winAnyCpuEmbeddedDeployment = new WinAnyCPUEmbeddedDeployment(tempFolderDeployment);
                IToolset toolSet;

                if (HostingEnvironment.IsHosted)
                {
                    toolSet = new RemotingToolset <PdfToolset>(winAnyCpuEmbeddedDeployment);
                }
                else
                {
                    toolSet = new PdfToolset(winAnyCpuEmbeddedDeployment);
                }

                return(new ThreadSafeConverter(toolSet));
            }
Esempio n. 2
0
        public ActionResult HtmlToPdf(Guid uid)
        {
            Resume resume = NullUserDataSvc.GetByID(uid).Resumes.FirstOrDefault();

            if (string.IsNullOrEmpty(resume.Html))
            {
                return(Content("简历为空"));
            }

            var document = new HtmlToPdfDocument
            {
                GlobalSettings =
                {
                    ProduceOutline = true,
                    DocumentTitle  = "简历",
                    PaperSize      = PaperKind.A4,
                    Margins        =
                    {
                        All  =        1.375,
                        Unit = Unit.Centimeters
                    }
                },
                Objects = { new ObjectSettings {
                                HtmlText = resume.Html, WebSettings = new WebSettings{
                                    DefaultEncoding = "utf-8"
                                }
                            } }
            };

            var tempFolderDeployment    = new TempFolderDeployment();
            var win32EmbeddedDeployment = new Win32EmbeddedDeployment(tempFolderDeployment);
            var remotingToolset         = new RemotingToolset <PdfToolset>(win32EmbeddedDeployment);

            var converter = new ThreadSafeConverter(remotingToolset);

            byte[] pdfBuf = converter.Convert(document);
            remotingToolset.Unload();

            return(File(pdfBuf, "application/pdf", "简历.pdf"));
        }