1 / 1 / 0
Регистрация: 12.11.2015
Сообщений: 11
.NET 4.x

Как конвертировать HTML файл в PDF?

11.10.2016, 10:54. Показов 6373. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Такая проблема. Создаю HTML файл, сохраняю. Нужно его преобразовать в PDF, iTextSharp.dll подключил, а что дальше делать так и не понял)) кучу сайтов облазил решения не нашёл... хотя мне кажется такое решение должно быть, задача вроде не уникальная.
html делаю так
C#
1
2
3
4
5
6
7
8
9
10
private void Createl_button_Click(object sender, EventArgs e)
        {
            string AppPatch = Application.StartupPath;
            string HTMLName = "index.html";
            string HTMLPatch = AppPatch + "\" + HTMLName;
            string HTMLBody = Properties.Resources.WBP;
            StreamWriter streamwriter = new StreamWriter(HTMLPatch);
            streamwriter.WriteLine(HTMLBody);
            streamwriter.Close();
        }
Подскажите пожалуйста что дальше делать, а то сил уже нету моих))

Добавлено через 37 минут
Забыл добавить. В HTML файле при создании (в моём коде эту часть не показал) буду заменять специально расставленные слова (типа "Value01") на значение переменных. HTML выбрал из-за возможности простого создания сложных документов и собственно простоты замены определённых значений на свои.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2016, 10:54
Ответы с готовыми решениями:

Конвертировать HTML таблицу в файл XML: Входная строка имела неверный формат
Ребята помоги пож! Консоль кричит что "Входная строка имела неверный формат" Наводит курсор на эту строку ...

Как конвертировать таблицу Excel в HTML
Здравствуйте Нужно конвертировать таблицу Excel в HTML, не знаю инструментов, каким образом можно. Нужно написать код, который бы простою...

Как распечатать PDF файл?
Пытаюсь через консольное приложение распечатать файл, но к сожаленью печатает пустой файл. Печатать через Process не интересует, так как я...

6
 Аватар для diadiavova
7253 / 2601 / 743
Регистрация: 11.04.2015
Сообщений: 4,137
Записей в блоге: 43
11.10.2016, 11:42
Стандартными средствами - никак. Можно попробовать что-то из этого
Обзор C# библиотек для работы с PDF / Хабрахабр
0
1 / 1 / 0
Регистрация: 12.11.2015
Сообщений: 11
11.10.2016, 12:33  [ТС]
Спасибо за ответ!
Как я уже писал, я скачал и подключил к проекту iTextSharp.dll. А что дальше делать?
Создавать с нуля PDF не вижу смысла (файл уже есть, его нужно только переконвертить), вот и хочу с помощью iTextSharp.dll это сделать, а как не знаю...
0
 Аватар для sau
2756 / 2058 / 384
Регистрация: 22.07.2011
Сообщений: 7,781
11.10.2016, 13:41
http://developers.itextpdf.com... l-examples
Другой вариант , отдать html браузерному движку , получить скриншот рабочей области - обычно это делать они умеют , ну а вставить картинку в pdf - совсем просто.
1
 Аватар для diadiavova
7253 / 2601 / 743
Регистрация: 11.04.2015
Сообщений: 4,137
Записей в блоге: 43
11.10.2016, 14:19
Цитата Сообщение от Tehnologik Посмотреть сообщение
Как я уже писал, я скачал и подключил к проекту iTextSharp.dll.
Я невнимательно причитал пост.
В описании проекта вроде ничего не говорится о возможности конвертировать из HTML. Зато в других проектах такая возможность предусмотрена и заявлена. Может лучше в эту сторону посмотреть? А в приведенной мной выше статье есть пример быстрого старта именно для ITextSharp, так что если хочешь использовать именно ее, то возможно это поможет.
1
1 / 1 / 0
Регистрация: 12.11.2015
Сообщений: 11
11.10.2016, 16:04  [ТС]
Всем спасибо! Разобрался))
Всё оказалось просто
Добавил в проект через диспетчер пакетов NuGet пакет Select.HtmlToPDF и дело пошло))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using SelectPdf;
private void CreateWBP_Fail_button_Click(object sender, EventArgs e)
        {
            string AppPatch = Application.StartupPath;
            string HTMLName = "index.html";
            string HTMLPatch = AppPatch + "" + HTMLName;
            string Desktop_Path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); // путь к рабочему столу 
            string PDFName = "Result.PDF";
            string PDFPatch = Desktop_Path + "" + PDFName;
            string HTMLBody = Properties.Resources.WBP; \\ сам текст html храню в ресурсах, оттуда и пользую
            HTMLBody = HTMLBody.Replace("Value01", "123"); \\ подставляю свои значения в файл
            //Write text to file
            StreamWriter streamwriter = new StreamWriter(HTMLPatch);
            streamwriter.WriteLine(HTMLBody);
            streamwriter.Close();
            //end write text
            // instantiate the html to pdf converter
            HtmlToPdf converter = new HtmlToPdf();
            // convert the url to pdf
            PdfDocument doc = converter.ConvertUrl(HTMLPatch);
            // save pdf document
            doc.Save(PDFPatch);
            // close pdf document
            doc.Close();
        }
Вдруг кому пригодится
P.S. почемуто код отображается не правильно должно быть HTMLPatch = AppPatch + "\" + HTMLName; и string PDFPatch = Desktop_Path + "\" + PDFName; экранирование символа почему то удаляется
0
0 / 0 / 0
Регистрация: 09.04.2017
Сообщений: 6
05.04.2019, 11:24
Спасибо! Но библиотека платная. а платить за такое решение не хочется.
Пдф формируется со строкой Demo Version - Select.Pdf SDK
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2019, 11:24
Помогаю со студенческими работами здесь

Как сохранить Panel в pdf-файл?
Есть форма, на ней панель с разными компонентами (таблицы, текст). Можно ли каким то образом вывести целиком панель в pdf чтобы не...

AxAcroPDF Как встроить PDF файл?
У меня по кнопке идет переход на форму где размещен элемент axAcroPDF и открывает pdf файл,но локально,можно как-нибудь сделать чтобы pdf...

AxAcroPDF. Как загружать .pdf файл сразу?
Привет. Как загружать .pdf файл сразу, без выбора в openfiledialog? Код снизу, как открываю using (OpenFileDialog ofd = new...

Как вывести файл PDF на форму (компонент справки)
У меня такая проблема: есть pdf файл его нужно вывести на форму типо справки. как это можно осуществить использовать кристал или что то...

Как организовать работу PDF, чтоб он искал в PDF файле определенную строку
Имеется код (Он всего лишь создает файл и текст, который указывается в форме) using System; using System.IO; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Hangfire с RabbitMQ в проектах C#.NET
stackOverflow 18.04.2025
Разработка современных . NET-приложений часто требует выполнения задач "за кулисами". Это может быть отправка email-уведомлений, генерация отчётов, обработка загруженных файлов или синхронизация. . .
Построение эффективных запросов в микросервисной архитектуре: Стратегии и практики
ArchitectMsa 18.04.2025
Микросервисная архитектура принесла с собой много преимуществ — возможность независимого масштабирования сервисов, технологическую гибкость и четкое разграничение ответственности. Но как часто бывает. . .
Префабы в Unity: Использование, хранение, управление
GameUnited 18.04.2025
Префабы — один из краеугольных элементов разработки игр в Unity, представляющий собой шаблоны объектов, которые можно многократно использовать в различных сценах. Они позволяют создавать составные. . .
RabbitMQ как шина данных в интеграционных решениях на C# (с MassTransit)
stackOverflow 18.04.2025
Современный бизнес опирается на множество специализированных программных систем, каждая из которых заточена под решение конкретных задач. CRM управляет отношениями с клиентами, ERP контролирует. . .
Типы в TypeScript
run.dev 18.04.2025
TypeScript представляет собой мощное расширение JavaScript, которое добавляет статическую типизацию в этот динамический язык. В JavaScript, где переменная может свободно менять тип в процессе. . .
Погружение в Kafka: Концепции и примеры на C# с ASP.NET Core
stackOverflow 18.04.2025
Apache Kafka изменила подход к обработке данных в распределенных системах. Эта платформа потоковой передачи данных выходит далеко за рамки обычной шины сообщений, предлагая мощные возможности,. . .
Коммуникация в реальном времени с SignalR в C# на примере создания чата
UnmanagedCoder 17.04.2025
Современный веб стремительно эволюционирует от статичных страниц к динамичным приложениям, где пользователи ожидают мгновенной реакции на свои действия. Представим, что вы отправляете сообщение. . .
Реализация CQRS с MediatR на C# .NET
stackOverflow 17.04.2025
Современная разработка программного обеспечения постоянно ищет пути повышения эффективности организации кода. Архитектурные паттерны появляются, эволюционируют, и те, что проявляют свою. . .
Verilog и интеллектуальная собственность - "глазами" обученной LM модели.
Hrethgir 17.04.2025
В сети встречаются участники, заявляющие что код на Verilog ни о чём не говорит. Но вот патентная практика на самом деле показывает обратное ими утверждаемому. То-есть код на Verilog включают в. . .
Свап-файл дополнительно к разделу (если вдруг не хватает или не создан)
jigi33 17.04.2025
ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНОГО SWAP ПРОСТРАНСТВА, Т. О. , РАСШИРЕНИЕ ЕГО РАЗМЕРА В Linux можно использовать как раздел подкачки (swap), так и файл подкачки (swap-файл). Чтобы создать swap-файл вместо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru