【发布时间】:2012-02-21 22:11:13
【问题描述】:
我需要将 HTML 转换为 PDF。
我研究了几种不同的工具。
- 没有正确解析我们的页面,只是返回了错误代码
- 正确解析
这两个是我实际下载的 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 的脚本...