конвертировать документ в PDF в C # - PullRequest
3 голосов
/ 05 февраля 2011

Как я могу конвертировать .doc в .pdf используя asp.net c #. Я не могу использовать сторонние компоненты.

Код должен быть в

  1. C # или vb.net
  2. Совместимо с VS 2005. (Если нет, то, пожалуйста, также оставьте свои ответы, я бы потом вручную перешел на VS 2005)

Дайте мне знать, если какой-либо запрос.

Спасибо!

Ответы [ 2 ]

7 голосов
/ 05 февраля 2011
private Microsoft.Office.Interop.Word.ApplicationClass MSdoc;       

        //Use for the parameter whose type are not known or say Missing
        object Unknown = Type.Missing;

  private void word2PDF(object Source, object Target)
        {   //Creating the instance of Word Application          
       if (MSdoc == null)MSdoc = new Microsoft.Office.Interop.Word.ApplicationClass();

            try
            {  
                MSdoc.Visible = false;               
                MSdoc.Documents.Open(ref Source, ref Unknown,
                     ref Unknown, ref Unknown, ref Unknown,
                     ref Unknown, ref Unknown, ref Unknown,
                     ref Unknown, ref Unknown, ref Unknown,
                     ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
                MSdoc.Application.Visible = false;
                MSdoc.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize;               

                object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;

                MSdoc.ActiveDocument.SaveAs(ref Target, ref format,
                        ref Unknown, ref Unknown, ref Unknown,
                        ref Unknown, ref Unknown, ref Unknown,
                        ref Unknown, ref Unknown, ref Unknown,
                        ref Unknown, ref Unknown, ref Unknown,
                       ref Unknown, ref Unknown);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                if (MSdoc != null)
                {
                    MSdoc.Documents.Close(ref Unknown, ref Unknown, ref Unknown);
                    //WordDoc.Application.Quit(ref Unknown, ref Unknown, ref Unknown);
                }               
                // for closing the application
                WordDoc.Quit(ref Unknown, ref Unknown, ref Unknown);
            }
        }

Требования:

  • MS word2007 с (Основная сборка взаимодействия будет установлена ​​по умолчанию).
  • плагин SaveAsPDF и XPS (бесплатно с сайта MS)

Убедитесь, что у вас есть ссылка на Word.12. Он автоматически добавит Microsoft.Office.interop.word к вашей ссылке. Следуйте за этим для другого офисного приложения. (Примечание: вы должны были установить VS 2005 Tools для Office 2nd Ed. Runtime (VSTO 2005 SE) (x86)

0 голосов
/ 27 марта 2017
//Add Office Library

using Word = Microsoft.Office.Interop.Word;

object str_letter_path = @"D:\DOCTEST.doc";
object outputFilePathPDF = @"D:\PDFTEST.PDF";

Word.Application wordApp = new Word.Application();
wordApp.Visible = false;
wordApp.ScreenUpdating = false;

object oMissing = System.Reflection.Missing.Value;
object fileFormat = Word.WdSaveFormat.wdFormatPDF;

Word.Document doc = wordApp.Documents.Open(ref str_letter_path, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                ref oMissing, ref oMissing, ref oMissing, ref oMissing);

            doc.Activate();

            doc.SaveAs(ref outputFilePathPDF,
                            ref fileFormat, ref oMissing, ref oMissing,
                            ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                            ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                            ref oMissing, ref oMissing, ref oMissing, ref oMissing);

            object saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
            if (doc != null)
                ((Word._Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing);
            ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(ref saveChanges, ref oMissing, ref oMissing);
...