最佳答案
有很多关于如何在应用程序的 UIView
中显示 PDF 的资源。我现在的工作是从 UIViews
创建一个 PDF。
例如,我有一个 UIView
,子视图,如文本视图,UILabels
,UIImages
,所以我如何才能转换一个 很大 UIView
作为一个整体,包括所有的子视图和子视图 PDF?
我已经检查了 苹果的 iOS 参考。然而,它只谈到写的文本/图像片段到一个 PDF 文件。
我面临的问题是,我想写成 PDF 文件的内容太多了。如果我把它们一块一块地写到 PDF 中,这将是一项巨大的工作。
这就是为什么我正在寻找一种方法来写 UIViews
到 PDF 甚至位图。
我已经尝试了从 Stack Overflow 中的其他问答中复制的源代码。但它只给我一个空白的 PDF 与 UIView
的界限大小。
-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
UIGraphicsBeginPDFPage();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[aView drawRect:aView.bounds];
// remove PDF rendering context
UIGraphicsEndPDFContext();
// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}