- Регистрация
- 23.05.2014
- Сообщения
- 1 500
- Реакции
- 1 269
- Баллы
- 113
Доброе время суток форумчане. Сегодня завершается наша трилогия по работе с документами разного формата из ZennoPoster. Word-http://zennolab.com/discussion/threads/sozdanie-word-dokumentov.15666/ Excel - http://zennolab.com/discussion/threads/sozdanie-excel-fajlov.15797/
___________________________________________________________________________
Работать мы будем конечно же с долгожданным форматом PDF
Качаем библиотеку PDFsharp по ссылке https://pdfsharp.codeplex.com/
Открываем архив, заходим в папку GDI+ и переносим файл PdfSharp.dll папку ExternalAssemblies. Если такой папки нет - просто создаем. У меня демо версия зеннки, поэтому такой путь.
Добавляем ссылку на библиотеку через элемент Ссылки на GAC
Добавляем в элемент Директивы using
C#:
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.IO;
using System.Diagnostics;
Теперь открываем элемент Свой c# код и вставляем данный код. Думаю комментарии излишне
C#:
// Создаем новый PDF документ
PdfDocumnet document = new PdfDocumnet();
// Создаем пустую страницу
PdfPage page = document.AddPage();
// Получаем объект XGraphics для "рисования" элементов на странице
XGraphics gfx = XGraphics.FromPdfPage(page);
// Специальная опция для шрифта. Это чтобы русский текст нормально отображался
XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
// Создаем шрифта
Xfont font = new XFont("Times New Roman", 40, XFontStyle.Bold, options);
// Рисуем текст. Да да) вы не ослышались. Рисуем текст в указанных координатах
gfx.DrawString("Здесь был водяной знак", font, brush,
new XRect(0, 0, page.Width, page.Height),
XStringFormat.Center);
string filename = "Test.pdf";
// Сохраняем файл под названием Test.pdf
document.Save(filename);
// ... и запускам сразу в программе просмотра pdf файлов
Process.Start(filename);
Итак, что нам еще нужно бывает при работе с PDF?
1) Защита документа от редактирования
2) Добавление водяного знака
3) Преобразование картинки в PDF
Пример редактирования политик защиты
C#:
PdfSecuritySettings securitySettings = document.SecuritySettings;
// Пароль для открытия документа
securitySettings.UserPassword = ""; // Пустой пароль
// Пароль для редактирования документа
securitySettings.OwnerPasswod = "superpassword1";
// Печать с высоким разрешением
securitySettings.PermitFullQualityPrint = false;
// Изменения документа
securitySettings.PermitModifyDocument = false;
// Комментирование
securitySettings.PermitAnnotations = false;
// Заполнение полей форм или подписание
securitySettings.PermitFormsFill = false;
// Компоновка документа
securitySettings.PermitAssembleDocument = false;
// Копирование содержимого
securitySettings.PermitExtractContent = false;
// Расширенный доступ к содержимому
securitySettings.PermitAccessibilityExtractContent = false;
// Сохраняем файл под название Test.pdf
document.Save(filename);
C#:
// Создаем шрифт
Xfont font = new XFont("Times New Roman", 40, XFontStyle.Bold, options);
// Функции поворота теста
gfx.TranslateTransform(page.Width / 2, page.Height / 2);
gfx.RotateTransform(-Math.Atan(page.Height / page.Width) * 180 / Math.PI);
gfx.TranslateTransform(-page.Width / 2, -page.Height / 2);
// Создаем полупрозрачную кисть для более реалистичного вида
XBrush brush = new XSolidBrudh(XColor.FromArgb(128, 255, 0, 0));
// Рисуем водяной знак
gfx.DrawString("Здесь был водяной знак", font, brush,
new XRect(0, 0, page.Width, page.Height),
XStringFormat.Center);
C#:
// Создаем новый PDF документ
PdfDocument doc = new PdfDocument();
// Добавляем пустую страницу
doc.Pages.Add(new PdfPage());
Xgraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
// Указываем путь к картинке
XImage img = XImage.FromFile(@"D:\123.jpg");
// Координаты начала вставки картинки
xgr.DrawImage(img, 0, 0);
// Сохраняем PdfDocument
doc.Save("Zenno.pdf");
doc.Close();
Process.Start("Zenno.pdf");
- Номер конкурса статей
- Второй конкурс статей
- Тема статьи
- Другое
Последнее редактирование модератором:





