Exemplo n.º 1
0
        /// <summary>
        /// 保存为PDF格式
        /// </summary>
        /// <param name="FileName"></param>
        public string SavePDF(string filePath)
        {
            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;

            _doc.ExportAsFixedFormat("abc.pdf",
                                     WdExportFormat.wdExportFormatPDF,
                                     paramOpenAfterExport,
                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                     ref _nullobj);

            return(filePath);
        }
Exemplo n.º 2
0
 public void ExportAsFixedFormat(string OutputFileName, WdExportFormat ExportFormat, bool OpenAfterExport,
     WdExportOptimizeFor OptimizeFor, WdExportRange Range, int From,
     int To, WdExportItem Item, bool IncludeDocProps, bool KeepIRM,
     WdExportCreateBookmarks CreateBookmarks, bool DocStructureTags,
     bool BitmapMissingFonts, bool UseISO19005_1, ref object FixedFormatExtClassPtr)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 3
0
        protected override bool doConvertToPdf(string saveAsFile)
        {
            WdExportFormat      wdExportFormat = WdExportFormat.wdExportFormatPDF;
            _Document           arg_20_0       = this.WordDoc;
            WdExportFormat      arg_20_2       = wdExportFormat;
            bool                arg_20_3       = false;
            WdExportOptimizeFor arg_20_4       = WdExportOptimizeFor.wdExportOptimizeForPrint;
            WdExportRange       arg_20_5       = WdExportRange.wdExportAllDocument;
            int                     arg_20_6   = 1;
            int                     arg_20_7   = 1;
            WdExportItem            arg_20_8   = WdExportItem.wdExportDocumentContent;
            bool                    arg_20_9   = false;
            bool                    arg_20_10  = true;
            WdExportCreateBookmarks arg_20_11  = WdExportCreateBookmarks.wdExportCreateNoBookmarks;
            bool                    arg_20_12  = true;
            bool                    arg_20_13  = true;
            bool                    arg_20_14  = false;
            object                  value      = System.Reflection.Missing.Value;

            arg_20_0.ExportAsFixedFormat(saveAsFile, arg_20_2, arg_20_3, arg_20_4, arg_20_5, arg_20_6, arg_20_7, arg_20_8, arg_20_9, arg_20_10, arg_20_11, arg_20_12, arg_20_13, arg_20_14, ref value);
            return(true);
        }
Exemplo n.º 4
0
        public PDF(Document skabelon, string FilePDF)
        {
            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;

            skabelon.ExportAsFixedFormat(FilePDF, paramExportFormat, paramOpenAfterExport, paramExportOptimizeFor, paramExportRange,
                                         paramStartPage, paramEndPage, paramExportItem, paramIncludeDocProps, paramKeepIRM, paramCreateBookmarks,
                                         paramDocStructureTags, paramBitmapMissingFonts, paramUseISO19005_1, ref paramMissing);
        }
Exemplo n.º 5
0
        public static void ExportPdf(this Document doc, string fpath, bool open = true)
        {
            if (doc == null)
            {
                return;
            }
            const WdExportFormat      paramExportFormat        = WdExportFormat.wdExportFormatPDF;
            const WdExportOptimizeFor paramExportOptimizeFor   = WdExportOptimizeFor.wdExportOptimizeForPrint;
            const WdExportRange       paramExportRange         = WdExportRange.wdExportAllDocument;
            const int                     paramStartPage       = 0;
            const int                     paramEndPage         = 0;
            const WdExportItem            paramExportItem      = WdExportItem.wdExportDocumentContent;
            const WdExportCreateBookmarks paramCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;
            var paramMissing = Type.Missing;

            doc.ExportAsFixedFormat(fpath,
                                    paramExportFormat, open,
                                    paramExportOptimizeFor, paramExportRange, paramStartPage,
                                    paramEndPage, paramExportItem, true,
                                    true, paramCreateBookmarks, true,
                                    true, false,
                                    ref paramMissing);
        }
