我知道採取UIWebView的截圖並將其轉換爲PDF,但我需要生成一個正確的PDF(文本爲文本,而不是截圖)。 Save2PDF是創建正確PDF的應用程序。有人有一個想法,他們如何做到這一點?iOS上的HTML到PDF轉換?
回答
這個問題的全部要點是文本作爲和不截圖
以下的答案必須說明如何使一個位圖的截圖,在PDF容器......
#import <QuartzCore/CALayer.h>
- (NSString *)pdfPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"tmp.pdf"];
return writableDBPath;
}
- (NSDictionary *)pdfContextDictionary {
NSDictionary *d = [NSDictionary dictionaryWithObjectsAndKeys:@"J. P. Author", kCGPDFContextAuthor,
@"My Cool App", kCGPDFContextCreator,
@"This is the Output", kCGPDFContextTitle,
nil];
return d;
}
- (void)printToPDF {
NSString *path = [self pdfPath];
UIView *displayView = self.view;
CGRect pageRect = displayView.bounds;
if (UIGraphicsBeginPDFContextToFile(path, pageRect, [self pdfContextDictionary]) == NO) {
return; // error
}
UIGraphicsBeginPDFPage();
CGContextRef context = UIGraphicsGetCurrentContext();
CALayer *layer = displayView.layer;
[layer renderInContext:context];
UIGraphicsEndPDFContext();
NSLog(@"[%@ %@] %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), path);
}
我創建一個基於我發現的每一個好建議的課程。我一直在挖掘很多,我希望我的課程能夠爲嘗試從某些HTML源代碼直接創建多頁PDF的人提供一些良好的開端。
你會一些基本的示例代碼在這裏找到整個代碼:https://github.com/iclems/iOS-htmltopdf
我剛剛同一個問題,因爲你和我的要求是: - 完整的PDF(真正的文本,沒有位圖) - 智能多頁(與每X像素切割全高度webview相比...)
因此,我使用的解決方案非常好,因爲它使用iOS用於分割頁面以供打印的相同工具。
讓我解釋一下,我安裝一個UIPrintPageRenderer基於Web視圖的打印格式(第一尖):
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
{
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, 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;
}
此代碼運行良好,但我的理解是'[render setValue:..]'語句使用未記錄的方法,App Store將拒絕此代碼。 – brainjam
編號'-setValue:forKey:'不是私有api的一部分。我一直在使用它只讀屬性和蘋果批准我的應用程序。 – akashivskyy
您好我有一個要求,我必須加載一個HTML文件,該HTML文件將具有文本字段,標籤,複選框按鈕等。我必須得到數據無論用戶將進入,然後我必須將其轉換爲PDF用戶輸入數據。 –
- 1. ios中的HTML到PDF轉換
- 2. 轉換HTML到PDF
- 3. PDF到HTML轉換
- 4. Html轉換爲PDF的PDF轉換
- 5. 轉換HTML到PDF在asp.net
- 6. HTML到PDF轉換iPhoneSDK
- 7. PDF到HTML的轉換在PHP
- 8. 在ASP.NET(VB)上將HTML轉換爲PDF?
- 9. iOS的HTML到PDF庫
- 10. PHP HTML到PDF免費轉換資源
- 11. 替代HTML到PDF轉換器?
- 12. 使用Aspose進行HTML到PDF轉換
- 13. PDF到HTML轉換爲網站
- 14. HTML到PDF轉換使用TCPDF
- 15. Knockout JS與HTML到PDF轉換器
- 16. Html轉換爲PDF與webkit轉換
- 17. 服務器上的HTML到PDF轉換(PHP)
- 18. 將PDF轉換爲HTML
- 19. ASP.NET將HTML轉換爲PDF
- 20. 將PDF轉換爲HTML
- 21. iText 7 HTML to PDF轉換
- 22. PDF格式轉換爲HTML
- 23. c#將pdf轉換爲html
- 24. 將HTML轉換成PDF
- 25. 轉換HTML頁面PDF
- 26. Rails:將HTML轉換爲PDF?
- 27. jsPDF將HTML轉換成PDF
- 28. Html To PDF轉換角js
- 29. Winnovative HTML to PDF轉換器
- 30. HTML to PDF轉換器
也許這可能有所幫助:http://stackoverflow.com/questions/5443166/how-to-convert-uiview-to-pdf-within-ios – CarlJ
感謝meccan,但它似乎只是一個截圖方法。我知道利哈魯,但它也是一個漫長的過程。 – Salil
這個問題已經關閉了,這是**精神病。 *「這個問題很可能會引起辯論,爭辯,投票或擴大討論」* ......這在這裏如何適用?諸如「什麼更好,石頭或披頭士」或「Mac或PC更好!!」等問題......爭辯,爭論等等。這是一個直截了當的技術工程問題。 「如何將HTML轉換爲PDF,在iOS上」..有什麼可以更清晰?離奇。 – Fattie