Как преобразовать .docx в .pdf в C #

Теперь мы используем OpenXML для чтения данных из базы данных и создания документа. Но последнее требование - это быть pdf. Итак, я хочу знать, как преобразовать .docx в pdf на C #. Может ли кто-нибудь помочь? Или предоставьте некоторую информацию.


person Robin Sun    schedule 24.10.2013    source источник
comment
Для этого я использую Aspose.Words. Это чистая .NET-библиотека с довольно приличной совместимостью с рендерингом. Автоматизация Office может работать, но работает медленно, но ее нельзя использовать в полностью автоматизированной среде, поскольку она может вызывать случайные окна с запросом ввода.   -  person Cory Nelson    schedule 24.10.2013
comment
Мое любимое решение - создать HTML-файл и позволить пользователю печатать в любом формате, который им нравится. Преимущества: а) не требуется специального программного обеспечения и б) код для печати делается за вас. Очевидно, что мы можем помочь в выполнении требований, которые нам предъявляются, но предложение HTML часто согласуется с руководством.   -  person Gusdor    schedule 24.10.2013
comment
Если последнее требование - pdf, тогда зачем создавать docx? Разве вы не можете напрямую читать значения базы данных для создания PDF?   -  person Coder    schedule 24.10.2013
comment
Я использую GemBox.Document и его преобразование код (Загрузить + Сохранить). Кроме того, что касается создания документа из базы данных, вы можете проверить код слияния, который делает это с легкостью.   -  person Hazel Patton    schedule 02.12.2019


Ответы (2)


Вы можете проверить решения по этой ссылке: http://www.codeproject.com/Questions/346784/How-to-convert-word-document-to-pdf-in-Csharp

Я рекомендую использовать это среди решений в первую очередь:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Office.Interop.Word;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
        wordDocument = appWord.Documents.Open(@"D:\desktop\xxxxxx.docx");
        wordDocument.ExportAsFixedFormat(@"D:\desktop\DocTo.pdf", WdExportFormat.wdExportFormatPDF);
    }

    public Microsoft.Office.Interop.Word.Document wordDocument { get; set; }
}
person Demir    schedule 24.10.2013
comment
Конечно, работает хорошо, но для работы требуется наличие установленного Word. - person AFract; 30.06.2014
comment
Хотя это действительно работает, Microsoft не рекомендует размещать его на серверах. Также, как сказал AFract, на компьютере должен быть установлен MS office, что требует дополнительной лицензии. - person SpaceApple; 28.09.2016
comment
Я видел, как такие вещи портят производственные серверы. Как правило, это плохая идея из-за утечек памяти и различных моделей потоковой передачи. - person Mark Fitzpatrick; 02.05.2018

Вы можете взглянуть на такие библиотеки, как iTextSharp.

person Yao Bo Lu    schedule 24.10.2013
comment
iTextSharp не может напрямую конвертировать docx в pdf, он создает pdf с нуля или копирует существующие страницы pdf. - person Coder; 24.10.2013
comment
Мы не рекомендуем библиотеки здесь, в Stack Overflow ... по крайней мере, не в качестве ответов. - person mickmackusa; 14.07.2020