FirstTimeInForever / intellij-pdf-viewer

Plugin for viewing PDF documents in IntelliJ-based IDEs.
https://github.com/FirstTimeInForever/intellij-pdf-viewer
MIT License
79 stars 19 forks source link
intellij-plugin kotlin pdf

IntelliJ PDF Viewer

JetBrains plugins License Latest release

IntelliJ PDF Viewer plugin adds support for viewing PDF files in IntelliJ-based IDEs. This plugin uses recently integrated (2020.2) CEF (Chromium Embedded Framework) browser to render PDF documents with PDF.js library.

Features

Shortcuts

Features Notes

Use cases

Providing Feedback

If you want to support PDF Viewer development, just give a star on GitHub or write a review on the marketplace page.

In case you encountered any bugs, feel free to create an issue.

Installation

Stable Versions

Alpha Versions

Screenshots

Plugin screenshot Search

Development

To build plugin use buildPlugin gradle task. This will produce ready to use zip archive with plugin contents.

To run/debug IDE with this plugin runIde task should be used.

Architecture

Plugin code is divided into several modules:

Notes on JCEF support

Starting from 2020.2 EAP (more precisely 202.4357.23-EAP-SNAPSHOT) all IDEs should have bundled JCEF with ide.browser.jcef.enabled registry flag set to true. So the plugin should just work. If it doesn't work, please check if Markdown plugin works. Check its preview providers and confirm that JCEF is present.

Builds before 2020.2 EAP

You can't run this plugin without modifying PdfEditorPanelProvider with builds before 2020.2 EAP. If you really want to - you should change JCEF presence detection with code from early versions (look at 0.0.4 tag).

Since CEF browser is still an experimental feature, there is a high chance that it is not shipped by default with your IDE. To be able to use CEF functionality you need to switch to version of JBR that supports it. See this issue for more details. You can learn how to switch IDE runtime here.

Disclaimer

This plugin is still in it's early stage, so some major bugs can occur.