- [#1145] - After upgrade to the version 10.3.3, the first page of pdf is always rendered twice, with different dimension in viewport each time
- [#1146] - Fix: use page init for first updateSize
- [#1137] - Latest version requires Typescript 5.6 which current LTS of angular (v18.2.7) does not support
- [#1138] - Fix: lock pdfjs version
- [#999] - Rotation default value not working
- [#1126] - Fix #999: Ensure that the rotation in the viewer is not set too early
- [#1128] - feat(pdfjs): upgrade to v4 - without breaking backwards compatibility
- [#1093] - Update pdfjs-dist to 4.2.67 or later
- [#1098] - Fix #1097: delay scale and scroll ops until the viewer has the pages initialized
- [#1097] - scrollPageIntoView: "1" is not a valid pageNumber parameter
- [#1096] - Explicitely switch AnnotationEditor off
- [#1092] - Chore: update pdfjs to 3.11.174, resolve CVE
- [#1088] - PDF.js vulnerable to arbitrary JavaScript execution upon opening a malicious PDF
- [#1027] - Chore: Update pdfjs-dist to 3.10.111
- [#992] - scale not correctly updated on pdf-viewer rotation for pdf page with 90° rotation
- [#993] - fix #992 : fix rotation on pdf with included rotation
- [#943] - chore(deps): bump ejs and webpack-bundle-analyzer
- [#971] - feat: Support version specific pdf.worker.js url
- [#947] - Second pdf loaded not navigate on the second page with [show-all]="false"
- [#948] - fix #947 : reset this._latestScrolledPage on clear method
- [#925] - 9.1.1 version lacks pdfFindController.executeCommand
- [#927] - Fix search
- [#926] - Improve arrangement of annotations
Since FindController.executeCommand
is deprecated, you should now use eventBus
to do search. Example:
@ViewChild(PdfViewerComponent) private pdfComponent: PdfViewerComponent;
search(stringToSearch: string) {
this.pdfComponent.eventBus.dispatch('find', {
query: stringToSearch, type: 'again', caseSensitive: false, findPrevious: undefined, highlightAll: true, phraseSearch: true
});
}
- [#916] - (pageChange) event not getting emitted - Single Page Viewer
- [#921] - Issue 916 - (pageChange) event not getting emitted - Single Page Viewer
- [#873] - feat: Updated pdfjs-dist version to 2.13.216 from 2.11.338
- [#879] - Update css for the version 2.13.216
- [#880] - Use minified worker
- [#882] - Inline images
- [#883] - Drop legacy support
- [#838] - fix css selector for text selection in chrome
- [#857] - Angular 13 Update | Enable Ivy
- [#852] - Encourage the library authors to publish an Ivy distribution.
- [#854] - TypeError: Cannot read properties of null (reading 'selectors')
- [#863] - Loader is stuck when upgrade to newest version
- [#829] - feat: upgrade to pdfjs-dist 2.11.338
- [#834] - Give sane default to host
- [#805] - width of pdf page exceed the maximum width and got trimmed from the right side
- [#811] - .ng2-pdf-viewer-container not in parent container
- [#828] - can't now show digital signature PKCS#7
Now you need to specify how much space pdf-viewer
element should take by using CSS, so either set width
and height
, use flexbox
or use something like positioning
.
<pdf-viewer [src]="src" [original-size]="false" style="width: 400px; height: 500px"></pdf-viewer>
<pdf-viewer [src]="src" [original-size]="false" style="position: absolute; top: 0; right: 0; bottom: 0; left: 0"></pdf-viewer>
- [#779] - perf: do not run change detection on resize events
- [#783] - fix: switch to es5 builds
- [#780] - Version 7.0.0 is not working and build is failing: Module parse failed: Unexpected token
- [#721] - fix: release some memory leaks
- [#723] - fix: remove event listeners from the event bus when the view is destroyed
- [#719] - feat: upgrade to Angular 11
- [#777] - Update pdfjs-dist to 2.7.570
- [#739] - Module '"@types/pdfjs-dist"' has no exported member 'PDFPromise'
- [#740] - Issue #739 fix: change @types/pdfjs-dist to update only patch versions
- [#701] - [external-link-target] seems to be broken
- [#702] - Fix external-link-target bug
- [#688] - Issue #478 IE
- [#478] - Support on IE & Edge
- [#724] - Doesn't compile with pdf.js 2.6 and pdf.js 2.7
- [#717] - Module x has no exported member 'PDFDocumentProxy'
- [#715] - Several errors while building app with --prod flag
- [#627] - Fixing memory issue
- [#505] - Selectable text does not fit the rendered textsplit
- [#610] - Selection rule so that browser can handle it
- [#621] - feat(zoom): configurability of scale (page-width/page-height/page-fit)
- [#531] - Style fix for Issue #505
- [#626] - fix: explicitly set box-sizing of a page to initial
- [#601] - support for pdf.js v2.4.456
- [#553] - Bugfix #539 Only emit pageChage on actual change
- [#539] - [(page)] two way binding causes infinite loop
- [#582] - Fix rotated PDF files have a scale computation issue
- [#554] - Rotated PDF files have a scale computation issue
- [a8ddd42] - Downgrade Typescript for compatibility
- [#569] - Update to angular 9
- [#568] - Project seems be incompatible when used in an Angular 9 proejct
- [#526] - Cancel downloading/rendering, clear rendered pdf
- [#525] - cancel loading task before loading document
- [#502] - Is it possible to terminate a page rendering?
- [#445] - Issue #223 PR
- [#223] - Update page number when scrolling on "show-all" mode
- [#440] - Large PDF >300 pages, rendering problems
- [#422] - Styling issue when trying to putting pdf viewer to right of html content
- [#410] - Large Size PDF(pages) causes Browser Crash
- [#394] - Calling this.pdf.pdfViewer.scrollPageIntoView({ pageNumber: 20 }); does not work
- [#386] - Loading spinners never go away
- [#337] - Avoid reloading after zoom in/out
- [#299] - PDF not show when browser zoom is low or low resolution
- [#261] - Last page never loads when zoom level is below ~0.4
- [#244] - stick-to-page doesn't work
- [#219] - Component stops rendering when display goes out of view
- [#516] - Memory leak issue in IOS when open large PDF file
- [#471] - ng2-pdf not rendering all pages
- [#460] - How to disable scroll on page change?
- [#449] - Blank page IOS
- [#418] - Can't disable scrollPageIntoView while changing pages in Safari
- [#414] - PDFDocumentProxy : destroy() doesn't work : memory bloat
- [#403] - <!doctype html> issue
- [#397] - stick-to-page does not work
- [#392] - Memory issue
- [#388] - Tracking page
- [#372] - Max size / Scroll bars not visible
- [#360] - [show-all]="true", [stick-to-page]="true", [page]="boundValue" does not work if I set 'max-height' to 'pdf-viewer'
Now with the use of CSS
you need to define dimensions (for example: height
) of the pdf-viewer
container element. (pdf-viewer
should become container with scrollbar) This will improve pdf-viewer
performance and eneble all the features.
pdf-viewer {
/* define height */
height: 700px;
/* or use flex for example */
flex: 1;
}
- [#508] - Fix PDF scaling when rotating
- [#509] - add removePageBorders option
- [#510] - Emit pageChange on MultiPageViewer
- Update PDFJS dependency
- [#499] - update page number upon page changing event
- [#474] - Clicking a link in the pdf performs a page change but does not emit a (pageChange) event
- [#487] - Deprecated API usage: getViewport is called with obsolete arguments
- Updated Angular to version 8
- [#482] - Compatibility with Angular 8
- [#475] - Conflict pdf.js 2.0.943 and quill.js 1.3.6
- [#465] - fix: Listen for textlayerrendered events from eventBus
- Changed init approach: Do not initialize viewer in the hidden views (first try)
- [#457] - fix: allow pdfjs typings peer dependency v2
- [#408] - Regression: Version 5.2 Broke (page-rendered)
- [#420] - PR for Issue 408
- [#402] - Page is not working
- [#371] - Cannot read property 'version' of undefined when rendering on the server
- [#393] - Fix for broken search functionality when showPage=false
- [#375] - Search and highlight not working when [show-all]="false" [page]="4"
- [#314] - Search functionality not working if i set show all false.
- [#293] - Highlight on single page load
- [#390] - enable setting render text mode to enchanced
You can now set text rendering mode to RenderTextMode.DISABLED, RenderTextMode.ENABLED or RenderTextMode.ENHANCED
[render-text-mode]="1"
- [#366] - add text-layer-rendered event emitter
- [#311] - Update pdfjs
- [#308] - Not working on IOS on both Chrome and Safari
- [#302] - ng2-pdf-viewer dependencies have conflicts with webpack >= 3
PDFJS is not attached to the window
therefore setting custom path to the worker changed to window.pdfWorkerSrc
:
(<any>window).pdfWorkerSrc = '/pdf.worker.js';
- [#281] - Fix error on resize during loading of pdf
pdfFindController
is now public, that means you can now execute a search on the pdf.
In your component's ts file:
- Add reference to
pdf-viewer
, - then when needed execute search()
@ViewChild(PdfViewerComponent) private pdfComponent: PdfViewerComponent;
search(stringToSearch: string) {
this.pdfComponent.pdfFindController.executeCommand('find', {
caseSensitive: false, findPrevious: undefined, highlightAll: true, phraseSearch: true, query: stringToSearch
});
}
- [#274] - Page two way data binding. Do not reset page to 1.
- [#265] - adding after-render-complete emitter
- [#81] - Add a rendered event in promise
Page rendered event is added, use (page-rendered)=callback($event)
Location of bundles is changed.
Therefor SYSTEMJS
config is now updated to:
var map = {
'ng2-pdf-viewer': 'node_modules/ng2-pdf-viewer/bundles',
'pdfjs-dist': 'node_modules/pdfjs-dist',
};
and then add to packages
var packages = {
'ng2-pdf-viewer': { defaultExtension: 'js' },
'pdfjs-dist': { defaultExtension: 'js' },
};
Now both pdfViewer
and pdfLinkService
are public.
You can now scroll to a page from code:
// define view child
@ViewChild(PdfViewerComponent) private pdfComponent: PdfViewerComponent;
// ...
scrollToPage(page: number) {
this.pdfComponent.pdfViewer.scrollPageIntoView({
pageNumber: page
});
}
- [#200] - PDFDocumentProxy, PDFProgressData are undefined for compiler
Now you can import types where you need them directly from 'ng2-pdf-viewer' package:
import { PDFDocumentProxy, PDFProgressData } from 'ng2-pdf-viewer';
- [#238] - added @types/pdf as peer dependency
- [#162] - Worker Source
- [#232] - Don't overwrite PDFJS.workerSrc if already set
- [#226] - Update Size scale Error
- [#237] - Prevent throwing error: "PDFViewer._setScale: '0' is an unknown zoom value"
- [#182] - Documentation: Load preview for local files
In your code update path
to the worker to be /pdf.worker.js
(<any>window).PDFJS.workerSrc = '/pdf.worker.js';
This should be set before pdf-viewer
component is rendered.
- [#168] - Dependency to a prebuilt-version of pdf.js (pdfjs-dist)
- [#195] - progressData.total is undefined
- [#222] - [render-text]="false" is not working
- [#173] - SSR support
- [#194] - Fit original document into the viewport.
- [#206] - Updated Readme for new [fit-to-page] option.
- [#196] - ng2-pdf-viewer breaks the AOT build with Angular CLI 1.5.0
- [#187] - ng build fails when AOT is enabled
Now ng2-pdf-viewer
exports Module
instead of Component
. That means you have to import PdfViewerModule
instead of PdfViewerComponent
.
import { PdfViewerModule } from 'ng2-pdf-viewer';
@NgModule({
imports: [PdfViewerModule]
})
export class YourModule() {}
- [#174] - 2.0.1 no more scrollbar while zooming
- [#36] - Render text layer, hyperlinks, progressive loading, etc.
- [#18] - Is it possible to enable hyperlinks in the rendered PDF?
- [#165] - pdf.js and pdf.worker.js using different versions
- [#50] - Default Rotation
- [#164] - Doesn't load blob url with 1.2.7
- [#160] - some pdf showing in invert color
- [#156] - Chrome error: Invalid SVG dimensions when 'original-size' = false
- [#154] - Multiple display issues on Safari (iOS+Desktop)
- [#147] - GET http://localhost:4200/nullUniGB-UCS2-H 404 (Not Found)
- [#145] - Issue since update from 1.1.1 to 1.2.1 and not fixed in 1.2.2
- [#144] - pdf annotation not shown in svg format
- [#142] - Error: svg:path attribute d: Expected moveto path command ('M' or 'm'), "L 2318.47 6033.1…".
- [#141] - Mirror/Upside Down document display
- [#139] - PDF from pdfmake not loading
- [#134] - PDF not loading. Shows black color
- [#108] - PDF is loading as plain text as well as PDF, overlapping
- [#92] - Performance error
- [#80] - One by one page
Updated dependencies
- [#140] - Incorrect Font and Font Size Rendering
- [#151] - force inline style to prevent css override font-family and font-size
- Update dist
- [#150] - Used not minified version of pdfjs
- [#146] - Load web worker separately, use minified version of pdfjs
- [#94] - Add load progress callback
- [#130] - ng build --prod fails for AOT
- [#98] - PDF Auto Resize
- [#124] - PDF background disappeared after update to 1.1.4
- Switched canvas to SVG rendering.
- Changed text layer rendering.
- [#89] - Added
data-page-number
attribute
- [#46] - Retina display support
- [#112] - Error handling
- Updated documentation
- [#111] - out of order
- [#72] - Updated for Angular 4
- [#54] - [show-all] is showing first two page only.
- [#48] - Use ngOnchanges() instead of update() inside setters
- [#47] - Use @Output for after load events
Use (after-load-complete)="afterLoadComplete($event)
instead of [after-load-complete]="afterLoadComplete($event)
on <pdf-viewer>
.
You do not need to bind your callback anymore.
Example of afterLoadComplete
callback:
afterLoadComplete(pdf: PDFDocumentProxy) {
this.pdf = pdf;
}
- [#39] - background-color css causes PDF text to become invisible.
- [#43] - PDF is drawn behind the container
- [#37] - Fix the case where src is still not having a value
- [#35] - New release causing blank pdf
- [#29] - Make text selectable
- [#27] - Added support for rotating
- [#25] - Renamed "on-load-complete" to "after-load-complete"
- [#26] - Re-added pdfjs as dependency
Re-installing of package may be required.
- [#20] - Unable to declare in App Module
- Systemjs integration was changed, now you need to link
dist/index.js
file. See [SYSTEMJS.md] - Support for AoT
- [#22] - Support zoom
- other minor changes
- [#7] - Return pdf info
- [#10] - Need to Pass cookies with request for document src
- [#11] - Update to Angular RC6
- [#12] - Update how-to documentation to RC6
- Removed version lock from peer dependency
- [#6] - Limit [page]
- Updated dependencies
- Minor changes
- #2 - Added webpack compatibility
- Changed default value for original size flag
- Added option to show one or all pdf pages altogether
- Updated dependency pdfjs-dist
- Updated peer dependency
- Added simple typings file