ABCpdf, ASP.net — Выгружаемый HTML с динамически сгенерированной страницей .aspx

#asp.net #abcpdf

#asp.net #abcpdf

Вопрос:

Я пытаюсь использовать ABCpdf (версия 11) для создания PDF-файла из страницы .aspx, которую я создаю. Я следую их образцу кода из https://www.websupergoo.com/helppdfnet/default.htm?page=source/5-abcpdf/doc/1-methods/chainable.htm и это работает идеально.

Страница .aspx, которую я генерирую, содержит таблицу с переменным количеством строк с другими элементами. Это отлично работает, когда в таблице всего несколько строк и в результате страница получается короткой, а в PDF-файле всего одна страница, но когда страница длинная с большим количеством строк в таблице, она просто сохраняет первую страницу как pdf. Я попытался отладить код и увидел, что строка, в которую он должен добавить страницу, никогда не выполняется, потому что doc.Chainable(theID) всегда возвращается как false.

     Dim theID As Integer
    theID = theDoc.AddImageUrl(HttpContext.Current.Request.Url.AbsoluteUri)
    'Chain
    While True
        theDoc.FrameRect() ' add a black border
        If Not theDoc.Chainable(theID) Then
            Exit While
        End If
        theDoc.Page = theDoc.AddPage()
        theID = theDoc.AddImageToChain(theID)
    End While
  

Почему .Цепочка всегда имеет значение false? Что устанавливает для него значение true или false? Если я принудительно сделаю это true, то в качестве второй страницы я получу пустую страницу, поэтому мне нужно знать, почему это свойство возвращается как false .

Кто-нибудь из вас сталкивался с этой проблемой? Любая помощь приветствуется.

Ответ №1:

Я нашел проблему. И способ его устранения!

Проблема не имела ничего общего с ABCpdf, это способ печати страницы (.aspx). Я нажал Ctrl P, чтобы запустить предварительный просмотр, чтобы посмотреть, отображаются ли все страницы, и увидел, что страница была обрезана после первой страницы. Это также может быть причиной, почему .Chainable всегда было false. Итак, я добавил следующий css и вуаля! Он работает так, как ожидалось.

 @media print {
   #form1 { overflow:visible !important;}
}
  

где form1 — идентификатор основной формы.