Почему EO.PDF перестает работать при преобразовании HTML-файла в PDF в C # - PullRequest
1 голос
/ 13 июля 2011

У меня есть следующие биты кода:

 public static void WriteHTML(string cFile, List<Movie> mList)
        {
            int lineID = 0;
            string strMovie, strGenre, tmpGenre = null;

            // initiates streamwriter for catalog output file
            FileStream fs = new FileStream(cFile, FileMode.Create);
            StreamWriter catalog = new StreamWriter(fs);

            string strHeader = "<style type=\"text/css\">\r\n" + "<!--\r\n" + "tr#odd {\r\n" + "    background-color:#e2e2e2;\r\n" + "  vertical-align:top;\r\n" + "}\r\n" + "\r\n" + "tr#even {\r\n" + "   vertical-align:top;\r\n" + "}\r\n" + "div#title {\r\n" + "  font-size:16px;\r\n" + "    font-weight:bold;\r\n" + "}\r\n" + "\r\n" + "div#mpaa {\r\n" + "    font-size:10px;\r\n" + "}\r\n" + "\r\n" + "div#genre {\r\n" + " font-size:12px;\r\n" + "    font-style:italic;\r\n" + "}\r\n" + "\r\n" + "div#plot {\r\n" + "   height: 63px;\r\n" + "  font-size:12px;\r\n" + "    overflow:hidden;\r\n" + "}\r\n" + "-->\r\n" + "</style>\r\n" + "\r\n" + "<html>\r\n" + "    <body>\r\n" + "     <table>\r\n";
            catalog.WriteLine(strHeader);

            foreach (Movie m in mList)
            {
                strMovie = lineID == 0 ? "          <tr id=\"odd\" style=\"page-break-inside:avoid\">" : "          <tr id=\"even\" style=\"page-break-inside:avoid\">";
                catalog.WriteLine(strMovie);

                foreach (string genre in m.Genres)
                    tmpGenre += ", " + genre;

                try
                { strGenre = tmpGenre.Substring(2); }
                catch (Exception)
                { strGenre = null; }

                strMovie = "                <td>\r\n" + "                   <img src=\".\\images\\" + m.ImageFile + "\" width=\"75\" height=\"110\">\r\n" + "               </td>\r\n" + "              <td>\r\n" + "                   <div id=\"title\">" + m.Title + "</div>\r\n" + "                    <div id=\"mpaa\">" + m.Certification + " " + m.MPAA + "</div>\r\n" + "                  <div id=\"genre\">" + strGenre + "</div>\r\n" + "                   <div id=\"plot\">" + m.Plot + "</div>\r\n" + "              </td>\r\n" + "          </tr>\r\n";
                catalog.WriteLine(strMovie);
                lineID = lineID == 0 ? 1 : 0;
            }

            catalog.WriteLine("     </table>\r\n" + "   </body>\r\n" + "</html>");
            catalog.Close();
        }




        public static void WritePDF(string cFile, string pdfFile)
        {
            // Sets up PDF to write to
            EO.Pdf.HtmlToPdf.Options.PageSize = new SizeF(8.5f, 11f);
            EO.Pdf.HtmlToPdf.Options.OutputArea = new RectangleF(0.5f, .25f, 7.5f, 10.25f);

            HtmlToPdf.ConvertUrl(cFile, pdfFile);
        }

Мой HTML-файл пишет нормально, но когда он пытался преобразовать HTML-файл в PDF, я получаю исключение, что время ожидания истекло.

Я провел тест ранее, и он преобразовал код (а не файл) в функцию WriteHTML, и он отлично работал.Я подтвердил, что cFile существует и является допустимым файлом (созданным ранее в WriteHTML).Путь к pdfFile действителен, и в документации не указано, что файл должен уже существовать (.ConvertHTML не нужен существующий файл).

Единственное, о чем я могу думать, это о том, что файл catalog.html не существует.еще не вышел и готов к прочтению.Я удостоверился, что закрыл это в функции WriteHTML.Как я могу проверить, готов ли файл для чтения?

Пробная настройка .MaxLoadWaitTime = 120000 без удачи.

Любые подсказки будут с благодарностью!

1 Ответ

0 голосов
/ 14 июля 2011

После продолжительного тестирования и изучения форумов поддержки EO это является ограничением бесплатной версии EO.Кажется, с HTML-файлами размером более 3 МБ возникают проблемы.

Обидно, поскольку продукт EO очень хорош, но, к сожалению, не стоит $ 250 IMO.

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