Создание PDF документов (new!)

А как пдф файл размножить? При этом цвет, шрифт, текста и остальное каждый раз менялось? Разные пдф файлы получились.
 
А как пдф файл размножить? При этом цвет, шрифт, текста и остальное каждый раз менялось? Разные пдф файлы получились.
Думаю, для этого нужно html-файл менять (донора). Передо мной такой задачи не стояло, поэтому не могу ничего конкретного посоветовать.
Попробуйте Файл-Взять текст, изменить этот текст в переменной, затем Файл-Записать текст.
 
А как пдф файл размножить? При этом цвет, шрифт, текста и остальное каждый раз менялось? Разные пдф файлы получились.
делаешь болванку в html, генеришь html, перегоняешь готовый в pdf
 
KAxeYbOCMRNOr8.jpg

Доброе время суток форумчане. Сегодня завершается наша трилогия по работе с документами разного формата из 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/

zAN0ea8HBKRRm9.jpg

RmzXYbWt0OyWAO.jpg

Открываем архив, заходим в папку GDI+ и переносим файл PdfSharp.dll папку ExternalAssemblies. Если такой папки нет - просто создаем. У меня демо версия зеннки, поэтому такой путь.
Vm6ya90HD7ZErZ.jpg

Добавляем ссылку на библиотеку через элемент Ссылки на GAC
l2ZvLlBUwe4J2J.jpg

Добавляем в элемент Директивы using
C#:
Развернуть Свернуть Копировать
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using System.IO;
using System.Diagnostics;

nAyzYbVcY3oXrZ.jpg

Теперь открываем элемент Свой c# код и вставляем данный код. Думаю комментарии излишне

V2Vn5d1Txv6J2v.jpg

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);
Как вы видите есть один существенный недостаток - нужно указывать координаты. Но у PDFsharp есть младший брат - MigraDoc, который упростит нам работу со стилями в документе. Работу с MigraDoc рассмотрим чуть позже)
Итак, что нам еще нужно бывает при работе с PDF?
1) Защита документа от редактирования
2) Добавление водяного знака
3) Преобразование картинки в PDF

Пример редактирования политик защиты
4Ak3z8biyROxAq.jpg

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);
Добавления водяного знака
KAgKYPph49Q5Al.jpg

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);
Конвертация Jpeg в PDF
J2be4D7CXoPlm6.jpg

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");
Жду пожеланий по поводу добавления дополнительных плюшек)
А где сейчас можно найти dll?Сайт изменился у них,и в архивах нового сайта нет библиотеки в dll.Если можно можете закинуть сюда?
 
Приветствую всех!
С созданием пдф документа разобрался, поправил ошибки в коде - все поехало (благодаря одному человеку из темы).
Подскажите, пожалуйста, что нужно подредактировать в коде, чтобы можно было добавить ватермарку?
Сейчас при запуске кода получаю кучку ошибок - http://prntscr.com/il34um

Код:
Развернуть Свернуть Копировать
// Создаем шрифт
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);
 
Приветствую всех!
С созданием пдф документа разобрался, поправил ошибки в коде - все поехало (благодаря одному человеку из темы).
Подскажите, пожалуйста, что нужно подредактировать в коде, чтобы можно было добавить ватермарку?
Сейчас при запуске кода получаю кучку ошибок - http://prntscr.com/il34um

Лучше поздно, чем никогда))

Код:
Развернуть Свернуть Копировать
// Создаем новый PDF документ
PdfDocument document = new PdfDocument();

// Создаем пустую страницу
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.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 XSolidBrush(XColor.FromArgb(128, 255, 0, 0));
// Рисуем водяной знак
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. Нужно при чтобы при нажатии на картинку переходило по ссылке.
 
сверстай хтмл документ, чтобы картинка была ссылкой и конвертни в пдф
 
сверстай хтмл документ, чтобы картинка была ссылкой и конвертни в пдф
Мне нужно добавить это в код, без html конверта.
Т.е у меня добавляется текст , ниже вставляется картинка. И нужно привязать к картинке ссылку.

На предыдущей странице писали решение , чтобы куда те кликни в пдф документ - будет переход , но разобраться не смог.
 
del
 
Последнее редактирование:
Доброго времени суток, столкнулся с одной задачей.. Суть заключается в том что с файла PDF - нужно вытянуть изоображения "JPG" как ресурсы.
Как вариант, нашел онлайн сервис - который позволяет вытянуть изоображения по штучно и скачать готовый архив с фото, без потери качества и каких либо водных знаков, маркеров которые могут присутствовать в PDF.

P.S Автору темы низкий поклон! Хотелось бы все же задать вопрос по этому направлению... Реально ли реализовать средствами ZennoPoster'a + С# снипетов с использованием указанной библиотеки?
Или все таки проще автоматизировать загрузку файлов PDF на данный сервис: https://pdfcandy.com/ru/extract-images.html
Альтернативный сервис с таким же функционалом, вот: https://www.ilovepdf.com/ru/pdf_to_jpg
Файл PDF и результат извлеченных фото тут: https://fex.net/629724361563
 
Доброго времени суток, столкнулся с одной задачей.. Суть заключается в том что с файла PDF - нужно вытянуть изоображения "JPG" как ресурсы.
Как вариант, нашел онлайн сервис - который позволяет вытянуть изоображения по штучно и скачать готовый архив с фото, без потери качества и каких либо водных знаков, маркеров которые могут присутствовать в PDF.

P.S Автору темы низкий поклон! Хотелось бы все же задать вопрос по этому направлению... Реально ли реализовать средствами ZennoPoster'a + С# снипетов с использованием указанной библиотеки?
Или все таки проще автоматизировать загрузку файлов PDF на данный сервис: https://pdfcandy.com/ru/extract-images.html
Альтернативный сервис с таким же функционалом, вот: https://www.ilovepdf.com/ru/pdf_to_jpg
Файл PDF и результат извлеченных фото тут: https://fex.net/629724361563

