2012-03-02 93 views
1

如何將iPhone上的屏幕截圖轉換爲PDF文件。將屏幕截圖放入UIImage很容易,但這是我遭受挫折的轉換。我看了一下Quartz框架,它是我知道支持PDF格式的Xcode中唯一的框架,但是在那裏找不到任何東西來實現這個功能。 Xcode有什麼原生的東西,我錯過了?如果沒有,是否有公共框架可以處理這樣的轉換?在Xcode中將屏幕截圖轉換爲PDF?

+0

你想要一張只是圖像的PDF嗎? – EmilioPelaez 2012-03-02 16:38:13

+0

基本上,是的。至少這是第一步。我基本上想要設計一個捕捉當前屏幕的按鈕,將其轉換爲PDF,然後從那裏做更多的東西。這只是我不確定的轉換本身。 – Jessica 2012-03-02 16:45:56

+0

我認爲這樣做的方式是使用CGPDFContext.h中的函數創建一個新的Core Graphics上下文,然後在該上下文中渲染圖像,並關閉上下文。但我不知道下一步該做什麼,而且真的沒有時間去搜索更多,抱歉。 – EmilioPelaez 2012-03-02 16:53:12

回答

1

我想通了。它涉及將截圖保存爲UIImage,然後使用發現here的非常有用的教程來幫助我進行PDF轉換。事實證明,在Core Graphics類中有處理PDF文檔的功能。

+0

您能否提供更新後的鏈接,因爲您發佈的鏈接不再存在? – 2016-08-15 16:03:02

-1

您不會將屏幕截圖轉換爲pdf。你可以創建一個截圖,創建一個pdf並將屏幕截圖插入pdf的第一頁。

未測試的代碼來創建圖像:

nameStr = [NSString stringWithFormat:@"myImage.png"]; 
fileManager = [NSFileManager defaultManager]; 
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
documentsDirectory = [paths objectAtIndex:0]; 
namePath = [documentsDirectory stringByAppendingString:@"/"]; 
namePath = [thumbnailPath nameStr]; 

CGRect contextRect = CGRectMake(0, 0, 1024, 768); 
UIGraphicsBeginImageContext(contextRect.size); 
[self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

NSData *data = UIImagePNGRepresentation(viewImage); 
UIImage *myImage = [[UIImage alloc] initWithData:data]; 

未經測試的代碼將圖像添加到PDF:

pageSize = CGSizeMake(1024, 768); 
fileName = @"myFile.pdf"; 
pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName]; 

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil); 
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil); 

[myImage drawInRect:CGRectMake(0, 0, 1024, 768]; 
UIGraphicsEndPDFContext(); 

P.S.假設ipad 1024 x 768以上