ROTATIVA EM MVC 5

 Tópico anterior Próximo tópico Novo tópico

ROTATIVA EM MVC 5

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#483558 - 01/08/2018 13:59:21

MOZARTJUNIOR
FORTALEZA
Cadast. em:Junho/2016


Estou estudando formas de gerar relatório no MVC, e vi algo bem interessante que é o uso do Rotativa(gera arquivo em PDF), dos exemplos que consultei o meu dá erro exatamente quando vou converter para PDF.

O que acho estranho é que no meu projeto, quando instalo o Rotativa pelo Nuget ele cria uma pasta com o mesmo nome, com alguns arquivos inclusive 2 .exe
No meu controller não consigo fazer referencias a ele "using Rotativa" a solução que encontrei foi adicionar via nuget o Rotativa.MVC , porém não consigo configurar rodapé,header,tamanho do papel, etc...

Alguém sabe como resolver isso ?



#483559 - 01/08/2018 14:02:03

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não está usando "ActionAsPdf"?

public ActionResult TestViewWithModel(string id)
{
    var model = new TestViewModel {DocTitle = id, DocContent = "This is a test"};
    return new ViewAsPdf(model);
}


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#483560 - 01/08/2018 14:14:24

MOZARTJUNIOR
FORTALEZA
Cadast. em:Junho/2016


Estou fazendo assim
public ActionResult Departamento(int? pagina,Boolean? pdf)
{
   var cliente = Convert.ToInt32(Session["usuarioLogadoID"]);
            var listadepartamento =  db.DEP_DEPARTAMENTO.Where(x => x.cli_id == cliente).OrderBy(c => c.dep_nome).ToList();
   if (pdf != true)
            {
                int numregistros = 5;
                int numpaginas = (pagina ?? 1);
                return View(listadepartamento.ToPagedList(numpaginas, numregistros));

            }
            else
            {
                int pagnumero = 1;

               var Relatoriopdf = new ViewAsPdf
                    {
                        ViewName = "Departamento Cadastrados",
                        FileName = "Departamentospdf",
                        Model = listadepartamento.ToPagedList(pagnumero, listadepartamento.Count)
                    };


                return Relatoriopdf;

            }
}



#483561 - 01/08/2018 15:10:11

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
1 - Livre-se de controle de login por session, você está usando MVC, use-o
2 - Você não precisa declarar a variável para retorná-la depois:

return new ViewAsPdf
                    {
                        ViewName = "Departamento Cadastrados",
                        FileName = "Departamentospdf",
                        Model = listadepartamento.ToPagedList(pagnumero, listadepartamento.Count)
                    };


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#483562 - 01/08/2018 15:10:47

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
E além disso, o seu código me parece ok. Onde está ocorrendo o erro?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#483563 - 01/08/2018 15:27:23

MOZARTJUNIOR
FORTALEZA
Cadast. em:Junho/2016


O erro que me referi foi não poder inserir um footer , header , etc... como nos exemplos que li
tipo o esse exemplo abaixo

string customSwitches = string.Format("--header-center  \"COMO USAR O ROTATIVA\" " +
                        "--header-spacing \"8\" " +
                        "--header-font-name \"Open Sans\" " +
                        "--footer-font-size \"8\" " +
                        "--footer-font-name \"Open Sans\" " +
                        "--header-font-size \"10\" "  +
                        "--footer-right \"Pag: [page] de [toPage]\"");

            var pdf = new ViewAsPdf
            {
                ViewName = "Modelo",
                 CustomSwitches = customSwitches,
                PageMargins = new Rotativa.Options.Margins(30, 10, 15, 10)
            };

o meu não permite colocar CustomSwitches,PageMargins

Por isso que acho que o problema está no Rotativa




#483566 - 01/08/2018 15:40:55

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Essas propriedades (CustomSwitches e PageMargins) não aparecem no auto suggest? CTRL + . (ponto) em cima da propriedade não sugere de adicionar nenhum "using"?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#483567 - 01/08/2018 15:58:12

MOZARTJUNIOR
FORTALEZA
Cadast. em:Junho/2016


Quando eu instalei via nuget o Rotativa não apareceu nas references, já achei estranho e não deu erro no nuget, e criou a pasta com o mesmo nome e no App_browsers criou um qt.browser

Então fui no Manager do Nuget e coloquei Rotativa e apareceu o Rotativa marcado de verde e apareceu o Rotativa.Mvc instalei e então apareceu ele nas references

Rotativa.Mvc



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário