├── RP_UIView_2_PDF ├── en.lproj │ └── InfoPlist.strings ├── images.jpeg ├── LzzyHale.jpg ├── images-1.jpeg ├── images-2.jpeg ├── images-3.jpeg ├── images-4.jpeg ├── images-5.jpeg ├── AppDelegate.m ├── PageOneView.m ├── ViewController.h ├── PreviewViewController.h ├── AppDelegate.h ├── main.m ├── RP_UIView_2_PDF-Prefix.pch ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── LaunchImage.launchimage │ │ └── Contents.json ├── PageOneView.h ├── PreviewViewController.m ├── RP_UIView_2_PDF-Info.plist ├── ViewController.m ├── Launch Screen.storyboard ├── Main.storyboard ├── PageTwoView.xib └── PageOneView.xib ├── RP_UIView_2_PDFTests ├── en.lproj │ └── InfoPlist.strings ├── RP_UIView_2_PDFTests-Info.plist └── RP_UIView_2_PDFTests.m ├── .gitignore ├── RP_UIView_2_PDF.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcuserdata │ └── robertphillips.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── RP_UIView_2_PDF.xcscheme └── project.pbxproj ├── RP_UIView_2_PDF.h ├── LICENSE ├── README.md └── RP_UIView_2_PDF.m /RP_UIView_2_PDF/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /RP_UIView_2_PDFTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images.jpeg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/LzzyHale.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/LzzyHale.jpg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-1.jpeg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-2.jpeg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-3.jpeg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images-4.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-4.jpeg -------------------------------------------------------------------------------- /RP_UIView_2_PDF/images-5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-5.jpeg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | RP_UIView_2_PDF.xcodeproj/xcuserdata/robertnash.xcuserdatad/xcschemes/RP_UIView_2_PDF.xcscheme 2 | RP_UIView_2_PDF.xcodeproj/xcuserdata/robertnash.xcuserdatad/xcschemes/xcschememanagement.plist 3 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @implementation AppDelegate 12 | @end 13 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PageOneView.m: -------------------------------------------------------------------------------- 1 | // 2 | // PageOneView.m 3 | // XIB_2_PDF 4 | // 5 | // Created by Robert Phillips on 16/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import "PageOneView.h" 10 | 11 | @implementation PageOneView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.h: -------------------------------------------------------------------------------- 1 | // 2 | // RP_UIView_2_PDF.h 3 | // UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 16/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RP_UIView_2_PDF : NSObject 12 | 13 | +(NSString *)generatePDFWithPages:(NSArray *)pages; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PreviewViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PreviewViewController.h 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Nash on 30/09/2015. 6 | // Copyright © 2015 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PreviewViewController : UIViewController 12 | @property (nonatomic, strong) NSURL *url; 13 | @end 14 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "AppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PageOneView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PageOneView.h 3 | // XIB_2_PDF 4 | // 5 | // Created by Robert Phillips on 16/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PageOneView : UIView 12 | @property (weak, nonatomic) IBOutlet UILabel *titleOne; 13 | @property (weak, nonatomic) IBOutlet UILabel *titleTwo; 14 | @property (weak, nonatomic) IBOutlet UILabel *labelOne; 15 | @property (weak, nonatomic) IBOutlet UILabel *labelTwo; 16 | @property (weak, nonatomic) IBOutlet UILabel *rightAllignedLabel; 17 | @end 18 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PreviewViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // PreviewViewController.m 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Nash on 30/09/2015. 6 | // Copyright © 2015 Intohand. All rights reserved. 7 | // 8 | 9 | #import "PreviewViewController.h" 10 | 11 | @interface PreviewViewController () 12 | @property (weak, nonatomic) IBOutlet UIWebView *webView; 13 | @end 14 | 15 | @implementation PreviewViewController 16 | 17 | -(void)viewWillAppear:(BOOL)animated { 18 | [super viewWillAppear:animated]; 19 | 20 | NSURLRequest *request = [[NSURLRequest alloc] initWithURL:self.url]; 21 | [self.webView loadRequest:request]; 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.xcodeproj/xcuserdata/robertphillips.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RP_UIView_2_PDF.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8FBA0D86186098BB002C7B11 16 | 17 | primary 18 | 19 | 20 | 8FBA0DA7186098BB002C7B11 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /RP_UIView_2_PDFTests/RP_UIView_2_PDFTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // RP_UIView_2_PDFTests.m 3 | // RP_UIView_2_PDFTests 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RP_UIView_2_PDFTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation RP_UIView_2_PDFTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 RobertAPhillips 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Create UIView objects using any method you like, including interface builder with Auto-layout and size classes enabled. Then generate a PDF directly from those views! 3 | 4 | ## Requirements 5 | XCode 6.4+, iOS 7.0+ 6 | 7 | ## Installation 8 | In XCode, select 'Add Files To Project', and select RP_UIView_2_PDF.h 9 | 10 | ## Usage 11 | 1. Make a xib file. Your xib file should only consist of UILabels and/or UIImageViews and/or other UIView subviews. Use views that are 1 pixel high or wide to create lines. Set the tag of a UIView to 1 to have it draw filled or zero to draw as just a 1 pixel bordered box. 12 | 2. Load your xib like so 13 | ```objective-c 14 | UIView *pageOne = [[NSBundle mainBundle] loadNibNamed:@"NibNameOne" owner:self options:nil].lastObject; 15 | UIView *pageTwo = [[NSBundle mainBundle] loadNibNamed:@"NibNameTwo" owner:self options:nil].lastObject; 16 | ``` 17 | 3. Then generate your PDF like this 18 | ```objective-c 19 | NSString *tempFilepath = [RP_UIView_2_PDF generatePDFWithPages:@[pageOne, pageTwo]; 20 | ``` 21 | 22 | See demo project for details. 23 | 24 | ## License 25 | UIView_2_PDF is released under the MIT license. See 'LICENCE.md' for details. 26 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | Launch Screen 29 | UIMainStoryboardFile 30 | Main 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // RP_UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 17/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "PageOneView.h" 11 | #import "RP_UIView_2_PDF.h" 12 | #import "PreviewViewController.h" 13 | 14 | @implementation ViewController 15 | 16 | #pragma mark - User Actions 17 | 18 | - (IBAction)viewPDFButtonPressed:(id)sender { 19 | 20 | NSArray *pages = [self generateExamplePages]; 21 | 22 | NSString *tempFilepath = [RP_UIView_2_PDF generatePDFWithPages:pages]; 23 | 24 | [self performSegueWithIdentifier:@"WebView" 25 | sender:[NSURL fileURLWithPath:tempFilepath]]; 26 | } 27 | 28 | -(NSArray *)generateExamplePages { 29 | 30 | NSMutableArray *collection = [@[] mutableCopy]; 31 | 32 | PageOneView *pageOneView = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([PageOneView class]) owner:self options:nil].lastObject; 33 | pageOneView.titleOne.text = @"This title resizes:"; 34 | pageOneView.titleTwo.text = @"This title also resizes:"; 35 | pageOneView.labelOne.text = @"This label moves and resizes"; 36 | pageOneView.labelTwo.text = @"This label also moves and resizes"; 37 | pageOneView.rightAllignedLabel.text = @"$42.32"; 38 | 39 | [collection addObject:pageOneView]; 40 | 41 | UIView *pageTwoView = [[NSBundle mainBundle] loadNibNamed:@"PageTwoView" owner:self options:nil].lastObject; 42 | 43 | [collection addObject:pageTwoView]; 44 | 45 | return [collection copy]; 46 | } 47 | 48 | -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 49 | PreviewViewController *controller = segue.destinationViewController; 50 | controller.url = sender; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.xcodeproj/xcuserdata/robertphillips.xcuserdatad/xcschemes/RP_UIView_2_PDF.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/Launch Screen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 28 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.m: -------------------------------------------------------------------------------- 1 | // 2 | // RP_UIView_2_PDF.m 3 | // UIView_2_PDF 4 | // 5 | // Created by Robert Phillips on 16/12/2013. 6 | // Copyright (c) 2013 Intohand. All rights reserved. 7 | // 8 | 9 | #import "RP_UIView_2_PDF.h" 10 | 11 | @implementation RP_UIView_2_PDF 12 | 13 | +(NSString *)generatePDFWithPages:(NSArray *)pages { 14 | 15 | NSString *filepath = [[NSTemporaryDirectory() stringByAppendingPathComponent:@"temp"] stringByAppendingPathExtension:@"pdf"]; 16 | 17 | UIGraphicsBeginPDFContextToFile(filepath, CGRectZero, nil); 18 | 19 | CGContextRef context = UIGraphicsGetCurrentContext(); 20 | 21 | for (UIView *page in pages) { 22 | [self drawPage:page withContext:context]; 23 | } 24 | 25 | UIGraphicsEndPDFContext(); 26 | 27 | return filepath; 28 | } 29 | 30 | +(void)drawPage:(UIView *)page withContext:(CGContextRef)context { 31 | 32 | UIGraphicsBeginPDFPageWithInfo(CGRectMake(0.0, 0.0, page.bounds.size.width, page.bounds.size.height), nil); 33 | 34 | for (UIView *subview in [self allSubViewsForPage:page]) { 35 | 36 | if ([subview isKindOfClass:[UIImageView class]]) { 37 | 38 | UIImageView *imageView = (UIImageView *)subview; 39 | [imageView.image drawInRect:imageView.frame]; 40 | 41 | } else if ([subview isKindOfClass:[UILabel class]]) { 42 | 43 | UILabel *label = (UILabel *)subview; 44 | 45 | NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 46 | paragraphStyle.lineBreakMode = label.lineBreakMode; 47 | paragraphStyle.alignment = label.textAlignment; 48 | 49 | [label.text drawInRect:label.frame 50 | withAttributes:@{ 51 | NSFontAttributeName:label.font, 52 | NSParagraphStyleAttributeName:paragraphStyle, 53 | NSForegroundColorAttributeName:label.textColor 54 | }]; 55 | 56 | } else if ([subview isKindOfClass:[UIView class]]) { 57 | 58 | [self drawLinesUsingUIView:subview 59 | withLineThickness:1.0 60 | inGraphicsContext:context 61 | fillView:subview.tag]; 62 | 63 | } 64 | } 65 | 66 | } 67 | 68 | +(void)drawLinesUsingUIView:(UIView *)view withLineThickness:(float)thickness inGraphicsContext:(CGContextRef)context fillView:(BOOL)fillView 69 | { 70 | CGContextSaveGState(context); 71 | CGContextSetStrokeColorWithColor(context, view.backgroundColor.CGColor); 72 | CGContextSetFillColorWithColor(context, view.backgroundColor.CGColor); 73 | CGContextSetLineWidth(context, thickness); 74 | 75 | if (view.frame.size.width > 1 && view.frame.size.height == 1) 76 | { 77 | // view represents a horizontal line so draw one based on the top edge 78 | CGContextMoveToPoint(context, view.frame.origin.x-0.5, view.frame.origin.y); 79 | CGContextAddLineToPoint(context, view.frame.origin.x+view.frame.size.width-0.5, view.frame.origin.y); 80 | CGContextStrokePath(context); 81 | } 82 | else if (view.frame.size.width == 1 && view.frame.size.height > 1) 83 | { 84 | // view represents a vertical line so draw one based on the left edge 85 | CGContextMoveToPoint(context, view.frame.origin.x, view.frame.origin.y-0.5); 86 | CGContextAddLineToPoint(context, view.frame.origin.x, view.frame.origin.y+view.frame.size.height+0.5); 87 | CGContextStrokePath(context); 88 | } 89 | else if (view.frame.size.width > 1 && view.frame.size.height > 1) 90 | { 91 | // both the width and height of the view are greater than 1, so draw a rect around the frame 92 | if (fillView) { 93 | CGContextSetFillColorWithColor(context, view.backgroundColor.CGColor); 94 | CGContextFillRect(context, view.frame); 95 | } 96 | CGContextStrokeRect(context, view.frame); 97 | } 98 | CGContextRestoreGState(context); 99 | } 100 | 101 | +(NSArray*)allSubViewsForPage:(UIView *)page 102 | { 103 | NSMutableArray *array = [@[] mutableCopy]; 104 | 105 | [array addObject:page]; 106 | 107 | for (UIView *subview in page.subviews) 108 | { 109 | if ([subview isKindOfClass:[UILabel class]]) 110 | { 111 | UILabel *label = (UILabel *)subview; 112 | [label sizeToFit]; 113 | [label layoutIfNeeded]; 114 | } 115 | 116 | CGPoint origin = [subview.superview convertPoint:subview.frame.origin toView:subview.superview.superview]; 117 | subview.frame = CGRectMake(origin.x, origin.y, subview.frame.size.width, subview.frame.size.height); 118 | [array addObjectsFromArray:[self allSubViewsForPage:subview]]; 119 | } 120 | 121 | return [array copy]; 122 | } 123 | 124 | @end 125 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PageTwoView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 38 | 45 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF/PageOneView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 58 | 64 | 70 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | -------------------------------------------------------------------------------- /RP_UIView_2_PDF.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 501EC5791BBB50AA00D48413 /* PreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 501EC5781BBB50AA00D48413 /* PreviewViewController.m */; settings = {ASSET_TAGS = (); }; }; 11 | 509F60B41BBB41B7001B2470 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */; settings = {ASSET_TAGS = (); }; }; 12 | 8FBA0D8B186098BB002C7B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8A186098BB002C7B11 /* Foundation.framework */; }; 13 | 8FBA0D8D186098BB002C7B11 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */; }; 14 | 8FBA0D8F186098BB002C7B11 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8E186098BB002C7B11 /* UIKit.framework */; }; 15 | 8FBA0D95186098BB002C7B11 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */; }; 16 | 8FBA0D97186098BB002C7B11 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0D96186098BB002C7B11 /* main.m */; }; 17 | 8FBA0D9B186098BB002C7B11 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */; }; 18 | 8FBA0DA1186098BB002C7B11 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DA0186098BB002C7B11 /* ViewController.m */; }; 19 | 8FBA0DA3186098BB002C7B11 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DA2186098BB002C7B11 /* Images.xcassets */; }; 20 | 8FBA0DAA186098BB002C7B11 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0DA9186098BB002C7B11 /* XCTest.framework */; }; 21 | 8FBA0DAB186098BB002C7B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8A186098BB002C7B11 /* Foundation.framework */; }; 22 | 8FBA0DAC186098BB002C7B11 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8E186098BB002C7B11 /* UIKit.framework */; }; 23 | 8FBA0DB4186098BB002C7B11 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */; }; 24 | 8FBA0DB6186098BB002C7B11 /* RP_UIView_2_PDFTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */; }; 25 | 8FBA0DC818609943002C7B11 /* PageOneView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DC618609943002C7B11 /* PageOneView.m */; }; 26 | 8FBA0DC918609943002C7B11 /* PageOneView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DC718609943002C7B11 /* PageOneView.xib */; }; 27 | 8FBA0DCD18609979002C7B11 /* RP_UIView_2_PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */; }; 28 | 8FBA0DCF186099B1002C7B11 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DCE186099B1002C7B11 /* Main.storyboard */; }; 29 | 8FBA0DD2186099FB002C7B11 /* LzzyHale.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */; }; 30 | 8FBA0DDA18609C52002C7B11 /* PageTwoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */; }; 31 | 8FBA0DE11860A71E002C7B11 /* images-5.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */; }; 32 | 8FBA0DE21860A71E002C7B11 /* images-1.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */; }; 33 | 8FBA0DE31860A71E002C7B11 /* images-4.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */; }; 34 | 8FBA0DE41860A71E002C7B11 /* images-2.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */; }; 35 | 8FBA0DE51860A71E002C7B11 /* images.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDF1860A71E002C7B11 /* images.jpeg */; }; 36 | 8FBA0DE61860A71E002C7B11 /* images-3.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */; }; 37 | /* End PBXBuildFile section */ 38 | 39 | /* Begin PBXContainerItemProxy section */ 40 | 8FBA0DAD186098BB002C7B11 /* PBXContainerItemProxy */ = { 41 | isa = PBXContainerItemProxy; 42 | containerPortal = 8FBA0D7F186098BB002C7B11 /* Project object */; 43 | proxyType = 1; 44 | remoteGlobalIDString = 8FBA0D86186098BB002C7B11; 45 | remoteInfo = RP_UIView_2_PDF; 46 | }; 47 | /* End PBXContainerItemProxy section */ 48 | 49 | /* Begin PBXFileReference section */ 50 | 501EC5771BBB50AA00D48413 /* PreviewViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreviewViewController.h; sourceTree = ""; }; 51 | 501EC5781BBB50AA00D48413 /* PreviewViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreviewViewController.m; sourceTree = ""; }; 52 | 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; 53 | 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RP_UIView_2_PDF.app; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | 8FBA0D8A186098BB002C7B11 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 55 | 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 56 | 8FBA0D8E186098BB002C7B11 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 57 | 8FBA0D92186098BB002C7B11 /* RP_UIView_2_PDF-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RP_UIView_2_PDF-Info.plist"; sourceTree = ""; }; 58 | 8FBA0D94186098BB002C7B11 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 59 | 8FBA0D96186098BB002C7B11 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 60 | 8FBA0D98186098BB002C7B11 /* RP_UIView_2_PDF-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RP_UIView_2_PDF-Prefix.pch"; sourceTree = ""; }; 61 | 8FBA0D99186098BB002C7B11 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 62 | 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 63 | 8FBA0D9F186098BB002C7B11 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 64 | 8FBA0DA0186098BB002C7B11 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 65 | 8FBA0DA2186098BB002C7B11 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 66 | 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RP_UIView_2_PDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 8FBA0DA9186098BB002C7B11 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 68 | 8FBA0DB1186098BB002C7B11 /* RP_UIView_2_PDFTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RP_UIView_2_PDFTests-Info.plist"; sourceTree = ""; }; 69 | 8FBA0DB3186098BB002C7B11 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 70 | 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RP_UIView_2_PDFTests.m; sourceTree = ""; }; 71 | 8FBA0DC518609943002C7B11 /* PageOneView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageOneView.h; sourceTree = ""; }; 72 | 8FBA0DC618609943002C7B11 /* PageOneView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PageOneView.m; sourceTree = ""; }; 73 | 8FBA0DC718609943002C7B11 /* PageOneView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageOneView.xib; sourceTree = ""; }; 74 | 8FBA0DCB18609979002C7B11 /* RP_UIView_2_PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RP_UIView_2_PDF.h; path = ../RP_UIView_2_PDF.h; sourceTree = ""; }; 75 | 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RP_UIView_2_PDF.m; path = ../RP_UIView_2_PDF.m; sourceTree = ""; }; 76 | 8FBA0DCE186099B1002C7B11 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 77 | 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = LzzyHale.jpg; sourceTree = ""; }; 78 | 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageTwoView.xib; sourceTree = ""; }; 79 | 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-5.jpeg"; sourceTree = ""; }; 80 | 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-1.jpeg"; sourceTree = ""; }; 81 | 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-4.jpeg"; sourceTree = ""; }; 82 | 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-2.jpeg"; sourceTree = ""; }; 83 | 8FBA0DDF1860A71E002C7B11 /* images.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = images.jpeg; sourceTree = ""; }; 84 | 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-3.jpeg"; sourceTree = ""; }; 85 | /* End PBXFileReference section */ 86 | 87 | /* Begin PBXFrameworksBuildPhase section */ 88 | 8FBA0D84186098BB002C7B11 /* Frameworks */ = { 89 | isa = PBXFrameworksBuildPhase; 90 | buildActionMask = 2147483647; 91 | files = ( 92 | 8FBA0D8D186098BB002C7B11 /* CoreGraphics.framework in Frameworks */, 93 | 8FBA0D8F186098BB002C7B11 /* UIKit.framework in Frameworks */, 94 | 8FBA0D8B186098BB002C7B11 /* Foundation.framework in Frameworks */, 95 | ); 96 | runOnlyForDeploymentPostprocessing = 0; 97 | }; 98 | 8FBA0DA5186098BB002C7B11 /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | 8FBA0DAA186098BB002C7B11 /* XCTest.framework in Frameworks */, 103 | 8FBA0DAC186098BB002C7B11 /* UIKit.framework in Frameworks */, 104 | 8FBA0DAB186098BB002C7B11 /* Foundation.framework in Frameworks */, 105 | ); 106 | runOnlyForDeploymentPostprocessing = 0; 107 | }; 108 | /* End PBXFrameworksBuildPhase section */ 109 | 110 | /* Begin PBXGroup section */ 111 | 501EC57A1BBB50AD00D48413 /* PreviewViewController */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | 501EC5771BBB50AA00D48413 /* PreviewViewController.h */, 115 | 501EC5781BBB50AA00D48413 /* PreviewViewController.m */, 116 | ); 117 | name = PreviewViewController; 118 | sourceTree = ""; 119 | }; 120 | 501EC57B1BBB50B100D48413 /* ViewController */ = { 121 | isa = PBXGroup; 122 | children = ( 123 | 8FBA0D9F186098BB002C7B11 /* ViewController.h */, 124 | 8FBA0DA0186098BB002C7B11 /* ViewController.m */, 125 | ); 126 | name = ViewController; 127 | sourceTree = ""; 128 | }; 129 | 8FBA0D7E186098BB002C7B11 = { 130 | isa = PBXGroup; 131 | children = ( 132 | 8FBA0D90186098BB002C7B11 /* RP_UIView_2_PDF */, 133 | 8FBA0DAF186098BB002C7B11 /* RP_UIView_2_PDFTests */, 134 | 8FBA0D89186098BB002C7B11 /* Frameworks */, 135 | 8FBA0D88186098BB002C7B11 /* Products */, 136 | ); 137 | sourceTree = ""; 138 | }; 139 | 8FBA0D88186098BB002C7B11 /* Products */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */, 143 | 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */, 144 | ); 145 | name = Products; 146 | sourceTree = ""; 147 | }; 148 | 8FBA0D89186098BB002C7B11 /* Frameworks */ = { 149 | isa = PBXGroup; 150 | children = ( 151 | 8FBA0D8A186098BB002C7B11 /* Foundation.framework */, 152 | 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */, 153 | 8FBA0D8E186098BB002C7B11 /* UIKit.framework */, 154 | 8FBA0DA9186098BB002C7B11 /* XCTest.framework */, 155 | ); 156 | name = Frameworks; 157 | sourceTree = ""; 158 | }; 159 | 8FBA0D90186098BB002C7B11 /* RP_UIView_2_PDF */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | 8FBA0DBF186098D2002C7B11 /* App Delegate */, 163 | 8FBA0DC0186098E1002C7B11 /* Storyboards */, 164 | 8FBA0DC1186098ED002C7B11 /* View Contollers */, 165 | 8FBA0DC318609924002C7B11 /* PDF Pages */, 166 | 8FBA0DCA18609965002C7B11 /* PDF Creation */, 167 | 8FBA0D91186098BB002C7B11 /* Supporting Files */, 168 | 8FBA0DD0186099EC002C7B11 /* Assets */, 169 | ); 170 | path = RP_UIView_2_PDF; 171 | sourceTree = ""; 172 | }; 173 | 8FBA0D91186098BB002C7B11 /* Supporting Files */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */, 177 | 8FBA0D92186098BB002C7B11 /* RP_UIView_2_PDF-Info.plist */, 178 | 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */, 179 | 8FBA0D96186098BB002C7B11 /* main.m */, 180 | 8FBA0D98186098BB002C7B11 /* RP_UIView_2_PDF-Prefix.pch */, 181 | 8FBA0DA2186098BB002C7B11 /* Images.xcassets */, 182 | ); 183 | name = "Supporting Files"; 184 | sourceTree = ""; 185 | }; 186 | 8FBA0DAF186098BB002C7B11 /* RP_UIView_2_PDFTests */ = { 187 | isa = PBXGroup; 188 | children = ( 189 | 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */, 190 | 8FBA0DB0186098BB002C7B11 /* Supporting Files */, 191 | ); 192 | path = RP_UIView_2_PDFTests; 193 | sourceTree = ""; 194 | }; 195 | 8FBA0DB0186098BB002C7B11 /* Supporting Files */ = { 196 | isa = PBXGroup; 197 | children = ( 198 | 8FBA0DB1186098BB002C7B11 /* RP_UIView_2_PDFTests-Info.plist */, 199 | 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */, 200 | ); 201 | name = "Supporting Files"; 202 | sourceTree = ""; 203 | }; 204 | 8FBA0DBF186098D2002C7B11 /* App Delegate */ = { 205 | isa = PBXGroup; 206 | children = ( 207 | 8FBA0D99186098BB002C7B11 /* AppDelegate.h */, 208 | 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */, 209 | ); 210 | name = "App Delegate"; 211 | sourceTree = ""; 212 | }; 213 | 8FBA0DC0186098E1002C7B11 /* Storyboards */ = { 214 | isa = PBXGroup; 215 | children = ( 216 | 8FBA0DCE186099B1002C7B11 /* Main.storyboard */, 217 | ); 218 | name = Storyboards; 219 | sourceTree = ""; 220 | }; 221 | 8FBA0DC1186098ED002C7B11 /* View Contollers */ = { 222 | isa = PBXGroup; 223 | children = ( 224 | 501EC57B1BBB50B100D48413 /* ViewController */, 225 | 501EC57A1BBB50AD00D48413 /* PreviewViewController */, 226 | ); 227 | name = "View Contollers"; 228 | sourceTree = ""; 229 | }; 230 | 8FBA0DC318609924002C7B11 /* PDF Pages */ = { 231 | isa = PBXGroup; 232 | children = ( 233 | 8FBA0DC418609936002C7B11 /* Page 1 */, 234 | 8FBA0DD318609C01002C7B11 /* Page 2 */, 235 | ); 236 | name = "PDF Pages"; 237 | sourceTree = ""; 238 | }; 239 | 8FBA0DC418609936002C7B11 /* Page 1 */ = { 240 | isa = PBXGroup; 241 | children = ( 242 | 8FBA0DC518609943002C7B11 /* PageOneView.h */, 243 | 8FBA0DC618609943002C7B11 /* PageOneView.m */, 244 | 8FBA0DC718609943002C7B11 /* PageOneView.xib */, 245 | ); 246 | name = "Page 1"; 247 | sourceTree = ""; 248 | }; 249 | 8FBA0DCA18609965002C7B11 /* PDF Creation */ = { 250 | isa = PBXGroup; 251 | children = ( 252 | 8FBA0DCB18609979002C7B11 /* RP_UIView_2_PDF.h */, 253 | 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */, 254 | ); 255 | name = "PDF Creation"; 256 | sourceTree = ""; 257 | }; 258 | 8FBA0DD0186099EC002C7B11 /* Assets */ = { 259 | isa = PBXGroup; 260 | children = ( 261 | 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */, 262 | 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */, 263 | 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */, 264 | 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */, 265 | 8FBA0DDF1860A71E002C7B11 /* images.jpeg */, 266 | 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */, 267 | 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */, 268 | ); 269 | name = Assets; 270 | sourceTree = ""; 271 | }; 272 | 8FBA0DD318609C01002C7B11 /* Page 2 */ = { 273 | isa = PBXGroup; 274 | children = ( 275 | 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */, 276 | ); 277 | name = "Page 2"; 278 | sourceTree = ""; 279 | }; 280 | /* End PBXGroup section */ 281 | 282 | /* Begin PBXNativeTarget section */ 283 | 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */ = { 284 | isa = PBXNativeTarget; 285 | buildConfigurationList = 8FBA0DB9186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDF" */; 286 | buildPhases = ( 287 | 8FBA0D83186098BB002C7B11 /* Sources */, 288 | 8FBA0D84186098BB002C7B11 /* Frameworks */, 289 | 8FBA0D85186098BB002C7B11 /* Resources */, 290 | ); 291 | buildRules = ( 292 | ); 293 | dependencies = ( 294 | ); 295 | name = RP_UIView_2_PDF; 296 | productName = RP_UIView_2_PDF; 297 | productReference = 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */; 298 | productType = "com.apple.product-type.application"; 299 | }; 300 | 8FBA0DA7186098BB002C7B11 /* RP_UIView_2_PDFTests */ = { 301 | isa = PBXNativeTarget; 302 | buildConfigurationList = 8FBA0DBC186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDFTests" */; 303 | buildPhases = ( 304 | 8FBA0DA4186098BB002C7B11 /* Sources */, 305 | 8FBA0DA5186098BB002C7B11 /* Frameworks */, 306 | 8FBA0DA6186098BB002C7B11 /* Resources */, 307 | ); 308 | buildRules = ( 309 | ); 310 | dependencies = ( 311 | 8FBA0DAE186098BB002C7B11 /* PBXTargetDependency */, 312 | ); 313 | name = RP_UIView_2_PDFTests; 314 | productName = RP_UIView_2_PDFTests; 315 | productReference = 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */; 316 | productType = "com.apple.product-type.bundle.unit-test"; 317 | }; 318 | /* End PBXNativeTarget section */ 319 | 320 | /* Begin PBXProject section */ 321 | 8FBA0D7F186098BB002C7B11 /* Project object */ = { 322 | isa = PBXProject; 323 | attributes = { 324 | LastUpgradeCheck = 0700; 325 | ORGANIZATIONNAME = ""; 326 | TargetAttributes = { 327 | 8FBA0DA7186098BB002C7B11 = { 328 | TestTargetID = 8FBA0D86186098BB002C7B11; 329 | }; 330 | }; 331 | }; 332 | buildConfigurationList = 8FBA0D82186098BB002C7B11 /* Build configuration list for PBXProject "RP_UIView_2_PDF" */; 333 | compatibilityVersion = "Xcode 3.2"; 334 | developmentRegion = English; 335 | hasScannedForEncodings = 0; 336 | knownRegions = ( 337 | en, 338 | Base, 339 | ); 340 | mainGroup = 8FBA0D7E186098BB002C7B11; 341 | productRefGroup = 8FBA0D88186098BB002C7B11 /* Products */; 342 | projectDirPath = ""; 343 | projectRoot = ""; 344 | targets = ( 345 | 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */, 346 | 8FBA0DA7186098BB002C7B11 /* RP_UIView_2_PDFTests */, 347 | ); 348 | }; 349 | /* End PBXProject section */ 350 | 351 | /* Begin PBXResourcesBuildPhase section */ 352 | 8FBA0D85186098BB002C7B11 /* Resources */ = { 353 | isa = PBXResourcesBuildPhase; 354 | buildActionMask = 2147483647; 355 | files = ( 356 | 8FBA0DA3186098BB002C7B11 /* Images.xcassets in Resources */, 357 | 8FBA0DE31860A71E002C7B11 /* images-4.jpeg in Resources */, 358 | 8FBA0DE11860A71E002C7B11 /* images-5.jpeg in Resources */, 359 | 8FBA0DCF186099B1002C7B11 /* Main.storyboard in Resources */, 360 | 509F60B41BBB41B7001B2470 /* Launch Screen.storyboard in Resources */, 361 | 8FBA0DE41860A71E002C7B11 /* images-2.jpeg in Resources */, 362 | 8FBA0DD2186099FB002C7B11 /* LzzyHale.jpg in Resources */, 363 | 8FBA0D95186098BB002C7B11 /* InfoPlist.strings in Resources */, 364 | 8FBA0DE61860A71E002C7B11 /* images-3.jpeg in Resources */, 365 | 8FBA0DE51860A71E002C7B11 /* images.jpeg in Resources */, 366 | 8FBA0DE21860A71E002C7B11 /* images-1.jpeg in Resources */, 367 | 8FBA0DDA18609C52002C7B11 /* PageTwoView.xib in Resources */, 368 | 8FBA0DC918609943002C7B11 /* PageOneView.xib in Resources */, 369 | ); 370 | runOnlyForDeploymentPostprocessing = 0; 371 | }; 372 | 8FBA0DA6186098BB002C7B11 /* Resources */ = { 373 | isa = PBXResourcesBuildPhase; 374 | buildActionMask = 2147483647; 375 | files = ( 376 | 8FBA0DB4186098BB002C7B11 /* InfoPlist.strings in Resources */, 377 | ); 378 | runOnlyForDeploymentPostprocessing = 0; 379 | }; 380 | /* End PBXResourcesBuildPhase section */ 381 | 382 | /* Begin PBXSourcesBuildPhase section */ 383 | 8FBA0D83186098BB002C7B11 /* Sources */ = { 384 | isa = PBXSourcesBuildPhase; 385 | buildActionMask = 2147483647; 386 | files = ( 387 | 8FBA0DA1186098BB002C7B11 /* ViewController.m in Sources */, 388 | 8FBA0DCD18609979002C7B11 /* RP_UIView_2_PDF.m in Sources */, 389 | 8FBA0D9B186098BB002C7B11 /* AppDelegate.m in Sources */, 390 | 8FBA0DC818609943002C7B11 /* PageOneView.m in Sources */, 391 | 501EC5791BBB50AA00D48413 /* PreviewViewController.m in Sources */, 392 | 8FBA0D97186098BB002C7B11 /* main.m in Sources */, 393 | ); 394 | runOnlyForDeploymentPostprocessing = 0; 395 | }; 396 | 8FBA0DA4186098BB002C7B11 /* Sources */ = { 397 | isa = PBXSourcesBuildPhase; 398 | buildActionMask = 2147483647; 399 | files = ( 400 | 8FBA0DB6186098BB002C7B11 /* RP_UIView_2_PDFTests.m in Sources */, 401 | ); 402 | runOnlyForDeploymentPostprocessing = 0; 403 | }; 404 | /* End PBXSourcesBuildPhase section */ 405 | 406 | /* Begin PBXTargetDependency section */ 407 | 8FBA0DAE186098BB002C7B11 /* PBXTargetDependency */ = { 408 | isa = PBXTargetDependency; 409 | target = 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */; 410 | targetProxy = 8FBA0DAD186098BB002C7B11 /* PBXContainerItemProxy */; 411 | }; 412 | /* End PBXTargetDependency section */ 413 | 414 | /* Begin PBXVariantGroup section */ 415 | 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */ = { 416 | isa = PBXVariantGroup; 417 | children = ( 418 | 8FBA0D94186098BB002C7B11 /* en */, 419 | ); 420 | name = InfoPlist.strings; 421 | sourceTree = ""; 422 | }; 423 | 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */ = { 424 | isa = PBXVariantGroup; 425 | children = ( 426 | 8FBA0DB3186098BB002C7B11 /* en */, 427 | ); 428 | name = InfoPlist.strings; 429 | sourceTree = ""; 430 | }; 431 | /* End PBXVariantGroup section */ 432 | 433 | /* Begin XCBuildConfiguration section */ 434 | 8FBA0DB7186098BB002C7B11 /* Debug */ = { 435 | isa = XCBuildConfiguration; 436 | buildSettings = { 437 | ALWAYS_SEARCH_USER_PATHS = NO; 438 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 439 | CLANG_CXX_LIBRARY = "libc++"; 440 | CLANG_ENABLE_MODULES = YES; 441 | CLANG_ENABLE_OBJC_ARC = YES; 442 | CLANG_WARN_BOOL_CONVERSION = YES; 443 | CLANG_WARN_CONSTANT_CONVERSION = YES; 444 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 445 | CLANG_WARN_EMPTY_BODY = YES; 446 | CLANG_WARN_ENUM_CONVERSION = YES; 447 | CLANG_WARN_INT_CONVERSION = YES; 448 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 449 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 450 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 451 | COPY_PHASE_STRIP = NO; 452 | ENABLE_TESTABILITY = YES; 453 | GCC_C_LANGUAGE_STANDARD = gnu99; 454 | GCC_DYNAMIC_NO_PIC = NO; 455 | GCC_OPTIMIZATION_LEVEL = 0; 456 | GCC_PREPROCESSOR_DEFINITIONS = ( 457 | "DEBUG=1", 458 | "$(inherited)", 459 | ); 460 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 461 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 462 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 463 | GCC_WARN_UNDECLARED_SELECTOR = YES; 464 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 465 | GCC_WARN_UNUSED_FUNCTION = YES; 466 | GCC_WARN_UNUSED_VARIABLE = YES; 467 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 468 | ONLY_ACTIVE_ARCH = YES; 469 | SDKROOT = iphoneos; 470 | }; 471 | name = Debug; 472 | }; 473 | 8FBA0DB8186098BB002C7B11 /* Release */ = { 474 | isa = XCBuildConfiguration; 475 | buildSettings = { 476 | ALWAYS_SEARCH_USER_PATHS = NO; 477 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 478 | CLANG_CXX_LIBRARY = "libc++"; 479 | CLANG_ENABLE_MODULES = YES; 480 | CLANG_ENABLE_OBJC_ARC = YES; 481 | CLANG_WARN_BOOL_CONVERSION = YES; 482 | CLANG_WARN_CONSTANT_CONVERSION = YES; 483 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 484 | CLANG_WARN_EMPTY_BODY = YES; 485 | CLANG_WARN_ENUM_CONVERSION = YES; 486 | CLANG_WARN_INT_CONVERSION = YES; 487 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 488 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 489 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 490 | COPY_PHASE_STRIP = YES; 491 | ENABLE_NS_ASSERTIONS = NO; 492 | GCC_C_LANGUAGE_STANDARD = gnu99; 493 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 494 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 495 | GCC_WARN_UNDECLARED_SELECTOR = YES; 496 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 497 | GCC_WARN_UNUSED_FUNCTION = YES; 498 | GCC_WARN_UNUSED_VARIABLE = YES; 499 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 500 | SDKROOT = iphoneos; 501 | VALIDATE_PRODUCT = YES; 502 | }; 503 | name = Release; 504 | }; 505 | 8FBA0DBA186098BB002C7B11 /* Debug */ = { 506 | isa = XCBuildConfiguration; 507 | buildSettings = { 508 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 509 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 510 | CODE_SIGN_IDENTITY = "iPhone Developer"; 511 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 512 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch"; 513 | INFOPLIST_FILE = "RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist"; 514 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.RP-UIView-2-PDF"; 515 | PRODUCT_NAME = "$(TARGET_NAME)"; 516 | TARGETED_DEVICE_FAMILY = "1,2"; 517 | WRAPPER_EXTENSION = app; 518 | }; 519 | name = Debug; 520 | }; 521 | 8FBA0DBB186098BB002C7B11 /* Release */ = { 522 | isa = XCBuildConfiguration; 523 | buildSettings = { 524 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 525 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 526 | CODE_SIGN_IDENTITY = "iPhone Developer"; 527 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 528 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch"; 529 | INFOPLIST_FILE = "RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist"; 530 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.RP-UIView-2-PDF"; 531 | PRODUCT_NAME = "$(TARGET_NAME)"; 532 | TARGETED_DEVICE_FAMILY = "1,2"; 533 | WRAPPER_EXTENSION = app; 534 | }; 535 | name = Release; 536 | }; 537 | 8FBA0DBD186098BB002C7B11 /* Debug */ = { 538 | isa = XCBuildConfiguration; 539 | buildSettings = { 540 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/RP_UIView_2_PDF.app/RP_UIView_2_PDF"; 541 | FRAMEWORK_SEARCH_PATHS = ( 542 | "$(SDKROOT)/Developer/Library/Frameworks", 543 | "$(inherited)", 544 | "$(DEVELOPER_FRAMEWORKS_DIR)", 545 | ); 546 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 547 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch"; 548 | GCC_PREPROCESSOR_DEFINITIONS = ( 549 | "DEBUG=1", 550 | "$(inherited)", 551 | ); 552 | INFOPLIST_FILE = "RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist"; 553 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.com.${PRODUCT_NAME:rfc1034identifier}"; 554 | PRODUCT_NAME = "$(TARGET_NAME)"; 555 | TEST_HOST = "$(BUNDLE_LOADER)"; 556 | WRAPPER_EXTENSION = xctest; 557 | }; 558 | name = Debug; 559 | }; 560 | 8FBA0DBE186098BB002C7B11 /* Release */ = { 561 | isa = XCBuildConfiguration; 562 | buildSettings = { 563 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/RP_UIView_2_PDF.app/RP_UIView_2_PDF"; 564 | FRAMEWORK_SEARCH_PATHS = ( 565 | "$(SDKROOT)/Developer/Library/Frameworks", 566 | "$(inherited)", 567 | "$(DEVELOPER_FRAMEWORKS_DIR)", 568 | ); 569 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 570 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch"; 571 | INFOPLIST_FILE = "RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist"; 572 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.com.${PRODUCT_NAME:rfc1034identifier}"; 573 | PRODUCT_NAME = "$(TARGET_NAME)"; 574 | TEST_HOST = "$(BUNDLE_LOADER)"; 575 | WRAPPER_EXTENSION = xctest; 576 | }; 577 | name = Release; 578 | }; 579 | /* End XCBuildConfiguration section */ 580 | 581 | /* Begin XCConfigurationList section */ 582 | 8FBA0D82186098BB002C7B11 /* Build configuration list for PBXProject "RP_UIView_2_PDF" */ = { 583 | isa = XCConfigurationList; 584 | buildConfigurations = ( 585 | 8FBA0DB7186098BB002C7B11 /* Debug */, 586 | 8FBA0DB8186098BB002C7B11 /* Release */, 587 | ); 588 | defaultConfigurationIsVisible = 0; 589 | defaultConfigurationName = Release; 590 | }; 591 | 8FBA0DB9186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDF" */ = { 592 | isa = XCConfigurationList; 593 | buildConfigurations = ( 594 | 8FBA0DBA186098BB002C7B11 /* Debug */, 595 | 8FBA0DBB186098BB002C7B11 /* Release */, 596 | ); 597 | defaultConfigurationIsVisible = 0; 598 | defaultConfigurationName = Release; 599 | }; 600 | 8FBA0DBC186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDFTests" */ = { 601 | isa = XCConfigurationList; 602 | buildConfigurations = ( 603 | 8FBA0DBD186098BB002C7B11 /* Debug */, 604 | 8FBA0DBE186098BB002C7B11 /* Release */, 605 | ); 606 | defaultConfigurationIsVisible = 0; 607 | defaultConfigurationName = Release; 608 | }; 609 | /* End XCConfigurationList section */ 610 | }; 611 | rootObject = 8FBA0D7F186098BB002C7B11 /* Project object */; 612 | } 613 | --------------------------------------------------------------------------------