QuestPDF не сохраняет PDF и не открывается на новой вкладке ⇐ C#
-
Гость
QuestPDF не сохраняет PDF и не открывается на новой вкладке
Я использую QuestPDF в основном веб-приложении asp.net. PDF выглядит хорошо и имеет все необходимое. Проблема в том, что когда я использую .GeneratePdfAndShow(), он отображается не в браузере, а в Acrobat Reader или чем-то подобном. Когда я использую .GeneratePdf(), он вообще не отображается Мне нужно, чтобы документ отображался пользователю желательно на новой вкладке в формате PDF, чтобы он мог его распечатать и продолжить работу внутри приложения
Проблема в том, что я не могу вызвать функцию Print() из JS, если бы я мог, я бы просто сказал об успехе window.open _blank Но мне нужно вызвать функцию Print() из другой точки действия. Я делаю это так:
if (newKanbanItems.Any()) { Список KanbanOBJS = новый Список(); foreach (элемент var в newKanbanItems) { int Position = _db.ListContentCST.FirstOrDefault(x => x.LCCST_Id == item.KL_ListContentId).LCCST_Position; Объект KanbanOBJ = новый { LCCST_Position = позиция, PagodaPlace = item.KL_PagodaPlace, Набор выводов = item.KL_Material, QtyOfBundles = item.KL_QtyOfBundles }; КанбанOBJS.Добавить(КанбанOBJ); } Печать (область, userCST, имя, KanbanOBJS); } Мне нужно вызвать его из бэкэнда, потому что я могу пройти цикл, чтобы получить все объекты, которые мне нужно напечатать:
// Вставка таблицы сразу после строки столбец.Элемент() .PaddingTop(3) .Таблица(таблица => { table.ColumnsDefinition(столбцы => { столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); }); table.Header(заголовок => { заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("LCCST_Position"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Место Пагоды"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Набор потенциальных клиентов"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Количество пакетов"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Введен в эксплуатацию?"); }); foreach (элемент var в KanbanOBJ) { динамический объект = элемент; таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.LCCST_Position}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.PagodaPlace}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.Leadset}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.QtyOfBundles}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Текст(""); } }); Есть ли у кого-нибудь обходной путь?
Я попробовал все QuestPDF .Generate() методы Я попытался задать ChatGPT вопрос об этой проблеме и проверил документацию QuestPDF, но не нашел ничего полезного.
Я использую QuestPDF в основном веб-приложении asp.net. PDF выглядит хорошо и имеет все необходимое. Проблема в том, что когда я использую .GeneratePdfAndShow(), он отображается не в браузере, а в Acrobat Reader или чем-то подобном. Когда я использую .GeneratePdf(), он вообще не отображается Мне нужно, чтобы документ отображался пользователю желательно на новой вкладке в формате PDF, чтобы он мог его распечатать и продолжить работу внутри приложения
Проблема в том, что я не могу вызвать функцию Print() из JS, если бы я мог, я бы просто сказал об успехе window.open _blank Но мне нужно вызвать функцию Print() из другой точки действия. Я делаю это так:
if (newKanbanItems.Any()) { Список KanbanOBJS = новый Список(); foreach (элемент var в newKanbanItems) { int Position = _db.ListContentCST.FirstOrDefault(x => x.LCCST_Id == item.KL_ListContentId).LCCST_Position; Объект KanbanOBJ = новый { LCCST_Position = позиция, PagodaPlace = item.KL_PagodaPlace, Набор выводов = item.KL_Material, QtyOfBundles = item.KL_QtyOfBundles }; КанбанOBJS.Добавить(КанбанOBJ); } Печать (область, userCST, имя, KanbanOBJS); } Мне нужно вызвать его из бэкэнда, потому что я могу пройти цикл, чтобы получить все объекты, которые мне нужно напечатать:
// Вставка таблицы сразу после строки столбец.Элемент() .PaddingTop(3) .Таблица(таблица => { table.ColumnsDefinition(столбцы => { столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); столбцы.RelativeColumn(); }); table.Header(заголовок => { заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("LCCST_Position"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Место Пагоды"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Набор потенциальных клиентов"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Количество пакетов"); заголовок.Ячейка() .Border(6, единица измерения: Unit.Mil) .AlignCenter() .AlignMiddle() .Text("Введен в эксплуатацию?"); }); foreach (элемент var в KanbanOBJ) { динамический объект = элемент; таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.LCCST_Position}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.PagodaPlace}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.Leadset}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Text($"{obj.QtyOfBundles}"); таблица.Ячейка() .AlignCenter() .AlignMiddle() .Текст(""); } }); Есть ли у кого-нибудь обходной путь?
Я попробовал все QuestPDF .Generate() методы Я попытался задать ChatGPT вопрос об этой проблеме и проверил документацию QuestPDF, но не нашел ничего полезного.
Мобильная версия