Как создать один HTML-файл из PDF с несколькими страницами, используя Winnovative PDF to HTML Converter

Я запрограммировал в VS 2015, WPF и C# приложение, преобразующее PDF-файл в HTML-файл. Пакет NuGet Winnovative.PdfToHtml кажется лучшим решением, и результаты выглядят неплохо. Но, к сожалению, когда я конвертирую файл PDF с более чем одной страницей, конвертер создает файл HTML для каждой страницы.

Есть ли возможность создать один файл HTML?

Вот код моего приложения, в котором данный PDF-файл преобразуется в HTML:

    /// <summary>
    /// Sources:
    /// http://www.winnovative-software.com/pdf-to-html-converter.aspx
    /// </summary>
    private void WnvPdfToHtml()
    {
        if (tbxPdfFilePath.Text.Trim().Equals(String.Empty))
        {
            MessageBox.Show("Please choose a source PDF file", "Choose PDF file", MessageBoxButton.OK);
            return;
        }

        // The source pdf-file
        string pdfFileName = tbxPdfFilePath.Text.Trim();
        // The name of the html-file
        string htmlFileName = System.IO.Path.GetFileNameWithoutExtension(pdfFileName); // + ".html"; // Muss ohne Extension sein!

        var pdfReader = new iTextSharp.text.pdf.PdfReader(pdfFileName);
        int pdfPageCount = pdfReader.NumberOfPages;
        int startPageNumber = 1;
        int endPageNumber = pdfPageCount;

        // create the converter object and set the user options
        PdfToHtmlConverter pdfToHtmlConverter = new PdfToHtmlConverter();

        pdfToHtmlConverter.LicenseKey = "UtzN3cnM3c3dy9PN3c7M08zP08TExMTdzQ==";

        string outputDirectory = System.IO.Directory.GetCurrentDirectory();

        Cursor = Cursors.Wait;

        try
        {
            // convert PDF pages to HTML files in a directory
            pdfToHtmlConverter.CreateIndexFile = true;
            pdfToHtmlConverter.ConvertPdfPagesToHtmlFile(pdfFileName, startPageNumber, endPageNumber, outputDirectory, htmlFileName);

            // uncomment the lines below to raise the PageConvertedEvent event when a PDF page is converted
            // the pdfToHtmlConverter_PageConvertedEvent handler below will be executed for each converted PDF page
            // Do not forget to uninstall the handler when is not needed anymore
            pdfToHtmlConverter.PageConvertedEvent += pdfToHtmlConverter_PageConvertedEvent;
            pdfToHtmlConverter.ConvertPdfPagesToHtmlInEvent(pdfFileName, startPageNumber, endPageNumber);

            // uncomment the line below to convert PDF pages in memory to an array of PdfPageHtml objects
            //PdfPageHtml[] pdfPageHtmls = pdfToHtmlConverter.ConvertPdfPagesToHtml(pdfFileName, startPageNumber, endPageNumber);
        }
        catch (Exception ex)
        {
            // The conversion failed
            MessageBox.Show(String.Format("An error occurred. {0}", ex.Message), "Error");
            return;
        }
        finally
        {
            Cursor = Cursors.Arrow;
        }

        try
        {
            System.Diagnostics.Process.Start(outputDirectory);
        }
        catch (Exception ex)
        {
            MessageBox.Show(string.Format("Cannot open output folder. {0}", ex.Message));
            return;
        }
    }

    /// <summary>
    /// The PageConvertedEvent event handler called after when a PDF page was converted to HTML
    /// The event is raised when the ConvertPdfPagesToHtmlInEvent() method is used
    /// </summary>
    /// <param name="args">The handler argument containing the PDF page HTML and page number</param>
    void pdfToHtmlConverter_PageConvertedEvent(PageConvertedEventArgs args)
    {
        // The source pdf-file
        string pdfFileName = tbxPdfFilePath.Text.Trim();
        // get the HTML document and page number from even handler argument
        string pdfPageHtml = args.PdfPageHtml.Html;
        int pageNumber = args.PdfPageHtml.PageNumber;

        // save the PDF page HTML to a file
        string outputHtmlFile = System.IO.Path.GetFileNameWithoutExtension(pdfFileName) + ".html";
        File.WriteAllText(outputHtmlFile, pdfPageHtml, Encoding.UTF8);

        args.PdfPageHtml.Dispose();
    }

0 ответов

Другие вопросы по тегам