Windows form c pdf

PDF Reader in C# Windows Form

in this post, how is it created “PDF File Reader” in C# windows form Application? We Will create a winform app about this issue.

The .Net framework does not provide a library to easily handle PDF files in .Net.

Adobe provides an ActiveX COM control that you can add to the CSharp Toolbox. It is a free Adobe Acrobat PDF Reader.

Start C# Windows Form Application and add the control to the C# Toolbox.

Step 1: R ight-click on any tab of toolbox and select “Choose Items”.

Step 2: Select the “COM Components” tab and click the check “Adobe PDF Reader” and click OK.

Step 2: Y ou will see the Adobe PDF Reader control icon in the toolbox, then you can drag and drop this control onto your form. The contents of the PDF file will appear here.

Form Design

Step 3: Right click on Adobe PDF Reader and in the Properties window, set the Dock property as “Fill

Source Code:

openToolStripMenuItem_Click

Отображение PDF-файла из Winform

Я просто создаю простой калькулятор в C# (форма Windows)

Я создал «Справку пользователя», которая представляет собой файл PDF, и я хочу, чтобы этот файл PDF отображался, если пользователь нажимает кнопку «Справка» в WinForm. Если предположить, что Adobe Reader предварительно установлен на компьютере пользователя.

Как открыть PDF-файл по нажатию кнопки в WinForm?

Я не планирую размещать этот PDF-файл на жестком диске пользователя. Это означает, что я должен вставить этот PDF-файл в калькулятор (winForm) и отображать его при нажатии кнопки.

Пожалуйста, ознакомьте меня с наилучшей практикой для отображения встроенного файла в WinForm.

11 ответов

Я бы включил его в папку с моей программой, добавил ссылку в папку «Пуск», чтобы разрешить прямой доступ (без запуска моего инструмента) и просто при каком-либо событии щелчка System.Diagnostics.Process.Start(@».\Manual.pdf»);

Обновить

Хорошо, теперь мы подошли к совершенно новому вопросу: как встроить файл в мое приложение и запустить его?

На этот вопрос вы найдете здесь уже несколько ответов, но вот короткая версия:

  1. Щелкните правой кнопкой мыши свой проект и выберите «Добавить — существующий элемент».
  2. Выберите свой файл (не дважды щелкните по нему)
    • Нажмите на маленькую стрелку рядом с кнопкой Добавить и выберите Добавить как ссылку.
  3. Дважды щелкните Свойства — Resources.resx
  4. Нажмите на маленькую стрелку рядом с Добавить ресурс и выберите Добавить существующий файл.
  5. Выберите тот же файл снова в открытом диалоге
  6. Теперь вы можете получить доступ к файлу в вашем коде как byte[] от Properties.Resources.NameOfResource

С помощью этих шагов вы ссылаетесь на ваш файл, где бы он ни находился в вашей структуре. Если вам это нравится, копия вашего файла PDF будет помещена в подпапку Resources вашего проекта, просто пропустите пункты один и два в приведенном выше списке.

Чтобы открыть PDF-файл, вам нужно записать байт [] на диск (возможно, с Path.GetTempFileName() ) и запустите его с помощью Adobe Reader. (Не забудьте удалить файл после использования)

Вы можете сослаться на элемент управления Adobe Reader ActiveX и связать его с вашим приложением.

Просто добавь AcroPDF.PDF.1 на панель инструментов на вкладке COM-компоненты (щелкните правой кнопкой мыши на панели инструментов и выберите Choose Items. ) затем перетащите экземпляр на Winform, чтобы дизайнер создал код для вас. В качестве альтернативы, после добавления необходимой ссылки вы можете использовать следующий код:

Вы можете использовать элемент управления WebBrowser и позволить IE загрузить программу чтения PDF для вас, если она установлена ​​на компьютере.

Однако в последний раз, когда я пытался это сделать, мне сначала нужно было записать файл PDF на диск, чтобы я мог указать на него элемент управления WebBrowser.

В коде Google есть проект для просмотра C# pdf. http://code.google.com/p/pdfviewer-win32/ есть программа просмотра и библиотека, которую он использует, которая использует mupdf и xpdf для рендеринга PDF-документов в вашей программе winforms. В настоящее время я разрабатываю библиотеку пользовательских элементов управления, чтобы люди могли использовать их для просмотра PDF-файлов. это работает довольно хорошо.

