IText преобразует мой HTML только в одностраничный PDF-файл и игнорирует все остальное.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 IText преобразует мой HTML только в одностраничный PDF-файл и игнорирует все остальное.

Сообщение Anonymous »

Я получаю HTML-форму из своего внешнего интерфейса и хочу преобразовать ее в файл PDF, но он возвращает только одну страницу, а вся моя форма обрезана и даже не читается.. p>
Вот мой код, если нужно, выложу и свой html-код:

Код: Выделить всё

    public async Task PdfProvider()
{
var htmlStream = new MemoryStream();
await HttpContext.Request.Body.CopyToAsync(htmlStream);
var htmlBytes = htmlStream.ToArray();

var resultHtml = Encoding.UTF8.GetString(htmlBytes);

var workStream = new MemoryStream();
try
{

using (var pdfWriter = new PdfWriter(workStream, new WriterProperties().SetFullCompressionMode(true)))
{
pdfWriter.SetCloseStream(false);
HtmlConverter.ConvertToPdf(resultHtml, pdfWriter);
}
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}

workStream.Position = 0;

return File(workStream, "application/pdf", "Document.pdf");

}
Отправка html-контента из внешнего интерфейса (работа с Blazor):

Код: Выделить всё

private async Task DownloadAsync()
{
await GetHtmlResult();

var fileName = System.IO.Path.GetFileNameWithoutExtension(FileName);

await _jsRuntime.InvokeVoidAsync("fileDownload", "application/pdf", Convert.ToBase64String(PdfContent), $"{fileName}_chat.pdf");
}

private async Task GetHtmlResult()
{
string resultHtml = "";
while (string.IsNullOrEmpty(resultHtml))
{
resultHtml = await _jsRuntime.InvokeAsync("getHtmlContent", PdfResultMarkup);
}

_httpClient.BaseAddress = new Uri(HostEnvironment.BaseAddress);

var htmlTemplate = await _httpClient.GetStringAsync(@"HtmlTemplates/html5Template.html");
var cssStyles = await _httpClient.GetStringAsync(@"css/pdf.css");
var htmlResult = htmlTemplate.Replace("@content", resultHtml).Replace("@cssstyle", cssStyles);

PdfContent = await _fileService.GetPdfAsync(Encoding.UTF8.GetBytes(htmlResult));
}
Фактический HTML:

Код: Выделить всё



@cssstyle

Document




Chat

@content




Что мне здесь не хватает? Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... thing-else
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»