PDF Atelier Logo

PDF Atelier

Export DPI Multiplier

Control the pixel density (resolution multiplier) of exported PDF pages. Trade off between sharpness and file size to suit your use case.

Export DPI Multiplier

The exportDpiMultiplier property controls the render resolution of each page when a PDF is exported. It acts as a scale multiplier applied on top of the base render scale, so the final rasterised canvas dimensions grow quadratically — a value of 2 renders each page at four times the pixel area of 1.

Supported Values

ValueLabelDescription
1.0StandardWeb-resolution raster. Smallest file size; text may appear slightly soft when zoomed in.
1.5Balanced ⭐The recommended sweet spot. Noticeably sharper text with a modest file size increase.
2.0High QualityPrint-ready sharpness. Best visual results; file size increases significantly.
2.0+UltraFor specialised print or archival workflows. Very large files and high memory usage.

Performance Warning: Because pixel area scales quadratically, doubling exportDpiMultiplier from 1 to 2 produces a canvas that is 4× larger in memory. For documents with many pages (10+), high multipliers can significantly increase export time and risk out-of-memory errors on low-end or mobile devices. The default value of 2 is a safe maximum for general use.

Prop

Type

Implementation

import { PDFAtelier } from '@innosoft/pdf-atelier-react';

export default function ExportDpiExample() {
  return (
    <PDFAtelier
      src="/document.pdf"
      license="YOUR_LICENSE_KEY"
      exportDpiMultiplier={1.5}
      showSave={true}
    />
  );
}

Preset Examples:

// Smallest file — good for previews or email attachments
<PDFAtelier src="/document.pdf" exportDpiMultiplier={1} license="..." />

// Balanced quality (recommended default)
<PDFAtelier src="/document.pdf" exportDpiMultiplier={1.5} license="..." />

// Print-quality export
<PDFAtelier src="/document.pdf" exportDpiMultiplier={2} license="..." />
import { Component } from '@angular/core';
import { PdfAtelierWrapper } from '@innosoft/pdf-atelier-angular';

@Component({
  standalone: true,
  selector: 'app-export-dpi',
  imports: [PdfAtelierWrapper],
  template: `
    <pdf-atelier-wrapper
      [src]="pdfSrc"
      [license]="licenseKey"
      [exportDpiMultiplier]="dpiMultiplier"
      [showSave]="true"
    ></pdf-atelier-wrapper>
  `,
})
export class ExportDpiComponent {
  pdfSrc = '/document.pdf';
  licenseKey = 'YOUR_LICENSE_KEY';
  dpiMultiplier = 1.5;
}

Dynamic Quality Selector Example:

@Component({
  selector: 'app-quality-selector',
  imports: [PdfAtelierWrapper, CommonModule],
  template: `
    <div class="quality-controls">
      <label>Export Quality:</label>
      <select (change)="onQualityChange($event)">
        <option value="1">Standard (smallest)</option>
        <option value="1.5" selected>Balanced</option>
        <option value="2">High Quality (print)</option>
      </select>
    </div>
    <pdf-atelier-wrapper
      [src]="pdfSrc"
      [license]="licenseKey"
      [exportDpiMultiplier]="dpiMultiplier"
      [showSave]="true"
    ></pdf-atelier-wrapper>
  `,
})
export class QualitySelectorComponent {
  pdfSrc = '/document.pdf';
  licenseKey = 'YOUR_LICENSE_KEY';
  dpiMultiplier = 1.5;

  onQualityChange(event: Event) {
    this.dpiMultiplier = parseFloat((event.target as HTMLSelectElement).value);
  }
}
<script setup lang="ts">
import PdfAtelierWrapper from '@innosoft/pdf-atelier-vue';
import { ref } from 'vue';

const pdfSrc = '/document.pdf';
const licenseKey = 'YOUR_LICENSE_KEY';
const dpiMultiplier = ref(1.5);
</script>

<template>
  <PdfAtelierWrapper
    :src="pdfSrc"
    :license="licenseKey"
    :exportDpiMultiplier="dpiMultiplier"
    :showSave="true"
  />
</template>

Device-Aware Quality Example:

<script setup lang="ts">
import PdfAtelierWrapper from '@innosoft/pdf-atelier-vue';
import { computed } from 'vue';

const pdfSrc = '/document.pdf';
const licenseKey = 'YOUR_LICENSE_KEY';

// Use lower DPI on mobile to avoid OOM errors
const dpiMultiplier = computed(() =>
  window.innerWidth < 768 ? 1 : 1.5
);
</script>

<template>
  <PdfAtelierWrapper
    :src="pdfSrc"
    :license="licenseKey"
    :exportDpiMultiplier="dpiMultiplier"
    :showSave="true"
  />
</template>
<!DOCTYPE html>
<html>
  <head>
    <script type="module">
      import '@innosoft/pdf-atelier-core';
    </script>
  </head>
  <body>
    <!-- Balanced quality export -->
    <pdf-atelier
      src="/document.pdf"
      license="YOUR_LICENSE_KEY"
      export-dpi-multiplier="1.5"
      show-save="true"
    ></pdf-atelier>
  </body>
</html>

JavaScript Control Example:

<pdf-atelier
  id="pdfViewer"
  src="/document.pdf"
  license="YOUR_LICENSE_KEY"
  show-save="true"
></pdf-atelier>

<script type="module">
  import '@innosoft/pdf-atelier-core';

  const viewer = document.getElementById('pdfViewer');

  // Choose resolution tier based on device capability
  const isLowEndDevice = navigator.hardwareConcurrency <= 2;
  viewer.exportDpiMultiplier = isLowEndDevice ? 1 : 1.5;
</script>

Use Cases

1. Email Attachments / Preview Exports

Use a lower multiplier so the exported file is quick to generate and small enough to attach:

<PDFAtelier src="/document.pdf" license="YOUR_LICENSE_KEY" exportDpiMultiplier={1} />

2. Print-Ready Archival

For contracts, reports, or documents intended for professional printing:

<PDFAtelier src="/document.pdf" license="YOUR_LICENSE_KEY" exportDpiMultiplier={2} />

3. Adaptive Quality by Device

Automatically lower the multiplier on mobile to keep memory consumption safe:

const dpi = window.innerWidth < 768 ? 1 : 1.5;

return (
  <PDFAtelier
    src="/document.pdf"
    license="YOUR_LICENSE_KEY"
    exportDpiMultiplier={dpi}
  />
);

4. User-Selectable Export Quality

Let power-users pick their own quality tier at export time:

const [dpi, setDpi] = useState(1.5);

return (
  <>
    <select onChange={(e) => setDpi(parseFloat(e.target.value))}>
      <option value="1">Standard</option>
      <option value="1.5">Balanced</option>
      <option value="2">High Quality</option>
    </select>
    <PDFAtelier src="/document.pdf" license="YOUR_LICENSE_KEY" exportDpiMultiplier={dpi} />
  </>
);

Notes

  • exportDpiMultiplier applies only during export — it has no effect on the on-screen rendering quality.
  • Memory usage grows as multiplier². Prefer values ≤ 2 for documents with more than 10 pages.
  • The property does not persist across sessions; set it programmatically each time if you need persistence based on user preference.

On this page