Посмотри в сторону библиотеки itextsharp. С помощью нее можно вытянуть картинки из пдф
 
  • Спасибо
Реакции: Fastics
Как добавить все файлы из определенной папки в pdf? формат .xlsx 5-10 файлов в каждом папке. Очень надо благодарю
 
Уважаемый Radzhab, не подскажите в какой кодировке должны быть html файлы для корректного отображения кириллицы? Хелп от проги не помог, там про кодировки ничего не нашел.
Методом тыка тоже пока что не нашел.
Возможно нужно что-то добавить в коде, но опять же не нашел об этом упоминаний (как я понимаю метод из либы pdfSharp не вариант, нужно именно в wkhtmltopdf искать как это сделать).

Заранее спасибо.
ЗЫ если кто-то еще в курсе (как я понял из темы ни у кого такой проблемы не возникало), то буду рад помощи :)
 
Уважаемый Radzhab, не подскажите в какой кодировке должны быть html файлы для корректного отображения кириллицы? Хелп от проги не помог, там про кодировки ничего не нашел.
Методом тыка тоже пока что не нашел.
Возможно нужно что-то добавить в коде, но опять же не нашел об этом упоминаний (как я понимаю метод из либы pdfSharp не вариант, нужно именно в wkhtmltopdf искать как это сделать).

Заранее спасибо.
ЗЫ если кто-то еще в курсе (как я понял из темы ни у кого такой проблемы не возникало), то буду рад помощи :-)
Допустим я делал через dreamviewer сохранял голый html, кодировка utf-8, можно же с сайта сохранить страницу удалить лишнее, и да созданные html файлы массово переписывал в pdf прогой html to pdf, довольно быстро получалось.
 
Допустим я делал через dreamviewer сохранял голый html, кодировка utf-8, можно же с сайта сохранить страницу удалить лишнее, и да созданные html файлы массово переписывал в pdf прогой html to pdf, довольно быстро получалось.
Спасибо.У меня почему-то вот такое вылезает(utf-8 ):
3XyI8mU.jpg
Перепробовал utf-8, win-1251, koi8-r, ansi и что-то мне подсказывает что лыжи не едут из-за лыжника :-).
UPD Проблема решается с кодировкой utf-8 c BOM :). Спасибо за внимание.
 
  • Спасибо
Реакции: eee
Уперся в новую проблемку.
Не подскажите как правильно указать аргумент --image-quality. Так не работает:
Код:
Развернуть Свернуть Копировать
p.StartInfo.Arguments = string.Format("--image-quality {0} D:\\temp\\1\\" + System.IO.Path.GetFileNameWithoutExtension(file) + "Test.pdf", file);

p.StartInfo.Arguments = string.Format("--image-quality 50 D:\\temp\\1\\" + System.IO.Path.GetFileNameWithoutExtension(file) + "Test.pdf", file);

p.StartInfo.Arguments = string.Format("--image-quality {50} D:\\temp\\1\\" + System.IO.Path.GetFileNameWithoutExtension(file) + "Test.pdf", file);

В коммандной строке все работает, а в кубике нужно знать синтаксис, чем не владею.
Буду признателен за помощь :-).
Заранее спасибо

UPD Разобрался! Я оказывается не понимал зачем {0}. Немного гугла и метода тыка - помогло. Нужно учить C# :)
Код:
Развернуть Свернуть Копировать
p.StartInfo.Arguments = string.Format(" --image-quality 50 {0} D:\\temp\\1\\" + System.IO.Path.GetFileNameWithoutExtension(file) + "Test.pdf", file);
 
Последнее редактирование:
Столкнулся с такой задачей нужно конвертировать pdf в html и word в html. Кто-нибудь знает как это сделать?
 
Всем привет, подскажите как можно распарсить pdf и нужные мне значения сделать переменными в зенке, чтобы потом вставить в значения на сайте
 
Всем привет, подскажите как можно распарсить pdf и нужные мне значения сделать переменными в зенке, чтобы потом вставить в значения на сайте
можно попробовать перевести pdf в html
 
Всем привет! Подскажите как можно Зенкой копировать текст из PDF файла в файл .txt или Excel. Спасибо!
 
С позволения автора (извините, если что-то не так делаю), расскажу о своем способе производства pdf-ов. Он ничем кардинально не отличается от вышеописанного, за исключением используемой софтины. Пользуюсь Total HTML Converter (от CoolUtils) - легко гуглится ломанная версия.
Код получается почти такой же (в общем-то отсюда его и брал, просто немножко изменил под параметры софтины):
Код:
Развернуть Свернуть Копировать
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName =@"C:\Program Files (x86)\CoolUtils\Total HTML Converter\HTMLConverter.exe"; // Путь к программе
p.StartInfo.Arguments = project.Directory + @"\source\html.html "+ project.Directory + @"\pdf\TestPDF2.pdf"+@" -c PDF -engine internal -fo";
p.Start();
p.WaitForExit(99999);
Все ссылки замечательно расставляет и вообще работает без косяков. Пользуйтесь, кому нужно.
А не подскажите как поменять ориентацию листа в готовой пдф, а то альбомная ориентация не айс. Попробовал
  • -po - Расположение бумаги
    • Portrait - Вертикально
  • -ps - Размер бумаги
    • Letter - Letter
Не помогло.
 
Последнее редактирование:
А как обратное можно сделать из пдф в тхт / csv /xlsx конвертнуть?
 
  • Спасибо
Реакции: Radzhab

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)