ITextSharp - Преобразование слова doc/docx в pdf

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

Но сначала нам нужно создать документ с нуля с помощью iTextSharp.text.Document, а затем добавить элементы в этот документ.

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

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

  • манипулирование файлами doc/docx/text (например, замена некоторых заполнителей значениями DB), а также
  • преобразует их в .pdf

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

Спасибо!

Ответ 1

Компонент Aspose.Words может сделать это надежно (я не являюсь аффилированным лицом или чем-то еще).

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

Ответ 2

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

Возможно, вам стоит взглянуть на этот PDF Conversion Web Service, который можно использовать в любой среде, поддерживающей веб-службы, включая Java и. NET.

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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