Если вы хотите отобразить PDF внутри своего приложения, элемент управления WebBrowser, вероятно, предпочтительнее, чем элемент управления Adobe Reader, поскольку он будет очень плавно открывать файл в PDF Reader или в любом другом браузере, который IE использует по умолчанию для открытия PDF-файлов. Вы просто добавляете элемент управления WebBrowser к существующей или новой форме и переходите к файлу PDF.

Читайте также:  Windows не может изменить букву диска

Никогда не предполагайте, что на компьютерах пользователей установлены Adobe или любые другие элементы управления или библиотеки сторонних производителей, всегда упаковывайте их вместе с исполняемым файлом, иначе у вас могут возникнуть проблемы.

Элемент управления Adobe Reader, очевидно, не так хорошо интегрируется с.NET, как встроенный компонент Windows. Как правило, я всегда поддерживаю использование встроенных элементов управления.Net для сторонних поставщиков. Что касается встраивания файла в фактический исполняемый файл; этого не произойдет, пока Microsoft не решит, что любой старый PDF-файл может быть добавлен в CLS и скомпилирован в MSIL. Когда вы разрабатываете любое приложение в.NET, у вас есть код, который можно скомпилировать в промежуточный MSIL для преобразования во время выполнения CLR в собственный код и выполнения в ОС.

Create or Generate PDF file in Windows Forms

3 Sep 2020 / 15 minutes to read

In your Windows Forms application, add the following assemblies to use Essential PDF:

For more details, refer to this Assemblies Required documentation.

Steps to create PDF document in Window Forms:

Create a new Windows Forms application project.

Install the Syncfusion.Pdf.WinForms NuGet package as a reference to your .NET Framework applications from NuGet.org.

Include the following namespaces in the Form1.Designer.cs file.

Add a new button in Form1.Designer.cs to create PDF document as follows.

Create the btnCreate_Click event and add the following code in btnCreate_Click to create PDF file with simple text.

A complete working sample can be downloaded from Create-PDF-file.zip

By executing the program, you will get the PDF document as follows.

Creating a PDF document with image

The following code example shows how to create a PDF document with an image.

Creating a PDF document with table

The following code example shows how to create a PDF document with a simple table.

Creating a simple PDF document with basic elements

The PdfDocument object represents an entire PDF document that is being created. The following code example shows how to create a PDF document and add a PdfPage to it along with the PdfPageSettings.

  1. Essential PDF has APIs similar to the .NET GDI plus which helps to draw elements to the PDF page just like 2D drawing in .NET.
  2. Unlike System.Drawing APIs all the units are measured in point instead of pixel.
  3. In PDF, all the elements are placed in absolute positions and has the possibility for content overlapping if misplaced.
  4. Essential PDF provides the rendered bounds for each and every elements added through PdfLayoutResult objects. This can be used to add successive elements and prevent content overlap.

The following code example explains how to add an image from disk to a PDF document, by providing the rectangle coordinates.

The following methods can be used to add text to a PDF document.

The PdfTextElement provides the layout result of the added text by using the location of the next element that decides to prevent content overlapping. This is not available in the DrawString method.

The following code example adds the necessary text such as address, invoice number and date to create a basic invoice application.

Essential PDF provides two types of table models. The difference between both the table models can be referred from the link
Difference between PdfLightTable and PdfGrid

Since the invoice document requires only simple cell customizations, the given code example explains how to create a simple invoice table by using PdfGrid.

The following code example shows how to save the invoice document to disk and dispose the PdfDocument object.

The following screenshot shows the invoice PDF document created by using Essential PDF.

Filling forms

An interactive form, sometimes referred to as an AcroForm is a collection of fields for gathering information interactively from the user. A PDF document can contain any number of fields appearing in any combination of pages, all of that make a single, globally interactive form spanning the entire document.

Essential PDF allows you to create and manipulate existing form in PDF document. To work with existing form documents, the following namespaces are required.

The following guide shows how to fill a sample PDF form as shown.

Essential PDF allows you to fill the form fields by using PdfLoadedField class. You can get the form field either by using its field name or field index.

Читайте также:  Монтирование dfs astra linux

The filled form is shown in adobe reader application as follows.

Merge PDF Documents

Essential PDF supports merging multiple PDF documents from disk and stream using Merge method. You can merge the multiple PDF documents from disk by specifying the path of the documents in a string array.

Refer to the following code example to merge multiple documents from disk.

You can merge the PDF document streams by using the following code example.

Displaying a pdf file from Winform

