Dieser Artikel beschreibt eine <print-preview>
Webkomponente, die für eine präzise Drucksteuerung und Vorschau entwickelt wurde und eine große Herausforderung bei der Migration einer VBA-Anwendung aus den Jahren 1994–1996 auf eine moderne webbasierte E-Commerce-Plattform bewältigt. Die Abhängigkeit der ursprünglichen Anwendung von MS Access-Berichten erforderte eine robuste Lösung zum Generieren druckbarer Dokumente wie Lieferscheine und Rechnungen in der neuen Webumgebung.
Die <print-preview>
-Komponente bietet mehrere Hauptfunktionen:
Umsetzung:
Die Komponente wird wie folgt in HTML integriert:
<code class="language-html"><print-preview><paper-sheet><h1>Hello, Printer!</h1><p>This will look great on paper.</p></paper-sheet></print-preview></code>
Jedes <paper-sheet>
-Element repräsentiert eine einzelne Seite. Wichtig ist, dass die Komponente ein direktes untergeordnetes Element des <body>
-Elements sein muss und nur eine Instanz zulässig ist. Die Komponente wird über JavaScript geladen:
<code class="language-javascript">import PrintPreview from './index.js';</code>
Und angezeigt mit der preview()
-Methode:
<code class="language-javascript">const printPreview = document.querySelector('print-preview'); if (printPreview) printPreview.preview();</code>
Beispiel für eine Vorlage (Rechnungen):
Vorlagen ersetzen die Funktionalität von Access-Berichten:
<code class="language-javascript">const invoiceTemplate = (data) => data.map((obj) => { // ... (Invoice data processing) ... return ` <paper-sheet><h2>Invoice</h2> <p> ... </p> <table part="table"></table></paper-sheet> `; }).join('');</code>
Styling mit CSS und ::part
:
CSS und das Pseudoelement ::part
bieten Stilfunktionen ähnlich einem Berichtsdesigner:
<code class="language-css">print-preview { &::part(table) { border-collapse: collapse; margin-block-start: 4rem; width: 100%; } // ... (other styles) ... }</code>
Direktes Styling innerhalb der Vorlage ist ebenfalls möglich.
Bildbearbeitung:
Die Komponente ermöglicht die Steuerung der Bildsichtbarkeit in der Druckvorschau und bietet Optionen zum Ein-, Ausblenden oder Anzeigen als Umrisse, um Druckertoner zu sparen.
Lokalisierung:
Die Schnittstellensprache der Komponente kann mithilfe des i18n
-Objekts:
<code class="language-javascript">PrintPreview.i18n = { es: { // ... (Spanish translations) ... } };</code>
Fazit:
Die <print-preview>
-Komponente bietet eine leistungsstarke Lösung für die Verwaltung der Druckausgabe in Webanwendungen und ersetzt effektiv die Berichtserstellungsfunktionen älterer Systeme. Der Autor weist darauf hin, dass sich die Komponente noch in der Entwicklung befindet und möglicherweise Updates und Fehlerbehebungen erhält. Zur weiteren Erkundung stehen eine Demo und ein GitHub-Repository zur Verfügung.
Titelbild von Wendelin Jacober: https://www.php.cn/link/86158a6b3924670a32dad65bbc41bd95
Das obige ist der detaillierte Inhalt vonErstellen einer Print -Vorschau -Webkomponente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!