使用iOS-htmltopdf,我可以将DOC转换为PDF,但我希望从doc文件中获得单页PDF。
原因是一个页面的某些内容进入另一个页面,因此只有一个页面。
在NDHTMLtoPDF.m
我使用这两行代码,然后PDF页面大小变为双倍
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (webView.isLoading) return;
long pageHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]longLongValue];
self.pageSize = CGSizeMake(595, webView.scrollView.contentSize.height/2);
.........
.........
.........
}
答案 0 :(得分:1)
首先使用NDHTMLtoPDF将DOC转换为PDF。
下面的委托方法将被称为
- (void)HTMLtoPDFDidSucceed:(NDHTMLtoPDF*)htmlToPDF
{
NSLog(@"HTMLtoPDF did succeed (%@ / %@)", htmlToPDF, htmlToPDF.PDFpath);
NSURL *pptURL = [NSURL fileURLWithPath:htmlToPDF.PDFpath];
NSURLRequest *request = [NSURLRequest requestWithURL:pptURL];
[myWebView loadRequest:request];
//now merge whole pages to one PDF
[self MergeToOnePagePDF:pptURL];
}
现在添加以下方法:
-(void)MergeToOnePagePDF:(NSURL *)pdfURL
{
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((__bridge CFURLRef)pdfURL);
int pageCount = CGPDFDocumentGetNumberOfPages(pdf);
CGPDFPageRef pageRef = CGPDFDocumentGetPage(pdf, 1);
CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFMediaBox);
float pageHeight = pageRect.size.height;
pageRect.size.height = pageRect.size.height * pageCount;
NSMutableData* pdfData = [[NSMutableData alloc] init];
CGDataConsumerRef pdfConsumer = CGDataConsumerCreateWithCFData((__bridge CFMutableDataRef)pdfData);
CGContextRef pdfContext = CGPDFContextCreate(pdfConsumer, &pageRect, NULL);
CGPDFContextBeginPage(pdfContext, NULL);
CGContextTranslateCTM(pdfContext, 0, pageRect.size.height);
for (int i = 1; i <= pageCount; i++)
{
pageRef = CGPDFDocumentGetPage(pdf, i);
CGContextTranslateCTM(pdfContext, 0, -pageHeight);
CGContextDrawPDFPage(pdfContext, pageRef);
}
CGPDFContextEndPage(pdfContext);
CGPDFContextClose(pdfContext);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFile = [documentsDirectory stringByAppendingPathComponent:@"destination.pdf"];
[pdfData writeToFile: pdfFile atomically: NO];
}
编辑:将网页合并为一页PDF信用额转至@iPDFDev
答案 1 :(得分:-1)
我有三个选择,你可能会在其中任何一个中得到答案。
1)检查此链接。MonkeyBread
2)使用Pdflab,您可以拆分,组合,重组Pdf。
3)你所要做的就是在预览中打开doc文件,apple + c复制你所在的页面,apple + n。,apple + v,你就有了单页pdf。
我希望这些能在某种程度上帮助你。