I’m just creating a simple calculator in C# (windows form)

I’ve created a «User Help» which is a pdf file, what I want is to display that pdf file if the user clicks on the «Help» button in the WinForm. If assumed that Adobe reader is pre-installed on the user’s machine.

How to open the pdf file on button click in winForm?

I don’t plan to provide this pdf file on hard disk of user. Which means that I have to embed this pdf into the calculator (winForm) and have to display it on the button click.

Kindly guide me with the best practise for displaying an embedded file in winForm.

11 Answers 11

I would put it on within my program folder, add a link within my Start Menu folder to allow a direct access (without starting my tool) and just at on some click event System.Diagnostics.Process.Start(@».\Manual.pdf»);

Update

Ok, now we come to a completely new question: How to embed a file in my application and start it?

For this question you’ll find already several answers here, but here is the short version:

  1. Right click your project and select Add — Existing Item
  2. Select your file (don’t double click it)
    • Click the little arrow next to the Add button and select Add As Link
  3. Double click on Properties — Resources.resx
  4. Click the little arrow next to Add Resource and select Add Existing File
  5. Select the same file again in the open dialog
  6. Now you can access the file within your code as byte[] from Properties.Resources.NameOfResource

With these steps you reference your file where ever it exists within your structure. If you like that a copy of your pdf file will be put into a subfolder Resources within your project, just skip the points one and two in the above list.

Основы Windows Forms C# (изучаем основные формы) pdf

Данный материал является приложением к книге «С# 2008 и платформа .NET 3.5 для профессионалов» (Кристиан Нейгел) , и найден в свободных источниках.

За последние несколько лет Web-ориентированные приложения стали чрезвычайно популярными. Возможность размещать всю логику приложений на централизованном сервере выглядит очень привлекательной с точки зрения администратора.

Развертывание программного обеспечения, базирующегося на клиенте, очень трудно, особенно, если оно основано на COM-объектах. Недостаток Web-ориентированных приложений состоит в том, что они не могут предоставить достаточно богатых возможностей пользователю.

Платформа .NET Framework позволяет разрабатывать интеллектуальные клиентские приложения с богатыми возможностями, при этом избегая проблем с развертыванием и «DLL-адом”, как это было раньше. Независимо от того, что будет выбрано — Windows Forms или Windows Presentation Foundation — разработка или развертывание клиентских приложений теперь не представляет особой сложности. Windows Forms уже оказал влияние на разработки для Windows. Теперь, когда приложение находится на начальной стадии проектирования, принять решение о том, нужно ли строить Web-ориентированное приложение либо же полностью клиентское, стало немного труднее. Клиентские приложения Windows могут быть разработаны быстро и эффективно, при этом они предлагают пользователям гораздо более широкие возможности.

Windows Forms покажется вам знакомым, если у вас есть опыт разработки на Visual Basic. Вы создаете новые формы (также известные как окна или диалоги) в той же манере — перетаскивая и размещая элементы управления из панели инструментов на поверхность визуального дизайнера форм (Form Designer). Однако если ваш опыт в основном касается классического стиля языка C для Windows-программирования, где приходилось создавать конвейеры сообщений и отслеживать эти сообщения, или же если вы — программист, применяющий MFC, то в этом случае вы обнаружите, что и здесь при необходимости у вас есть возможность работать с низкоуровневыми деталями. Вы можете переопределить оконную процедуру (WndProc) и перехватывать сообщения, но в действительности вас удивит, что делать это придется нечасто.

Фрагменты из материала:

Размер и местоположение форм:

Размер и местоположение элементов управления определяются свойствами Height, Width, Top, Bottom, Left и Right, вместе с дополняющими их Size и Location. Отличие состоит в том, что Height, Width, Top, Bottom, Left и Right принимают одно целое значение. Size принимает значение структуры Size, а Location — значение структуры Point. Структуры Size и Point включают в себя координаты X, Y.

Point обычно описывает местоположение, а Size — высоту и ширину объекта. Size и Point определены в пространстве имен System.Drawing. Обе структуры очень похожи в том, что представляют пары координат X, Y, но, кроме того — переопределенные операции, упрощающие сравнения и преобразования. Вы можете, например, складывать вместе две структуры Size. В случае структуры Point операция сложения переопределена таким образом, что можно прибавить к Point структуру Size и получить в результате Point. Это дает эффект прибавления расстояния к местоположению, чтобы получить новое местоположение, что очень удобно для динамического создания форм и элементов управления.

