конвертирайте doc в pdf в c#

Как мога да конвертирам .doc в .pdf с помощта на asp.net c#. Не мога да използвам компонент на трета страна.

Кодът трябва да е вътре

  1. C# или vb.net
  2. Съвместим с VS 2005. (Ако не, моля, публикувайте отговорите си, след това бих конвертирал ръчно към VS 2005)

Кажете ми, ако имате въпроси.

Благодаря!


person xorpower    schedule 05.02.2011    source източник
comment
Моля, не публикувайте прости заявки някой да напише вашия код вместо вас. Ако имате конкретен въпрос, моля, публикувайте въпрос за него.   -  person Adam Robinson    schedule 05.02.2011
comment
@Adam: ще го имам предвид   -  person xorpower    schedule 05.02.2011
comment
възможен дубликат на Как да конвертирам Word файлове в PDF програмно?   -  person Mauricio Scheffer    schedule 05.02.2011
comment
@Scheffer: връзката ти работи! но кодовият фрагмент, даден там, е полезен само за .doc. Някаква идея да го накарам да работи за .docx?   -  person xorpower    schedule 05.02.2011


Отговори (4)


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 с (първичният модул за оперативна съвместимост ще бъде инсталиран по подразбиране).
  • плъгин SaveAsPDFandXPS ( безплатно от MS Site)

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

person ayush    schedule 05.02.2011

Можете да използвате Microsoft.Office.Interop.Word.dll, за да конвертирате Word файл в PDF.

Първо инсталирайте пакета и добавете препратка към него.

using Microsoft.Office.Interop.Word;

След това използвайте следния код, за да конвертирате Word документ в PDF.

Application app = new Application();
Document doc = app.Documents.Open(@"D:/test.docx");
doc.SaveAs2(@"D:/test.pdf", WdSaveFormat.wdFormatPDF);
doc.Close();
app.Quit();
Console.WriteLine("Completed");
person Ashin    schedule 19.10.2019

Можете да използвате моя код, той работи без изключение и не поддържа отворени COM обекти във фоновите процеси.

Application app = new Application();
                app.Visible = false;
                app.DisplayAlerts = WdAlertLevel.wdAlertsNone;
                Documents documents = app.Documents;
                Document doc = documents.Open(fileLocation);
                newPath = Path.GetDirectoryName(fileLocation);
                newPath = newPath.Replace(newPath, outLocation);
                if (!File.Exists(newPath))
                {
                    doc.SaveAs2(newPath, WdSaveFormat.wdFormatPDF);
                }

                Marshal.ReleaseComObject(documents);
                doc.Close();
                Marshal.ReleaseComObject(doc);
                app.Quit();
                Marshal.ReleaseComObject(app);
person Fuad Alizade    schedule 03.09.2020

person    schedule
comment
Не е ясно какво добавя вашият отговор, което е различно от приетия отговор. Като цяло трябва да опишете какво публикувате, вместо да въвеждате само кода, но още повече за стар въпрос, който вече има прието решение. - person Seth Battin; 27.03.2017