从Html创建pdf

时间:2012-05-15 07:21:54

标签: iphone objective-c

如何在没有在iphone应用程序的目标c中截取uiwebview的截图或图像的情况下从html创建pdf?

当我创建pdf来捕获UIwebView的截图时,pdf分辨率看起来不太好。在放大或缩小其文本像素时会被破坏。

4 个答案:

答案 0 :(得分:3)

Generate PDF from Html Page. 我希望这会帮助你。

答案 1 :(得分:2)

UIWebView

中加载html

使用UIPrintPageRenderer中的UIWebView按照以下步骤操作:

添加Category UIPrintPageRenderer以获取PDF数据

@interface UIPrintPageRenderer (PDF)
- (NSData*) printToPDF;
@end

@implementation UIPrintPageRenderer (PDF)
- (NSData*) printToPDF
{
  NSMutableData *pdfData = [NSMutableData data];
  UIGraphicsBeginPDFContextToData( pdfData, self.paperRect, nil );
  [self prepareForDrawingPages: NSMakeRange(0, self.numberOfPages)];
  CGRect bounds = UIGraphicsGetPDFContextBounds();
  for ( int i = 0 ; i < self.numberOfPages ; i++ )
  {
    UIGraphicsBeginPDFPage();
    [self drawPageAtIndex: i inRect: bounds];
  }
  UIGraphicsEndPDFContext();
  return pdfData;
}
@end

为A4尺寸添加这些定义

#define kPaperSizeA4 CGSizeMake(595.2,841.8)

现在UIWebView's webViewDidFinishLoad delegate使用UIPrintPageRenderer的{​​{1}} property

UIWebView

答案 2 :(得分:0)

Get a PDF/PNG as output from a UIWebView or UIView

这是一个很好的SO问题,具有相同的方法..

但是要以编程方式创建pdf,您可以从这里开始 在iPhone上生成PDF:

http://iphonesdksnippets.com/post/2009/02/13/Generate-PDF-on-iPhone.aspx

使用Quartz2d绘图:

http://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/drawingwithquartz2d.pdf

答案 3 :(得分:0)

您可以使用石英核心在PDF上下文中绘制UIwebview,而不是将其作为屏幕截图。 Here是代码。