Exemplo n.º 6
0
        public bool convert(string source, string output)
        {
            if (System.IO.File.Exists(source))
            {
                //start conversion
                try
                {
                    ApplicationClass wordApplication = new ApplicationClass();

                    Document wordDocument       = null;
                    object   paramSourceDocPath = source;

                    string paramExportFilePath = output;

                    //this part is copied from Microsoft MSDN

                    //set exportformat to pdf
                    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
                    {
                        // Open the source document.
                        wordDocument = wordApplication.Documents.Open(
                            ref paramSourceDocPath, 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);

                        // Export it in the specified format.
                        if (wordDocument != null)
                        {
                            wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                             paramExportFormat, paramOpenAfterExport,
                                                             paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                             paramEndPage, paramExportItem, paramIncludeDocProps,
                                                             paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                             paramBitmapMissingFonts, paramUseISO19005_1,
                                                             ref paramMissing);
                        }
                    }
                    catch (Exception ex)
                    {
                        // Respond to the error
                        errormessage = ex.Message;
                    }
                    finally
                    {
                        // Close and release the Document object.
                        if (wordDocument != null)
                        {
                            wordDocument.Close(ref paramMissing, ref paramMissing,
                                               ref paramMissing);
                            wordDocument = null;
                        }

                        // Quit Word and release the ApplicationClass object.
                        if (wordApplication != null)
                        {
                            wordApplication.Quit(ref paramMissing, ref paramMissing,
                                                 ref paramMissing);
                            wordApplication = null;
                        }

                        //i don't know why this is here two times. I just copied it from the MSDN howto interop with word 2007
                        GC.Collect();
                        GC.WaitForPendingFinalizers();
                        GC.Collect();
                        GC.WaitForPendingFinalizers();
                    }
                }
                catch (Exception err)
                {
                    errormessage = err.Message;
                }
                return(true);
            }
            else
            {
                errormessage = "ERROR: Inputfile not found";
            }

            return(false);
        }
