Преобразование панели в PDF-документ в C# WindowsC#

Место общения программистов C#
Ответить
Anonymous
 Преобразование панели в PDF-документ в C# Windows

Сообщение Anonymous »


Я хочу распечатать панель формы в файл PDF.

Я пробовал использовать библиотеку iText7, как показано в коде ниже.

с использованием системы; использование System.Data; использование System.Windows.Forms; используя iText.Kernel.Pdf; использование iText.Layout; использование iText.Layout.Element; использование iText.IO.Image; использование System.Drawing; использование System.Drawing.Imaging; использование System.IO; пространство имен PDFGeneratorApp { публичный частичный класс Form1: Форма { общедоступная форма1() { ИнициализироватьКомпонент(); } частная кнопка voidPrintPDF_Click (отправитель объекта, EventArgs e) { Панель myPanel = панель1; строка filePath = "file.pdf"; ExportPanelToPdf (панель1, filePath); } public static void ExportPanelToPdf (панель, строка filePath) { // Сначала сохраняем панель в растровое изображение Растровое изображение = новое растровое изображение(panel.Width, Panel.Height); Panel.DrawToBitmap(растровое изображение, новый прямоугольник(0, 0, Panel.Width, Panel.Height)); // Сохраняем изображение в поток используя (поток MemoryStream = новый MemoryStream()) { растровое изображение.Сохранить(поток, ImageFormat.Png); byte[] imageBytes =stream.ToArray(); // Создаем новый PDF-документ PdfWriter Writer = новый PdfWriter (filePath); PdfDocument PDF = новый PdfDocument (писатель); Документ документ = новый документ (pdf); // Добавляем изображение в PDF-документ ImageData imageData = ImageDataFactory.Create(imageBytes); iText.Layout.Element.Image изображение = новый iText.Layout.Element.Image(imageData); документ.Добавить(изображение); // Закрываем документ документ.Закрыть(); } } } } При этом возникает следующее исключение:

iText.Kernel.Exceptions.PdfException HResult=0x80131500 Сообщение = Неизвестное исключение PdfException. Источник=itext.kernel Трассировки стека: в iText.Kernel.Pdf.SmartModePdfObjectsSerializer..ctor() в iText.Kernel.Pdf.PdfWriter..ctor (Stream os, свойства WriterProperties) в iText.Kernel.Pdf.PdfWriter..ctor (имя строкового файла) в PDFGeneratorApp.Form1.ExportPanelToPdf (панель, String filePath) в C:\Users\CONSULTANT 2\source\repos\PDFGeneratorApp\Form1.cs:line 62 в PDFGeneratorApp.Form1.buttonPrintPDF_Click(Отправитель объекта, EventArgs e) в C:\Users\CONSULTANT 2\source\repos\PDFGeneratorApp\Form1.cs:line 46 в System.Windows.Forms.Control.OnClick(EventArgs e) в System.Windows.Forms.Button.OnClick(EventArgs e) в System.Windows.Forms.Button.OnMouseUp (событие MouseEventArgs) в System.Windows.Forms.Control.WmMouseUp(Message& m, кнопка MouseButtons, клики Int32) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ButtonBase.WndProc(Message& m) в System.Windows.Forms.Button.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, причина Int32, Int32 pvLoopData) в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (причина Int32, контекст ApplicationContext) в System.Windows.Forms.Application.ThreadContext.RunMessageLoop (причина Int32, контекст ApplicationContext) в System.Windows.Forms.Application.Run (форма mainForm) в PDFGeneratorApp.Program.Main() в C:\Users\CONSULTANT 2\source\repos\PDFGeneratorApp\Program.cs:строка 19 Это исключение изначально было создано в этом стеке вызовов: iText.Bouncycastleconnector.BouncyCastleDefaultFactory.CreateIDigest(строка) iText.Kernel.Pdf.SmartModePdfObjectsSerializer.SmartModePdfObjectsSerializer() Внутреннее исключение 1: NotSupportedException: для использования BouncyCastleFactoryCreator необходимо добавить зависимость com.itextpdf:bouncy-castle-adapter или com.itextpdf:bouncy-castle-fips-adapter. Я пробовал установить com.itextpdf, но установка не удалась с сотнями ошибок. Кажется, что установки iText недостаточно и нужно устанавливать другие зависимости отдельно.

Есть ли альтернатива этому — распечатать панель в формате PDF?
Ответить

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

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

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

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

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