iTextSharp - конвертировать слово doc / docx в pdf - PullRequest
15 голосов
/ 08 октября 2009

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

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

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

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

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

Если у вас есть идеи по этому поводу, пожалуйста, поделитесь.

Спасибо!

Ответы [ 6 ]

14 голосов
/ 08 октября 2009

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

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

3 голосов
/ 03 июня 2013

Вы можете использовать существующий метод 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);
        }
    } 
3 голосов
/ 22 июля 2010

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

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

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

1 голос
/ 07 июня 2016

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

1 голос
/ 27 февраля 2010

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

Я скажу больше об утилите в ответе на tex.stackexchange .

0 голосов
/ 08 октября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...