none
PDF RRS feed

  • Pergunta

  • Galera estou fazendo um projeto WEB e preciso transformar um documento word em PDF passando alguns parametros a mais.

    Tem como LIB que faz isso ?

    Obrigado


    SirSmart

    segunda-feira, 15 de abril de 2013 19:14

Respostas

  • Olá, 

    tem uma dll da própria microsoft que faz isso, Microsoft.Office.Interop.Word.

    Ele permite você setar diversos parâmetros, veja como converter:

     public  static string ToPDF(string Origem, string Destino, string url)        {
              string retorno = "";
              ApplicationClass wordApplication = new ApplicationClass();
              Document wordDocument = null;
              object paramSourceDocPath = "";
              object paramMissing = Type.Missing;         
              
              WdExportFormat paramExportFormat =  WdExportFormat.wdExportFormatPDF;
              bool paramOpenAfterExport = false;
              WdExportOptimizeFor paramExportOptimizeFor =
                  WdExportOptimizeFor.wdExportOptimizeForPrint;
              WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;
              int paramStartPage = 0;
              int paramEndPage = 0;
              WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent;
              bool paramIncludeDocProps = true;
              bool paramKeepIRM = true;
              WdExportCreateBookmarks paramCreateBookmarks =
                  WdExportCreateBookmarks.wdExportCreateWordBookmarks;
              bool paramDocStructureTags = true;
              bool paramBitmapMissingFonts = true;
              bool paramUseISO19005_1 = false;
                try
                {
                    
                    wordDocument = wordApplication.Documents.Open(
                         Origem, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing);
    
                    
                    if (wordDocument != null)
                        wordDocument.ExportAsFixedFormat(Destino,
                            paramExportFormat, paramOpenAfterExport,
                            paramExportOptimizeFor, paramExportRange, paramStartPage,
                            paramEndPage, paramExportItem, paramIncludeDocProps,
                            paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                            paramBitmapMissingFonts, paramUseISO19005_1,
                            ref paramMissing);
                    retorno = "";
                }
                catch (Exception ex)
                {
                    retorno = ex.Message.ToString() + " - " + url;  
                }
                finally
                {
                    
                    if (wordDocument != null)
                    {
                        wordDocument.Close(ref paramMissing, ref paramMissing,
                            ref paramMissing);
                        wordDocument = null;
                    }
    
                    
                    if (wordApplication != null)
                    {
                        wordApplication.Quit(ref paramMissing, ref paramMissing,
                            ref paramMissing);
                        wordApplication = null;
                    }
    
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                return retorno;
            
            }

     
    terça-feira, 16 de abril de 2013 21:43

Todas as Respostas

  • Veja esta biblioteca:

    http://www.pdfsharp.net/Overview.ashx

    Ela é totalmente gratuita (mesmo para aplicaçoes comerciais) e facil de usar , vja os exemplos de utilizaçao:

    http://www.pdfsharp.net/wiki/PDFsharpSamples.ashx

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    segunda-feira, 15 de abril de 2013 19:23
    Moderador
  • Cara vc poderia me dar um Help por favor ?

    Não estou conseguindo abrir um Word e joga-lo para PDF com essa LIB, como posso fazer ?

    Abraço


    SirSmart

    segunda-feira, 15 de abril de 2013 19:58
  • NAo é assim que funciona. Essa lib serve para criar um PDF e nao para converter Word em PDF.

    Porque vc precisa disso atravez do C#? Vc nao pode fazer isso diretamente do word? Eu uso o PDFCreator para isso.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    segunda-feira, 15 de abril de 2013 20:05
    Moderador
  • Na verdade temos um documento do usuário que está em word, que deve ser convertido em PDF com os parametros necessários que vem do banco de dados...

    Vc teria algum sugestão de como eu poderia fazer isso ?

    Obrigado


    SirSmart

    segunda-feira, 15 de abril de 2013 20:14
  • Esse documento que esta em word nao pode ser criado diretamente no C#?

    A biblioteca que eu te indiquei faz isso muito bem.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    segunda-feira, 15 de abril de 2013 20:40
    Moderador
  • Olá, 

    tem uma dll da própria microsoft que faz isso, Microsoft.Office.Interop.Word.

    Ele permite você setar diversos parâmetros, veja como converter:

     public  static string ToPDF(string Origem, string Destino, string url)        {
              string retorno = "";
              ApplicationClass wordApplication = new ApplicationClass();
              Document wordDocument = null;
              object paramSourceDocPath = "";
              object paramMissing = Type.Missing;         
              
              WdExportFormat paramExportFormat =  WdExportFormat.wdExportFormatPDF;
              bool paramOpenAfterExport = false;
              WdExportOptimizeFor paramExportOptimizeFor =
                  WdExportOptimizeFor.wdExportOptimizeForPrint;
              WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;
              int paramStartPage = 0;
              int paramEndPage = 0;
              WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent;
              bool paramIncludeDocProps = true;
              bool paramKeepIRM = true;
              WdExportCreateBookmarks paramCreateBookmarks =
                  WdExportCreateBookmarks.wdExportCreateWordBookmarks;
              bool paramDocStructureTags = true;
              bool paramBitmapMissingFonts = true;
              bool paramUseISO19005_1 = false;
                try
                {
                    
                    wordDocument = wordApplication.Documents.Open(
                         Origem, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing, ref paramMissing, ref paramMissing,
                        ref paramMissing);
    
                    
                    if (wordDocument != null)
                        wordDocument.ExportAsFixedFormat(Destino,
                            paramExportFormat, paramOpenAfterExport,
                            paramExportOptimizeFor, paramExportRange, paramStartPage,
                            paramEndPage, paramExportItem, paramIncludeDocProps,
                            paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                            paramBitmapMissingFonts, paramUseISO19005_1,
                            ref paramMissing);
                    retorno = "";
                }
                catch (Exception ex)
                {
                    retorno = ex.Message.ToString() + " - " + url;  
                }
                finally
                {
                    
                    if (wordDocument != null)
                    {
                        wordDocument.Close(ref paramMissing, ref paramMissing,
                            ref paramMissing);
                        wordDocument = null;
                    }
    
                    
                    if (wordApplication != null)
                    {
                        wordApplication.Quit(ref paramMissing, ref paramMissing,
                            ref paramMissing);
                        wordApplication = null;
                    }
    
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                return retorno;
            
            }

     
    terça-feira, 16 de abril de 2013 21:43