Exemplo n.º 7
0
        public static void ConvertDocxToPdf(String filename)
        {
            String sourcePath = filename;
            String destPath   = filename.Replace(".docx", ".pdf");

            //Change the path of the .docx file and filename to your file name.
            object paramSourceDocPath = sourcePath;
            object paramMissing       = Type.Missing;

            Microsoft.Office.Interop.Word._Application wordApplication = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word._Document    wordDocument    = null;

            //Change the path of the .pdf file and filename to your file name.
            string              paramExportFilePath    = destPath;
            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
            {
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                // Respond to the error
                Console.WriteLine(ex.Message);
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Exemplo n.º 8
0
        private static bool ConvertWordToFixed(List <string> files, WdExportFormat fixedFormatType)
        {
            Microsoft.Office.Interop.Word.Application wordApplication;
            try
            {
                wordApplication = new Microsoft.Office.Interop.Word.Application();
            }
            catch (Exception ex)
            {
                return(false);
            }

            Document            wordDocument           = null;
            object              paramMissing           = Type.Missing;
            WdExportFormat      paramExportFormat      = fixedFormatType;
            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;
            string targetExt = fixedFormatType == WdExportFormat.wdExportFormatPDF ? ".pdf" : ".xps";

            foreach (string file in files)
            {
                object paramSourceDocPath  = file;
                string paramExportFilePath = file.Substring(0, file.LastIndexOf('.')) + targetExt;
                try
                {
                    // Open the source document.
                    wordDocument = wordApplication.Documents.Open(
                        ref paramSourceDocPath);

                    /*, 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);*/

                    // Export it in the specified format.
                    if (wordDocument != null)
                    {
                        wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                         paramExportFormat, paramOpenAfterExport,
                                                         paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                         paramEndPage, paramExportItem, paramIncludeDocProps,
                                                         paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                         paramBitmapMissingFonts, paramUseISO19005_1,
                                                         ref paramMissing);
                    }
                }
                catch (Exception ex)
                {
                    return(false);
                }
                finally
                {
                    // Close and release the Document object.
                    if (wordDocument != null)
                    {
                        wordDocument.Close(Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges, ref paramMissing, ref paramMissing);
                        //wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordDocument = null;
                    }
                }
            }
            // Quit Word and release the ApplicationClass object.
            if (wordApplication != null)
            {
                wordApplication.Quit(ref paramMissing, ref paramMissing,
                                     ref paramMissing);
                wordApplication = null;
            }

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            return(true);
        }
Exemplo n.º 9
0
        public string ConvertToPdf(string filePath)
        {
            var wordApplication = new ApplicationClass();

            Document wordDocument       = null;
            object   paramSourceDocPath = filePath;
            object   paramMissing       = Type.Missing;
            string   Direct             = Path.GetDirectoryName(filePath);
            string   fwext = Path.GetFileNameWithoutExtension(filePath);
            string   pwext = Direct + fwext;

            // MessageBox.Show(pwext);

            string paramExportFilePath  = pwext + ".pdf";
            var    paramExportFormat    = WdExportFormat.wdExportFormatPDF;
            bool   paramOpenAfterExport = false;

            var paramExportOptimizeFor =
                WdExportOptimizeFor.wdExportOptimizeForPrint;
            WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;

            int paramStartPage = 0;
            int paramEndPage   = 0;

            var paramExportItem = WdExportItem.wdExportDocumentContent;

            bool paramIncludeDocProps = true;
            bool paramKeepIRM         = true;

            var paramCreateBookmarks =
                WdExportCreateBookmarks.wdExportCreateWordBookmarks;

            bool paramDocStructureTags   = true;
            bool paramBitmapMissingFonts = true;
            bool paramUseISO19005_1      = false;

            try
            {
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                // Respond to the error
                MessageBox.Show("An Error has occured. Make sure your Microsoft Word 2010 is working properly and the input file is not corrupted ");
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing,
                                       ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing,
                                         ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return(paramExportFilePath);
        }
Exemplo n.º 10
0
        /// <summary>
        /// WORD文档转换PDF格式文件
        /// 创建人:张活生
        /// 创建时间:2015年12月10日10:20:37
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">目标文件路径</param>
        /// <returns>true:转换成功;false:转换失败</returns>
        public static bool DocConvertToPdf(string sourcePath, string targetPath)
        {
            bool             result          = false;
            WdExportFormat   exportFormat    = WdExportFormat.wdExportFormatPDF;
            object           paramMissing    = Type.Missing;
            ApplicationClass wordApplication = new ApplicationClass();
            Document         wordDocument    = null;

            try
            {
                object paramSourceDocPath  = sourcePath;
                string paramExportFilePath = targetPath;

                WdExportFormat      paramExportFormat           = exportFormat;
                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    = Microsoft.Office.Interop.Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
                bool                    paramDocStructureTags   = true;
                bool                    paramBitmapMissingFonts = true;
                bool                    paramUseISO19005_1      = false;

                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
                result = true;
            }
            catch
            {
                result = false;
            }
            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(result);
        }
Exemplo n.º 11
0
        public static void ConvertWord2PDF(string wordInputPath, string pdfOutputPath, string pdfName)
        {
            try
            {
                string pdfExtension = ".pdf";

                // validate patameter
                if (!Directory.Exists(pdfOutputPath))
                {
                    Directory.CreateDirectory(pdfOutputPath);
                }
                if (pdfName.Trim().Length == 0)
                {
                    pdfName = Path.GetFileNameWithoutExtension(wordInputPath);
                }
                if (!(Path.GetExtension(pdfName).ToUpper() == pdfExtension.ToUpper()))
                {
                    pdfName = pdfName + pdfExtension;
                }

                object paramSourceDocPath = wordInputPath;
                object paramMissing       = Type.Missing;

                string paramExportFilePath = Path.Combine(pdfOutputPath, pdfName);

                // create a word application object
                ApplicationClass wordApplication = new ApplicationClass();
                Microsoft.Office.Interop.Word.Document wordDocument = null;

                //set exportformat to pdf
                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
                {
                    // Open the source document.
                    wordDocument = wordApplication.Documents.Open(
                        ref paramSourceDocPath, 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);

                    // Export it in the specified format.
                    if (wordDocument != null)
                    {
                        wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                         paramExportFormat, paramOpenAfterExport,
                                                         paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                         paramEndPage, paramExportItem, paramIncludeDocProps,
                                                         paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                         paramBitmapMissingFonts, paramUseISO19005_1,
                                                         ref paramMissing);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    // Close and release the Document object.
                    if (wordDocument != null)
                    {
                        wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordDocument = null;
                    }

                    // Quit Word and release the ApplicationClass object.
                    if (wordApplication != null)
                    {
                        wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordApplication = null;
                    }

                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 12
0
 public void ExportAsFixedFormat(string OutputFileName, WdExportFormat ExportFormat, bool OpenAfterExport,
     WdExportOptimizeFor OptimizeFor, WdExportRange Range, int From,
     int To, WdExportItem Item, bool IncludeDocProps, bool KeepIRM,
     WdExportCreateBookmarks CreateBookmarks, bool DocStructureTags,
     bool BitmapMissingFonts, bool UseISO19005_1, ref object FixedFormatExtClassPtr)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 13
0
        /// <summary>

        /// 把Word文件转换成pdf文件

        /// </summary>

        /// <param name="sourcePath">需要转换的文件路径和文件名称</param>

        /// <param name="targetPath">转换完成后的文件的路径和文件名名称</param>

        /// <returns>成功返回true,失败返回false</returns>
        public static bool WordToPdf(string sourcePath, string targetPath)
        {
            bool result = false;

            WdExportFormat wdExportFormatPDF = WdExportFormat.wdExportFormatPDF;//转换格式1.wdExportFormatPDF转换成pdf格式 2.wdExportFormatXPS转换成xps格式

            object missing = Type.Missing;

            Microsoft.Office.Interop.Word.ApplicationClass applicationClass = null;

            Document document = null;

            try
            {
                applicationClass = new Microsoft.Office.Interop.Word.ApplicationClass();

                object inputfileName = sourcePath;                                                                         //需要转格式的文件路径

                string outputFileName = targetPath;                                                                        //转换完成后PDF或XPS文件的路径和文件名名称

                WdExportFormat exportFormat = wdExportFormatPDF;                                                           //导出文件所使用的格式

                bool openAfterExport = false;                                                                              //转换完成后是否打开

                WdExportOptimizeFor wdExportOptimizeForPrint = WdExportOptimizeFor.wdExportOptimizeForPrint;               //导出方式1.wdExportOptimizeForPrint针对打印进行导出,质量较高,生成的文件大小较大。2.wdExportOptimizeForOnScreen 针对屏幕显示进行导出,质量较差,生成的文件大小较小。

                WdExportRange wdExportAllDocument = WdExportRange.wdExportAllDocument;                                     //导出全部内容(枚举)

                int from = 0;                                                                                              //起始页码

                int to = 0;                                                                                                //结束页码

                WdExportItem wdExportDocumentContent = WdExportItem.wdExportDocumentContent;                               //指定导出过程中是否只包含文本或包含文本的标记.1.wdExportDocumentContent:导出文件没有标记,2.导出文件有标记

                bool includeDocProps = true;                                                                               //指定是否包含新导出的文件在文档属性

                bool keepIRM = true;                                                                                       //

                WdExportCreateBookmarks wdExportCreateWordBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks; //1.wdExportCreateNoBookmarks:不要在导出文件中创建书签,2.wdExportCreateHeadingBookmarks:标题和文本框导出的文件中创建一个书签,3.wdExportCreateWordBookmarks每个字的书签,其中包括除包含页眉和页脚中的所有书签导出的文件中创建一个书签。

                bool docStructureTags = true;

                bool bitmapMissingFonts = true;

                bool UseISO19005_1 = false;//生成的文档是否符合 ISO 19005-1 (PDF/A)

                document = applicationClass.Documents.Open(ref inputfileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                if (document != null)
                {
                    document.ExportAsFixedFormat(outputFileName, exportFormat, openAfterExport, wdExportOptimizeForPrint, wdExportAllDocument, from, to, wdExportDocumentContent, includeDocProps, keepIRM, wdExportCreateWordBookmarks, docStructureTags, bitmapMissingFonts, UseISO19005_1, ref missing);
                }
                result = true;
            }
            catch
            {
                result = false;
            }
            finally
            {
                if (document != null)
                {
                    document.Close(ref missing, ref missing, ref missing);
                    document = null;
                }
                if (applicationClass != null)
                {
                    applicationClass.Quit(ref missing, ref missing, ref missing);
                    applicationClass = null;
                }
            }
            return(result);
        }
Exemplo n.º 14
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.Out.WriteLine("Incorrect number opf parameters.  Expected: <source> <result>, was " + args.Length);
                return;
            }

            Application wordApplication = new Application();
            Document    wordDocument    = null;

            object paramSourceDocPath  = Path.GetFullPath(args[0]);
            string paramExportFilePath = Path.GetFullPath(args[1]);

            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 paramIncudeDocProps = true;
            bool paramKeepIRM        = true;
            WdExportCreateBookmarks paramCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;

            bool paramDocStructureTags   = true;
            bool paramBitmapMissingFonts = true;
            bool paramUseISO19005_1      = false;

            object paramMissing = Type.Missing;

            try
            {
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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(paramExportFilePath, paramExportFormat,
                                                     paramOpenAfterExport, paramExportOptimizeFor, paramExportRange,
                                                     paramStartPage, paramEndPage, paramExportItem, paramIncudeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1, ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("The Error recieved is {0}: ", ex.Message);
            }
            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();
            }
        }
Exemplo n.º 15
0
        public int Convert(string sourcePath, string targetPath)
        {
            if (!File.Exists(sourcePath))
            {
                return(ErrorMessages.FileNotExist);
            }

            ApplicationClass wordApplication = new ApplicationClass();
            Document         wordDocument    = null;
            object           paramMissing    = Type.Missing;
            Type             wordType        = wordApplication.GetType();

            try
            {
                object paramSourceDocPath  = sourcePath;
                string paramExportFilePath = targetPath;

                //wordDocument = wordApplication.Documents.Open(
                //    ref paramSourceDocPath, 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);


                Documents docs     = wordApplication.Documents;
                Type      docsType = docs.GetType();
                wordDocument = (Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { sourcePath, true, true });

                if (wordDocument != null)
                {
                    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;

                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
                return(ErrorMessages.ConvertSuccess);
            }
            catch (COMException ex)
            {
                _logger.Error(ex.StackTrace);
                _logger.Error(ex.Message);
                return(ErrorMessages.OfficeToPdfUninstall);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message);
                return(ErrorMessages.ConvertFailed);
            }
            finally
            {
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                }
                wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, wordApplication, null);
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Exemplo n.º 16
0
        private void DocxToPdf(String sourcePath, String destPath)
        {
            //Change the path of the .docx file and filename to your file name.

            object paramSourceDocPath = sourcePath;
            object paramMissing       = Type.Missing;

            toolStripStatusLabel1.Text = "Starting Word...";
            var      wordApplication = new Microsoft.Office.Interop.Word.Application();
            Document wordDocument    = null;

            //Change the path of the .pdf file and filename to your file name.

            string              paramExportFilePath    = destPath;
            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
            {
                toolStripStatusLabel1.Text = "Opening Word document...";
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    toolStripStatusLabel1.Text = "Hiding headers...";

                    wordDocument.Styles["_header"].Font.Color = WdColor.wdColorWhite;

                    foreach (HeaderFooter hf in wordDocument.Sections[1].Headers)
                    {
                        if (hf.IsHeader)
                        {
                            foreach (Range r in hf.Range.Sentences)
                            {
                                if (r.Text.IndexOf("Do Not Delete") >= 0)
                                {
                                    r.Select();
                                    wordApplication.Selection.ClearCharacterDirectFormatting();
                                }
                            }
                        }
                    }

                    toolStripStatusLabel1.Text = "Exporting to PDF...";
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);

                    toolStripStatusLabel1.Text = "Done!";
                }
            }
            catch (Exception ex)
            {
                // Respond to the error
                System.Windows.Forms.MessageBox.Show(ex.Message);
                toolStripStatusLabel1.Text = "An error occurred.";
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing,
                                       ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing,
                                         ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Exemplo n.º 17
0
        public static void WordToPDF(string docPath)
        {
            Application wordApplication = new Application();
            Document    wordDocument    = null;

            // Get full path of input and output files.
            object paramSourceDocPath  = docPath;
            string paramExportFilePath = Path.GetFullPath("..\\..") + "\\File\\平台借款合同.pdf";

            ///////////////////////////////////////////////
            /// STATIC CONFIGURATION PARAMETERS
            //////////////////////////////////////////////

            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;

            object paramMissing = Type.Missing;

            try
            {
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                System.Console.Out.WriteLine(ex);
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing,
                                       ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing,
                                         ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Exemplo n.º 18
0
        /// <summary>
        /// Word转换成PDF(单个文件转换推荐使用)
        /// </summary>
        /// <param name="inputPath">载入完整路径</param>
        /// <param name="outputPath">保存完整路径</param>
        /// <param name="startPage">初始页码(默认为第一页[0])</param>
        /// <param name="endPage">结束页码(默认为最后一页)</param>
        public static bool WordToPDF(string inputPath, string outputPath, int startPage = 0, int endPage = 0)
        {
            bool b = true;

            #region 初始化
            //初始化一个application
            Application wordApplication = new Application();
            //初始化一个document
            Document wordDocument = null;
            #endregion

            #region 参数设置~~我去累死宝宝了~~(所谓的参数都是根据这个方法来的:ExportAsFixedFormat)
            //word路径
            object wordPath = Path.GetFullPath(inputPath);

            //输出路径
            string pdfPath = Path.GetFullPath(outputPath);

            //导出格式为PDF
            WdExportFormat wdExportFormat = WdExportFormat.wdExportFormatPDF;

            //导出大文件
            WdExportOptimizeFor wdExportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForPrint;

            //导出整个文档
            WdExportRange wdExportRange = WdExportRange.wdExportAllDocument;

            //开始页码
            int startIndex = startPage;

            //结束页码
            int endIndex = endPage;

            //导出不带标记的文档(这个可以改)
            WdExportItem wdExportItem = WdExportItem.wdExportDocumentContent;

            //包含word属性
            bool includeDocProps = true;

            //导出书签
            WdExportCreateBookmarks paramCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;

            //默认值
            object paramMissing = Type.Missing;

            #endregion

            #region 转换
            try
            {
                //打开word
                wordDocument = wordApplication.Documents.Open(ref wordPath, 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(pdfPath, wdExportFormat, false, wdExportOptimizeFor, wdExportRange, startIndex, endIndex, wdExportItem, includeDocProps, true, paramCreateBookmarks, true, true, false, ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                b = false;
            }
            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;
                }
            }

            return(b);

            #endregion
        }
        /// <summary>
        /// 将word转化成PDF
        /// </summary>
        /// <param name="sourcePath">word文件路径</param>
        /// <param name="targetPath"></param>
        /// <returns></returns>
        public static bool ConvertWord2Pdf(string sourcePath, string targetPath)
        {
            bool           result;
            WdExportFormat exportFormat    = WdExportFormat.wdExportFormatPDF;
            object         paramMissing    = Type.Missing;
            Application    wordApplication = new Application();
            Document       wordDocument    = null;

            try
            {
                object              paramSourceDocPath     = "E:/eContract" + sourcePath;
                string              paramExportFilePath    = "E:/eContract" + targetPath;
                WdExportFormat      paramExportFormat      = exportFormat;
                WdExportOptimizeFor paramExportOptimizeFor =
                    WdExportOptimizeFor.wdExportOptimizeForPrint;
                WdExportRange           paramExportRange     = WdExportRange.wdExportAllDocument;
                int                     paramStartPage       = 0;
                int                     paramEndPage         = 0;
                WdExportItem            paramExportItem      = WdExportItem.wdExportDocumentContent;
                WdExportCreateBookmarks paramCreateBookmarks =
                    WdExportCreateBookmarks.wdExportCreateWordBookmarks;

                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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(paramExportFilePath,
                                                     paramExportFormat, false,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, true,
                                                     true, paramCreateBookmarks, true,
                                                     true, false,
                                                     ref paramMissing);
                }
                result = true;
            }
            catch (Exception ex)
            {
                //其他日志操作;
                return(false);
            }
            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();
            }
            return(result);
        }
Exemplo n.º 20
0
        /// <summary>
        /// word转换PDF
        /// </summary>
        /// <param name="wordfile">word文件路径<</param>
        /// <param name="newPdfFile">pdf文件路径</param>
        /// <param name="errorMsg">转换失败后的详细信息</param>
        /// <returns></returns>
        public static bool WordConvertPdf(string wordfile, string newPdfFile, out string errorMsg)
        {
            WdExportFormat exportFormat = WdExportFormat.wdExportFormatPDF;
            object         paramMissing = Type.Missing;

            Microsoft.Office.Interop.Word.Application wordApplication = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word._Document   wordDocument    = null;
            try
            {
                object              paramSourceDocPath          = wordfile;
                string              paramExportFilePath         = newPdfFile;
                WdExportFormat      paramExportFormat           = exportFormat;
                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;
                wordDocument = wordApplication.Documents.Open(ref paramSourceDocPath, 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(paramExportFilePath, paramExportFormat,
                                                     paramOpenAfterExport, paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps, paramKeepIRM, paramCreateBookmarks,
                                                     paramDocStructureTags, paramBitmapMissingFonts, paramUseISO19005_1, ref paramMissing);
                }
                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();

                errorMsg = string.Empty;
                return(true);
            }
            catch (Exception ex)
            {
                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();
                errorMsg = ex.Message;
                return(false);
            }
        }
Exemplo n.º 21
0
        private static void ExportToPdf(string fullRtfFileName, string fullPdfFileName)
        {
            Microsoft.Office.Interop.Word.Application wordApplication = new Application();
            Document wordDocument = null;

            object paramSourceDocPath = fullRtfFileName;
            object paramMissing       = Type.Missing;

            string              paramExportFilePath    = fullPdfFileName;
            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.wdExportCreateNoBookmarks; //wdExportCreateWordBookmarks;
            bool paramDocStructureTags   = true;
            bool paramBitmapMissingFonts = true;
            bool paramUseISO19005_1      = false;

            try
            {
                /*
                 *
                 * docs.Open(
                 *           COleVariant("C:\\Test.doc",VT_BSTR),
                 *           covFalse,    // Confirm Conversion.
                 *           covFalse,    // ReadOnly.
                 *           covFalse,    // AddToRecentFiles.
                 *           covOptional, // PasswordDocument.
                 *           covOptional, // PasswordTemplate.
                 *           covFalse,    // Revert.
                 *           covOptional, // WritePasswordDocument.
                 *           covOptional, // WritePasswordTemplate.
                 *           covOptional) // Format. // Last argument for Word 97
                 *              covOptional, // Encoding // New for Word 2000/2002
                 *              covTrue,     // Visible
                 *              covOptional, // OpenConflictDocument
                 *              covOptional, // OpenAndRepair
                 *              (long)0,     // DocumentDirection wdDocumentDirection LeftToRight
                 *              covOptional  // NoEncodingDialog
                 *              )  // Close Open parameters
                 */
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                // Respond to the error
                string msg = ex.Message;
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing,
                                       ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing,
                                         ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Exemplo n.º 22
0
        /// <summary>
        /// Word转换成PDF(批量文件转换推荐使用)
        /// </summary>
        /// <param name="inputPath">文件完整路径</param>
        /// <param name="outputPath">保存路径</param>
        public static int WordsToPDFs(string[] inputPaths, string outputPath)
        {
            int count = 0;

            #region 初始化
            //初始化一个application
            Application wordApplication = new Application();
            //初始化一个document
            Document wordDocument = null;
            #endregion

            //默认值
            object paramMissing = Type.Missing;

            for (int i = 0; i < inputPaths.Length; i++)
            {
                #region 参数设置~~我去累死宝宝了~~(所谓的参数都是根据这个方法来的:ExportAsFixedFormat)
                //word路径
                object wordPath = Path.GetFullPath(inputPaths[i]);

                //获取文件名
                string outputName = Path.GetFileNameWithoutExtension(inputPaths[i]);

                //输出路径
                string pdfPath = Path.GetFullPath(outputPath + @"\" + outputName + ".pdf");

                //导出格式为PDF
                WdExportFormat wdExportFormat = WdExportFormat.wdExportFormatPDF;

                //导出大文件
                WdExportOptimizeFor wdExportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForPrint;

                //导出整个文档
                WdExportRange wdExportRange = WdExportRange.wdExportAllDocument;

                //开始页码
                int startIndex = 0;

                //结束页码
                int endIndex = 0;

                //导出不带标记的文档(这个可以改)
                WdExportItem wdExportItem = WdExportItem.wdExportDocumentContent;

                //包含word属性
                bool includeDocProps = true;

                //导出书签
                WdExportCreateBookmarks paramCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;

                #endregion

                #region 转换
                try
                {
                    //打开word
                    wordDocument = wordApplication.Documents.Open(ref wordPath, 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(pdfPath, wdExportFormat, false, wdExportOptimizeFor, wdExportRange, startIndex, endIndex, wdExportItem, includeDocProps, true, paramCreateBookmarks, true, true, false, ref paramMissing);
                    }
                    count++;
                }
                catch (Exception ex)
                {
                }
                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;
            }
            return(count);

            #endregion
        }
Exemplo n.º 23
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="srcFilePath"></param>
        /// <param name="destFileDir"></param>
        /// <param name="pdfName"></param>
        /// <returns></returns>
        private bool ConvertWord2PDF(string srcFilePath, string destFileDir, string destFileName)
        {
            bool result;

            // validate path
            ValidateHelper.Begin().NotNullAndEmpty(srcFilePath).FileExist(srcFilePath).NotNullAndEmpty(destFileDir).NotNullAndEmpty(destFileName);

            if (!Directory.Exists(destFileDir))
            {
                Directory.CreateDirectory(destFileDir);
            }
            if (Path.GetExtension(destFileName).ToLower() != ".pdf")
            {
                destFileName = destFileName + ".pdf";
            }

            try
            {
                object paramSourceDocPath  = srcFilePath;
                object paramMissing        = Type.Missing;
                string paramExportFilePath = Path.Combine(destFileDir, destFileName);

                // create a word application object
                ApplicationClass wordApplication = new ApplicationClass();
                Microsoft.Office.Interop.Word.Document wordDocument = null;

                //set exportformat to pdf
                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
                {
                    // Open the source document.
                    wordDocument = wordApplication.Documents.Open(
                        ref paramSourceDocPath, 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);

                    // Export it in the specified format.
                    if (wordDocument != null)
                    {
                        wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                         paramExportFormat, paramOpenAfterExport,
                                                         paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                         paramEndPage, paramExportItem, paramIncludeDocProps,
                                                         paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                         paramBitmapMissingFonts, paramUseISO19005_1,
                                                         ref paramMissing);
                    }

                    result = true;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    // Close and release the Document object.
                    if (wordDocument != null)
                    {
                        wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordDocument = null;
                    }

                    // Quit Word and release the ApplicationClass object.
                    if (wordApplication != null)
                    {
                        wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordApplication = null;
                    }

                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(result);
        }
Exemplo n.º 24
0
        /// <summary>
        /// Take a MS Word file, and output a corresponding PDF>
        /// </summary>
        /// <param name="args">[0]: Path to the file to be converted; [1]: Path to the output file</param>
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.Out.WriteLine("Incorrect number of parameters. Expected: <source> <result>, was " + args.Length);
                return;
            }

            // Initialize Word interop references.
            Application wordApplication = new Application();
            Document    wordDocument    = null;

            // Get full path of input and output files.
            object paramSourceDocPath  = Path.GetFullPath(args[0]);
            string paramExportFilePath = Path.GetFullPath(args[1]);

            ///////////////////////////////////////////////
            /// STATIC CONFIGURATION PARAMETERS
            //////////////////////////////////////////////

            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;

            object paramMissing = Type.Missing;

            ///////////////////////////////////////////////
            /// CONVERSION
            //////////////////////////////////////////////

            try
            {
                // Open the source document.
                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, 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);

                // Export it in the specified format.
                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine(ex);
            }
            finally
            {
                // Close and release the Document object.
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing,
                                       ref paramMissing);
                    wordDocument = null;
                }

                // Quit Word and release the ApplicationClass object.
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing,
                                         ref paramMissing);
                    wordApplication = null;
                }

                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }