Escrito em July 7th, 2009 as 11:30 am por Pablo Roveroni

0 Comentários

Adicionando Estilos

Neste post demonstrarei como podemos adicionar estilos ao documento, é claro que a gama de estilos na qual podemos utilizar é muito maior das que aqui descrevo; cabe a você a dar uma olhada nas diversas opções que ele nos proporciona e nas infinitas combinações na quais nós podemos fazer.
O exemplo a seguir cria não um mas três arquivos com combinações diferentes das páginas. Contudo perceba que o conteúdo é o mesmo, ou seja, podemos criar uma série de documentos com diversas configurações de layout sem alterar o conteúdo.
Então chega de conversa e vamos ao código:

public string PdfComPreferencias()
{
    //Cria o objeto documento
    Document documento = new Document();

    try
    {
        //Cria o arquivo com o conteúdo do pdf-stream
        PdfWriter writerA = PdfWriter.GetInstance(documento, new FileStream(@"C:\PdfParte7a.pdf", FileMode.Create));

        PdfWriter writerB = PdfWriter.GetInstance(documento, new FileStream(@"C:\PdfParte7b.pdf", FileMode.Create));

        PdfWriter writerC = PdfWriter.GetInstance(documento, new FileStream(@"C:\PdfParte7c.pdf", FileMode.Create));

        //Informa seta as preferencias de cada um dos arquivos pdf
        writerA.ViewerPreferences = PdfWriter.PageLayoutTwoColumnLeft;
        writerB.ViewerPreferences = PdfWriter.HideMenubar | PdfWriter.HideToolbar;
        writerC.ViewerPreferences = PdfWriter.PageLayoutTwoColumnLeft | PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs;

        //Abre o documento
        documento.Open();

        //Adiciona a marca d'água
        Image watermark = Image.GetInstance(@"C:\watermark.jpg");
        watermark.SetAbsolutePosition(200, 340);
        documento.Add(watermark);

        //Adiciona o cabeçalho na página 1
        HeaderFooter cabecalho = new HeaderFooter(new Phrase("Este é o cabeçalho da página"), true);
        documento.Header = cabecalho;

        //Rotaciona a página a partir da página 2
        documento.SetPageSize(PageSize.A4.Rotate());

        //Reposiciona a marca d'água
        //Adiciona a marca d'água
        documento.Add(watermark);

        //Adiciona rodapé à página 2
        HeaderFooter rodape = new HeaderFooter(new Phrase("Página:  "), true);
        documento.Footer = rodape;

        //Adicionando conteúdo as páginas

        //Página 1
        documento.Add(new Paragraph("Olá Mundo!!!"));

        //Adiciona uma nova página
        documento.NewPage();

        //Página 2
        //Adicionando uma nova página
        documento.Add(new Paragraph("Olá planeta que o meteoro irá destruir!!!"));

        //Remove o header do início da página 3
        documento.ResetHeader();

        //Adiciona uma nova página
        documento.NewPage();

        //Página 3
        documento.Add(new Paragraph("Olá Explosão que vai matar todo mundo!!"));
        documento.Add(new Paragraph("Repare o cabeçalho já era!!!"));
        documento.Add(watermark);

        //Reseta a contagem das páginas
        documento.ResetPageCount();

        //Adiciona uma nova página
        documento.NewPage();

        //Página 4
        documento.Add(new Paragraph("Quem sabe os EUA não salvam o mundo?!?!?!"));
        documento.Add(new Paragraph("Repare que o número das páginas foi resetado!!!"));
    }
    catch (DocumentException e)
    {
        return e.Message;
    }
    catch (IOException e)
    {
        return e.Message;
    }
    catch (Exception e)
    {
        return e.Message;
    }

    //Fechar o documento
    documento.Close();

    return "Arquivo gerado com sucesso!!!";
}

Posts Relacionados:

  1. Criando um documento Pdf com iTextSharp – Parte VI
  2. Criando um documento Pdf com iTextSharp – Parte II
  3. Criando um documento Pdf com iTextSharp – Parte V
  4. Criando um documento Pdf com iTextSharp – Parte IV
  5. Criando um documento Pdf com iTextSharp – Parte III
  6. Criando um documento pdf com iTextSharp – Parte I
  7. Lendo um Arquivo Pdf com iTextSharp – Parte II
, , ,

Be the first to start a conversation

Deixa uma Resposta

znjdb32s6g