Свойство Bounds возвращает объект Rectangle, представляющий экранную область, занятую элементом управления. Эта область включает полосы прокрутки и заголовка. Rectangle также относится к пространству имен System.Drawing. Свойство
ClientSize — структура Size, представляющая клиентскую область элемента управления за вычетом полос прокрутки и заголовка.

Методы PointToClient и PointToScreen — удобные методы преобразования, которые принимают Point и возвращают Point. Метод PointToClient принимает структуру Point, представляющую экранные координаты, и транслирует их в координаты текущего клиентского объекта. Это удобно для операций перетаскивания. Метод PointToScreen выполняет обратную операцию — принимает координаты в клиентском объекте и транслирует их в экранные координаты.

Методы RectangleToScreen и ScreenToRectangle выполняют те же операции, но со структурами Rectangle вместо Point.

Свойство Dock определяет, к какой грани родительского элемента управления должен пристыковываться данный элемент. Перечисление DockStyle задает возможные значения этого свойства. Они могут быть такими: Top, Bottom, Right, Left, Fill и None. Значение Fill устанавливает размер данного элемента управления равным размеру родительского.

Свойство Anchor (якорь) прикрепляет грань данного элемента управления к грани родительского элемента управления. Это отличается от стыковки (docking) тем, что не устанавливает грань дочернего элемента управления точно на грань родительского, а просто выдерживает постоянное расстояние между ними. Например, если якорь правой грани элемента управления установлен на правую грань родительского элемента, и если родитель изменяет размер, то правая грань данного элемента сохраняет постоянную дистанцию от правой грани родителя — т.е. он изменяет размер вместе с родителем.

Свойство Anchor принимает значения из перечисления AnchorStyle, а именно: Top, Bottom, Left, Right и None. Устанавливая эти значения, можно заставить элемент управления изменять свой размер динамически вместе с родителем. Таким образом, кнопки и текстовые поля не будут усечены или скрыты при изменении размеров формы пользователем.

Свойства Dock и Anchor применяются в сочетании с компоновками элементов управления Flow и Table (о которых мы поговорим позднее в этой главе) и позволяют создавать очень сложные пользовательские окна. Изменение размеров окна может оказаться достаточно непростой задачей для сложных форм с множеством элементов управления. Эти инструменты существенно облегчают задачу.

Свойства, имеющие отношение к внешнему виду элемента управления — это BackColor и ForeColor, которые принимают объект System.Drawing.Color в качестве значения. Свойство BackGroundImage принимает объект графического образа как значение. Класс System.Drawing.Image — абстрактный класс, служащий в качестве базового для классов Bitmap и Metafile.

Свойство BackgroundImageLayout использует перечисление ImageLayout для определения способа отображения графического образа в элементе управления. Допустимые значения таковы: Center, Tile, Stretch, Zoom или None.

Свойства Font и Text работают с надписями. Чтобы изменить Font, необходимо создать объект Font. При создании этого объекта указывается имя, стиль и размер шрифта.

Взаимодействие с пользователем:

Взаимодействие с пользователем лучше всего описывается серией событий, которые генерирует элемент управления и на которые он реагирует. Некоторые из наиболее часто используемых событий: Click, DoubleClick, KeyDown, KeyPress, Validating и Paint.

События, связанные с мышью — Click, DoubleClick, MouseDown, MouseUp,MouseEnter, MouseLeave и MouseHover — описывают взаимодействие мыши и экранного элемента управления. Если вы обрабатываете оба события — Click и DoubleClick — то всякий раз, когда перехватывается событие DoubleClick, также возбуждается и событие Click. Это может привести к нежелательным последствиям при неправильной обработке. К тому же и Click, и DoubleClick принимают в качестве аргумента EventArgs, в то время как события MouseDown и MouseUp принимают MouseEventArgs.

Структура MouseEventArgs содержит несколько частей полезной информации — например, о кнопке, на которой был выполнен щелчок, количестве щелчков на кнопке, количестве щелчков колесика мыши (при условии его наличия), текущих координатах X и Y указателя мыши. Если нужен доступ к любой подобной информации, то вместо событий Click или DoubleClick потребуется обрабатывать события MouseDown и MouseUp.

События клавиатуры работают подобным образом. (и т.д. — качайте архив)

Читайте также:  Как загрузить linux загрузчиком windows
Оцените статью
[ —>Скачать с сервера (1.02 Mb) — бесплатно] 19.04.2010, 20:45