将html转换为pdf并自动旋转和调整大页面的大小

时间:2012-01-30 01:23:45

标签: .net html pdf

我需要将HTML转换为PDF。

我研究了几种不同的工具。

ActivePDF WebGrabber

  • 没有正确解析我们的页面,只返回错误代码

ExpertPDF HtmlToPdf Converter

  • 正确解析

这两个我已经实际下载了sdk并玩了一下我还做了一些关于其他几个的基础研究。

我遇到的问题是我需要能够将文档格式化为具有不同的页面大小和方向,而我似乎无法获得很多支持。

例如,任何页面上有一个img标签太大而无法修复页面potrait应该将其页面旋转并制作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 :(得分:0)

我运行一个名为DocRaptor的服务,它使用HTTP POST请求将HTMl转换为PDF。如果您知道哪些页面需要调整大小,那么这很容易解决。

但是,它不会自动检测太大而不适合的图像,尽管可以使用CSS处理。