Я пытаюсь отобразить HTML как PDF, используя страницы Razor ASP.NET и файл Select.pdf.
Сначала все выглядит нормально, и отчет генерируется правильно.Но затем я начал добавлять изображения в конец отчета, и по какой-то причине это привело к некорректному отображению последней страницы, в результате чего была воспроизведена только половина содержимого.Не половина страницы, а половина содержимого на последней странице.Так что, если у меня есть одно изображение на последней странице, половина изображения отображается.Если у меня есть два изображения рядом, оно будет просвечивать до середины самого высокого из двух изображений.Если я добавлю текст после изображений, он будет отображать больше, пока он не станет равным половине высоты изображения + текст.
Кто-нибудь сталкивался с этой ошибкой раньше?Если так, как я могу заставить генератор PDF работать правильно?
РЕДАКТИРОВАТЬ: способ, которым я добавляю изображения, состоит в том, чтобы добавить их через цикл for, потому что мне нужно добавить их динамически.Поэтому я перебираю список URL-адресов, извлекаю из них изображения и связываю их, по два изображения в строке, максимум четыре изображения на страницу.
Если я посмотрю на HTML напрямую, браузер отобразит его правильно.Но при попытке отобразить его в PDF с помощью Select.PDF это вызовет вышеупомянутую ошибку «рендеринг только половины содержимого».Хотя я успешно сделал так, что он рендерит меньше, чем это (до 10%; крошечная полоска изображений), отделяя текст изображения от самого изображения.
Я использую следующий цикл for::
@{counter = 0;}
@foreach (var image in Model.ReportImages)
{
@if (counter == 4)
{
<p style="page-break-before: always; clear: both;"></p>
counter = 0;
}
<p style="float: left; width:45%; height:45%; text-align: center; margin-right:2%; margin-bottom: 2%; page-break-inside: avoid;"><img src="@Url.Content(image.ImageURL)" alt="IMAGES" style="width: 100%; page-break-inside: avoid;"/>@image.QuestionNumber</p>
counter++;
}