C #. Преобразование документа в PDF - PullRequest
2 голосов
/ 20 мая 2010

Мне нужно преобразовать указанные ниже форматы файлов в pdf, используя C # / VB.Net. Пользователь загрузит файл, используя элемент управления FileUpload, и система вернет файл PDF после преобразования документа.

документ / документ в PDF xls / xlsx в pdf ppt / pps в pdf

Предоставляет ли ITextSharp такую ​​возможность? Пожалуйста, упоминайте только открытые или бесплатные библиотеки.

Спасибо

Ответы [ 4 ]

1 голос
/ 21 мая 2010

Я сделал то же самое только для формата Word. я использую Microsoft.Office.Interop.Word

под кодом.

public static void Word2PDF(string fileName)
{
    ApplicationClass wordApplication = new ApplicationClass();
    Document wordDocument = null;
    object paramSourceDocPath = fileName + @".doc";
    object paramMissing = Type.Missing;
    string paramExportFilePath = fileName + @".pdf";
    WdExportFormat paramExportFormat = WdExportFormat.wdExportFormatPDF;
    bool paramOpenAfterExport = false;

    WdExportOptimizeFor paramExportOptimizeFor =WdExportOptimizeFor.wdExportOptimizeForPrint;

    WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;
    int paramStartPage = 0;

    int paramEndPage = 0;
    WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent;

    bool paramIncludeDocProps = true;
    bool paramKeepIRM = true;

    WdExportCreateBookmarks paramCreateBookmarks =
    WdExportCreateBookmarks.wdExportCreateWordBookmarks;

    bool paramDocStructureTags = true;
    bool paramBitmapMissingFonts = true;

    bool paramUseISO19005_1 = false;

    try
    {
        // Open the source document.
        wordDocument = wordApplication.Documents.Open(
        ref paramSourceDocPath, ref paramMissing, ref paramMissing,
        ref paramMissing, ref paramMissing, ref paramMissing,
        ref paramMissing, ref paramMissing, ref paramMissing,
        ref paramMissing, ref paramMissing, ref paramMissing,
        ref paramMissing, ref paramMissing, ref paramMissing,
        ref paramMissing);

        // Export it in the specified format.
        if (wordDocument != null)
            wordDocument.ExportAsFixedFormat(paramExportFilePath,
            paramExportFormat, paramOpenAfterExport,
            paramExportOptimizeFor, paramExportRange, paramStartPage,
            paramEndPage, paramExportItem, paramIncludeDocProps,
            paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
            paramBitmapMissingFonts, paramUseISO19005_1,
            ref paramMissing);
    }
    catch (Exception ex)
    {

        // Respond to the error
    }
    finally
    {
        // Close and release the Document object.
        if (wordDocument != null)
        {
            wordDocument.Close(ref paramMissing, ref paramMissing,
            ref paramMissing);
            wordDocument = null;
        }
        // Quit Word and release the ApplicationClass object.
        if (wordApplication != null)
        {
            wordApplication.Quit(ref paramMissing, ref paramMissing,
            ref paramMissing);
            wordApplication = null;
        }
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
        GC.WaitForPendingFinalizers();
    }
}

Надеюсь, это поможет.

Примечание: я использую версию 12, значит Office 2007.

1 голос
/ 20 мая 2010

Я никогда не видел бесплатных библиотек для преобразования офисных документов в pdf. Тем не менее, существуют бесплатные драйверы PDF-принтеров, такие как PDFCreator http://sourceforge.net/projects/pdfcreator/files/,, так что, возможно, вы можете установить один из них, а затем просто настроить приложение для печати документов на один из этих принтеров PDF.

Может быть возможным решением, если это небольшой сайт в интрасети или аналогичный.

0 голосов
/ 20 мая 2010

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

Возможно, вам понадобятся две библиотеки. Один для чтения DOC / DOCX и один для записи в PDF. Чтение DOC / DOCX на самом деле может быть более сложной частью, по крайней мере, без установки Microsoft Word. Если у вас есть Word, то у вас есть доступ к интерфейсам COM для управления документами Word, но, очевидно, вам придется платить за Word.

В Википедии перечислено несколько библиотек, открытых и коммерческих, включая iTextSharp, о котором вы упомянули.

http://en.wikipedia.org/wiki/List_of_PDF_software

Учитывая, что OpenOffice имеет открытый исходный код, возможно, стоит посмотреть, как они это делают, поскольку они могут читать DOC (и DOCX?) И записывать в PDF.

Кроме того, вы можете посмотреть на решения PDF Printer. Опять же, я не уверен в решениях с открытым исходным кодом / бесплатно, но если таковые имеются, вы просто печатаете на специальном PDF-принтере из C #, и он конвертируется в PDF-файл. Некоторые продукты также позволяют вам выгружать файл в папку, и он преобразует его.

Я использовал Adobe Distiller (часть Acrobat) и ActivePDF, но это коммерческие решения. ActivePDF предоставляет библиотеку.

Существует также CutePDF , который утверждает, что он бесплатный. Не пробовал и не уверен, какие ограничения существуют над их профессиональной версией.

0 голосов
/ 20 мая 2010

Я не знаю ни о каких бесплатных библиотеках, так как это чрезвычайно сложное поле. Некоторые коммерческие из них доступны, но, как правило, им не хватает точности при конвертации файлов.

Я работал над конвертером PDF на основе веб-служб , который хорошо работает, но не является бесплатным.

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