Думаю, для этого нужно html-файл менять (донора). Передо мной такой задачи не стояло, поэтому не могу ничего конкретного посоветовать.А как пдф файл размножить? При этом цвет, шрифт, текста и остальное каждый раз менялось? Разные пдф файлы получились.
делаешь болванку в html, генеришь html, перегоняешь готовый в pdfА как пдф файл размножить? При этом цвет, шрифт, текста и остальное каждый раз менялось? Разные пдф файлы получились.
А где сейчас можно найти dll?Сайт изменился у них,и в архивах нового сайта нет библиотеки в dll.Если можно можете закинуть сюда?
Доброе время суток форумчане. Сегодня завершается наша трилогия по работе с документами разного формата из 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# код и вставляем данный код. Думаю комментарии излишне
Как вы видите есть один существенный недостаток - нужно указывать координаты. Но у PDFsharp есть младший брат - MigraDoc, который упростит нам работу со стилями в документе. Работу с MigraDoc рассмотрим чуть позже)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);
Конвертация Jpeg в PDFC#:// Создаем шрифт 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");
Ищи на гитхабеА где сейчас можно найти dll?Сайт изменился у них,и в архивах нового сайта нет библиотеки в dll.Если можно можете закинуть сюда?
Да вот искал,только исходники,dll нетИщи на гитхабе
вроде она https://yadi.sk/d/mu0lPohv3SiEaVДа вот искал,только исходники,dll нет
// Создаем шрифт
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);
Мне нужно добавить это в код, без html конверта.сверстай хтмл документ, чтобы картинка была ссылкой и конвертни в пдф
Посмотри в сторону библиотеки itextsharp. С помощью нее можно вытянуть картинки из пдфДоброго времени суток, столкнулся с одной задачей.. Суть заключается в том что с файла 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
Уважаемый Radzhab, не подскажите в какой кодировке должны быть html файлы для корректного отображения кириллицы? Хелп от проги не помог, там про кодировки ничего не нашел.HTML to PDF
Допустим я делал через dreamviewer сохранял голый html, кодировка utf-8, можно же с сайта сохранить страницу удалить лишнее, и да созданные html файлы массово переписывал в pdf прогой html to pdf, довольно быстро получалось.Уважаемый Radzhab, не подскажите в какой кодировке должны быть html файлы для корректного отображения кириллицы? Хелп от проги не помог, там про кодировки ничего не нашел.
Методом тыка тоже пока что не нашел.
Возможно нужно что-то добавить в коде, но опять же не нашел об этом упоминаний (как я понимаю метод из либы pdfSharp не вариант, нужно именно в wkhtmltopdf искать как это сделать).
Заранее спасибо.
ЗЫ если кто-то еще в курсе (как я понял из темы ни у кого такой проблемы не возникало), то буду рад помощи
Спасибо.У меня почему-то вот такое вылезает(utf-8 ):Допустим я делал через dreamviewer сохранял голый html, кодировка utf-8, можно же с сайта сохранить страницу удалить лишнее, и да созданные html файлы массово переписывал в pdf прогой html to pdf, довольно быстро получалось.
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);
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 в htmlВсем привет, подскажите как можно распарсить pdf и нужные мне значения сделать переменными в зенке, чтобы потом вставить в значения на сайте
Здравствуйте! А можно как-нибудь сделать замену одной ссылки на другую в PDF файле с помощью данной библиотеки?Ищи на гитхабе
почитай вот эту статью , поможет обязательно https://zennolab.com/discussion/threads/s-zennoposter-tesseract-net-sdk.26559/Всем привет! Подскажите как можно Зенкой копировать текст из PDF файла в файл .txt или Excel. Спасибо!
Посмотрите тут https://zennolab.com/discussion/threads/shablon-dlja-konvertirovanija-pdf-v-jpg-poluchaem-unikalnyj-kontent.64743/Всем привет! Подскажите как можно Зенкой копировать текст из 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);