Giter Site home page Giter Site logo

lucalanca / ng2-pdf-viewer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vadimdez/ng2-pdf-viewer

0.0 2.0 0.0 80.47 MB

📄 PDF Viewer Component for Angular 2+

Home Page: https://vadimdez.github.io/ng2-pdf-viewer/

License: MIT License

CSS 0.09% HTML 0.19% JavaScript 96.72% TypeScript 3.01%

ng2-pdf-viewer's Introduction

Angular2+ PDF Viewer

downloads npm version Gitter

PDF Viewer Component for Angular 2+

Demo page

https://vadimdez.github.io/ng2-pdf-viewer/

Blog post

https://medium.com/@vadimdez/render-pdf-in-angular-4-927e31da9c76

Install

npm install ng2-pdf-viewer --save

Usage

In case you're using systemjs see configuration here.

Add PdfViewerModule to your module's imports

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';

import { PdfViewerModule } from 'ng2-pdf-viewer';

@NgModule({
  imports: [BrowserModule, PdfViewerModule],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})

class AppModule {}

platformBrowserDynamic().bootstrapModule(AppModule);

And then use it in your component

import { Component } from '@angular/core';

@Component({
  selector: 'example-app',
  template: `
  <div>
      <label>PDF src</label>
      <input type="text" placeholder="PDF src" [(ngModel)]="pdfSrc">
  </div>
  <pdf-viewer [src]="pdfSrc" 
              [render-text]="true"
              style="display: block;"
  ></pdf-viewer>
  `
})
export class AppComponent {
  pdfSrc: string = '/pdf-test.pdf';
}

Options

[src]

accepts: string, object, UInt8Array

Pass pdf location

[src]="'https://vadimdez.github.io/ng2-pdf-viewer/pdf-test.pdf'"

For more control you can pass options object to [src].

Options object for loading protected PDF would be

{
 url: 'https://vadimdez.github.io/ng2-pdf-viewer/pdf-test.pdf',
 withCredentials: true
}

See more attributes here.

[page]

number

Page number

[page]="1"

supports two way data binding as well

[(page)]="pageVariable"

[stick-to-page]

boolean

Sticks view to the page. Works in combination with [show-all]="true" and page.

[stick-to-page]="true"

[render-text]

boolean

Enable text rendering, allows to select text

[render-text]="true"

[external-link-target]

string

Used in combination with [render-text]="true"

Link target

  • blank
  • none
  • self
  • parent
  • top
[external-link-target]="'blank'"

[rotation]

number

Rotate PDF

Allowed step is 90 degree, ex. 0, 90, 180

[rotation]="90"

[zoom]

number

Zoom pdf

[zoom]="0.5"

[original-size]

boolean

if set to true - size will be as same as original document

if set to false - size will be as same as container block

[original-size]="true"

[fit-to-page]

boolean

Works in combination with [original-size]="true". You can show your document in original size, and make sure that it's not bigger then container block.

[fit-to-page]="false"

[show-all]

boolean

Show single or all pages altogether

[show-all]="true"

[autoresize]

boolean

Turn on or off auto resize.

!Important To make [autoresize] work - make sure that [original-size]="false" and pdf-viewer tag has max-width or dipslay are set.

[autoresize]="true"

(after-load-complete)

Get PDF information with callback

First define callback function "callBackFn" in your controller,

callBackFn(pdf: PDFDocumentProxy) {
   // do anything with "pdf"
}

And then use it in your template:

(after-load-complete)="callBackFn($event)"

(error)

Error handling callback

Define callback in your component's class

onError(error: any) {
  // do anything
}

Then add it to pdf-component in component's template

(error)="onError($event)"

(on-progress)

Loading progress callback - provides progress information total and loaded bytes. Is called several times during pdf loading phase.

Define callback in your component's class

onProgress(progressData: PDFProgressData) {
  // do anything with progress data. For example progress indicator
}

Then add it to pdf-component in component's template

(on-progress)="onProgress($event)"

Contribute

Clone the project

npm start

and then open

http://localhost:8000/

License

MIT © Vadym Yatsyuk

ng2-pdf-viewer's People

Contributors

vadimdez avatar ghetolay avatar borys-kupar avatar mmaclach avatar delian avatar mix5003 avatar

Watchers

João Figueiredo avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.