iTextSharp-преобразование word doc / docx в pdf

Я понимаю, что iTextSharp можно использовать для преобразования документа в pdf.

но Сначала мы должны создать документ с нуля, используя iTextSharp.текст.Документ, а затем добавление элементов в этот документ.

Что делать, если у меня есть существующий файл doc, можно ли преобразовать этот документ в pdf с помощью iTextSharp.

кроме того, я хочу использовать iTextSharp или любой подобный инструмент, который может выполнять следующие действия в файле doc:

  1. манипуляции doc / docx / текстовые файлы (например, замена некоторых заполнителей значениями БД), а также
  2. преобразует их .формат PDF

кто имеет представление об этом, пожалуйста, поделитесь.

спасибо!

6 ответов


на Aspose.Слова!--2--> компонент может сделать это надежно (я не связан или что-то еще).

iTextSharp не имеет необходимого набора функций для загрузки и обработки форматов файлов MS Word.


Aspose.Слова-действительно хорошее решение, но оно не предлагает совершенной верности. На момент написания он имеет проблемы с не римскими языками, сложным форматированием, таким как плавающие элементы и ряд других проблем.

возможно, вы захотите взглянуть на эту веб-сервис преобразования PDF это может быть использовано из любой среды, способной веб-служб, включая Java и .Сеть.

обратите внимание, что я работал над этим проектом, поэтому обычные отмазки применять.


вы можете использовать существующий метод Microsoft.Офис

 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);
        }
    } 

Если вас не волнует, будет ли форматирование верным тому, какое слово будет отображаться, есть впечатляющий docx2tex который преобразует файлы Word 2007 docx в документы Latex. После того, как в латекс, у вас есть много энергии, чтобы programmitically переформатировать документ, и создавать PDF из него.

Я говорю больше об утилите в ответе на tex.клиент StackExchange.  


для манипуляции docx следует использовать собственный метод Open XML. Загрузите пакет SDK 2 Open XML от Microsoft.

и затем вы можете конвертировать файлы docx в pdf с помощью этой платной библиотеки:http://www.subsystems.com/dpw.htm . Это действительно здорово.


У меня такая же проблема.
после нескольких дней попыток найти решение, кажется Docx4J, инструмент на основе Java или PDF-принтеры, такие как PDFCreator, может быть среди бесплатных решений.
Конечно, только коммерческий инструмент может эффективно выполнить запрошенную задачу.
На стороне Microsoft вы можете использовать серверную сторону enabled Sharepoint Word Automation Services, (проверка на 7 июня 2016 ), или взаимодействие в вашем местном компьютер.
Предлагаемое преобразование части в часть (DOC или DOC на какой-то промежуточный язык, а затем в PDF ) кажется, для того, что пользователи сказали на StackOverflow или других форумах, невозможно, потому что результат не то, что ожидалось.