【问题标题】:convert html to pdf and auto rotate and size large pages将 html 转换为 pdf 并自动旋转和调整大页面的大小
【发布时间】:2012-02-21 22:11:13
【问题描述】:

我需要将 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);

问题是矩形似乎永远不会出现在页面之外,因为它已经被剪掉了,并且更改页面大小的代码永远不会被命中。

是否还有其他选项可以提供类似的功能?

【问题讨论】:

  • 您可以编写浏览器打印到 PDF 的脚本...

标签: .net html pdf


【解决方案1】:

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

但是,它不会自动检测太大而无法容纳的图像,尽管这可以使用 CSS 来处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-26
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    相关资源
    最近更新 更多