コード例 #1
0
        private Log GerarMarcadAgua(HttpRequest httpRequest, string nomeArquivo)
        {
            NomeArquivo   = nomeArquivo;
            Transparencia = double.Parse(httpRequest.Params["transparencia"]);
            Texto         = httpRequest.Params["texto"];
            XFolhaEmPe    = int.Parse(httpRequest.Params["xfolhaEmPe"]);
            XFolhaDeitada = int.Parse(httpRequest.Params["xfolhaDeitada"]);
            YFolhaEmPe    = int.Parse(httpRequest.Params["yfolhaEmPe"]);
            YFolhaDeitada = int.Parse(httpRequest.Params["yfolhaDeitada"]);
            Angulo        = int.Parse(httpRequest.Params["angulo"]);
            Tamanho       = int.Parse(httpRequest.Params["tamanho"]);
            Cor           = httpRequest.Params["cor"];
            Fonte         = httpRequest.Params["fonte"];

            int contadorDePaginas = 0;

            // Cria instancia de PDF manager.
            PdfManager objPDF = new PdfManager();

            // Chave licença
            objPDF.RegKey = ConfigurationManager.AppSettings["chavePdf"];

            //Abre PDF
            PdfDocument objDoc = objPDF.OpenDocument(HttpContext.Current.Server.MapPath("/Arquivos/" + nomeArquivo));

            foreach (PdfPage page in objDoc.Pages)
            {
                contadorDePaginas++;

                var GState = objDoc.CreateGState("BlendMode=1; Alpha=" + Transparencia.ToString().Replace(',', '.') + "; FillAlpha=" + Transparencia.ToString().Replace(',', '.'));
                page.Canvas.SetGState(GState);

                if (page.Rotate.Equals(0) || page.Rotate.Equals(180))
                {
                    page.Canvas.DrawText(Texto, "x=" + XFolhaEmPe + "; y=" + YFolhaEmPe + "; angle=" + Angulo + "; size=" + Tamanho + "; color=&" + Cor, objDoc.Fonts[Fonte]);
                }
                else
                {
                    page.Canvas.DrawText(Texto, "x=" + XFolhaDeitada + "; y=" + YFolhaDeitada + "; angle=" + Angulo + "; size=" + Tamanho + "; color=&" + Cor, objDoc.Fonts[Fonte]);
                }
            }

            objDoc.Save(HttpContext.Current.Server.MapPath("/Arquivos/marcadAgua/" + nomeArquivo));
            objDoc.Close();

            Log log = new Log();

            log.NomeArquivo       = nomeArquivo;
            log.QuatindadePaginas = contadorDePaginas;
            log.TipoAlteracao     = 1;

            return(log);
        }