Giter Club home page Giter Club logo

intellij-pdf-viewer's Introduction

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

  • Document navigation
  • Integration with TeXiFy IDEA
  • Auto-refresh on document change
  • Text search
  • Document scaling
  • Thumbnail view
  • Sections list
  • Structure view
  • Presentation mode
  • Document information
  • Pages spread (even/odd)
  • Horizontal/vertical pages scroll directions

Shortcuts

  • Move editor up or down: up and down arrow keys.
  • Move editor right or left: right and left arrow keys.
  • Move to the next page: when the whole width of the page is in view, the right and left arrow keys will navigate to the next and previous page.
  • Zoom in: Ctrl + +, Ctrl + =.
  • Zoom out: Ctrl + -
  • Reset zoom: Ctrl + 0
  • Enter presentation mode: Ctrl + Alt + p

Features Notes

  • Text search will work only in text-based documents. For example, it won't work in all-images documents (books scans).
  • For the sections list or structure view to work documents should define sections list. Otherwise, sections view won't be active, and the structure view will be empty.

Use cases

  • Writing latex documents
  • Split-view code and documentation
  • Presentations with live-coding
  • ...

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

  • Add https://plugins.jetbrains.com/plugins/alpha/14494 to the list of plugin repositories in Settings > Plugins > ⚙️ > Manage Plugin Repositories > . (See Custom plugin repositories)

  • Or manually download latest alpha release from here and install it in the same way as stable version.

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:

  • plugin - contains most of the IDE-side plugin code.
  • model - shared classes representing PDF Viewer data model.
  • mpi - common implementation of message passing interface which is needed to pass messages between IDE and browser.
  • web-view
    • bootstrap - sets up PDF.js and runs bootstrap code for actual web-view application.
    • viewer - contains actual web-view implementation.

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.

intellij-pdf-viewer's People

Contributors

adikso avatar dependabot[bot] avatar firsttimeinforever avatar nikolaisviridov avatar phpirates avatar slideclimb avatar zhengkeli 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.