конвертировать HTML в PDF и автоматически вращать и размер больших страниц - PullRequest
1 голос
/ 30 января 2012

Мне нужно конвертировать HTML в PDF.

Я изучил несколько различных инструментов.

ActivePDF WebGrabber

  • неправильно проанализировал наши страницы, просто вернул коды ошибок

ExpertPDF HtmlToPdf Converter

  • Правильно разбирает

Это те два, которые я на самом деле скачал sdk и поиграл с ними. Я также провел некоторые фундаментальные исследования нескольких других.

Проблема, с которой я столкнулся, заключается в том, что мне нужно иметь возможность форматировать документы, чтобы они имели разные размеры страниц и ориентации, которые, как мне кажется, не находят большой поддержки.

Например, любая страница, на которой есть тег img, который слишком велик, чтобы его можно было исправить на странице портрета, должен был повернуть свою страницу и сделать a3 (и, возможно, еще несколько таких правил).

Второй вариант имеет какой-то API для этого.

pdfConverter.HtmlElementsMappingOptions.HtmlTagNames = new string[] {"IMG"};

var x =pdfConverter.GetPdfDocumentObjectFromUrl(textBoxWebPageURL.Text);

foreach(HtmlElementMapping mapping in pdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult)
{
    foreach (var rectangle in mapping.PdfRectangles)
    {
        if (rectangle.Rectangle.Width + rectangle.Rectangle.Left > 595)
        {
             x.Pages[rectangle.PageIndex].Orientation = PDFPageOrientation.Landscape;
             x.Pages[rectangle.PageIndex].PageSize.Width = 842;
             x.Pages[rectangle.PageIndex].PageSize.Height = 1190;
        }
    }
}

x.Save(outFile);

Проблема в том, что кажется, что прямоугольник никогда не будет за пределами страницы, поскольку он уже обрезан, и код для изменения размера страницы никогда не будет достигнут.

Существуют ли другие варианты, которые могут обеспечить что-то подобное этой функции?

1 Ответ

0 голосов
/ 04 февраля 2012

Я запускаю службу под названием DocRaptor , которая преобразует HTMl в PDF с помощью запроса HTTP POST. Если вы знаете, какие страницы нуждаются в изменении размера изображений, это легко решить.

Тем не менее, он не распознает изображения, которые слишком велики, чтобы уместить их, хотя это можно сделать с помощью CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...