├── .DS_Store
├── README.md
├── WYPDFConverterSwift
├── .DS_Store
├── Resource
│ ├── Document
│ │ ├── iOS.ppt
│ │ ├── H5,JS资源.txt
│ │ ├── Page.pages
│ │ ├── 华为推荐书目.xls
│ │ ├── 抵押贷款.numbers
│ │ ├── excel操作大全.doc
│ │ ├── 大话Swift 3.0(上).key
│ │ └── Xcode快捷键.rtf
│ └── image
│ │ ├── image0.jpg
│ │ ├── image1.jpg
│ │ ├── image2.jpg
│ │ ├── image3.jpg
│ │ ├── image4.jpg
│ │ ├── image5.jpg
│ │ ├── image6.jpg
│ │ ├── image7.jpg
│ │ └── image8.jpg
├── WYPDFConverterSwift
│ ├── .DS_Store
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── Info.plist
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── ViewController.swift
│ ├── AppDelegate.swift
│ └── ViewController
│ │ └── WYWebViewController.swift
├── WYPDFConverterSwift.xcodeproj
│ ├── xcuserdata
│ │ ├── apple.xcuserdatad
│ │ │ ├── xcdebugger
│ │ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ └── xcschemes
│ │ │ │ ├── xcschememanagement.plist
│ │ │ │ └── WYPDFConverterSwift.xcscheme
│ │ └── young.xcuserdatad
│ │ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ └── xcschemes
│ │ │ ├── xcschememanagement.plist
│ │ │ └── WYPDFConverterSwift.xcscheme
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ ├── apple.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── young.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── project.pbxproj
├── WYPDFConverterSwiftTests
│ ├── Info.plist
│ └── WYPDFConverterSwiftTests.swift
├── WYPDFConverterSwiftUITests
│ ├── Info.plist
│ └── WYPDFConverterSwiftUITests.swift
└── WYPDFConverter
│ └── WYPDFConverter.swift
└── WYPDFConverterOC
├── WYPDFConverterOC
├── Assets.xcassets
│ ├── Contents.json
│ ├── contract_add.imageset
│ │ ├── contract_add@2x.png
│ │ ├── contract_add@3x.png
│ │ └── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── ViewController.h
├── Controller
│ ├── WYFilesViewController.h
│ ├── WYImageViewController.h
│ ├── WYWebViewController.h
│ ├── WYFilesViewController.m
│ ├── WYImageViewController.m
│ └── WYWebViewController.m
├── Cell
│ ├── WYImageCollectionViewCell.m
│ └── WYImageCollectionViewCell.h
├── AppDelegate.h
├── main.m
├── Catagory
│ ├── UIViewController+ImagePicker.h
│ └── UIViewController+ImagePicker.m
├── Info.plist
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── AppDelegate.m
└── ViewController.m
├── Resource
├── Document
│ ├── iOS.ppt
│ ├── Page.pages
│ ├── 华为推荐书目.xls
│ ├── H5,JS资源.txt
│ ├── 抵押贷款.numbers
│ ├── excel操作大全.doc
│ ├── 虎扑篮球.webarchive
│ ├── 大话Swift 3.0(上).key
│ └── Xcode快捷键.rtf
└── image
│ ├── image0.jpg
│ ├── image1.jpg
│ ├── image2.jpg
│ ├── image3.jpg
│ ├── image4.jpg
│ ├── image5.jpg
│ ├── image6.jpg
│ ├── image7.jpg
│ └── image8.jpg
├── WYPDFConverterOC.xcodeproj
├── xcuserdata
│ ├── apple.xcuserdatad
│ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ │ ├── xcschememanagement.plist
│ │ │ └── WYPDFConverterOC.xcscheme
│ └── young.xcuserdatad
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── WYPDFConverterOC.xcscheme
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ ├── apple.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ │ └── young.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── project.pbxproj
├── WYPDFConverter
├── UIWebView+WYFile.h
├── WYPDFConverter.h
├── WYPDFConverter.m
└── UIWebView+WYFile.m
├── WYPDFConverterOCTests
├── Info.plist
└── WYPDFConverterOCTests.m
└── WYPDFConverterOCUITests
├── Info.plist
└── WYPDFConverterOCUITests.m
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/.DS_Store
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WYPDFConverterDemo
2 | PDF转换器
3 |
4 | [简书地址](http://www.jianshu.com/p/b6fb4d662969)
5 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/.DS_Store
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/iOS.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/iOS.ppt
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image0.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image1.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image2.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image3.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image4.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image5.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image6.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image7.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/image/image8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/image/image8.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/Page.pages:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/Page.pages
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/华为推荐书目.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/华为推荐书目.xls
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/iOS.ppt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/iOS.ppt
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image0.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image1.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image2.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image3.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image4.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image5.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image6.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image7.jpg
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/image/image8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/image/image8.jpg
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/H5,JS资源.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/H5,JS资源.txt
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/抵押贷款.numbers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/抵押贷款.numbers
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/excel操作大全.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/excel操作大全.doc
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/虎扑篮球.webarchive:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/虎扑篮球.webarchive
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/H5,JS资源.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/H5,JS资源.txt
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/Page.pages:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/Page.pages
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/华为推荐书目.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/华为推荐书目.xls
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/抵押贷款.numbers:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/抵押贷款.numbers
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/WYPDFConverterSwift/.DS_Store
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/excel操作大全.doc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/excel操作大全.doc
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/大话Swift 3.0(上).key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/Resource/Document/大话Swift 3.0(上).key
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/大话Swift 3.0(上).key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/Resource/Document/大话Swift 3.0(上).key
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/young.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/contract_add.imageset/contract_add@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/contract_add.imageset/contract_add@2x.png
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/contract_add.imageset/contract_add@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/contract_add.imageset/contract_add@3x.png
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.xcworkspace/xcuserdata/young.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.xcworkspace/xcuserdata/young.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.xcworkspace/xcuserdata/young.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/captain-young/WYPDFConverterDemo/HEAD/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.xcworkspace/xcuserdata/young.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYFilesViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // WYFilesViewController.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/29.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYFilesViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYImageViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // WYImageViewController.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYImageViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Cell/WYImageCollectionViewCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYImageCollectionViewCell.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "WYImageCollectionViewCell.h"
10 |
11 | @implementation WYImageCollectionViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Cell/WYImageCollectionViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // WYImageCollectionViewCell.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYImageCollectionViewCell : UICollectionViewCell
12 | @property (weak, nonatomic) IBOutlet UIImageView *imageView;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYWebViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // WYWebViewController.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYWebViewController : UIViewController
12 |
13 | @property (nonatomic, copy) NSString *filePath;
14 |
15 | @property (nonatomic, copy) NSString *fileName;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverter/UIWebView+WYFile.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+WYFile.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWebView (WYFile)
12 |
13 |
14 | /**
15 | webView转换为PDF数据
16 | */
17 | - (NSData *)convert2PDFData;
18 |
19 |
20 | /**
21 | 转换成image图片
22 | */
23 | - (UIImage *)convert2Image;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/contract_add.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "contract_add@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "contract_add@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Catagory/UIViewController+ImagePicker.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+ImagePicker.h
3 | // JunYouLawer
4 | //
5 | // Created by Apple on 16/9/5.
6 | // Copyright © 2016年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | typedef void(^imageBlock)(UIImage *image);
13 |
14 | @interface UIViewController (ImagePicker)
15 |
16 | /**
17 | * 照片选择
18 | *
19 | * @param edit 照片是否需要编辑
20 | * @param block 照片回调
21 | */
22 | - (void)showCanEdit:(BOOL)edit image:(imageBlock)block;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOCTests/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOCUITests/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwiftTests/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwiftUITests/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | WYPDFConverterOC.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 1834C8741EF9043F0092518D
16 |
17 | primary
18 |
19 |
20 | 1834C88D1EF904400092518D
21 |
22 | primary
23 |
24 |
25 | 1834C8981EF904400092518D
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/xcuserdata/young.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | WYPDFConverterOC.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 1834C8741EF9043F0092518D
16 |
17 | primary
18 |
19 |
20 | 1834C88D1EF904400092518D
21 |
22 | primary
23 |
24 |
25 | 1834C8981EF904400092518D
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverter/WYPDFConverter.h:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverter.h
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "UIWebView+WYFile.h"
12 |
13 | @interface WYPDFConverter : NSObject
14 |
15 | /**
16 | image to PDF
17 |
18 | @param fileName 文件名
19 | @param images 图片数组
20 | */
21 | + (BOOL)convertPDFWithImages:(NSArray*)images fileName:(NSString *)fileName;
22 |
23 |
24 | /**
25 | webView to PDF
26 |
27 | */
28 | + (BOOL)convertPDFWithWebView:(UIWebView *)webView fileName:(NSString *)fileName;
29 |
30 |
31 | /**
32 | 文件夹目录
33 | */
34 | + (NSString *)pdfSaveFolder;
35 |
36 | /**
37 | 文件保存地址
38 |
39 | @param fileName 文件名
40 | */
41 | + (NSString *)saveDirectory:(NSString *)fileName;
42 |
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | WYPDFConverterSwift.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 6F14D9F31EF954BF00911D47
16 |
17 | primary
18 |
19 |
20 | 6F14DA071EF954BF00911D47
21 |
22 | primary
23 |
24 |
25 | 6F14DA121EF954BF00911D47
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/young.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | WYPDFConverterSwift.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 6F14D9F31EF954BF00911D47
16 |
17 | primary
18 |
19 |
20 | 6F14DA071EF954BF00911D47
21 |
22 | primary
23 |
24 |
25 | 6F14DA121EF954BF00911D47
26 |
27 | primary
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | }
43 | ],
44 | "info" : {
45 | "version" : 1,
46 | "author" : "xcode"
47 | }
48 | }
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOCTests/WYPDFConverterOCTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverterOCTests.m
3 | // WYPDFConverterOCTests
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYPDFConverterOCTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation WYPDFConverterOCTests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 | // Put setup code here. This method is called before the invocation of each test method in the class.
20 | }
21 |
22 | - (void)tearDown {
23 | // Put teardown code here. This method is called after the invocation of each test method in the class.
24 | [super tearDown];
25 | }
26 |
27 | - (void)testExample {
28 | // This is an example of a functional test case.
29 | // Use XCTAssert and related functions to verify your tests produce the correct results.
30 | }
31 |
32 | - (void)testPerformanceExample {
33 | // This is an example of a performance test case.
34 | [self measureBlock:^{
35 | // Put the code you want to measure the time of here.
36 | }];
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwiftTests/WYPDFConverterSwiftTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverterSwiftTests.swift
3 | // WYPDFConverterSwiftTests
4 | //
5 | // Created by 杨新威 on 2017/6/20.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | @testable import WYPDFConverterSwift
11 |
12 | class WYPDFConverterSwiftTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | // Use XCTAssert and related functions to verify your tests produce the correct results.
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measure {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/Assets.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" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOCUITests/WYPDFConverterOCUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverterOCUITests.m
3 | // WYPDFConverterOCUITests
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface WYPDFConverterOCUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation WYPDFConverterOCUITests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 |
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 |
22 | // In UI tests it is usually best to stop immediately when a failure occurs.
23 | self.continueAfterFailure = NO;
24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
25 | [[[XCUIApplication alloc] init] launch];
26 |
27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
28 | }
29 |
30 | - (void)tearDown {
31 | // Put teardown code here. This method is called after the invocation of each test method in the class.
32 | [super tearDown];
33 | }
34 |
35 | - (void)testExample {
36 | // Use recording to get started writing UI tests.
37 | // Use XCTAssert and related functions to verify your tests produce the correct results.
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwiftUITests/WYPDFConverterSwiftUITests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverterSwiftUITests.swift
3 | // WYPDFConverterSwiftUITests
4 | //
5 | // Created by 杨新威 on 2017/6/20.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import XCTest
10 |
11 | class WYPDFConverterSwiftUITests: XCTestCase {
12 |
13 | override func setUp() {
14 | super.setUp()
15 |
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 |
18 | // In UI tests it is usually best to stop immediately when a failure occurs.
19 | continueAfterFailure = false
20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
21 | XCUIApplication().launch()
22 |
23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
24 | }
25 |
26 | override func tearDown() {
27 | // Put teardown code here. This method is called after the invocation of each test method in the class.
28 | super.tearDown()
29 | }
30 |
31 | func testExample() {
32 | // Use recording to get started writing UI tests.
33 | // Use XCTAssert and related functions to verify your tests produce the correct results.
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | NSPhotoLibraryUsageDescription
32 |
33 | NSCameraUsageDescription
34 |
35 |
36 | UISupportedInterfaceOrientations
37 |
38 | UIInterfaceOrientationPortrait
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/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 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYFilesViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYFilesViewController.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/29.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "WYFilesViewController.h"
10 | #import "WYWebViewController.h"
11 |
12 | @interface WYFilesViewController ()
13 |
14 | @property (strong, nonatomic) NSArray *files;
15 | @property (strong, nonatomic) NSArray *type;
16 | @property (weak, nonatomic) IBOutlet UITableView *tableView;
17 |
18 | @end
19 |
20 | @implementation WYFilesViewController
21 |
22 | - (void)viewDidLoad {
23 |
24 | [super viewDidLoad];
25 | [self getData];
26 |
27 | [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])];
28 |
29 | }
30 |
31 | - (void)getData{
32 | _files = @[@"抵押贷款",@"大话Swift 3.0(上)",@"华为推荐书目",@"Xcode快捷键",@"Page",@"iOS",@"H5,JS资源",@"excel操作大全",@"虎扑篮球"];
33 | _type = @[@"numbers",@"key",@"xls",@"rtf",@"pages",@"ppt",@"txt",@"doc",@"webarchive"];
34 | }
35 |
36 | #pragma mark -- UITableViewDelegate
37 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
38 | {
39 | return _files.count;
40 | }
41 |
42 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
43 | {
44 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([UITableViewCell class]) forIndexPath:indexPath];
45 | cell.textLabel.text = [NSString stringWithFormat:@"%@.%@",_files[indexPath.row],_type[indexPath.row]];
46 | return cell;
47 | }
48 |
49 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
50 | [tableView deselectRowAtIndexPath:indexPath animated:YES];
51 | WYWebViewController *webVc = [[WYWebViewController alloc] init];
52 | webVc.filePath = [[NSBundle mainBundle] pathForResource:_files[indexPath.row] ofType:_type[indexPath.row]];
53 | webVc.fileName = _files[indexPath.row];
54 | [self.navigationController pushViewController:webVc animated:YES];
55 | }
56 |
57 |
58 |
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // WYPDFConverterSwift
4 | //
5 | // Created by 杨新威 on 2017/6/20.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{
12 |
13 | @IBOutlet weak var tableView: UITableView!
14 | var files : Array!
15 | var types : Array!
16 | let cellID = "cellID"
17 |
18 |
19 | override func viewDidLoad() {
20 | super.viewDidLoad()
21 |
22 | self.getData()
23 | self.tableView.dataSource = self
24 | self.tableView.delegate = self
25 | self.tableView?.register(UITableViewCell.self, forCellReuseIdentifier: cellID)
26 | }
27 |
28 | func getData() {
29 | files = ["多张图片转PDF","抵押贷款","大话Swift 3.0(上)","华为推荐书目","Xcode快捷键","Page","iOS","H5,JS资源","excel操作大全"]
30 | types = ["image","numbers","key","xls","rtf","pages","ppt","txt","doc"]
31 | }
32 |
33 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
34 | return files.count
35 | }
36 |
37 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
38 | let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath)
39 | cell.textLabel?.text = files[indexPath.row] + "." + types[indexPath.row]
40 | cell.accessoryType = .disclosureIndicator
41 | return cell
42 | }
43 |
44 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
45 | tableView.deselectRow(at: indexPath, animated: true)
46 | if indexPath.row == 0 {
47 |
48 | }else{
49 | let webVc = WYWebViewController()
50 | webVc.fileName = files[indexPath.row]
51 | webVc.filePath = Bundle.main.path(forResource: files[indexPath.row], ofType: types[indexPath.row])
52 | self.navigationController?.pushViewController(webVc, animated: true)
53 |
54 | }
55 | }
56 |
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Catagory/UIViewController+ImagePicker.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+ImagePicker.m
3 | // JunYouLawer
4 | //
5 | // Created by Apple on 16/9/5.
6 | // Copyright © 2016年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "UIViewController+ImagePicker.h"
10 | #import "objc/runtime.h"
11 | #import
12 |
13 | static BOOL canEdit = NO;
14 | static char blockKey;
15 |
16 | @interface UIViewController()
17 |
18 | @property (nonatomic,copy)imageBlock imageBlock;
19 |
20 | @end
21 |
22 | @implementation UIViewController (ImagePicker)
23 |
24 |
25 |
26 | #pragma mark-set
27 | - (void)setImageBlock:(imageBlock)imageBlock
28 | {
29 | objc_setAssociatedObject(self, &blockKey, imageBlock, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
30 | }
31 | #pragma mark-get
32 | - (imageBlock )imageBlock
33 | {
34 | return objc_getAssociatedObject(self, &blockKey);
35 | }
36 |
37 | - (void)showCanEdit:(BOOL)edit image:(imageBlock)block
38 | {
39 | if (edit) {
40 | canEdit = edit;
41 | }
42 |
43 | //跳转到相册页面
44 | UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init];
45 | imagePickerController.delegate = self;
46 | imagePickerController.allowsEditing = canEdit;
47 |
48 | self.imageBlock = [block copy];
49 | //相册
50 | imagePickerController.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
51 | [self presentViewController:imagePickerController animated:YES completion:NULL];
52 |
53 |
54 | }
55 |
56 | - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
57 | {
58 | [picker dismissViewControllerAnimated:YES completion:^{}];
59 |
60 | UIImage *image;
61 | //是否要裁剪
62 | if ([picker allowsEditing]){
63 |
64 | //编辑之后的图像
65 | image = [info objectForKey:UIImagePickerControllerEditedImage];
66 |
67 | } else {
68 |
69 | image = [info objectForKey:UIImagePickerControllerOriginalImage];
70 | }
71 |
72 | if(self.imageBlock)
73 | {
74 | self.imageBlock(image);
75 | }
76 | }
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @interface AppDelegate ()
12 |
13 | @end
14 |
15 | @implementation AppDelegate
16 |
17 |
18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
19 | // Override point for customization after application launch.
20 | return YES;
21 | }
22 |
23 |
24 | - (void)applicationWillResignActive:(UIApplication *)application {
25 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
26 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
27 | }
28 |
29 |
30 | - (void)applicationDidEnterBackground:(UIApplication *)application {
31 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
32 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
33 | }
34 |
35 |
36 | - (void)applicationWillEnterForeground:(UIApplication *)application {
37 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
38 | }
39 |
40 |
41 | - (void)applicationDidBecomeActive:(UIApplication *)application {
42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
43 | }
44 |
45 |
46 | - (void)applicationWillTerminate:(UIApplication *)application {
47 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
48 | }
49 |
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // WYPDFConverterSwift
4 | //
5 | // Created by 杨新威 on 2017/6/20.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @UIApplicationMain
12 | class AppDelegate: UIResponder, UIApplicationDelegate {
13 |
14 | var window: UIWindow?
15 |
16 |
17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
18 | // Override point for customization after application launch.
19 | return true
20 | }
21 |
22 | func applicationWillResignActive(_ application: UIApplication) {
23 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
25 | }
26 |
27 | func applicationDidEnterBackground(_ application: UIApplication) {
28 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
30 | }
31 |
32 | func applicationWillEnterForeground(_ application: UIApplication) {
33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
34 | }
35 |
36 | func applicationDidBecomeActive(_ application: UIApplication) {
37 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
38 | }
39 |
40 | func applicationWillTerminate(_ application: UIApplication) {
41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
42 | }
43 |
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/ViewController/WYWebViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WYWebViewController.swift
3 | // WYPDFConverterSwift
4 | //
5 | // Created by 杨新威 on 2017/6/20.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class WYWebViewController: UIViewController ,UIDocumentInteractionControllerDelegate,UIWebViewDelegate{
12 |
13 | var webView : UIWebView!
14 | var filePath : String!
15 | var fileName : String!
16 | var docVc : UIDocumentInteractionController!
17 |
18 | override func viewDidLoad() {
19 | super.viewDidLoad()
20 |
21 | self.navigationItem.title = fileName
22 |
23 | let url = URL.init(fileURLWithPath: filePath)
24 | let request = URLRequest.init(url: url)
25 |
26 | webView = UIWebView.init(frame: self.view.frame)
27 | webView.scalesPageToFit = true
28 | webView.delegate = self
29 | webView.loadRequest(request as URLRequest)
30 | self.view.addSubview(webView)
31 |
32 | docVc = UIDocumentInteractionController.init()
33 | docVc.delegate = self
34 |
35 | self.navigationItem.rightBarButtonItem = UIBarButtonItem.init(title: "PDF转换", style: .plain, target: self, action: #selector(webView2PDF))
36 | }
37 |
38 | func webView2PDF() {
39 |
40 | let result = WYPDFConverter.converterPDFWithWebView(webView,fileName: fileName + ".pdf")
41 |
42 | if result {
43 | print("convert success")
44 |
45 | docVc.url = NSURL.fileURL(withPath: fileName + ".pdf")
46 | docVc.presentPreview(animated: true)
47 | }
48 |
49 | }
50 |
51 | func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
52 | return self
53 | }
54 |
55 | func documentInteractionControllerRectForPreview(_ controller: UIDocumentInteractionController) -> CGRect {
56 | return self.view.frame
57 | }
58 |
59 | func documentInteractionControllerViewForPreview(_ controller: UIDocumentInteractionController) -> UIView? {
60 | return self.view
61 | }
62 |
63 | func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
64 | webView.stringByEvaluatingJavaScript(from: "document.body.innerText='fail load'")
65 | }
66 |
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverter/WYPDFConverter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverter.swift
3 | // WYPDFConverterSwift
4 | //
5 | // Created by Apple on 2017/6/21.
6 | // Copyright © 2017年 杨新威. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class WYPDFConverter: NSObject {
12 |
13 | class func convertPDFWithImages(images : Array,fileName : String) -> Bool {
14 |
15 | if images.count == 0 {
16 | return false;
17 | }
18 |
19 |
20 | return true
21 | }
22 |
23 | class func converterPDFWithWebView(_ webView : UIWebView, fileName : String) -> Bool {
24 | let pdfPath = self.saveDirectory(fileName : fileName)
25 | print("/******************文件类型****************/\n\(pdfPath)\n/************************************/");
26 |
27 | let pdfData = self.convert2PDFData(webView: webView)
28 |
29 | let result = pdfData.write(toFile: self.saveDirectory(fileName: fileName), atomically: true)
30 |
31 | return result
32 | }
33 |
34 | fileprivate class func convert2PDFData(webView : UIWebView) ->NSData {
35 |
36 |
37 | let format = webView.viewPrintFormatter()
38 | let render = UIPrintPageRenderer.init()
39 |
40 | render.addPrintFormatter(format, startingAtPageAt: 0)
41 |
42 | let pageRect = CGRect.init(x: 0, y: 0, width: 600, height: 768)
43 | let printableRect = pageRect.insetBy(dx: 50, dy: 50)
44 |
45 |
46 |
47 | render.setValue(NSValue.init(cgRect: pageRect), forKey: "paperRect")
48 | render.setValue(NSValue.init(cgRect: printableRect), forKey: "printableRect")
49 |
50 | let pdfData = NSMutableData.init()
51 |
52 | UIGraphicsBeginPDFContextToData(pdfData, CGRect.zero, nil)
53 |
54 | for i in 0.. String {
65 | let path = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).last!
66 | return "\(path)/WYPDF"
67 | }
68 |
69 | fileprivate class func creatPDFFolder() -> Void{
70 | let fileManager = FileManager.default
71 | if !fileManager.fileExists(atPath: self.pdfSaveFolder()) {
72 | _ = try! fileManager.createDirectory(atPath: self.pdfSaveFolder(), withIntermediateDirectories: true, attributes: nil)
73 |
74 | }
75 | }
76 |
77 | class func saveDirectory(fileName:String) -> String {
78 |
79 | let manager = FileManager.default
80 | let urlForDocument = manager.urls(for: .cachesDirectory, in: .userDomainMask);
81 | let url = urlForDocument[0]
82 | return url.path + "/" + fileName
83 | }
84 | }
85 |
86 |
87 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverter/WYPDFConverter.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYPDFConverter.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "WYPDFConverter.h"
10 |
11 | @implementation WYPDFConverter
12 | + (BOOL)convertPDFWithImages:(NSArray*)images fileName:(NSString *)fileName{
13 |
14 | if (!images || images.count == 0) return NO;
15 |
16 | // pdf文件存储路径
17 | NSString *pdfPath = [self saveDirectory:fileName];
18 | NSLog(@"****************文件路径:%@*******************",pdfPath);
19 |
20 | BOOL result = UIGraphicsBeginPDFContextToFile(pdfPath, CGRectZero, NULL);
21 |
22 | // pdf每一页的尺寸大小
23 |
24 | CGRect pdfBounds = UIGraphicsGetPDFContextBounds();
25 | CGFloat pdfWidth = pdfBounds.size.width;
26 | CGFloat pdfHeight = pdfBounds.size.height;
27 |
28 | NSLog(@"%@",NSStringFromCGRect(pdfBounds));
29 |
30 | [images enumerateObjectsUsingBlock:^(UIImage * _Nonnull image, NSUInteger idx, BOOL * _Nonnull stop) {
31 | // 绘制PDF
32 | UIGraphicsBeginPDFPage();
33 |
34 | // 获取每张图片的实际长宽
35 | CGFloat imageW = image.size.width;
36 | CGFloat imageH = image.size.height;
37 | // CGRect imageBounds = CGRectMake(0, 0, imageW, imageH);
38 | // NSLog(@"%@",NSStringFromCGRect(imageBounds));
39 |
40 | // 每张图片居中显示
41 | // 如果图片宽高都小于PDF宽高
42 | if (imageW <= pdfWidth && imageH <= pdfHeight) {
43 |
44 | CGFloat originX = (pdfWidth - imageW) * 0.5;
45 | CGFloat originY = (pdfHeight - imageH) * 0.5;
46 | [image drawInRect:CGRectMake(originX, originY, imageW, imageH)];
47 |
48 | }
49 | else{
50 | CGFloat w,h; // 先声明缩放之后的宽高
51 | // 图片宽高比大于PDF
52 | if ((imageW / imageH) > (pdfWidth / pdfHeight)){
53 | w = pdfWidth - 20;
54 | h = w * imageH / imageW;
55 |
56 | }else{
57 | // 图片高宽比大于PDF
58 | h = pdfHeight - 20;
59 | w = h * imageW / imageH;
60 | }
61 | [image drawInRect:CGRectMake((pdfWidth - w) * 0.5, (pdfHeight - h) * 0.5, w, h)];
62 | }
63 | }];
64 |
65 | UIGraphicsEndPDFContext();
66 |
67 | return result;
68 | }
69 |
70 | + (BOOL)convertPDFWithWebView:(UIWebView *)webView fileName:(NSString *)fileName{
71 |
72 | NSString *pdfPath = [self saveDirectory:fileName];
73 | NSLog(@"****************文件路径:%@*******************",pdfPath);
74 |
75 | NSData *pdfData = [webView convert2PDFData];
76 | BOOL result = [pdfData writeToFile:pdfPath atomically:YES];
77 |
78 | return result;
79 | }
80 |
81 |
82 | /**
83 | 文件保存路径
84 | */
85 | // 创建目录文件夹
86 | + (void)creatPDFFolder{
87 | NSFileManager *fileManager = [NSFileManager defaultManager];
88 | if (![fileManager fileExistsAtPath:[self pdfSaveFolder]]) {
89 | [fileManager createDirectoryAtPath:[self pdfSaveFolder] withIntermediateDirectories:YES attributes:nil error:NULL];
90 | }
91 | }
92 | // 文件存放主目录
93 | + (NSString *)pdfSaveFolder{
94 | return [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"WYPDF"];
95 | }
96 |
97 | + (NSString *)saveDirectory:(NSString *)fileName{
98 | [self creatPDFFolder];
99 | return [[self pdfSaveFolder] stringByAppendingPathComponent:fileName];
100 | }
101 |
102 | @end
103 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYImageViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYImageViewController.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "WYImageViewController.h"
10 | #import "WYImageCollectionViewCell.h"
11 | #import "WYPDFConverter.h"
12 | #import "UIViewController+ImagePicker.h"
13 | @interface WYImageViewController ()
14 |
15 | @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
16 | @property (strong, nonatomic) NSMutableArray *selectImages;
17 | @property (strong, nonatomic) UIDocumentInteractionController *docVC;
18 |
19 | @end
20 |
21 | @implementation WYImageViewController
22 | #pragma mark -- lazy loading UI
23 | - (NSMutableArray *)selectImages{
24 | if (!_selectImages) {
25 | _selectImages = [NSMutableArray array];
26 | }return _selectImages;
27 | }
28 |
29 | - (UIDocumentInteractionController *)docVC{
30 | if (!_docVC) {
31 | _docVC = [[UIDocumentInteractionController alloc] init];
32 | _docVC.delegate = self;
33 | }return _docVC;
34 | }
35 |
36 | #pragma mark --
37 |
38 | - (void)viewDidLoad {
39 | [super viewDidLoad];
40 | self.automaticallyAdjustsScrollViewInsets = NO;
41 |
42 | _collectionView.backgroundColor = [UIColor whiteColor];
43 |
44 | // 默认添加九张不同大小的图片
45 | for (NSInteger i = 0; i < 9; i++) {
46 | UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"image%zd.jpg",i]];
47 | [self.selectImages addObject:image];
48 | }
49 | }
50 |
51 | #pragma mark UICollectionViewDelegate,UICollectionViewDataSource
52 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
53 | return self.selectImages.count + 1;
54 | }
55 |
56 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
57 |
58 | WYImageCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"imageCell" forIndexPath:indexPath];
59 | cell.imageView.image = (indexPath.row == self.selectImages.count) ? [UIImage imageNamed:@"contract_add"] : self.selectImages[indexPath.row];
60 | return cell;
61 | }
62 |
63 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
64 | if (indexPath.row == self.selectImages.count) {
65 | // 从相册选择图片
66 | [self showCanEdit:NO image:^(UIImage *image) {
67 | [self.selectImages addObject:image];
68 | [collectionView reloadData];
69 | }];
70 |
71 | }else{
72 | // 点击删除图片
73 | [self.selectImages removeObjectAtIndex:indexPath.row];
74 | [collectionView reloadData];
75 | }
76 | }
77 |
78 |
79 |
80 | - (IBAction)image2PDF:(UIButton *)sender {
81 |
82 | if (self.selectImages.count == 0) return;
83 |
84 | // 将当前时间戳作为文件名
85 | NSString *fileName = [NSString stringWithFormat:@"IMG_%.0f.pdf",[[NSDate date] timeIntervalSince1970]];
86 | BOOL result = [WYPDFConverter convertPDFWithImages:self.selectImages fileName:fileName];
87 |
88 | if (result) {
89 | NSLog(@"convert success");
90 |
91 | self.docVC.URL = [NSURL fileURLWithPath:[WYPDFConverter saveDirectory:fileName]];
92 | [self.docVC presentPreviewAnimated:YES];
93 | }
94 |
95 | }
96 |
97 | #pragma mark - UIDocumentInteractionControllerDelegate Methods
98 | - (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
99 | return self;
100 | }
101 |
102 | @end
103 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "WYImageViewController.h"
11 | #import
12 | #import "WYPDFConverter.h"
13 | @interface ViewController ()
14 |
15 | @property (nonatomic, strong) QLPreviewController *qlVc;
16 |
17 | @property (weak, nonatomic) IBOutlet UITableView *tableView;
18 |
19 | @property (strong, nonatomic) NSArray *kinds;
20 |
21 | @property (strong, nonatomic) NSMutableArray *filesArr;
22 |
23 | @end
24 |
25 | static NSString *const cellID = @"cellID";
26 |
27 | @implementation ViewController
28 |
29 | - (NSMutableArray *)filesArr{
30 | if (!_filesArr) {
31 | _filesArr = [NSMutableArray array];
32 | }return _filesArr;
33 | }
34 |
35 | - (QLPreviewController *)qlVc{
36 | if (!_qlVc) {
37 | _qlVc = [[QLPreviewController alloc] init];
38 | _qlVc.dataSource = self;
39 | }return _qlVc;
40 | }
41 |
42 | - (void)viewDidLoad {
43 |
44 | [super viewDidLoad];
45 |
46 | [self getData];
47 |
48 | [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellID];
49 | }
50 |
51 | - (void)getData{
52 |
53 | [self.filesArr removeAllObjects];
54 |
55 | _kinds = @[@"图片转PDF",@"各种格式文档转PDF(webView2PDF、image)",@"格式转换后的文件"];
56 |
57 | NSFileManager *fm = [NSFileManager defaultManager];
58 |
59 | NSString *file ; // 文件名
60 |
61 | NSDirectoryEnumerator *enumer = [fm enumeratorAtPath:[WYPDFConverter pdfSaveFolder]];
62 |
63 | while (file = [enumer nextObject]) {
64 | // 添加PDF和图片文件
65 | if ([file.pathExtension isEqualToString:@"pdf"] || [file.pathExtension isEqualToString:@"png"]) {
66 | [self.filesArr addObject:file];
67 | }
68 | }
69 |
70 | }
71 |
72 | #pragma mark -- UITableViewDelegate
73 |
74 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
75 | return _kinds.count;
76 | }
77 |
78 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
79 | return 1;
80 | }
81 |
82 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
83 | {
84 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];
85 | cell.textLabel.text = [NSString stringWithFormat:@"%@",_kinds[indexPath.section]];
86 | cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
87 | return cell;
88 | }
89 |
90 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
91 | [tableView deselectRowAtIndexPath:indexPath animated:YES];
92 |
93 | // 三种不同页面跳转的方法
94 | if (indexPath.section == 0){
95 |
96 | UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
97 | WYImageViewController *imageVc = [sb instantiateViewControllerWithIdentifier:@"imageVC"];
98 | [self.navigationController pushViewController:imageVc animated:YES];
99 |
100 | }else if(indexPath.section == 1){
101 |
102 | [self performSegueWithIdentifier:@"FileVCSegue" sender:self];
103 |
104 | }else if (indexPath.section == 2){
105 | // 更新数据
106 | [self getData];
107 | [self.qlVc reloadData];
108 | [self.navigationController pushViewController:self.qlVc animated:YES];
109 | }
110 | }
111 |
112 | #pragma mark QLPreviewControllerDataSource
113 | //返回文件的个数
114 | - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller{
115 | return self.filesArr.count;
116 | }
117 |
118 | //加载需要显示的文件
119 | - (id)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index{
120 |
121 | NSString *filePath = [WYPDFConverter saveDirectory:self.filesArr[index]];
122 |
123 | return [NSURL fileURLWithPath:filePath];
124 | }
125 |
126 | @end
127 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
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 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/Resource/Document/Xcode快捷键.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg936\cocoartf1404\cocoasubrtf130
2 | {\fonttbl\f0\fnil\fcharset134 PingFangSC-Regular;\f1\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
5 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
6 |
7 | \f0\fs24 \cf0 \'ce\'c4\'bc\'fe\'b2\'d9\'d7\'f7\'c0\'e0
8 | \f1 :\
9 |
10 | \f0 \'d0\'c2\'bd\'a8\'ce\'c4\'bc\'fe
11 | \f1 command+n\
12 |
13 | \f0 \'d7\'f3\'cb\'f5\'bd\'f8
14 | \f1 command+[\
15 |
16 | \f0 \'d3\'d2\'cb\'f5\'bd\'f8
17 | \f1 command+]\
18 |
19 | \f0 \'cf\'ee\'c4\'bf\'d6\'d0\'b2\'e9\'d5\'d2
20 | \f1 command+shift+F\
21 |
22 | \f0 \'b2\'e9\'d5\'d2\'cf\'c2\'d2\'bb\'b8\'f6
23 | \f1 command+g\
24 |
25 | \f0 \'b2\'e9\'d5\'d2\'c9\'cf\'d2\'bb\'b8\'f6
26 | \f1 command+shift+g\
27 |
28 | \f0 \'c7\'d0\'bb\'bb\'cd\'b7
29 | \f1 /
30 | \f0 \'d4\'b4\'ce\'c4\'bc\'fe
31 | \f1 command+ctrl+
32 | \f0 \'c9\'cf\'bc\'fd\'cd\'b7
33 | \f1 \
34 |
35 | \f0 \'b4\'f2\'bf\'aa\'cd\'b7\'ce\'c4\'bc\'fe
36 | \f1 command+shift+d\
37 |
38 | \f0 \'d5\'db\'b5\'fe\'bf\'e9
39 | \f1 command+option+
40 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
41 | \f1 \
42 |
43 | \f0 \'d5\'b9\'bf\'aa\'bf\'e9
44 | \f1 command+option+
45 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
46 | \f1 \
47 |
48 | \f0 \'d5\'db\'b5\'fe\'c0\'e0\'d6\'d0\'cb\'f9\'d3\'d0\'b7\'bd\'b7\'a8
49 | \f1 command+option+shift+
50 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
51 | \f1 \
52 |
53 | \f0 \'d5\'b9\'bf\'aa\'c0\'e0\'d6\'d0\'cb\'f9\'d3\'d0\'b7\'bd\'b7\'a8
54 | \f1 command+option+shift+
55 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
56 | \f1 \
57 |
58 | \f0 \'b1\'e0\'bc\'ad\'b2\'d9\'d7\'f7\'c0\'e0
59 | \f1 :\
60 |
61 | \f0 \'ce\'c4\'bc\'fe\'ca\'d7\'d0\'d0
62 | \f1 command+
63 | \f0 \'c9\'cf\'bc\'fd\'cd\'b7
64 | \f1 \
65 |
66 | \f0 \'ce\'c4\'bc\'fe\'c4\'a9
67 | \f1 command+
68 | \f0 \'cf\'c2\'bc\'fd\'cd\'b7
69 | \f1 \
70 |
71 | \f0 \'d0\'d0\'ca\'d7
72 | \f1 command+
73 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
74 | \f1 \
75 |
76 | \f0 \'d0\'d0\'c4\'a9
77 | \f1 command+
78 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
79 | \f1 \
80 |
81 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'c7\'b0\'c3\'e6
82 | \f1 command+shift+
83 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
84 | \f1 \
85 |
86 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'ba\'f3\'c3\'e6
87 | \f1 command+shift+
88 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
89 | \f1 \
90 |
91 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'d7\'f3\'d3\'d2\'cf\'e0\'c1\'da\'d7\'d6\'b7\'fb
92 | \f1 shift+
93 | \f0 \'d7\'f3\'d3\'d2\'bc\'fd\'cd\'b7
94 | \f1 \
95 |
96 | \f0 \'c9\'cf\'d2\'bb\'b5\'a5\'b4\'ca
97 | \f1 option+
98 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
99 | \f1 \
100 |
101 | \f0 \'cf\'c2\'d2\'bb\'b5\'a5\'b4\'ca
102 | \f1 option+
103 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
104 | \f1 \
105 |
106 | \f0 \'cf\'d4\'ca\'be
107 | \f1 /
108 | \f0 \'d2\'fe\'b2\'d8\'b5\'bc\'ba\'bd\'c6\'f7\'c3\'e6\'b0\'e5
109 | \f1 :Command+0
110 | \f0 \'cf\'d4\'ca\'be
111 | \f1 /
112 | \f0 \'d2\'fe\'b2\'d8\'ca\'b5\'d3\'c3\'b9\'a4\'be\'df\'c3\'e6\'b0\'e5
113 | \f1 :Command+Option+0\
114 |
115 | \f0 \'ce\'c4\'bc\'fe\'cc\'f8\'d7\'aa\'c0\'b8
116 | \f1 :Control+6
117 | \f0 \'a3\'a8\'bc\'fc\'c8\'eb\'b7\'bd\'b7\'a8
118 | \f1 /
119 | \f0 \'b1\'e4\'c1\'bf\'c3\'fb
120 | \f1 +Enter
121 | \f0 \'cc\'f8\'d7\'aa\'a3\'a9
122 | \f1 \
123 |
124 | \f0 \'bf\'ec\'cb\'d9\'b4\'f2\'bf\'aa
125 | \f1 : Command + Shift + O(
126 | \f0 \'d7\'d4\'b6\'a8\'d2\'e5\'b5\'c4
127 | \f1 option + o)\
128 |
129 | \f0 \'c7\'e5\'b3\'fd\'b9\'a4\'b3\'cc
130 | \f1 : Command + Shift + K\
131 |
132 | \f0 \'cc\'f8\'d7\'aa\'b5\'bd\'c0\'e0\'ce\'c4\'bc\'fe\'b4\'a6
133 | \f1 Command + Shift + J Show Related Items\'91
134 | \f0 \'b5\'af\'b3\'f6\'b2\'cb\'b5\'a5
135 | \f1 CTRL + 1
136 | \f0 \'a3\'ac
137 | \f1 (
138 | \f0 \'b8\'d0\'be\'f5\'d2\'d4\'ba\'f3\'b4\'f3\'b0\'ae\'b4\'cb\'b7\'bd\'b7\'a8
139 | \f1 )\
140 | \
141 |
142 | \f0 \'d4\'cb\'d0\'d0
143 | \f1 \
144 | cmd+ r
145 | \f0 \'d4\'cb\'d0\'d0
146 | \f1 Cmd + .
147 | \f0 \'cd\'a3\'d6\'b9
148 | \f1 \
149 | f6
150 | \f0 \'b5\'a5\'b2\'bd
151 | \f1 f7
152 | \f0 \'b6\'bc\'d7\'df
153 | \f1 \
154 | f8
155 | \f0 \'d7\'df\'b6\'cf\'b5\'e3
156 | \f1 \
157 | cmd + ctrl + y
158 | \f0 \'bc\'cc\'d0\'f8\'d7\'df
159 | \f1 \
160 | cmd + y
161 | \f0 \'c6\'f4\'d3\'c3\'d4\'dd\'cd\'a3\'b6\'cf\'b5\'e3
162 | \f1
163 | \f0 \'cc\'ed\'bc\'d3\'b6\'cf\'b5\'e3
164 | \f1 cmd + \\}
--------------------------------------------------------------------------------
/WYPDFConverterSwift/Resource/Document/Xcode快捷键.rtf:
--------------------------------------------------------------------------------
1 | {\rtf1\ansi\ansicpg936\cocoartf1404\cocoasubrtf130
2 | {\fonttbl\f0\fnil\fcharset134 PingFangSC-Regular;\f1\fswiss\fcharset0 Helvetica;}
3 | {\colortbl;\red255\green255\blue255;}
4 | \paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0
5 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
6 |
7 | \f0\fs24 \cf0 \'ce\'c4\'bc\'fe\'b2\'d9\'d7\'f7\'c0\'e0
8 | \f1 :\
9 |
10 | \f0 \'d0\'c2\'bd\'a8\'ce\'c4\'bc\'fe
11 | \f1 command+n\
12 |
13 | \f0 \'d7\'f3\'cb\'f5\'bd\'f8
14 | \f1 command+[\
15 |
16 | \f0 \'d3\'d2\'cb\'f5\'bd\'f8
17 | \f1 command+]\
18 |
19 | \f0 \'cf\'ee\'c4\'bf\'d6\'d0\'b2\'e9\'d5\'d2
20 | \f1 command+shift+F\
21 |
22 | \f0 \'b2\'e9\'d5\'d2\'cf\'c2\'d2\'bb\'b8\'f6
23 | \f1 command+g\
24 |
25 | \f0 \'b2\'e9\'d5\'d2\'c9\'cf\'d2\'bb\'b8\'f6
26 | \f1 command+shift+g\
27 |
28 | \f0 \'c7\'d0\'bb\'bb\'cd\'b7
29 | \f1 /
30 | \f0 \'d4\'b4\'ce\'c4\'bc\'fe
31 | \f1 command+ctrl+
32 | \f0 \'c9\'cf\'bc\'fd\'cd\'b7
33 | \f1 \
34 |
35 | \f0 \'b4\'f2\'bf\'aa\'cd\'b7\'ce\'c4\'bc\'fe
36 | \f1 command+shift+d\
37 |
38 | \f0 \'d5\'db\'b5\'fe\'bf\'e9
39 | \f1 command+option+
40 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
41 | \f1 \
42 |
43 | \f0 \'d5\'b9\'bf\'aa\'bf\'e9
44 | \f1 command+option+
45 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
46 | \f1 \
47 |
48 | \f0 \'d5\'db\'b5\'fe\'c0\'e0\'d6\'d0\'cb\'f9\'d3\'d0\'b7\'bd\'b7\'a8
49 | \f1 command+option+shift+
50 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
51 | \f1 \
52 |
53 | \f0 \'d5\'b9\'bf\'aa\'c0\'e0\'d6\'d0\'cb\'f9\'d3\'d0\'b7\'bd\'b7\'a8
54 | \f1 command+option+shift+
55 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
56 | \f1 \
57 |
58 | \f0 \'b1\'e0\'bc\'ad\'b2\'d9\'d7\'f7\'c0\'e0
59 | \f1 :\
60 |
61 | \f0 \'ce\'c4\'bc\'fe\'ca\'d7\'d0\'d0
62 | \f1 command+
63 | \f0 \'c9\'cf\'bc\'fd\'cd\'b7
64 | \f1 \
65 |
66 | \f0 \'ce\'c4\'bc\'fe\'c4\'a9
67 | \f1 command+
68 | \f0 \'cf\'c2\'bc\'fd\'cd\'b7
69 | \f1 \
70 |
71 | \f0 \'d0\'d0\'ca\'d7
72 | \f1 command+
73 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
74 | \f1 \
75 |
76 | \f0 \'d0\'d0\'c4\'a9
77 | \f1 command+
78 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
79 | \f1 \
80 |
81 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'c7\'b0\'c3\'e6
82 | \f1 command+shift+
83 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
84 | \f1 \
85 |
86 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'ba\'f3\'c3\'e6
87 | \f1 command+shift+
88 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
89 | \f1 \
90 |
91 | \f0 \'d1\'a1\'d6\'d0\'b9\'e2\'b1\'ea\'d7\'f3\'d3\'d2\'cf\'e0\'c1\'da\'d7\'d6\'b7\'fb
92 | \f1 shift+
93 | \f0 \'d7\'f3\'d3\'d2\'bc\'fd\'cd\'b7
94 | \f1 \
95 |
96 | \f0 \'c9\'cf\'d2\'bb\'b5\'a5\'b4\'ca
97 | \f1 option+
98 | \f0 \'d7\'f3\'bc\'fd\'cd\'b7
99 | \f1 \
100 |
101 | \f0 \'cf\'c2\'d2\'bb\'b5\'a5\'b4\'ca
102 | \f1 option+
103 | \f0 \'d3\'d2\'bc\'fd\'cd\'b7
104 | \f1 \
105 |
106 | \f0 \'cf\'d4\'ca\'be
107 | \f1 /
108 | \f0 \'d2\'fe\'b2\'d8\'b5\'bc\'ba\'bd\'c6\'f7\'c3\'e6\'b0\'e5
109 | \f1 :Command+0
110 | \f0 \'cf\'d4\'ca\'be
111 | \f1 /
112 | \f0 \'d2\'fe\'b2\'d8\'ca\'b5\'d3\'c3\'b9\'a4\'be\'df\'c3\'e6\'b0\'e5
113 | \f1 :Command+Option+0\
114 |
115 | \f0 \'ce\'c4\'bc\'fe\'cc\'f8\'d7\'aa\'c0\'b8
116 | \f1 :Control+6
117 | \f0 \'a3\'a8\'bc\'fc\'c8\'eb\'b7\'bd\'b7\'a8
118 | \f1 /
119 | \f0 \'b1\'e4\'c1\'bf\'c3\'fb
120 | \f1 +Enter
121 | \f0 \'cc\'f8\'d7\'aa\'a3\'a9
122 | \f1 \
123 |
124 | \f0 \'bf\'ec\'cb\'d9\'b4\'f2\'bf\'aa
125 | \f1 : Command + Shift + O(
126 | \f0 \'d7\'d4\'b6\'a8\'d2\'e5\'b5\'c4
127 | \f1 option + o)\
128 |
129 | \f0 \'c7\'e5\'b3\'fd\'b9\'a4\'b3\'cc
130 | \f1 : Command + Shift + K\
131 |
132 | \f0 \'cc\'f8\'d7\'aa\'b5\'bd\'c0\'e0\'ce\'c4\'bc\'fe\'b4\'a6
133 | \f1 Command + Shift + J Show Related Items\'91
134 | \f0 \'b5\'af\'b3\'f6\'b2\'cb\'b5\'a5
135 | \f1 CTRL + 1
136 | \f0 \'a3\'ac
137 | \f1 (
138 | \f0 \'b8\'d0\'be\'f5\'d2\'d4\'ba\'f3\'b4\'f3\'b0\'ae\'b4\'cb\'b7\'bd\'b7\'a8
139 | \f1 )\
140 | \
141 |
142 | \f0 \'d4\'cb\'d0\'d0
143 | \f1 \
144 | cmd+ r
145 | \f0 \'d4\'cb\'d0\'d0
146 | \f1 Cmd + .
147 | \f0 \'cd\'a3\'d6\'b9
148 | \f1 \
149 | f6
150 | \f0 \'b5\'a5\'b2\'bd
151 | \f1 f7
152 | \f0 \'b6\'bc\'d7\'df
153 | \f1 \
154 | f8
155 | \f0 \'d7\'df\'b6\'cf\'b5\'e3
156 | \f1 \
157 | cmd + ctrl + y
158 | \f0 \'bc\'cc\'d0\'f8\'d7\'df
159 | \f1 \
160 | cmd + y
161 | \f0 \'c6\'f4\'d3\'c3\'d4\'dd\'cd\'a3\'b6\'cf\'b5\'e3
162 | \f1
163 | \f0 \'cc\'ed\'bc\'d3\'b6\'cf\'b5\'e3
164 | \f1 cmd + \\}
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverter/UIWebView+WYFile.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+WYFile.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "UIWebView+WYFile.h"
10 |
11 | @implementation UIWebView (WYFile)
12 |
13 | - (NSData *)convert2PDFData{
14 |
15 | // 返回视图的打印格式化
16 | UIViewPrintFormatter *format = [self viewPrintFormatter];
17 | UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];
18 | [render addPrintFormatter:format startingAtPageAtIndex:0];
19 |
20 | // 设置PDF文件每页的尺寸
21 | CGRect pageRect = CGRectMake(0, 0, 600, 768);
22 | // 呈现每个页面的上下文的尺寸大小
23 | CGRect printableRect = CGRectInset(pageRect, 50, 50);
24 |
25 | [render setValue:[NSValue valueWithCGRect:pageRect] forKey:@"paperRect"];
26 | [render setValue:[NSValue valueWithCGRect:printableRect] forKey:@"printableRect"];
27 |
28 | NSMutableData *pdfData = [NSMutableData data];
29 | // 文档信息 可设置为nil
30 | // CFMutableDictionaryRef myDictionary = CFDictionaryCreateMutable(nil, 0,
31 | // &kCFTypeDictionaryKeyCallBacks,
32 | // &kCFTypeDictionaryValueCallBacks);
33 |
34 | // CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("My PDF File"));
35 | // CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("My Name"));
36 |
37 | UIGraphicsBeginPDFContextToData(pdfData, pageRect, NULL);
38 |
39 | for (NSInteger i = 0; i < [render numberOfPages]; i++) {
40 |
41 | UIGraphicsBeginPDFPage();
42 | CGRect bounds = UIGraphicsGetPDFContextBounds();
43 | [render drawPageAtIndex:i inRect:bounds];
44 | }
45 |
46 | UIGraphicsEndPDFContext();
47 |
48 | return pdfData;
49 |
50 | }
51 |
52 | - (UIImage *)convert2Image{
53 |
54 | /*
55 | 将 UIWebView 分屏截取,然后将截取的图片拼接成一张图片
56 | 将 UIWebView 从头,contentOffset = (0, 0),开始截取webView.bounds.size.height高度的图片,
57 |
58 |
59 | */
60 | CGSize boundsSize = self.bounds.size;
61 | CGFloat boundsWidth = self.bounds.size.width;
62 | CGFloat boundsHeight = self.bounds.size.height;
63 | CGPoint offset = self.scrollView.contentOffset;
64 |
65 | [self.scrollView setContentOffset:CGPointMake(0, 0)];
66 |
67 | CGFloat contentHeight = self.scrollView.contentSize.height;
68 | NSMutableArray *images = [NSMutableArray array];
69 |
70 | while (contentHeight > 0) {
71 | UIGraphicsBeginImageContext(boundsSize);
72 |
73 | [self.layer renderInContext:UIGraphicsGetCurrentContext()];
74 |
75 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
76 |
77 | UIGraphicsEndImageContext();
78 |
79 | [images addObject:image];
80 |
81 | CGFloat offsetY = self.scrollView.contentOffset.y;
82 |
83 | [self.scrollView setContentOffset:CGPointMake(0, offsetY + boundsHeight)];
84 |
85 | contentHeight -= boundsHeight;
86 | }
87 |
88 | [self.scrollView setContentOffset:offset];
89 |
90 | UIGraphicsBeginImageContext(self.scrollView.contentSize);
91 |
92 | [images enumerateObjectsUsingBlock:^(UIImage *image, NSUInteger idx, BOOL *stop) {
93 | [image drawInRect:CGRectMake(0, boundsHeight * idx, boundsWidth, boundsHeight)];
94 | }];
95 |
96 | UIImage *fullImage = UIGraphicsGetImageFromCurrentImageContext();
97 |
98 | UIGraphicsEndImageContext();
99 |
100 | return fullImage;
101 |
102 |
103 | // CGFloat scale = [UIScreen mainScreen].scale;
104 | // UIImage* image = nil;
105 | //
106 | // UIGraphicsBeginImageContextWithOptions(self.scrollView.contentSize, NO, scale);
107 | // //保存现在的位置和尺寸
108 | // CGPoint savedContentOffset = self.scrollView.contentOffset;
109 | // CGRect savedFrame = self.frame;
110 | // //设置尺寸和内容一样大
111 | // self.scrollView.contentOffset = CGPointZero;
112 | // self.frame = CGRectMake(0, 0, self.scrollView.contentSize.width, self.scrollView.contentSize.height);
113 | //
114 | // [self.layer renderInContext: UIGraphicsGetCurrentContext()];
115 | // image = UIGraphicsGetImageFromCurrentImageContext();
116 | //
117 | // //恢复原来的位置和尺寸
118 | // self.scrollView.contentOffset = savedContentOffset;
119 | // self.frame = savedFrame;
120 | //
121 | // UIGraphicsEndImageContext();
122 | //
123 | // return image;
124 |
125 | }
126 |
127 |
128 | @end
129 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/WYPDFConverterOC.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
61 |
62 |
63 |
64 |
74 |
76 |
82 |
83 |
84 |
85 |
86 |
87 |
93 |
95 |
101 |
102 |
103 |
104 |
106 |
107 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/xcuserdata/young.xcuserdatad/xcschemes/WYPDFConverterOC.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
61 |
62 |
63 |
64 |
74 |
76 |
82 |
83 |
84 |
85 |
86 |
87 |
93 |
95 |
101 |
102 |
103 |
104 |
106 |
107 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/WYPDFConverterSwift.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
61 |
62 |
63 |
64 |
74 |
76 |
82 |
83 |
84 |
85 |
86 |
87 |
93 |
95 |
101 |
102 |
103 |
104 |
106 |
107 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/xcuserdata/young.xcuserdatad/xcschemes/WYPDFConverterSwift.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
43 |
49 |
50 |
51 |
52 |
53 |
59 |
60 |
61 |
62 |
63 |
64 |
74 |
76 |
82 |
83 |
84 |
85 |
86 |
87 |
93 |
95 |
101 |
102 |
103 |
104 |
106 |
107 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Controller/WYWebViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // WYWebViewController.m
3 | // WYPDFConverterOC
4 | //
5 | // Created by Apple on 2017/6/20.
6 | // Copyright © 2017年 White-Young. All rights reserved.
7 | //
8 |
9 | #import "WYWebViewController.h"
10 | #import "WYPDFConverter.h"
11 |
12 | #define WY_SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
13 | #define WY_SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
14 |
15 |
16 | @interface WYWebViewController ()
17 |
18 | @property (strong, nonatomic) UIWebView *webView;
19 | @property (strong, nonatomic) UIDocumentInteractionController *docVC;
20 | @property (strong, nonatomic) UIActivityIndicatorView *indictorView;
21 | @property (strong, nonatomic) UIButton *imageConverterBtn;
22 |
23 | @end
24 |
25 | @implementation WYWebViewController
26 |
27 | #pragma mark -- lazy loading UI
28 | - (UIWebView *)webView{
29 | if (!_webView) {
30 | _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, WY_SCREEN_WIDTH, WY_SCREEN_HEIGHT - 50)];
31 | _webView.delegate = self;
32 | _webView.scalesPageToFit = YES;
33 | [self.view addSubview:_webView];
34 | }return _webView;
35 | }
36 |
37 | - (UIActivityIndicatorView *)indictorView{
38 | if (!_indictorView) {
39 | _indictorView = [[UIActivityIndicatorView alloc] init];
40 | _indictorView.center = self.view.center;
41 | _indictorView.bounds = CGRectMake(0, 0, 50, 50);
42 | _indictorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
43 | [self.view addSubview:_indictorView];
44 | }return _indictorView;
45 | }
46 |
47 | - (UIButton *)imageConverterBtn{
48 | if (!_imageConverterBtn) {
49 | _imageConverterBtn = ({
50 | UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
51 | button.frame = CGRectMake(20, CGRectGetMaxY(self.webView.frame) + 10, WY_SCREEN_WIDTH - 40 , 30);
52 | [button setTitle:@"Image转换" forState:UIControlStateNormal];
53 | button.backgroundColor = [UIColor orangeColor];
54 | [self.view addSubview:button];
55 | button;
56 | });
57 | }return _imageConverterBtn;
58 | }
59 |
60 | - (UIDocumentInteractionController *)docVC{
61 | if (!_docVC) {
62 | _docVC = [[UIDocumentInteractionController alloc] init];
63 | _docVC.delegate = self;
64 | }return _docVC;
65 | }
66 |
67 | - (void)viewDidLoad {
68 | [super viewDidLoad];
69 |
70 | self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
71 |
72 |
73 | self.navigationItem.title = _fileName;
74 |
75 | self.automaticallyAdjustsScrollViewInsets = YES;
76 | self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"PDF转换" style:UIBarButtonItemStylePlain target:self action:@selector(convertPDFAction)];
77 |
78 | NSURL *fileUrl = [NSURL fileURLWithPath:_filePath];
79 | NSURLRequest *request = [NSURLRequest requestWithURL:fileUrl];
80 | [self.webView loadRequest:request];
81 |
82 | [self.indictorView startAnimating];
83 |
84 |
85 | [self.imageConverterBtn addTarget:self action:@selector(convert2Image) forControlEvents:UIControlEventTouchUpInside];
86 |
87 |
88 |
89 | }
90 |
91 |
92 | /**
93 | 转换成图片
94 | */
95 | - (void)convert2Image{
96 | self.indictorView.hidden = NO;
97 | [self.indictorView startAnimating];
98 |
99 | UIImage *image = [self.webView convert2Image];
100 | NSData *imageData = UIImagePNGRepresentation(image);
101 | NSString *imagePath = [WYPDFConverter saveDirectory:[NSString stringWithFormat:@"%@_IMG.png",self.fileName]];
102 | BOOL result = [imageData writeToFile:imagePath atomically:YES];
103 |
104 | if (result) {
105 | self.docVC.URL = [NSURL fileURLWithPath:imagePath];
106 | [self.docVC presentPreviewAnimated:YES];
107 |
108 | [self.indictorView stopAnimating];
109 | }
110 | }
111 |
112 | /**
113 | 转换成PDF格式文件
114 | */
115 | - (void)convertPDFAction{
116 |
117 | self.indictorView.hidden = NO;
118 | [self.indictorView startAnimating];
119 |
120 | NSString *fileName = [NSString stringWithFormat:@"%@.pdf",_fileName];
121 | BOOL result = [WYPDFConverter convertPDFWithWebView:self.webView fileName:fileName];
122 |
123 | if (result) {
124 |
125 | NSLog(@"convert success");
126 |
127 | self.docVC.URL = [NSURL fileURLWithPath:[WYPDFConverter saveDirectory:fileName]];
128 | [self.docVC presentPreviewAnimated:YES];
129 | [self.indictorView stopAnimating];
130 |
131 | }
132 | }
133 |
134 | #pragma mark - UIDocumentInteractionControllerDelegate Methods
135 | - (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
136 | return self;
137 | }
138 |
139 |
140 | #pragma mark - UIWebViewDelegate
141 |
142 | - (void)webViewDidFinishLoad:(UIWebView *)webView{
143 | [self.indictorView stopAnimating];
144 | }
145 |
146 | //- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
147 | // [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText='fail load'"];
148 | //}
149 |
150 |
151 |
152 |
153 | @end
154 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
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 |
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 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------
/WYPDFConverterSwift/WYPDFConverterSwift.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 18B2CE211EFA59C500315A16 /* WYPDFConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B2CE201EFA59C500315A16 /* WYPDFConverter.swift */; };
11 | 6F14D9F81EF954BF00911D47 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14D9F71EF954BF00911D47 /* AppDelegate.swift */; };
12 | 6F14D9FA1EF954BF00911D47 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14D9F91EF954BF00911D47 /* ViewController.swift */; };
13 | 6F14D9FD1EF954BF00911D47 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6F14D9FB1EF954BF00911D47 /* Main.storyboard */; };
14 | 6F14D9FF1EF954BF00911D47 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6F14D9FE1EF954BF00911D47 /* Assets.xcassets */; };
15 | 6F14DA021EF954BF00911D47 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA001EF954BF00911D47 /* LaunchScreen.storyboard */; };
16 | 6F14DA0D1EF954BF00911D47 /* WYPDFConverterSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14DA0C1EF954BF00911D47 /* WYPDFConverterSwiftTests.swift */; };
17 | 6F14DA181EF954BF00911D47 /* WYPDFConverterSwiftUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14DA171EF954BF00911D47 /* WYPDFConverterSwiftUITests.swift */; };
18 | 6F14DA391EF954ED00911D47 /* excel操作大全.doc in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA271EF954ED00911D47 /* excel操作大全.doc */; };
19 | 6F14DA3A1EF954ED00911D47 /* H5,JS资源.txt in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA281EF954ED00911D47 /* H5,JS资源.txt */; };
20 | 6F14DA3B1EF954ED00911D47 /* iOS.ppt in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA291EF954ED00911D47 /* iOS.ppt */; };
21 | 6F14DA3C1EF954ED00911D47 /* Page.pages in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA2A1EF954ED00911D47 /* Page.pages */; };
22 | 6F14DA3D1EF954ED00911D47 /* Xcode快捷键.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA2B1EF954ED00911D47 /* Xcode快捷键.rtf */; };
23 | 6F14DA3E1EF954ED00911D47 /* 华为推荐书目.xls in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA2C1EF954ED00911D47 /* 华为推荐书目.xls */; };
24 | 6F14DA3F1EF954ED00911D47 /* 大话Swift 3.0(上).key in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA2D1EF954ED00911D47 /* 大话Swift 3.0(上).key */; };
25 | 6F14DA401EF954ED00911D47 /* 抵押贷款.numbers in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA2E1EF954ED00911D47 /* 抵押贷款.numbers */; };
26 | 6F14DA411EF954ED00911D47 /* image0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA301EF954ED00911D47 /* image0.jpg */; };
27 | 6F14DA421EF954ED00911D47 /* image1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA311EF954ED00911D47 /* image1.jpg */; };
28 | 6F14DA431EF954ED00911D47 /* image2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA321EF954ED00911D47 /* image2.jpg */; };
29 | 6F14DA441EF954ED00911D47 /* image3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA331EF954ED00911D47 /* image3.jpg */; };
30 | 6F14DA451EF954ED00911D47 /* image4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA341EF954ED00911D47 /* image4.jpg */; };
31 | 6F14DA461EF954ED00911D47 /* image5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA351EF954ED00911D47 /* image5.jpg */; };
32 | 6F14DA471EF954ED00911D47 /* image6.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA361EF954ED00911D47 /* image6.jpg */; };
33 | 6F14DA481EF954ED00911D47 /* image7.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA371EF954ED00911D47 /* image7.jpg */; };
34 | 6F14DA491EF954ED00911D47 /* image8.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6F14DA381EF954ED00911D47 /* image8.jpg */; };
35 | 6F14DA4C1EF9609B00911D47 /* WYWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F14DA4B1EF9609B00911D47 /* WYWebViewController.swift */; };
36 | /* End PBXBuildFile section */
37 |
38 | /* Begin PBXContainerItemProxy section */
39 | 6F14DA091EF954BF00911D47 /* PBXContainerItemProxy */ = {
40 | isa = PBXContainerItemProxy;
41 | containerPortal = 6F14D9EC1EF954BF00911D47 /* Project object */;
42 | proxyType = 1;
43 | remoteGlobalIDString = 6F14D9F31EF954BF00911D47;
44 | remoteInfo = WYPDFConverterSwift;
45 | };
46 | 6F14DA141EF954BF00911D47 /* PBXContainerItemProxy */ = {
47 | isa = PBXContainerItemProxy;
48 | containerPortal = 6F14D9EC1EF954BF00911D47 /* Project object */;
49 | proxyType = 1;
50 | remoteGlobalIDString = 6F14D9F31EF954BF00911D47;
51 | remoteInfo = WYPDFConverterSwift;
52 | };
53 | /* End PBXContainerItemProxy section */
54 |
55 | /* Begin PBXFileReference section */
56 | 18B2CE201EFA59C500315A16 /* WYPDFConverter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WYPDFConverter.swift; sourceTree = ""; };
57 | 6F14D9F41EF954BF00911D47 /* WYPDFConverterSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WYPDFConverterSwift.app; sourceTree = BUILT_PRODUCTS_DIR; };
58 | 6F14D9F71EF954BF00911D47 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
59 | 6F14D9F91EF954BF00911D47 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
60 | 6F14D9FC1EF954BF00911D47 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
61 | 6F14D9FE1EF954BF00911D47 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
62 | 6F14DA011EF954BF00911D47 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
63 | 6F14DA031EF954BF00911D47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
64 | 6F14DA081EF954BF00911D47 /* WYPDFConverterSwiftTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WYPDFConverterSwiftTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
65 | 6F14DA0C1EF954BF00911D47 /* WYPDFConverterSwiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WYPDFConverterSwiftTests.swift; sourceTree = ""; };
66 | 6F14DA0E1EF954BF00911D47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
67 | 6F14DA131EF954BF00911D47 /* WYPDFConverterSwiftUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WYPDFConverterSwiftUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
68 | 6F14DA171EF954BF00911D47 /* WYPDFConverterSwiftUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WYPDFConverterSwiftUITests.swift; sourceTree = ""; };
69 | 6F14DA191EF954BF00911D47 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
70 | 6F14DA271EF954ED00911D47 /* excel操作大全.doc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "excel操作大全.doc"; sourceTree = ""; };
71 | 6F14DA281EF954ED00911D47 /* H5,JS资源.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "H5,JS资源.txt"; sourceTree = ""; };
72 | 6F14DA291EF954ED00911D47 /* iOS.ppt */ = {isa = PBXFileReference; lastKnownFileType = file; path = iOS.ppt; sourceTree = ""; };
73 | 6F14DA2A1EF954ED00911D47 /* Page.pages */ = {isa = PBXFileReference; lastKnownFileType = file; path = Page.pages; sourceTree = ""; };
74 | 6F14DA2B1EF954ED00911D47 /* Xcode快捷键.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = "Xcode快捷键.rtf"; sourceTree = ""; };
75 | 6F14DA2C1EF954ED00911D47 /* 华为推荐书目.xls */ = {isa = PBXFileReference; lastKnownFileType = file; path = "华为推荐书目.xls"; sourceTree = ""; };
76 | 6F14DA2D1EF954ED00911D47 /* 大话Swift 3.0(上).key */ = {isa = PBXFileReference; lastKnownFileType = file; path = "大话Swift 3.0(上).key"; sourceTree = ""; };
77 | 6F14DA2E1EF954ED00911D47 /* 抵押贷款.numbers */ = {isa = PBXFileReference; lastKnownFileType = file; path = "抵押贷款.numbers"; sourceTree = ""; };
78 | 6F14DA301EF954ED00911D47 /* image0.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image0.jpg; sourceTree = ""; };
79 | 6F14DA311EF954ED00911D47 /* image1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image1.jpg; sourceTree = ""; };
80 | 6F14DA321EF954ED00911D47 /* image2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image2.jpg; sourceTree = ""; };
81 | 6F14DA331EF954ED00911D47 /* image3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image3.jpg; sourceTree = ""; };
82 | 6F14DA341EF954ED00911D47 /* image4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image4.jpg; sourceTree = ""; };
83 | 6F14DA351EF954ED00911D47 /* image5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image5.jpg; sourceTree = ""; };
84 | 6F14DA361EF954ED00911D47 /* image6.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image6.jpg; sourceTree = ""; };
85 | 6F14DA371EF954ED00911D47 /* image7.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image7.jpg; sourceTree = ""; };
86 | 6F14DA381EF954ED00911D47 /* image8.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image8.jpg; sourceTree = ""; };
87 | 6F14DA4B1EF9609B00911D47 /* WYWebViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WYWebViewController.swift; sourceTree = ""; };
88 | /* End PBXFileReference section */
89 |
90 | /* Begin PBXFrameworksBuildPhase section */
91 | 6F14D9F11EF954BF00911D47 /* Frameworks */ = {
92 | isa = PBXFrameworksBuildPhase;
93 | buildActionMask = 2147483647;
94 | files = (
95 | );
96 | runOnlyForDeploymentPostprocessing = 0;
97 | };
98 | 6F14DA051EF954BF00911D47 /* Frameworks */ = {
99 | isa = PBXFrameworksBuildPhase;
100 | buildActionMask = 2147483647;
101 | files = (
102 | );
103 | runOnlyForDeploymentPostprocessing = 0;
104 | };
105 | 6F14DA101EF954BF00911D47 /* Frameworks */ = {
106 | isa = PBXFrameworksBuildPhase;
107 | buildActionMask = 2147483647;
108 | files = (
109 | );
110 | runOnlyForDeploymentPostprocessing = 0;
111 | };
112 | /* End PBXFrameworksBuildPhase section */
113 |
114 | /* Begin PBXGroup section */
115 | 18B2CE1F1EFA599F00315A16 /* WYPDFConverter */ = {
116 | isa = PBXGroup;
117 | children = (
118 | 18B2CE201EFA59C500315A16 /* WYPDFConverter.swift */,
119 | );
120 | path = WYPDFConverter;
121 | sourceTree = "";
122 | };
123 | 6F14D9EB1EF954BF00911D47 = {
124 | isa = PBXGroup;
125 | children = (
126 | 18B2CE1F1EFA599F00315A16 /* WYPDFConverter */,
127 | 6F14DA251EF954ED00911D47 /* Resource */,
128 | 6F14D9F61EF954BF00911D47 /* WYPDFConverterSwift */,
129 | 6F14DA0B1EF954BF00911D47 /* WYPDFConverterSwiftTests */,
130 | 6F14DA161EF954BF00911D47 /* WYPDFConverterSwiftUITests */,
131 | 6F14D9F51EF954BF00911D47 /* Products */,
132 | );
133 | sourceTree = "";
134 | };
135 | 6F14D9F51EF954BF00911D47 /* Products */ = {
136 | isa = PBXGroup;
137 | children = (
138 | 6F14D9F41EF954BF00911D47 /* WYPDFConverterSwift.app */,
139 | 6F14DA081EF954BF00911D47 /* WYPDFConverterSwiftTests.xctest */,
140 | 6F14DA131EF954BF00911D47 /* WYPDFConverterSwiftUITests.xctest */,
141 | );
142 | name = Products;
143 | sourceTree = "";
144 | };
145 | 6F14D9F61EF954BF00911D47 /* WYPDFConverterSwift */ = {
146 | isa = PBXGroup;
147 | children = (
148 | 6F14D9F71EF954BF00911D47 /* AppDelegate.swift */,
149 | 6F14D9F91EF954BF00911D47 /* ViewController.swift */,
150 | 6F14DA4A1EF9608000911D47 /* ViewController */,
151 | 6F14D9FB1EF954BF00911D47 /* Main.storyboard */,
152 | 6F14D9FE1EF954BF00911D47 /* Assets.xcassets */,
153 | 6F14DA001EF954BF00911D47 /* LaunchScreen.storyboard */,
154 | 6F14DA031EF954BF00911D47 /* Info.plist */,
155 | );
156 | path = WYPDFConverterSwift;
157 | sourceTree = "";
158 | };
159 | 6F14DA0B1EF954BF00911D47 /* WYPDFConverterSwiftTests */ = {
160 | isa = PBXGroup;
161 | children = (
162 | 6F14DA0C1EF954BF00911D47 /* WYPDFConverterSwiftTests.swift */,
163 | 6F14DA0E1EF954BF00911D47 /* Info.plist */,
164 | );
165 | path = WYPDFConverterSwiftTests;
166 | sourceTree = "";
167 | };
168 | 6F14DA161EF954BF00911D47 /* WYPDFConverterSwiftUITests */ = {
169 | isa = PBXGroup;
170 | children = (
171 | 6F14DA171EF954BF00911D47 /* WYPDFConverterSwiftUITests.swift */,
172 | 6F14DA191EF954BF00911D47 /* Info.plist */,
173 | );
174 | path = WYPDFConverterSwiftUITests;
175 | sourceTree = "";
176 | };
177 | 6F14DA251EF954ED00911D47 /* Resource */ = {
178 | isa = PBXGroup;
179 | children = (
180 | 6F14DA261EF954ED00911D47 /* Document */,
181 | 6F14DA2F1EF954ED00911D47 /* image */,
182 | );
183 | path = Resource;
184 | sourceTree = "";
185 | };
186 | 6F14DA261EF954ED00911D47 /* Document */ = {
187 | isa = PBXGroup;
188 | children = (
189 | 6F14DA271EF954ED00911D47 /* excel操作大全.doc */,
190 | 6F14DA281EF954ED00911D47 /* H5,JS资源.txt */,
191 | 6F14DA291EF954ED00911D47 /* iOS.ppt */,
192 | 6F14DA2A1EF954ED00911D47 /* Page.pages */,
193 | 6F14DA2B1EF954ED00911D47 /* Xcode快捷键.rtf */,
194 | 6F14DA2C1EF954ED00911D47 /* 华为推荐书目.xls */,
195 | 6F14DA2D1EF954ED00911D47 /* 大话Swift 3.0(上).key */,
196 | 6F14DA2E1EF954ED00911D47 /* 抵押贷款.numbers */,
197 | );
198 | path = Document;
199 | sourceTree = "";
200 | };
201 | 6F14DA2F1EF954ED00911D47 /* image */ = {
202 | isa = PBXGroup;
203 | children = (
204 | 6F14DA301EF954ED00911D47 /* image0.jpg */,
205 | 6F14DA311EF954ED00911D47 /* image1.jpg */,
206 | 6F14DA321EF954ED00911D47 /* image2.jpg */,
207 | 6F14DA331EF954ED00911D47 /* image3.jpg */,
208 | 6F14DA341EF954ED00911D47 /* image4.jpg */,
209 | 6F14DA351EF954ED00911D47 /* image5.jpg */,
210 | 6F14DA361EF954ED00911D47 /* image6.jpg */,
211 | 6F14DA371EF954ED00911D47 /* image7.jpg */,
212 | 6F14DA381EF954ED00911D47 /* image8.jpg */,
213 | );
214 | path = image;
215 | sourceTree = "";
216 | };
217 | 6F14DA4A1EF9608000911D47 /* ViewController */ = {
218 | isa = PBXGroup;
219 | children = (
220 | 6F14DA4B1EF9609B00911D47 /* WYWebViewController.swift */,
221 | );
222 | path = ViewController;
223 | sourceTree = "";
224 | };
225 | /* End PBXGroup section */
226 |
227 | /* Begin PBXNativeTarget section */
228 | 6F14D9F31EF954BF00911D47 /* WYPDFConverterSwift */ = {
229 | isa = PBXNativeTarget;
230 | buildConfigurationList = 6F14DA1C1EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwift" */;
231 | buildPhases = (
232 | 6F14D9F01EF954BF00911D47 /* Sources */,
233 | 6F14D9F11EF954BF00911D47 /* Frameworks */,
234 | 6F14D9F21EF954BF00911D47 /* Resources */,
235 | );
236 | buildRules = (
237 | );
238 | dependencies = (
239 | );
240 | name = WYPDFConverterSwift;
241 | productName = WYPDFConverterSwift;
242 | productReference = 6F14D9F41EF954BF00911D47 /* WYPDFConverterSwift.app */;
243 | productType = "com.apple.product-type.application";
244 | };
245 | 6F14DA071EF954BF00911D47 /* WYPDFConverterSwiftTests */ = {
246 | isa = PBXNativeTarget;
247 | buildConfigurationList = 6F14DA1F1EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwiftTests" */;
248 | buildPhases = (
249 | 6F14DA041EF954BF00911D47 /* Sources */,
250 | 6F14DA051EF954BF00911D47 /* Frameworks */,
251 | 6F14DA061EF954BF00911D47 /* Resources */,
252 | );
253 | buildRules = (
254 | );
255 | dependencies = (
256 | 6F14DA0A1EF954BF00911D47 /* PBXTargetDependency */,
257 | );
258 | name = WYPDFConverterSwiftTests;
259 | productName = WYPDFConverterSwiftTests;
260 | productReference = 6F14DA081EF954BF00911D47 /* WYPDFConverterSwiftTests.xctest */;
261 | productType = "com.apple.product-type.bundle.unit-test";
262 | };
263 | 6F14DA121EF954BF00911D47 /* WYPDFConverterSwiftUITests */ = {
264 | isa = PBXNativeTarget;
265 | buildConfigurationList = 6F14DA221EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwiftUITests" */;
266 | buildPhases = (
267 | 6F14DA0F1EF954BF00911D47 /* Sources */,
268 | 6F14DA101EF954BF00911D47 /* Frameworks */,
269 | 6F14DA111EF954BF00911D47 /* Resources */,
270 | );
271 | buildRules = (
272 | );
273 | dependencies = (
274 | 6F14DA151EF954BF00911D47 /* PBXTargetDependency */,
275 | );
276 | name = WYPDFConverterSwiftUITests;
277 | productName = WYPDFConverterSwiftUITests;
278 | productReference = 6F14DA131EF954BF00911D47 /* WYPDFConverterSwiftUITests.xctest */;
279 | productType = "com.apple.product-type.bundle.ui-testing";
280 | };
281 | /* End PBXNativeTarget section */
282 |
283 | /* Begin PBXProject section */
284 | 6F14D9EC1EF954BF00911D47 /* Project object */ = {
285 | isa = PBXProject;
286 | attributes = {
287 | LastSwiftUpdateCheck = 0830;
288 | LastUpgradeCheck = 0830;
289 | ORGANIZATIONNAME = "杨新威";
290 | TargetAttributes = {
291 | 6F14D9F31EF954BF00911D47 = {
292 | CreatedOnToolsVersion = 8.3;
293 | ProvisioningStyle = Automatic;
294 | };
295 | 6F14DA071EF954BF00911D47 = {
296 | CreatedOnToolsVersion = 8.3;
297 | ProvisioningStyle = Automatic;
298 | TestTargetID = 6F14D9F31EF954BF00911D47;
299 | };
300 | 6F14DA121EF954BF00911D47 = {
301 | CreatedOnToolsVersion = 8.3;
302 | ProvisioningStyle = Automatic;
303 | TestTargetID = 6F14D9F31EF954BF00911D47;
304 | };
305 | };
306 | };
307 | buildConfigurationList = 6F14D9EF1EF954BF00911D47 /* Build configuration list for PBXProject "WYPDFConverterSwift" */;
308 | compatibilityVersion = "Xcode 3.2";
309 | developmentRegion = English;
310 | hasScannedForEncodings = 0;
311 | knownRegions = (
312 | en,
313 | Base,
314 | );
315 | mainGroup = 6F14D9EB1EF954BF00911D47;
316 | productRefGroup = 6F14D9F51EF954BF00911D47 /* Products */;
317 | projectDirPath = "";
318 | projectRoot = "";
319 | targets = (
320 | 6F14D9F31EF954BF00911D47 /* WYPDFConverterSwift */,
321 | 6F14DA071EF954BF00911D47 /* WYPDFConverterSwiftTests */,
322 | 6F14DA121EF954BF00911D47 /* WYPDFConverterSwiftUITests */,
323 | );
324 | };
325 | /* End PBXProject section */
326 |
327 | /* Begin PBXResourcesBuildPhase section */
328 | 6F14D9F21EF954BF00911D47 /* Resources */ = {
329 | isa = PBXResourcesBuildPhase;
330 | buildActionMask = 2147483647;
331 | files = (
332 | 6F14DA451EF954ED00911D47 /* image4.jpg in Resources */,
333 | 6F14DA411EF954ED00911D47 /* image0.jpg in Resources */,
334 | 6F14DA401EF954ED00911D47 /* 抵押贷款.numbers in Resources */,
335 | 6F14DA3B1EF954ED00911D47 /* iOS.ppt in Resources */,
336 | 6F14DA3D1EF954ED00911D47 /* Xcode快捷键.rtf in Resources */,
337 | 6F14DA021EF954BF00911D47 /* LaunchScreen.storyboard in Resources */,
338 | 6F14DA481EF954ED00911D47 /* image7.jpg in Resources */,
339 | 6F14DA471EF954ED00911D47 /* image6.jpg in Resources */,
340 | 6F14DA3E1EF954ED00911D47 /* 华为推荐书目.xls in Resources */,
341 | 6F14DA441EF954ED00911D47 /* image3.jpg in Resources */,
342 | 6F14DA431EF954ED00911D47 /* image2.jpg in Resources */,
343 | 6F14DA3F1EF954ED00911D47 /* 大话Swift 3.0(上).key in Resources */,
344 | 6F14DA3A1EF954ED00911D47 /* H5,JS资源.txt in Resources */,
345 | 6F14DA3C1EF954ED00911D47 /* Page.pages in Resources */,
346 | 6F14D9FF1EF954BF00911D47 /* Assets.xcassets in Resources */,
347 | 6F14DA391EF954ED00911D47 /* excel操作大全.doc in Resources */,
348 | 6F14DA491EF954ED00911D47 /* image8.jpg in Resources */,
349 | 6F14D9FD1EF954BF00911D47 /* Main.storyboard in Resources */,
350 | 6F14DA461EF954ED00911D47 /* image5.jpg in Resources */,
351 | 6F14DA421EF954ED00911D47 /* image1.jpg in Resources */,
352 | );
353 | runOnlyForDeploymentPostprocessing = 0;
354 | };
355 | 6F14DA061EF954BF00911D47 /* Resources */ = {
356 | isa = PBXResourcesBuildPhase;
357 | buildActionMask = 2147483647;
358 | files = (
359 | );
360 | runOnlyForDeploymentPostprocessing = 0;
361 | };
362 | 6F14DA111EF954BF00911D47 /* Resources */ = {
363 | isa = PBXResourcesBuildPhase;
364 | buildActionMask = 2147483647;
365 | files = (
366 | );
367 | runOnlyForDeploymentPostprocessing = 0;
368 | };
369 | /* End PBXResourcesBuildPhase section */
370 |
371 | /* Begin PBXSourcesBuildPhase section */
372 | 6F14D9F01EF954BF00911D47 /* Sources */ = {
373 | isa = PBXSourcesBuildPhase;
374 | buildActionMask = 2147483647;
375 | files = (
376 | 6F14D9FA1EF954BF00911D47 /* ViewController.swift in Sources */,
377 | 18B2CE211EFA59C500315A16 /* WYPDFConverter.swift in Sources */,
378 | 6F14D9F81EF954BF00911D47 /* AppDelegate.swift in Sources */,
379 | 6F14DA4C1EF9609B00911D47 /* WYWebViewController.swift in Sources */,
380 | );
381 | runOnlyForDeploymentPostprocessing = 0;
382 | };
383 | 6F14DA041EF954BF00911D47 /* Sources */ = {
384 | isa = PBXSourcesBuildPhase;
385 | buildActionMask = 2147483647;
386 | files = (
387 | 6F14DA0D1EF954BF00911D47 /* WYPDFConverterSwiftTests.swift in Sources */,
388 | );
389 | runOnlyForDeploymentPostprocessing = 0;
390 | };
391 | 6F14DA0F1EF954BF00911D47 /* Sources */ = {
392 | isa = PBXSourcesBuildPhase;
393 | buildActionMask = 2147483647;
394 | files = (
395 | 6F14DA181EF954BF00911D47 /* WYPDFConverterSwiftUITests.swift in Sources */,
396 | );
397 | runOnlyForDeploymentPostprocessing = 0;
398 | };
399 | /* End PBXSourcesBuildPhase section */
400 |
401 | /* Begin PBXTargetDependency section */
402 | 6F14DA0A1EF954BF00911D47 /* PBXTargetDependency */ = {
403 | isa = PBXTargetDependency;
404 | target = 6F14D9F31EF954BF00911D47 /* WYPDFConverterSwift */;
405 | targetProxy = 6F14DA091EF954BF00911D47 /* PBXContainerItemProxy */;
406 | };
407 | 6F14DA151EF954BF00911D47 /* PBXTargetDependency */ = {
408 | isa = PBXTargetDependency;
409 | target = 6F14D9F31EF954BF00911D47 /* WYPDFConverterSwift */;
410 | targetProxy = 6F14DA141EF954BF00911D47 /* PBXContainerItemProxy */;
411 | };
412 | /* End PBXTargetDependency section */
413 |
414 | /* Begin PBXVariantGroup section */
415 | 6F14D9FB1EF954BF00911D47 /* Main.storyboard */ = {
416 | isa = PBXVariantGroup;
417 | children = (
418 | 6F14D9FC1EF954BF00911D47 /* Base */,
419 | );
420 | name = Main.storyboard;
421 | sourceTree = "";
422 | };
423 | 6F14DA001EF954BF00911D47 /* LaunchScreen.storyboard */ = {
424 | isa = PBXVariantGroup;
425 | children = (
426 | 6F14DA011EF954BF00911D47 /* Base */,
427 | );
428 | name = LaunchScreen.storyboard;
429 | sourceTree = "";
430 | };
431 | /* End PBXVariantGroup section */
432 |
433 | /* Begin XCBuildConfiguration section */
434 | 6F14DA1A1EF954BF00911D47 /* Debug */ = {
435 | isa = XCBuildConfiguration;
436 | buildSettings = {
437 | ALWAYS_SEARCH_USER_PATHS = NO;
438 | CLANG_ANALYZER_NONNULL = YES;
439 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
440 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
441 | CLANG_CXX_LIBRARY = "libc++";
442 | CLANG_ENABLE_MODULES = YES;
443 | CLANG_ENABLE_OBJC_ARC = YES;
444 | CLANG_WARN_BOOL_CONVERSION = YES;
445 | CLANG_WARN_CONSTANT_CONVERSION = YES;
446 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
447 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
448 | CLANG_WARN_EMPTY_BODY = YES;
449 | CLANG_WARN_ENUM_CONVERSION = YES;
450 | CLANG_WARN_INFINITE_RECURSION = YES;
451 | CLANG_WARN_INT_CONVERSION = YES;
452 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
453 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
454 | CLANG_WARN_UNREACHABLE_CODE = YES;
455 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
456 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
457 | COPY_PHASE_STRIP = NO;
458 | DEBUG_INFORMATION_FORMAT = dwarf;
459 | ENABLE_STRICT_OBJC_MSGSEND = YES;
460 | ENABLE_TESTABILITY = YES;
461 | GCC_C_LANGUAGE_STANDARD = gnu99;
462 | GCC_DYNAMIC_NO_PIC = NO;
463 | GCC_NO_COMMON_BLOCKS = YES;
464 | GCC_OPTIMIZATION_LEVEL = 0;
465 | GCC_PREPROCESSOR_DEFINITIONS = (
466 | "DEBUG=1",
467 | "$(inherited)",
468 | );
469 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
470 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
471 | GCC_WARN_UNDECLARED_SELECTOR = YES;
472 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
473 | GCC_WARN_UNUSED_FUNCTION = YES;
474 | GCC_WARN_UNUSED_VARIABLE = YES;
475 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
476 | MTL_ENABLE_DEBUG_INFO = YES;
477 | ONLY_ACTIVE_ARCH = YES;
478 | SDKROOT = iphoneos;
479 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
480 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
481 | TARGETED_DEVICE_FAMILY = "1,2";
482 | };
483 | name = Debug;
484 | };
485 | 6F14DA1B1EF954BF00911D47 /* Release */ = {
486 | isa = XCBuildConfiguration;
487 | buildSettings = {
488 | ALWAYS_SEARCH_USER_PATHS = NO;
489 | CLANG_ANALYZER_NONNULL = YES;
490 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
491 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
492 | CLANG_CXX_LIBRARY = "libc++";
493 | CLANG_ENABLE_MODULES = YES;
494 | CLANG_ENABLE_OBJC_ARC = YES;
495 | CLANG_WARN_BOOL_CONVERSION = YES;
496 | CLANG_WARN_CONSTANT_CONVERSION = YES;
497 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
498 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
499 | CLANG_WARN_EMPTY_BODY = YES;
500 | CLANG_WARN_ENUM_CONVERSION = YES;
501 | CLANG_WARN_INFINITE_RECURSION = YES;
502 | CLANG_WARN_INT_CONVERSION = YES;
503 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
504 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
505 | CLANG_WARN_UNREACHABLE_CODE = YES;
506 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
507 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
508 | COPY_PHASE_STRIP = NO;
509 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
510 | ENABLE_NS_ASSERTIONS = NO;
511 | ENABLE_STRICT_OBJC_MSGSEND = YES;
512 | GCC_C_LANGUAGE_STANDARD = gnu99;
513 | GCC_NO_COMMON_BLOCKS = YES;
514 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
515 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
516 | GCC_WARN_UNDECLARED_SELECTOR = YES;
517 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
518 | GCC_WARN_UNUSED_FUNCTION = YES;
519 | GCC_WARN_UNUSED_VARIABLE = YES;
520 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
521 | MTL_ENABLE_DEBUG_INFO = NO;
522 | SDKROOT = iphoneos;
523 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
524 | TARGETED_DEVICE_FAMILY = "1,2";
525 | VALIDATE_PRODUCT = YES;
526 | };
527 | name = Release;
528 | };
529 | 6F14DA1D1EF954BF00911D47 /* Debug */ = {
530 | isa = XCBuildConfiguration;
531 | buildSettings = {
532 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
533 | INFOPLIST_FILE = WYPDFConverterSwift/Info.plist;
534 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
535 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
536 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwift;
537 | PRODUCT_NAME = "$(TARGET_NAME)";
538 | SWIFT_VERSION = 3.0;
539 | };
540 | name = Debug;
541 | };
542 | 6F14DA1E1EF954BF00911D47 /* Release */ = {
543 | isa = XCBuildConfiguration;
544 | buildSettings = {
545 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
546 | INFOPLIST_FILE = WYPDFConverterSwift/Info.plist;
547 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
548 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
549 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwift;
550 | PRODUCT_NAME = "$(TARGET_NAME)";
551 | SWIFT_VERSION = 3.0;
552 | };
553 | name = Release;
554 | };
555 | 6F14DA201EF954BF00911D47 /* Debug */ = {
556 | isa = XCBuildConfiguration;
557 | buildSettings = {
558 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
559 | BUNDLE_LOADER = "$(TEST_HOST)";
560 | INFOPLIST_FILE = WYPDFConverterSwiftTests/Info.plist;
561 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
562 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwiftTests;
563 | PRODUCT_NAME = "$(TARGET_NAME)";
564 | SWIFT_VERSION = 3.0;
565 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WYPDFConverterSwift.app/WYPDFConverterSwift";
566 | };
567 | name = Debug;
568 | };
569 | 6F14DA211EF954BF00911D47 /* Release */ = {
570 | isa = XCBuildConfiguration;
571 | buildSettings = {
572 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
573 | BUNDLE_LOADER = "$(TEST_HOST)";
574 | INFOPLIST_FILE = WYPDFConverterSwiftTests/Info.plist;
575 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
576 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwiftTests;
577 | PRODUCT_NAME = "$(TARGET_NAME)";
578 | SWIFT_VERSION = 3.0;
579 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WYPDFConverterSwift.app/WYPDFConverterSwift";
580 | };
581 | name = Release;
582 | };
583 | 6F14DA231EF954BF00911D47 /* Debug */ = {
584 | isa = XCBuildConfiguration;
585 | buildSettings = {
586 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
587 | INFOPLIST_FILE = WYPDFConverterSwiftUITests/Info.plist;
588 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
589 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwiftUITests;
590 | PRODUCT_NAME = "$(TARGET_NAME)";
591 | SWIFT_VERSION = 3.0;
592 | TEST_TARGET_NAME = WYPDFConverterSwift;
593 | };
594 | name = Debug;
595 | };
596 | 6F14DA241EF954BF00911D47 /* Release */ = {
597 | isa = XCBuildConfiguration;
598 | buildSettings = {
599 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
600 | INFOPLIST_FILE = WYPDFConverterSwiftUITests/Info.plist;
601 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
602 | PRODUCT_BUNDLE_IDENTIFIER = whiteyoung.WYPDFConverterSwiftUITests;
603 | PRODUCT_NAME = "$(TARGET_NAME)";
604 | SWIFT_VERSION = 3.0;
605 | TEST_TARGET_NAME = WYPDFConverterSwift;
606 | };
607 | name = Release;
608 | };
609 | /* End XCBuildConfiguration section */
610 |
611 | /* Begin XCConfigurationList section */
612 | 6F14D9EF1EF954BF00911D47 /* Build configuration list for PBXProject "WYPDFConverterSwift" */ = {
613 | isa = XCConfigurationList;
614 | buildConfigurations = (
615 | 6F14DA1A1EF954BF00911D47 /* Debug */,
616 | 6F14DA1B1EF954BF00911D47 /* Release */,
617 | );
618 | defaultConfigurationIsVisible = 0;
619 | defaultConfigurationName = Release;
620 | };
621 | 6F14DA1C1EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwift" */ = {
622 | isa = XCConfigurationList;
623 | buildConfigurations = (
624 | 6F14DA1D1EF954BF00911D47 /* Debug */,
625 | 6F14DA1E1EF954BF00911D47 /* Release */,
626 | );
627 | defaultConfigurationIsVisible = 0;
628 | defaultConfigurationName = Release;
629 | };
630 | 6F14DA1F1EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwiftTests" */ = {
631 | isa = XCConfigurationList;
632 | buildConfigurations = (
633 | 6F14DA201EF954BF00911D47 /* Debug */,
634 | 6F14DA211EF954BF00911D47 /* Release */,
635 | );
636 | defaultConfigurationIsVisible = 0;
637 | defaultConfigurationName = Release;
638 | };
639 | 6F14DA221EF954BF00911D47 /* Build configuration list for PBXNativeTarget "WYPDFConverterSwiftUITests" */ = {
640 | isa = XCConfigurationList;
641 | buildConfigurations = (
642 | 6F14DA231EF954BF00911D47 /* Debug */,
643 | 6F14DA241EF954BF00911D47 /* Release */,
644 | );
645 | defaultConfigurationIsVisible = 0;
646 | defaultConfigurationName = Release;
647 | };
648 | /* End XCConfigurationList section */
649 | };
650 | rootObject = 6F14D9EC1EF954BF00911D47 /* Project object */;
651 | }
652 |
--------------------------------------------------------------------------------
/WYPDFConverterOC/WYPDFConverterOC.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1823B7661F04A98B0077487A /* WYFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1823B7651F04A98B0077487A /* WYFilesViewController.m */; };
11 | 1834C87A1EF9043F0092518D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C8791EF9043F0092518D /* main.m */; };
12 | 1834C87D1EF9043F0092518D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C87C1EF9043F0092518D /* AppDelegate.m */; };
13 | 1834C8801EF9043F0092518D /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C87F1EF9043F0092518D /* ViewController.m */; };
14 | 1834C8831EF9043F0092518D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8811EF9043F0092518D /* Main.storyboard */; };
15 | 1834C8851EF9043F0092518D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8841EF9043F0092518D /* Assets.xcassets */; };
16 | 1834C8881EF9043F0092518D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8861EF9043F0092518D /* LaunchScreen.storyboard */; };
17 | 1834C8931EF904400092518D /* WYPDFConverterOCTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C8921EF904400092518D /* WYPDFConverterOCTests.m */; };
18 | 1834C89E1EF904400092518D /* WYPDFConverterOCUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C89D1EF904400092518D /* WYPDFConverterOCUITests.m */; };
19 | 1834C8FF1EF917050092518D /* excel操作大全.doc in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8EC1EF917050092518D /* excel操作大全.doc */; };
20 | 1834C9001EF917050092518D /* H5,JS资源.txt in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8ED1EF917050092518D /* H5,JS资源.txt */; };
21 | 1834C9011EF917050092518D /* iOS.ppt in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8EE1EF917050092518D /* iOS.ppt */; };
22 | 1834C9021EF917050092518D /* Page.pages in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8EF1EF917050092518D /* Page.pages */; };
23 | 1834C9031EF917050092518D /* Xcode快捷键.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8F01EF917050092518D /* Xcode快捷键.rtf */; };
24 | 1834C9041EF917050092518D /* 华为推荐书目.xls in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8F11EF917050092518D /* 华为推荐书目.xls */; };
25 | 1834C9051EF917050092518D /* 大话Swift 3.0(上).key in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8F21EF917050092518D /* 大话Swift 3.0(上).key */; };
26 | 1834C9061EF917050092518D /* 抵押贷款.numbers in Resources */ = {isa = PBXBuildFile; fileRef = 1834C8F31EF917050092518D /* 抵押贷款.numbers */; };
27 | 1834C91A1EF918020092518D /* image0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9111EF918020092518D /* image0.jpg */; };
28 | 1834C91B1EF918020092518D /* image1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9121EF918020092518D /* image1.jpg */; };
29 | 1834C91C1EF918020092518D /* image2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9131EF918020092518D /* image2.jpg */; };
30 | 1834C91D1EF918020092518D /* image3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9141EF918020092518D /* image3.jpg */; };
31 | 1834C91F1EF918020092518D /* image5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9161EF918020092518D /* image5.jpg */; };
32 | 1834C9201EF918020092518D /* image6.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9171EF918020092518D /* image6.jpg */; };
33 | 1834C9211EF918020092518D /* image7.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9181EF918020092518D /* image7.jpg */; };
34 | 1834C9221EF918020092518D /* image8.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9191EF918020092518D /* image8.jpg */; };
35 | 1834C9261EF919470092518D /* WYPDFConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C9251EF919470092518D /* WYPDFConverter.m */; };
36 | 1834C9291EF919E60092518D /* UIWebView+WYFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C9281EF919E60092518D /* UIWebView+WYFile.m */; };
37 | 1834C93E1EF936DB0092518D /* UIViewController+ImagePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C9351EF936DB0092518D /* UIViewController+ImagePicker.m */; };
38 | 1834C93F1EF936DB0092518D /* WYImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C9381EF936DB0092518D /* WYImageViewController.m */; };
39 | 1834C9401EF936DB0092518D /* WYWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C93A1EF936DB0092518D /* WYWebViewController.m */; };
40 | 1834C9411EF936DB0092518D /* WYImageCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1834C93D1EF936DB0092518D /* WYImageCollectionViewCell.m */; };
41 | 1834C9431EF938DF0092518D /* image4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1834C9421EF938DF0092518D /* image4.jpg */; };
42 | 18DAFE4C1EFCFAC100C889A0 /* 虎扑篮球.webarchive in Resources */ = {isa = PBXBuildFile; fileRef = 18DAFE4B1EFCFAC100C889A0 /* 虎扑篮球.webarchive */; };
43 | /* End PBXBuildFile section */
44 |
45 | /* Begin PBXContainerItemProxy section */
46 | 1834C88F1EF904400092518D /* PBXContainerItemProxy */ = {
47 | isa = PBXContainerItemProxy;
48 | containerPortal = 1834C86D1EF9043F0092518D /* Project object */;
49 | proxyType = 1;
50 | remoteGlobalIDString = 1834C8741EF9043F0092518D;
51 | remoteInfo = WYPDFConverterOC;
52 | };
53 | 1834C89A1EF904400092518D /* PBXContainerItemProxy */ = {
54 | isa = PBXContainerItemProxy;
55 | containerPortal = 1834C86D1EF9043F0092518D /* Project object */;
56 | proxyType = 1;
57 | remoteGlobalIDString = 1834C8741EF9043F0092518D;
58 | remoteInfo = WYPDFConverterOC;
59 | };
60 | /* End PBXContainerItemProxy section */
61 |
62 | /* Begin PBXFileReference section */
63 | 1823B7641F04A98B0077487A /* WYFilesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WYFilesViewController.h; sourceTree = ""; };
64 | 1823B7651F04A98B0077487A /* WYFilesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WYFilesViewController.m; sourceTree = ""; };
65 | 1834C8751EF9043F0092518D /* WYPDFConverterOC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WYPDFConverterOC.app; sourceTree = BUILT_PRODUCTS_DIR; };
66 | 1834C8791EF9043F0092518D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
67 | 1834C87B1EF9043F0092518D /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
68 | 1834C87C1EF9043F0092518D /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
69 | 1834C87E1EF9043F0092518D /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
70 | 1834C87F1EF9043F0092518D /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
71 | 1834C8821EF9043F0092518D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
72 | 1834C8841EF9043F0092518D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
73 | 1834C8871EF9043F0092518D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
74 | 1834C8891EF9043F0092518D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
75 | 1834C88E1EF904400092518D /* WYPDFConverterOCTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WYPDFConverterOCTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
76 | 1834C8921EF904400092518D /* WYPDFConverterOCTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WYPDFConverterOCTests.m; sourceTree = ""; };
77 | 1834C8941EF904400092518D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
78 | 1834C8991EF904400092518D /* WYPDFConverterOCUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WYPDFConverterOCUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
79 | 1834C89D1EF904400092518D /* WYPDFConverterOCUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WYPDFConverterOCUITests.m; sourceTree = ""; };
80 | 1834C89F1EF904400092518D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
81 | 1834C8EC1EF917050092518D /* excel操作大全.doc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "excel操作大全.doc"; sourceTree = ""; };
82 | 1834C8ED1EF917050092518D /* H5,JS资源.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "H5,JS资源.txt"; sourceTree = ""; };
83 | 1834C8EE1EF917050092518D /* iOS.ppt */ = {isa = PBXFileReference; lastKnownFileType = file; path = iOS.ppt; sourceTree = ""; };
84 | 1834C8EF1EF917050092518D /* Page.pages */ = {isa = PBXFileReference; lastKnownFileType = file; path = Page.pages; sourceTree = ""; };
85 | 1834C8F01EF917050092518D /* Xcode快捷键.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = "Xcode快捷键.rtf"; sourceTree = ""; };
86 | 1834C8F11EF917050092518D /* 华为推荐书目.xls */ = {isa = PBXFileReference; lastKnownFileType = file; path = "华为推荐书目.xls"; sourceTree = ""; };
87 | 1834C8F21EF917050092518D /* 大话Swift 3.0(上).key */ = {isa = PBXFileReference; lastKnownFileType = file; path = "大话Swift 3.0(上).key"; sourceTree = ""; };
88 | 1834C8F31EF917050092518D /* 抵押贷款.numbers */ = {isa = PBXFileReference; lastKnownFileType = file; path = "抵押贷款.numbers"; sourceTree = ""; };
89 | 1834C9111EF918020092518D /* image0.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image0.jpg; sourceTree = ""; };
90 | 1834C9121EF918020092518D /* image1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image1.jpg; sourceTree = ""; };
91 | 1834C9131EF918020092518D /* image2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image2.jpg; sourceTree = ""; };
92 | 1834C9141EF918020092518D /* image3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image3.jpg; sourceTree = ""; };
93 | 1834C9161EF918020092518D /* image5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image5.jpg; sourceTree = ""; };
94 | 1834C9171EF918020092518D /* image6.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image6.jpg; sourceTree = ""; };
95 | 1834C9181EF918020092518D /* image7.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image7.jpg; sourceTree = ""; };
96 | 1834C9191EF918020092518D /* image8.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image8.jpg; sourceTree = ""; };
97 | 1834C9241EF919470092518D /* WYPDFConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WYPDFConverter.h; sourceTree = ""; };
98 | 1834C9251EF919470092518D /* WYPDFConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WYPDFConverter.m; sourceTree = ""; };
99 | 1834C9271EF919E60092518D /* UIWebView+WYFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIWebView+WYFile.h"; sourceTree = ""; };
100 | 1834C9281EF919E60092518D /* UIWebView+WYFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIWebView+WYFile.m"; sourceTree = ""; };
101 | 1834C9341EF936DB0092518D /* UIViewController+ImagePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+ImagePicker.h"; sourceTree = ""; };
102 | 1834C9351EF936DB0092518D /* UIViewController+ImagePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+ImagePicker.m"; sourceTree = ""; };
103 | 1834C9371EF936DB0092518D /* WYImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WYImageViewController.h; sourceTree = ""; };
104 | 1834C9381EF936DB0092518D /* WYImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WYImageViewController.m; sourceTree = ""; };
105 | 1834C9391EF936DB0092518D /* WYWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WYWebViewController.h; sourceTree = ""; };
106 | 1834C93A1EF936DB0092518D /* WYWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WYWebViewController.m; sourceTree = ""; };
107 | 1834C93C1EF936DB0092518D /* WYImageCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WYImageCollectionViewCell.h; sourceTree = ""; };
108 | 1834C93D1EF936DB0092518D /* WYImageCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WYImageCollectionViewCell.m; sourceTree = ""; };
109 | 1834C9421EF938DF0092518D /* image4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = image4.jpg; sourceTree = ""; };
110 | 18DAFE4B1EFCFAC100C889A0 /* 虎扑篮球.webarchive */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = "虎扑篮球.webarchive"; sourceTree = ""; };
111 | /* End PBXFileReference section */
112 |
113 | /* Begin PBXFrameworksBuildPhase section */
114 | 1834C8721EF9043F0092518D /* Frameworks */ = {
115 | isa = PBXFrameworksBuildPhase;
116 | buildActionMask = 2147483647;
117 | files = (
118 | );
119 | runOnlyForDeploymentPostprocessing = 0;
120 | };
121 | 1834C88B1EF904400092518D /* Frameworks */ = {
122 | isa = PBXFrameworksBuildPhase;
123 | buildActionMask = 2147483647;
124 | files = (
125 | );
126 | runOnlyForDeploymentPostprocessing = 0;
127 | };
128 | 1834C8961EF904400092518D /* Frameworks */ = {
129 | isa = PBXFrameworksBuildPhase;
130 | buildActionMask = 2147483647;
131 | files = (
132 | );
133 | runOnlyForDeploymentPostprocessing = 0;
134 | };
135 | /* End PBXFrameworksBuildPhase section */
136 |
137 | /* Begin PBXGroup section */
138 | 1834C86C1EF9043F0092518D = {
139 | isa = PBXGroup;
140 | children = (
141 | 1834C9231EF919300092518D /* WYPDFConverter */,
142 | 1834C8E91EF917050092518D /* Resource */,
143 | 1834C8771EF9043F0092518D /* WYPDFConverterOC */,
144 | 1834C8911EF904400092518D /* WYPDFConverterOCTests */,
145 | 1834C89C1EF904400092518D /* WYPDFConverterOCUITests */,
146 | 1834C8761EF9043F0092518D /* Products */,
147 | );
148 | sourceTree = "";
149 | };
150 | 1834C8761EF9043F0092518D /* Products */ = {
151 | isa = PBXGroup;
152 | children = (
153 | 1834C8751EF9043F0092518D /* WYPDFConverterOC.app */,
154 | 1834C88E1EF904400092518D /* WYPDFConverterOCTests.xctest */,
155 | 1834C8991EF904400092518D /* WYPDFConverterOCUITests.xctest */,
156 | );
157 | name = Products;
158 | sourceTree = "";
159 | };
160 | 1834C8771EF9043F0092518D /* WYPDFConverterOC */ = {
161 | isa = PBXGroup;
162 | children = (
163 | 1834C87B1EF9043F0092518D /* AppDelegate.h */,
164 | 1834C87C1EF9043F0092518D /* AppDelegate.m */,
165 | 1834C87E1EF9043F0092518D /* ViewController.h */,
166 | 1834C87F1EF9043F0092518D /* ViewController.m */,
167 | 1834C9361EF936DB0092518D /* Controller */,
168 | 1834C93B1EF936DB0092518D /* Cell */,
169 | 1834C9331EF936DB0092518D /* Catagory */,
170 | 1834C8811EF9043F0092518D /* Main.storyboard */,
171 | 1834C8841EF9043F0092518D /* Assets.xcassets */,
172 | 1834C8861EF9043F0092518D /* LaunchScreen.storyboard */,
173 | 1834C8891EF9043F0092518D /* Info.plist */,
174 | 1834C8781EF9043F0092518D /* Supporting Files */,
175 | );
176 | path = WYPDFConverterOC;
177 | sourceTree = "";
178 | };
179 | 1834C8781EF9043F0092518D /* Supporting Files */ = {
180 | isa = PBXGroup;
181 | children = (
182 | 1834C8791EF9043F0092518D /* main.m */,
183 | );
184 | name = "Supporting Files";
185 | sourceTree = "";
186 | };
187 | 1834C8911EF904400092518D /* WYPDFConverterOCTests */ = {
188 | isa = PBXGroup;
189 | children = (
190 | 1834C8921EF904400092518D /* WYPDFConverterOCTests.m */,
191 | 1834C8941EF904400092518D /* Info.plist */,
192 | );
193 | path = WYPDFConverterOCTests;
194 | sourceTree = "";
195 | };
196 | 1834C89C1EF904400092518D /* WYPDFConverterOCUITests */ = {
197 | isa = PBXGroup;
198 | children = (
199 | 1834C89D1EF904400092518D /* WYPDFConverterOCUITests.m */,
200 | 1834C89F1EF904400092518D /* Info.plist */,
201 | );
202 | path = WYPDFConverterOCUITests;
203 | sourceTree = "";
204 | };
205 | 1834C8E91EF917050092518D /* Resource */ = {
206 | isa = PBXGroup;
207 | children = (
208 | 1834C9101EF918020092518D /* image */,
209 | 1834C8EA1EF917050092518D /* Document */,
210 | );
211 | path = Resource;
212 | sourceTree = "";
213 | };
214 | 1834C8EA1EF917050092518D /* Document */ = {
215 | isa = PBXGroup;
216 | children = (
217 | 18DAFE4B1EFCFAC100C889A0 /* 虎扑篮球.webarchive */,
218 | 1834C8EC1EF917050092518D /* excel操作大全.doc */,
219 | 1834C8ED1EF917050092518D /* H5,JS资源.txt */,
220 | 1834C8EE1EF917050092518D /* iOS.ppt */,
221 | 1834C8EF1EF917050092518D /* Page.pages */,
222 | 1834C8F01EF917050092518D /* Xcode快捷键.rtf */,
223 | 1834C8F11EF917050092518D /* 华为推荐书目.xls */,
224 | 1834C8F21EF917050092518D /* 大话Swift 3.0(上).key */,
225 | 1834C8F31EF917050092518D /* 抵押贷款.numbers */,
226 | );
227 | path = Document;
228 | sourceTree = "";
229 | };
230 | 1834C9101EF918020092518D /* image */ = {
231 | isa = PBXGroup;
232 | children = (
233 | 1834C9111EF918020092518D /* image0.jpg */,
234 | 1834C9121EF918020092518D /* image1.jpg */,
235 | 1834C9131EF918020092518D /* image2.jpg */,
236 | 1834C9141EF918020092518D /* image3.jpg */,
237 | 1834C9421EF938DF0092518D /* image4.jpg */,
238 | 1834C9161EF918020092518D /* image5.jpg */,
239 | 1834C9171EF918020092518D /* image6.jpg */,
240 | 1834C9181EF918020092518D /* image7.jpg */,
241 | 1834C9191EF918020092518D /* image8.jpg */,
242 | );
243 | path = image;
244 | sourceTree = "";
245 | };
246 | 1834C9231EF919300092518D /* WYPDFConverter */ = {
247 | isa = PBXGroup;
248 | children = (
249 | 1834C9241EF919470092518D /* WYPDFConverter.h */,
250 | 1834C9251EF919470092518D /* WYPDFConverter.m */,
251 | 1834C9271EF919E60092518D /* UIWebView+WYFile.h */,
252 | 1834C9281EF919E60092518D /* UIWebView+WYFile.m */,
253 | );
254 | path = WYPDFConverter;
255 | sourceTree = "";
256 | };
257 | 1834C9331EF936DB0092518D /* Catagory */ = {
258 | isa = PBXGroup;
259 | children = (
260 | 1834C9341EF936DB0092518D /* UIViewController+ImagePicker.h */,
261 | 1834C9351EF936DB0092518D /* UIViewController+ImagePicker.m */,
262 | );
263 | path = Catagory;
264 | sourceTree = "";
265 | };
266 | 1834C9361EF936DB0092518D /* Controller */ = {
267 | isa = PBXGroup;
268 | children = (
269 | 1834C9371EF936DB0092518D /* WYImageViewController.h */,
270 | 1834C9381EF936DB0092518D /* WYImageViewController.m */,
271 | 1834C9391EF936DB0092518D /* WYWebViewController.h */,
272 | 1834C93A1EF936DB0092518D /* WYWebViewController.m */,
273 | 1823B7641F04A98B0077487A /* WYFilesViewController.h */,
274 | 1823B7651F04A98B0077487A /* WYFilesViewController.m */,
275 | );
276 | path = Controller;
277 | sourceTree = "";
278 | };
279 | 1834C93B1EF936DB0092518D /* Cell */ = {
280 | isa = PBXGroup;
281 | children = (
282 | 1834C93C1EF936DB0092518D /* WYImageCollectionViewCell.h */,
283 | 1834C93D1EF936DB0092518D /* WYImageCollectionViewCell.m */,
284 | );
285 | path = Cell;
286 | sourceTree = "";
287 | };
288 | /* End PBXGroup section */
289 |
290 | /* Begin PBXNativeTarget section */
291 | 1834C8741EF9043F0092518D /* WYPDFConverterOC */ = {
292 | isa = PBXNativeTarget;
293 | buildConfigurationList = 1834C8A21EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOC" */;
294 | buildPhases = (
295 | 1834C8711EF9043F0092518D /* Sources */,
296 | 1834C8721EF9043F0092518D /* Frameworks */,
297 | 1834C8731EF9043F0092518D /* Resources */,
298 | );
299 | buildRules = (
300 | );
301 | dependencies = (
302 | );
303 | name = WYPDFConverterOC;
304 | productName = WYPDFConverterOC;
305 | productReference = 1834C8751EF9043F0092518D /* WYPDFConverterOC.app */;
306 | productType = "com.apple.product-type.application";
307 | };
308 | 1834C88D1EF904400092518D /* WYPDFConverterOCTests */ = {
309 | isa = PBXNativeTarget;
310 | buildConfigurationList = 1834C8A51EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOCTests" */;
311 | buildPhases = (
312 | 1834C88A1EF904400092518D /* Sources */,
313 | 1834C88B1EF904400092518D /* Frameworks */,
314 | 1834C88C1EF904400092518D /* Resources */,
315 | );
316 | buildRules = (
317 | );
318 | dependencies = (
319 | 1834C8901EF904400092518D /* PBXTargetDependency */,
320 | );
321 | name = WYPDFConverterOCTests;
322 | productName = WYPDFConverterOCTests;
323 | productReference = 1834C88E1EF904400092518D /* WYPDFConverterOCTests.xctest */;
324 | productType = "com.apple.product-type.bundle.unit-test";
325 | };
326 | 1834C8981EF904400092518D /* WYPDFConverterOCUITests */ = {
327 | isa = PBXNativeTarget;
328 | buildConfigurationList = 1834C8A81EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOCUITests" */;
329 | buildPhases = (
330 | 1834C8951EF904400092518D /* Sources */,
331 | 1834C8961EF904400092518D /* Frameworks */,
332 | 1834C8971EF904400092518D /* Resources */,
333 | );
334 | buildRules = (
335 | );
336 | dependencies = (
337 | 1834C89B1EF904400092518D /* PBXTargetDependency */,
338 | );
339 | name = WYPDFConverterOCUITests;
340 | productName = WYPDFConverterOCUITests;
341 | productReference = 1834C8991EF904400092518D /* WYPDFConverterOCUITests.xctest */;
342 | productType = "com.apple.product-type.bundle.ui-testing";
343 | };
344 | /* End PBXNativeTarget section */
345 |
346 | /* Begin PBXProject section */
347 | 1834C86D1EF9043F0092518D /* Project object */ = {
348 | isa = PBXProject;
349 | attributes = {
350 | LastUpgradeCheck = 0820;
351 | ORGANIZATIONNAME = "White-Young";
352 | TargetAttributes = {
353 | 1834C8741EF9043F0092518D = {
354 | CreatedOnToolsVersion = 8.2.1;
355 | DevelopmentTeam = W4WU7Z59L3;
356 | ProvisioningStyle = Automatic;
357 | };
358 | 1834C88D1EF904400092518D = {
359 | CreatedOnToolsVersion = 8.2.1;
360 | ProvisioningStyle = Automatic;
361 | TestTargetID = 1834C8741EF9043F0092518D;
362 | };
363 | 1834C8981EF904400092518D = {
364 | CreatedOnToolsVersion = 8.2.1;
365 | ProvisioningStyle = Automatic;
366 | TestTargetID = 1834C8741EF9043F0092518D;
367 | };
368 | };
369 | };
370 | buildConfigurationList = 1834C8701EF9043F0092518D /* Build configuration list for PBXProject "WYPDFConverterOC" */;
371 | compatibilityVersion = "Xcode 3.2";
372 | developmentRegion = English;
373 | hasScannedForEncodings = 0;
374 | knownRegions = (
375 | en,
376 | Base,
377 | );
378 | mainGroup = 1834C86C1EF9043F0092518D;
379 | productRefGroup = 1834C8761EF9043F0092518D /* Products */;
380 | projectDirPath = "";
381 | projectRoot = "";
382 | targets = (
383 | 1834C8741EF9043F0092518D /* WYPDFConverterOC */,
384 | 1834C88D1EF904400092518D /* WYPDFConverterOCTests */,
385 | 1834C8981EF904400092518D /* WYPDFConverterOCUITests */,
386 | );
387 | };
388 | /* End PBXProject section */
389 |
390 | /* Begin PBXResourcesBuildPhase section */
391 | 1834C8731EF9043F0092518D /* Resources */ = {
392 | isa = PBXResourcesBuildPhase;
393 | buildActionMask = 2147483647;
394 | files = (
395 | 1834C8881EF9043F0092518D /* LaunchScreen.storyboard in Resources */,
396 | 1834C91F1EF918020092518D /* image5.jpg in Resources */,
397 | 1834C91C1EF918020092518D /* image2.jpg in Resources */,
398 | 1834C8851EF9043F0092518D /* Assets.xcassets in Resources */,
399 | 1834C9031EF917050092518D /* Xcode快捷键.rtf in Resources */,
400 | 1834C9221EF918020092518D /* image8.jpg in Resources */,
401 | 1834C9061EF917050092518D /* 抵押贷款.numbers in Resources */,
402 | 1834C91A1EF918020092518D /* image0.jpg in Resources */,
403 | 1834C9001EF917050092518D /* H5,JS资源.txt in Resources */,
404 | 1834C91B1EF918020092518D /* image1.jpg in Resources */,
405 | 1834C9211EF918020092518D /* image7.jpg in Resources */,
406 | 1834C8FF1EF917050092518D /* excel操作大全.doc in Resources */,
407 | 1834C9201EF918020092518D /* image6.jpg in Resources */,
408 | 1834C9021EF917050092518D /* Page.pages in Resources */,
409 | 18DAFE4C1EFCFAC100C889A0 /* 虎扑篮球.webarchive in Resources */,
410 | 1834C9011EF917050092518D /* iOS.ppt in Resources */,
411 | 1834C9051EF917050092518D /* 大话Swift 3.0(上).key in Resources */,
412 | 1834C9431EF938DF0092518D /* image4.jpg in Resources */,
413 | 1834C8831EF9043F0092518D /* Main.storyboard in Resources */,
414 | 1834C9041EF917050092518D /* 华为推荐书目.xls in Resources */,
415 | 1834C91D1EF918020092518D /* image3.jpg in Resources */,
416 | );
417 | runOnlyForDeploymentPostprocessing = 0;
418 | };
419 | 1834C88C1EF904400092518D /* Resources */ = {
420 | isa = PBXResourcesBuildPhase;
421 | buildActionMask = 2147483647;
422 | files = (
423 | );
424 | runOnlyForDeploymentPostprocessing = 0;
425 | };
426 | 1834C8971EF904400092518D /* Resources */ = {
427 | isa = PBXResourcesBuildPhase;
428 | buildActionMask = 2147483647;
429 | files = (
430 | );
431 | runOnlyForDeploymentPostprocessing = 0;
432 | };
433 | /* End PBXResourcesBuildPhase section */
434 |
435 | /* Begin PBXSourcesBuildPhase section */
436 | 1834C8711EF9043F0092518D /* Sources */ = {
437 | isa = PBXSourcesBuildPhase;
438 | buildActionMask = 2147483647;
439 | files = (
440 | 1834C93E1EF936DB0092518D /* UIViewController+ImagePicker.m in Sources */,
441 | 1834C8801EF9043F0092518D /* ViewController.m in Sources */,
442 | 1823B7661F04A98B0077487A /* WYFilesViewController.m in Sources */,
443 | 1834C87D1EF9043F0092518D /* AppDelegate.m in Sources */,
444 | 1834C9291EF919E60092518D /* UIWebView+WYFile.m in Sources */,
445 | 1834C93F1EF936DB0092518D /* WYImageViewController.m in Sources */,
446 | 1834C9401EF936DB0092518D /* WYWebViewController.m in Sources */,
447 | 1834C9411EF936DB0092518D /* WYImageCollectionViewCell.m in Sources */,
448 | 1834C9261EF919470092518D /* WYPDFConverter.m in Sources */,
449 | 1834C87A1EF9043F0092518D /* main.m in Sources */,
450 | );
451 | runOnlyForDeploymentPostprocessing = 0;
452 | };
453 | 1834C88A1EF904400092518D /* Sources */ = {
454 | isa = PBXSourcesBuildPhase;
455 | buildActionMask = 2147483647;
456 | files = (
457 | 1834C8931EF904400092518D /* WYPDFConverterOCTests.m in Sources */,
458 | );
459 | runOnlyForDeploymentPostprocessing = 0;
460 | };
461 | 1834C8951EF904400092518D /* Sources */ = {
462 | isa = PBXSourcesBuildPhase;
463 | buildActionMask = 2147483647;
464 | files = (
465 | 1834C89E1EF904400092518D /* WYPDFConverterOCUITests.m in Sources */,
466 | );
467 | runOnlyForDeploymentPostprocessing = 0;
468 | };
469 | /* End PBXSourcesBuildPhase section */
470 |
471 | /* Begin PBXTargetDependency section */
472 | 1834C8901EF904400092518D /* PBXTargetDependency */ = {
473 | isa = PBXTargetDependency;
474 | target = 1834C8741EF9043F0092518D /* WYPDFConverterOC */;
475 | targetProxy = 1834C88F1EF904400092518D /* PBXContainerItemProxy */;
476 | };
477 | 1834C89B1EF904400092518D /* PBXTargetDependency */ = {
478 | isa = PBXTargetDependency;
479 | target = 1834C8741EF9043F0092518D /* WYPDFConverterOC */;
480 | targetProxy = 1834C89A1EF904400092518D /* PBXContainerItemProxy */;
481 | };
482 | /* End PBXTargetDependency section */
483 |
484 | /* Begin PBXVariantGroup section */
485 | 1834C8811EF9043F0092518D /* Main.storyboard */ = {
486 | isa = PBXVariantGroup;
487 | children = (
488 | 1834C8821EF9043F0092518D /* Base */,
489 | );
490 | name = Main.storyboard;
491 | sourceTree = "";
492 | };
493 | 1834C8861EF9043F0092518D /* LaunchScreen.storyboard */ = {
494 | isa = PBXVariantGroup;
495 | children = (
496 | 1834C8871EF9043F0092518D /* Base */,
497 | );
498 | name = LaunchScreen.storyboard;
499 | sourceTree = "";
500 | };
501 | /* End PBXVariantGroup section */
502 |
503 | /* Begin XCBuildConfiguration section */
504 | 1834C8A01EF904400092518D /* Debug */ = {
505 | isa = XCBuildConfiguration;
506 | buildSettings = {
507 | ALWAYS_SEARCH_USER_PATHS = NO;
508 | CLANG_ANALYZER_NONNULL = YES;
509 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
510 | CLANG_CXX_LIBRARY = "libc++";
511 | CLANG_ENABLE_MODULES = YES;
512 | CLANG_ENABLE_OBJC_ARC = YES;
513 | CLANG_WARN_BOOL_CONVERSION = YES;
514 | CLANG_WARN_CONSTANT_CONVERSION = YES;
515 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
516 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
517 | CLANG_WARN_EMPTY_BODY = YES;
518 | CLANG_WARN_ENUM_CONVERSION = YES;
519 | CLANG_WARN_INFINITE_RECURSION = YES;
520 | CLANG_WARN_INT_CONVERSION = YES;
521 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
522 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
523 | CLANG_WARN_UNREACHABLE_CODE = YES;
524 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
525 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
526 | COPY_PHASE_STRIP = NO;
527 | DEBUG_INFORMATION_FORMAT = dwarf;
528 | ENABLE_STRICT_OBJC_MSGSEND = YES;
529 | ENABLE_TESTABILITY = YES;
530 | GCC_C_LANGUAGE_STANDARD = gnu99;
531 | GCC_DYNAMIC_NO_PIC = NO;
532 | GCC_NO_COMMON_BLOCKS = YES;
533 | GCC_OPTIMIZATION_LEVEL = 0;
534 | GCC_PREPROCESSOR_DEFINITIONS = (
535 | "DEBUG=1",
536 | "$(inherited)",
537 | );
538 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
539 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
540 | GCC_WARN_UNDECLARED_SELECTOR = YES;
541 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
542 | GCC_WARN_UNUSED_FUNCTION = YES;
543 | GCC_WARN_UNUSED_VARIABLE = YES;
544 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
545 | MTL_ENABLE_DEBUG_INFO = YES;
546 | ONLY_ACTIVE_ARCH = YES;
547 | SDKROOT = iphoneos;
548 | };
549 | name = Debug;
550 | };
551 | 1834C8A11EF904400092518D /* Release */ = {
552 | isa = XCBuildConfiguration;
553 | buildSettings = {
554 | ALWAYS_SEARCH_USER_PATHS = NO;
555 | CLANG_ANALYZER_NONNULL = YES;
556 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
557 | CLANG_CXX_LIBRARY = "libc++";
558 | CLANG_ENABLE_MODULES = YES;
559 | CLANG_ENABLE_OBJC_ARC = YES;
560 | CLANG_WARN_BOOL_CONVERSION = YES;
561 | CLANG_WARN_CONSTANT_CONVERSION = YES;
562 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
563 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
564 | CLANG_WARN_EMPTY_BODY = YES;
565 | CLANG_WARN_ENUM_CONVERSION = YES;
566 | CLANG_WARN_INFINITE_RECURSION = YES;
567 | CLANG_WARN_INT_CONVERSION = YES;
568 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
569 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
570 | CLANG_WARN_UNREACHABLE_CODE = YES;
571 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
572 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
573 | COPY_PHASE_STRIP = NO;
574 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
575 | ENABLE_NS_ASSERTIONS = NO;
576 | ENABLE_STRICT_OBJC_MSGSEND = YES;
577 | GCC_C_LANGUAGE_STANDARD = gnu99;
578 | GCC_NO_COMMON_BLOCKS = YES;
579 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
580 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
581 | GCC_WARN_UNDECLARED_SELECTOR = YES;
582 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
583 | GCC_WARN_UNUSED_FUNCTION = YES;
584 | GCC_WARN_UNUSED_VARIABLE = YES;
585 | IPHONEOS_DEPLOYMENT_TARGET = 10.2;
586 | MTL_ENABLE_DEBUG_INFO = NO;
587 | SDKROOT = iphoneos;
588 | VALIDATE_PRODUCT = YES;
589 | };
590 | name = Release;
591 | };
592 | 1834C8A31EF904400092518D /* Debug */ = {
593 | isa = XCBuildConfiguration;
594 | buildSettings = {
595 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
596 | DEVELOPMENT_TEAM = W4WU7Z59L3;
597 | INFOPLIST_FILE = WYPDFConverterOC/Info.plist;
598 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
599 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOC;
600 | PRODUCT_NAME = "$(TARGET_NAME)";
601 | };
602 | name = Debug;
603 | };
604 | 1834C8A41EF904400092518D /* Release */ = {
605 | isa = XCBuildConfiguration;
606 | buildSettings = {
607 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
608 | DEVELOPMENT_TEAM = W4WU7Z59L3;
609 | INFOPLIST_FILE = WYPDFConverterOC/Info.plist;
610 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
611 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOC;
612 | PRODUCT_NAME = "$(TARGET_NAME)";
613 | };
614 | name = Release;
615 | };
616 | 1834C8A61EF904400092518D /* Debug */ = {
617 | isa = XCBuildConfiguration;
618 | buildSettings = {
619 | BUNDLE_LOADER = "$(TEST_HOST)";
620 | INFOPLIST_FILE = WYPDFConverterOCTests/Info.plist;
621 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
622 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOCTests;
623 | PRODUCT_NAME = "$(TARGET_NAME)";
624 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WYPDFConverterOC.app/WYPDFConverterOC";
625 | };
626 | name = Debug;
627 | };
628 | 1834C8A71EF904400092518D /* Release */ = {
629 | isa = XCBuildConfiguration;
630 | buildSettings = {
631 | BUNDLE_LOADER = "$(TEST_HOST)";
632 | INFOPLIST_FILE = WYPDFConverterOCTests/Info.plist;
633 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
634 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOCTests;
635 | PRODUCT_NAME = "$(TARGET_NAME)";
636 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/WYPDFConverterOC.app/WYPDFConverterOC";
637 | };
638 | name = Release;
639 | };
640 | 1834C8A91EF904400092518D /* Debug */ = {
641 | isa = XCBuildConfiguration;
642 | buildSettings = {
643 | INFOPLIST_FILE = WYPDFConverterOCUITests/Info.plist;
644 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
645 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOCUITests;
646 | PRODUCT_NAME = "$(TARGET_NAME)";
647 | TEST_TARGET_NAME = WYPDFConverterOC;
648 | };
649 | name = Debug;
650 | };
651 | 1834C8AA1EF904400092518D /* Release */ = {
652 | isa = XCBuildConfiguration;
653 | buildSettings = {
654 | INFOPLIST_FILE = WYPDFConverterOCUITests/Info.plist;
655 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
656 | PRODUCT_BUNDLE_IDENTIFIER = WhiteYoung.WYPDFConverterOCUITests;
657 | PRODUCT_NAME = "$(TARGET_NAME)";
658 | TEST_TARGET_NAME = WYPDFConverterOC;
659 | };
660 | name = Release;
661 | };
662 | /* End XCBuildConfiguration section */
663 |
664 | /* Begin XCConfigurationList section */
665 | 1834C8701EF9043F0092518D /* Build configuration list for PBXProject "WYPDFConverterOC" */ = {
666 | isa = XCConfigurationList;
667 | buildConfigurations = (
668 | 1834C8A01EF904400092518D /* Debug */,
669 | 1834C8A11EF904400092518D /* Release */,
670 | );
671 | defaultConfigurationIsVisible = 0;
672 | defaultConfigurationName = Release;
673 | };
674 | 1834C8A21EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOC" */ = {
675 | isa = XCConfigurationList;
676 | buildConfigurations = (
677 | 1834C8A31EF904400092518D /* Debug */,
678 | 1834C8A41EF904400092518D /* Release */,
679 | );
680 | defaultConfigurationIsVisible = 0;
681 | defaultConfigurationName = Release;
682 | };
683 | 1834C8A51EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOCTests" */ = {
684 | isa = XCConfigurationList;
685 | buildConfigurations = (
686 | 1834C8A61EF904400092518D /* Debug */,
687 | 1834C8A71EF904400092518D /* Release */,
688 | );
689 | defaultConfigurationIsVisible = 0;
690 | defaultConfigurationName = Release;
691 | };
692 | 1834C8A81EF904400092518D /* Build configuration list for PBXNativeTarget "WYPDFConverterOCUITests" */ = {
693 | isa = XCConfigurationList;
694 | buildConfigurations = (
695 | 1834C8A91EF904400092518D /* Debug */,
696 | 1834C8AA1EF904400092518D /* Release */,
697 | );
698 | defaultConfigurationIsVisible = 0;
699 | defaultConfigurationName = Release;
700 | };
701 | /* End XCConfigurationList section */
702 | };
703 | rootObject = 1834C86D1EF9043F0092518D /* Project object */;
704 | }
705 |
--------------------------------------------------------------------------------