Subhash Tripathi Ответов: 1

Abcpdf в MVC с использованием C# дает ошибку


Я хочу конвертировать html в pdf в mvc . для этого я использую Abcpdf converter .i использую следующий код, но он дает ошибку ""Невозможно
для рендеринга HTML. Не удается загрузить страницу. (HTTP 403)." .

Каждый раз, когда мы запускаем эту следующую строку, она дает ошибку и тормоз
исполнение " theID = theDoc.AddImageUrl("http://www.yahoo.com/");"
пожалуйста, помогите мне,

Что я уже пробовал:

Doc theDoc = new Doc();
        theDoc.Rect.Inset(72, 144);
    
        theDoc.HtmlOptions.Engine = EngineType.MSHtml;
        theDoc.HtmlOptions.UseScript = true;
        theDoc.HtmlOptions.Media = MediaType.Print; 
        
        theDoc.HtmlOptions.InitialWidth = 800; 
        	theDoc.Page = theDoc.AddPage();
        int theID;
        theID = theDoc.AddImageUrl("http://www.yahoo.com/");
        while (true) {
          theDoc.FrameRect(); // add a black border
          if (!theDoc.Chainable(theID))
            break;
          theDoc.Page = theDoc.AddPage();
          theID = theDoc.AddImageToChain(theID);
        }
        for (int i = 1; i <= theDoc.PageCount; i++) {
          theDoc.PageNumber = i;
          theDoc.Flatten();
        }

        theDoc.Save(Server.MapPath("pagedhtml.pdf"));
        theDoc.Clear();

1 Ответов

Рейтинг:
2

Jochen Arndt

Видеть HTTP 403 - Википедия[^].

AbcPdf это не веб-браузер. Это может не сработать как таковое в отношении перенаправлений, которые используются URL-адресом Yahoo из вашего примера. Если вы введете этот URL-адрес в свой браузер, вы заметите, что есть перенаправление (в моем случае на "https://de.yahoo.com/?p=us").

Вы можете попробовать использовать этот HTTPS URL (или те, которые используются с вашим браузером). Если это сработает, то зависит от AbcPdf поддержка защищенных соединений.

Вы также можете попробовать использовать URL-адрес без конечной косой черты ("http://www.yahoo.com") потому что это запрашивает список каталогов, который обычно запрещен (см. третий абзац ссылки на Википедию).

Поскольку похоже, что вы использовали URL-адрес Yahoo для тестирования, я предлагаю использовать другой URL-адрес.