Vorbedingungen
Was die Hostanwendung einmal einrichten muss, bevor das erste Beispiel läuft. Fehlt davon etwas, erscheint meist keine Fehlermeldung.
Das Paket braucht keine eigene Registrierung. Das Skript des Viewers kommt als ES-Modul über den Modulkatalog, und die Dokumente liefert die Anwendung selbst aus. Fehlt davon etwas, bleibt der Viewer leer oder der Dialog öffnet sich nicht.
Setzt die Grundeinrichtung aus Basis › Vorbedingungen voraus.
Für DocumentViewer und DialogDocumentViewer
| Was | Wo | Fehlt es |
|---|---|---|
Paket FMH.Komponente.PDFViewer |
.csproj |
Die Infrastruktur kommt transitiv mit |
| Grundeinrichtung aus Basis › Vorbedingungen | Program.cs, _Layout.cshtml |
fehlen das Modul documentviewer.js und die Stile des Viewers. Die HeadIncludes laden jQuery und Bootstrap vor dem Modul, ohne sie scheitert der Dialog |
| Die Dokumente unter einer Adresse, die der Browser abrufen kann | statische Dateien oder eigener Endpunkt | bleibt der Viewer leer |
Die Dateitypen .bcmap und .icc in UseStaticFiles |
Program.cs |
liefert der Server die Zeichensatztabellen und Farbprofile von pdf.js mit 404 aus. PDFs, die sie brauchen, etwa mit asiatischen Zeichensätzen oder Farbprofilen, werden dann unvollständig dargestellt |
// pdf.js lädt Zeichensatztabellen und Farbprofile nach, beide Endungen kennt UseStaticFiles nicht.
var inhaltstypen = new FileExtensionContentTypeProvider();
inhaltstypen.Mappings[".bcmap"] = "application/octet-stream";
inhaltstypen.Mappings[".icc"] = "application/vnd.iccprofile";
app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = inhaltstypen });
Zusätzlich für DialogDocumentViewer
@Html.Fmh(Fmh.DialogDokumentViewer())einmal je Seite, ausserhalb jedes<form>, am besten im Layout. Ohne das Markup des Dialogs gibt es keine Vorschau: Die Links mitdata-siwf-documentviewer-typebleiben gewöhnliche Links, und der Browser lädt das Dokument herunter.
Je Seite gibt es nur einen Viewer, die Ids sind fest. Das ist eine Einschränkung des Bausteins und steht in der Anleitung von DocumentViewer.