import { Meta, Canvas } from '@storybook/addon-docs/blocks';
import { Example, CssVariables, JumpTo } from '../../.storybook/blocks';
import * as stories from './print.stories';
import { Button } from '../react';
import styles from '../styles.module.css';

<Meta of={stories} />

# Print
> Print brukes for å lage PDF eller utskriftsvennlige rapporter og dokumenter med Mattilsynets designprofil.
> I nettleser får du en A4-forhåndsvisning, og ved PDF/utskrift får du sidetall, bunnlinje og kontrollerte sideskift som unngår brudd i bilder, lister og tabeller.

<JumpTo />

## Kode
- All HTML du lager, kan sendes til Mattilsynets [HTML-til-PDF-tjeneste](https://github.com/Mattilsynet/html-to-pdf)
  - Koden legges automatisk i `<body>`, så du trenger ikke lage head, meta osv selv.
  - Tjenesten bruker headless Chrome, så bruk Chromes print-preview ved lokal testing
  - Alle bilder må inlines som `base64`-urler så de blir en del av HTML-strengen
  - All CSS og fonter må også inlines, dette hjelper designsystemet med slik:

```
// Import CSS as text if using Vite
import css from '@mattilsynet/design/styles.css?raw';

// ...or import css with pure Node:
import path from "node:path";
import fs from "node:fs";

const cssPath = path.resolve(process.cwd(), 'node_modules/@mattilsynet/design/mtds/styles.css');
const css = fs.readFileSync(cssPath, 'utf8');


<div id="my-print">
  <style>
    {css}
    :root {
      --mtdsc-print-office: 'ditt kontor'; /* Required */
      --mtdsc-print-department: 'din avdeling'; /* Required */
      --mtdsc-print-classification: none; /* Optional, remove to get "Unntatt offentlighet" */

      --mtdsc-print-back-tagline: none; /* Optional, if using data-variant="back" */
      --mtdsc-print-back-footer: none; /* Optional, if using data-variant="back" */
    }
  </style>
  <section className="print">
    innhold her
  </section>
</div>
```

## Brevmal

- For å legge inn mottaker, lag en `<address>` og `<dl>` inne i en `<div>`:

```
<div>
  <address>
    Eksempelstedet AS
    <br />Uendeligveien 999
    <br />0000 Sted
  </address>
  <dl>
    <dt>Vår ref:</dt><dd>2004/12345</dd>
    <dt>Dato:</dt><dd>01.01.2024</dd>
    <dt>Org.nr:</dt><dd>123456789</dd>
  </dl>
</div>
```

<div className="sbdocs-canvas-thumbnail">
  <Button data-arrow data-variant="primary" target="_blank" href="/iframe.html?globals=&id=designsystem-print--brevmal">Se brevmal i ny fane</Button>
  <Canvas of={stories.Brevmal} />
</div>

## Rapportmal
- Legg til en `<section className="print" data-variant="front">` for forside
- Legg til en `<section className="print" data-variant="back">` for bakside

<div className="sbdocs-canvas-thumbnail">
  <Button data-arrow data-variant="primary" target="_blank" href="/iframe.html?globals=&id=designsystem-print--rapportmal">Se rapportmal i ny fane</Button>
  <Canvas of={stories.Rapportmal} />
</div>

<CssVariables component='print' />

## Vedtak
- Det finnes mye, godt utarbeidet materiale for hvordan vedtak skal utformes, og det er viktig at vi følger dette så langt det lar seg gjøre. [Se rapportkvalitet →](https://mattilsynet.sharepoint.com/:f:/r/sites/TVRTilsyn/Delte%20dokumenter/Rapportkvalitet/Oppl%C3%A6ring%20Nytt%20oppsett%20i%20MATS?csf=1&web=1&e=94K1gM)
- Designsystemet har foreløpig ingen spesifikke komponenter for vedtak, men har heller kodet opp et eksempel foreløpig.

<div className="sbdocs-canvas-thumbnail">
  <Button data-arrow data-variant="primary" target="_blank" href="/iframe.html?globals=&id=designsystem-print--vedtak">Se vedtak i ny fane</Button>
  <Canvas of={stories.Rapportmal} />
</div>

<CssVariables component='print' />