以编程方式在iPhone上从HTML生成PDF

时间:2010-10-14 21:46:00

标签: iphone objective-c pdf-generation

我正在寻找一种以编程方式(在obj-c中)从本地html文件生成PDF文件的方法。我从用户输入动态生成html,我需要创建PDF并将其发送给用户(通过电子邮件)。我对PDF生成部分有困难。

我有使用CGPDFContextCreateWithURL创建PDF的代码,但我正在努力使用quartz绘制页面。

我在SO以及互联网上广泛搜索无济于事。

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:5)

要从HTML生成pdf,您需要将html渲染到Web视图中,并拍摄Web视图的快照,并将它们渲染到图像上下文中。 本教程可能会有所帮助:

http://www.ioslearner.com/convert-html-uiwebview-pdf-iphone-ipad/

答案 1 :(得分:0)

为什么不使用WebService,将HTML页面发送给它并检索PDF文件?

这样你可以使用iTextSharp和C#,大约2分钟就完成了 另外(如果你是邪恶的)你可以存储和查看服务器上的所有数据。

答案 2 :(得分:0)

我自己没有试过这个,所以我没有提供任何具体的东西,但我必须想象由于成像模型,必须有一个简单的方法在iPhone上做到这一点。我会更深入地了解文档。

至于推回由您自己决定的客户,但可能有多种原因想要保持本地化。坦率地说,对于我雇用的他无法管理这项特殊任务的人来说,我不会感到高兴。因此,对这种推迟进行长期而艰难的思考。哦,即使你推回网络服务器也是一个糟糕的选择。我会更进一步,并首先投资你为什么需要HTML格式的东西。

答案 3 :(得分:0)

我从来没有尝试过这个,所以我不知道它是否会起作用,但是如何将HTML加载到UIWebView中,然后让视图将自己绘制成PDF上下文? E.g。

UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(...)];
[webview loadHTMLString:html baseURL:...];

然后:

- (void)webViewDidFinishLoad:(UIWebView *)webview {
    CGPDFContextRef pdfContext = CGPDFContextCreateWithURL(...);
    [webview.layer drawInContext:pdfContext];
    ...
}

答案 4 :(得分:0)

我按照这个SO:https://stackoverflow.com/a/13342906/448717

制作了它

为了保持相同内容的比例,我不得不将WKWebView的大小乘以为UIPrinterRenderer设置的printableRect的大小1.25倍,因为屏幕点与PostScript的不同......我想。