Pdf Viewer

This visual utilizes PDF JS to display PDF documents from base64 encoded strings.

This visual utilizes the PDF JS javascript library (https://mozilla.github.io/pdf.js/) to display PDF documents from base64 encoded strings.

The visual reads pdfs from the Power BI data model which requires the documents to be converted into base64 encoded strings before imported into the data model.

Converting pdfs to base64 strings can be accomplished in a number of ways.

For example in Python:

import base64

with open(<[path to pdf]>, “rb”) as pdf_file:

base64String = base64.b64encode(pdf_file.read())

In C#:

using System;

using System.IO;

string pdf_file = <[path to pdf]>;

Byte[] bytes = File.ReadAllBytes(pdf_file);

String base64String = Convert.ToBase64String(bytes);

The visual is restricted to display one pdf at a time and will display a warning otherwise.

With one document selected the Pdf Viewer displays pdf documents with controls that enables the user to switch pages and zoom in and out. On the format pane there are also possibilities to show/hide header controls and overflow scrolling.

It is most suitable to use with small document since columns in tabular models can contain maximum ca 30.000 characters.

The workaround for files that require more characters is to split the strings into multiple columns on import and concatenate them back to their original form in a computed column.

Sample pbix file can be found here: https://github.com/DanielSallander/PowerBI-visuals/tree/master/Pdf-Viewer

Sample pbix contains two examples:

  • Example 1: Showing two pdf documents with multiple pages.
  • Example 2: Showing table with invoices which displays pdf on hover and possibility to drillthrough for full pdf document. This example has the scroll bar option and header option disabled for the hovered pdf.

Known issues:

  • There are some compatibily issues with Internet Explorer 11 and earlier
  • If other zoom than 100% is selected it will be reset to 100% when switching pages
Add-in capabilities

When this add-in is used, itCan read and make changes to your documentCan send data over the Internet


***** Related Blog Posts *****
Creating Multi Threaded Dynamic Visuals – Advanced Power BI Technique
Custom Dynamic Segmentation Using DAX In Power BI

***** Related Video Tutorials *****
Create Dynamic Visuals Based On Ranking in Power BI w/DAX

Outlier Detection & Visualization in Power BI – Advanced DAX
How To Use Virtual Tables With COUNTROWS in Power BI – DAX Formula Technique
RANKX Considerations – Power BI & DAX Formula Concepts
Manufacturing Operations – Power BI Showcase

Center of Excellence

***** Related Course Modules *****
Ultimate Beginners Guide to Power BI
Power BI Super Users Workshop
Solving Analytical Scenarios w/ Power BI & DAX
Advanced Analytics in Power BI
Financial Reporting w/ Power BI
Power BI Showcases

***** Related Support Forum Posts*****
Custom Visual AppStore
Custom Visuals vs Standard Visuals
Power BI – Creativity