comment afficher le pdf sur ios
je suis encore assez nouveau pour xcode
, bien que j'ai fait beaucoup de tutoriel et de recherche en ligne avant, Il ya encore quelques choses qui me puzzle obj C n'est pas mon langage de programmation natif. (autodidacte sur mon interne)
je veux savoir si il existe un moyen pour un mode hors connexion pour construire xcode iOS
de sorte que nous pouvons afficher le fichier pdf à partir du fichier local.
La méthode que j'utilise maintenant est via UIWebView
pour afficher un HTML personnalisé qui contient L'URL PDF (en ligne), mais je veux faire une version hors ligne si possible.
mais à partir de la recherche en ligne, il me semble que la seule façon d'afficher PDF est via UIWebView, si c'est vraiment le cas, est-il possible de tirer le fichier de la ressource locale (par exemple ajouter des fichiers à mon dossier de ressources xcode) plutôt que d'utiliser l'URL PDF.
HORS-SUJET: Ce qui serait un meilleur choix? Pour tirer le fichier local ou d'utiliser L'URL en ligne pour le fichier PDF?
UIWebView
demande de connexion, il semble être un meilleur choix pour il suffit de tirer L'URL en ligne car il sera le plus à jour et mis à jour.
retour d'expérience est très apprécié. Merci!
EDIT: question rapide, si j'utilise le UIDocumentInteractionController
la méthode ou le QuickLook framework pour le rendre hors ligne, cela signifierait que je dois libérer Update patch chaque fois qu'il y a un nouvel article PDF ajouté (corriger moi si je me trompe)
prenant ce point en considération, j'ai trouvé un contre-argument à ma propre question sur le spot (Désolé si vous vous sentez que vous perdez du temps sur moi >.< Je suis une personne qui aime à la question des possibilités et l'approche différente que l'on pourrait prendre pour résoudre le problème) Dans le cas de gagner du temps de la mise à jour constante et de fournir une solution de base en temps réel, qui est D'utiliser UIWebView (je sais que cela contredit mon but de ce fil SO), car ce projet est base sur un site Web en ligne (obtenir mon contenu et des sources à partir de là), si je devais charger leur site web pour la section article, serait-il audacieux de ma part de dire qu'en ajoutant une variable NSString, je peux ajouter la fonction NSRange au viewDidLoad en même temps que L'UIWebView de sorte que l'URL ne quittera jamais la section news et L'URL PDF. par exemple, en utilisant la combinaison des fonctions if et NSRange pour contrer vérifier que L'URL ne contient que la section news et L'URL PDF)
je l'ai fait une fois avant un NSRange fonction pour le point sur la calculatrice, j'ai donc pensé qu'il serait un bon moment pour le mettre dans l'utilisation de ce cadre App.
P. S - Cette application est un projet de base d'organisation et je suis un stagiaire leur fournissant le cadre de base squelette.
8 réponses
vous pouvez utiliser un UIWebView pour obtenir le PDF de votre forfait directement, pas besoin d'appeler un service Web en ligne.
Fichier:
NSString *html = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]];
Fichier Distant:
- (void) loadRemotePdf
{
CGRect rect = [[UIScreen mainScreen] bounds];
CGSize screenSize = rect.size;
UIWebView *myWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)];
webView.autoresizesSubviews = YES;
webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
NSURL *myUrl = [NSURL URLWithString:@"http://www.mysite.com/test.pdf"];
NSURLRequest *myRequest = [NSURLRequest requestWithURL:myUrl];
[webView loadRequest:myRequest];
[window addSubview: myWebView];
[myWebView release];
}
beaucoup d'options, voici 3:
1) la façon la plus facile de charger et d'afficher un fichier pdf local est d'utiliser UIWebview comme ça:
NSString *path = [[NSBundle mainBundle] pathForResource:@"document" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];
2) Vous pouvez aussi utiliser un UIDocumentInteractionController
/QLPreviewController
pour afficher les fichiers PDF nativement.
3) une autre façon serait de construire un visualiseur PDF personnalisé, comme dans pommes ZoomingPDFViewer example code. (using UIPageViewController + CATiledLayer + UIScrollView)
je vous conseille d'utiliser le QuickLook framework lors de la manipulation de fichiers PDF.
SWIFT 4.x
UIWebview approche swift:
//let url = URL.init(string: "https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf")! // for file in web
let url = Bundle.main.url(forResource: "filename", withExtension: ".pdf")! // for file in bundle
let webView = UIWebView.init(frame: view.frame)
webView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
webView.loadRequest(URLRequest.init(url: url))
view.addSubview(webView)
NSString *path = [[NSBundle mainBundle] pathForResource:@"Yourpdf" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 300, 400)];
[[webView scrollView] setContentOffset:CGPointMake(0,500) animated:YES];
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]];
[webView loadRequest:request];
[self.view addSubview:webView];
j'ai trouvé ce site et est une méthode très facile d'ouvrir les pdf avec n'importe quelle application pdf disponible qui est chargé sur l'iPhone. (Je préfère iBooks)
IOs a introduit une nouvelle boîte à outils. Il dispose de nombreuses fonctionnalités dédiées à l'affichage des PDF. Vous pouvez utiliser la classe PdfView pour afficher un PDF à partir d'un fichier local ou via une URL.
il est tard mais il ya une certaine limitation avec UIWebview sur le chargement des fichiers pdf, il ne sera pas charger PDF modifiable correctement. alors chargez n'importe quel type de fichiers pdf utilisez le code suivant
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"pdfFileName" ofType:@"pdf"]];
PDFView *view = [[PDFView alloc] initWithFrame:self.view.frame];
view.document = [[PDFDocument alloc] initWithURL:url];
[self.view addSubview:view];