我使用下面的代碼的HTML轉換爲PDF格式(如張貼cwehrung在各種各樣的地方)與iOS上
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];
問題上創建UIPrintPageRenderer類別支持:
-(NSData*) printToPDF
{
[self doNotRasterizeSubviews:self.view];
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;
}
我遇到的問題是圖像和文本之間的對齊。
我將HTML文件上傳到here,很容易在轉換後的PDF文件中看到問題,我上傳到here。 (見第三本書和第六本書)
任何幫助將不勝感激!
的Theres心不是一個差的太多....我想這是很好 – IronManGill
你可以改變框架pdf。 – user2545330
in UIGraphicsBeginPDFContextToData 嘗試設置邊界 根據Apple Documents:bound - 一個指定PDF頁面的默認大小和位置的矩形。 (此值用作每個新頁面的默認媒體框。)矩形的原點通常應爲(0,0)。指定空矩形(CGRectZero)將默認頁面大小設置爲8.5×11英寸(612×792點)。 嘗試將CGRectZero更改爲另一個值.. :) – iProgrammer