Member 11848394 Ответов: 1

Преобразование HTML в PDF с помощью HTML-элементов управления и внешнего CSS


У меня есть HTML, который содержит HTML-элементы управления. При преобразовании его в pdf элементы управления html не визуализируются. Кроме того, он не может применить стили во внешнем css. Пожалуйста, предложите метод преобразования HTML в PDf, который удовлетворяет этим требованиям

Что я уже пробовал:

Я пробовал использовать iTextSharp и PDFSharp. iTextSharp делает рендеринг html-элементов управления, а также pdfsharp, но у него есть метод преобразования html в PDF. Я попытался с помощью HTML в image, а потом изображения в PDF, но хороший HTML для визуализации изображения не найден

Sergey Alexandrovich Kryukov

Мало того, что такого метода не существует, но совершенно очевидно, что он никогда не должен существовать в таких библиотеках PDF, это не имеет смысла. Независимо от того, какую библиотеку вы используете, именно вы визуализируете что-либо и используете или не используете некоторые файлы, а не библиотека; и вам не удалось написать то, что вы пробовали. Могу только предположить, что вы не пытались визуализировать элементы управления и использовать CSS. Извините, но здесь будет довольно сложно вам помочь. Я только хочу вас спросить: зачем нужны элементы управления рендерингом в PDF? В PDF вы не сможете их использовать (за исключением редких случаев AcroForms или XFA). Концепция PDF радикально отличается от концепции других типов электронного контента; PDF ближе к концепции документа на бумаге.
—СА

1 Ответов

Рейтинг:
0

Abrar Kazi

public byte[] GetPDF(string pHTML)
        {
            byte[] bPDF = null;

            MemoryStream ms = new MemoryStream();
            TextReader txtReader = new StringReader(pHTML);

            // 1: create object of a itextsharp document class
            Document doc = new Document(PageSize.A4, 25, 25, 25, 25);

            // 2: we create a itextsharp pdfwriter that listens to the document and directs a XML-stream to a file
            PdfWriter oPdfWriter = PdfWriter.GetInstance(doc, ms);

            // 3: we create a worker parse the document
            HTMLWorker htmlWorker = new HTMLWorker(doc);

            // 4: we open document and start the worker on the document
            doc.Open();
            htmlWorker.StartDocument();

            // 5: parse the html into the document
            htmlWorker.Parse(txtReader);

            // 6: close the document and the worker
            htmlWorker.EndDocument();
            htmlWorker.Close();
            doc.Close();

            bPDF = ms.ToArray();

            return bPDF;
        }


Попробуйте это просто передать ur html выше . Надеюсь, это поможет.