我使用下面的代码的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