objective c - HTML to PDF conversion on iOS? -


i aware of taking screenshot of uiwebview , converting pdf need generate proper pdf (text text , not screenshot). save2pdf application creates proper pdf. have idea how it?

i created class based on every advice found around. i've been digging lot , hope class offer start trying create multi-page pdf directly out of html source.

you'll find whole code here basic sample code : https://github.com/iclems/ios-htmltopdf

i had same issue , requirements were: - full pdf (real text, no bitmap) - smart multi-pages (compared cutting full height webview every x pixels...)

thus, solution use pretty nice resorts same tools ios uses split pages print.

let me explain, setup uiprintpagerenderer based on web view print formatter (first tip) :

uiprintpagerenderer *render = [[uiprintpagerenderer alloc] init];  [render addprintformatter:webview.viewprintformatter startingatpageatindex:0];  cgrect printablerect = cgrectmake(self.pagemargins.left,                               self.pagemargins.top,                               self.pagesize.width - self.pagemargins.left - self.pagemargins.right,                               self.pagesize.height - self.pagemargins.top - self.pagemargins.bottom);  cgrect paperrect = cgrectmake(0, 0, self.pagesize.width, self.pagesize.height);  [render setvalue:[nsvalue valuewithcgrect:paperrect] forkey:@"paperrect"]; [render setvalue:[nsvalue valuewithcgrect:printablerect] forkey:@"printablerect"];  nsdata *pdfdata = [render printtopdf];  [pdfdata writetofile: self.pdfpath  atomically: yes]; 

in meantime, have created category on uiprintpagerenderer support:

- (nsdata*) printtopdf {     nsmutabledata *pdfdata = [nsmutabledata data];      uigraphicsbeginpdfcontexttodata( pdfdata, cgrectzero, nil );      [self preparefordrawingpages: nsmakerange(0, self.numberofpages)];      cgrect bounds = uigraphicsgetpdfcontextbounds();      ( int = 0 ; < self.numberofpages ; i++ )     {         uigraphicsbeginpdfpage();          [self drawpageatindex: inrect: bounds];     }      uigraphicsendpdfcontext();      return pdfdata; } 

Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -