Skip to content

Latest commit

 

History

History
91 lines (66 loc) · 3.99 KB

File metadata and controls

91 lines (66 loc) · 3.99 KB

dskripchenko/php-docx-phpword

Die HTML-Ebene für PHPWord-Pipelines. Eine typisierte Brücke zwischen dem Objektmodell von PHPWord und dem AST von php-docx: PhpWord-Objekte nach sauberem HTML exportieren (den Export, den PHPWord nicht bietet), HTML in PhpWord importieren, beliebige DOCX direkt in PHPWord-Modelle einlesen, Vorlagenvariablen erkennen. Und dabei in der gewohnten API bleiben.

🌐 English · Deutsch · Русский · 中文

Tests Latest Version License: MIT PHP

Installation

composer require dskripchenko/php-docx-phpword

Bringt dskripchenko/php-docx (MIT, ohne Abhängigkeiten) neben Ihr vorhandenes phpoffice/phpword. Dieses Paket steht unter MIT; PHPWord bleibt LGPL-3.0 — eine ganz normale Composer-Abhängigkeit, an Ihrem Code ändert sich nichts.

Was Sie bekommen

PhpWord → HTML (das Kernstück)

use Dskripchenko\PhpDocxPhpWord\PhpWordBridge;

$html = PhpWordBridge::toHtml($phpWord);   // sauberes HTML, Styles inline

HTML → PhpWord

$phpWord = PhpWordBridge::fromHtml('<h1>Bericht</h1><p>Text mit <b>Fettdruck</b>.</p>');
// … weiter mit PHPWord-eigenen Aufrufen und Writern

Beliebige DOCX in PhpWord-Objekte einlesen

$phpWord = PhpWordBridge::readToPhpWord(file_get_contents('from-word.docx'));

Verwendet den Reader von php-docx (vollständige Stilkaskade; Ausgaben von Word, Google Docs, LibreOffice und PHPWord — die Treue wird an einem externen Korpus gemessen) und bildet das Ergebnis auf PHPWord-Modelle ab. PHPWords eigener Reader ist nicht beteiligt.

Vorlagenvariablen erkennen

$variables = PhpWordBridge::detectVariables($phpWordOrDocxBytes);
// MERGEFIELD, SDT-Inhaltssteuerelemente, Muster {{x}} / ${x} / %x%

Zugang zur AST-Ebene

PhpWordBridge::toDocument($phpWord) und PhpWordBridge::fromDocument($document) legen die Abbildung selbst offen — für Pipelines, die anschließend in php-docx weiterlaufen.

Die gemeinsame Elementmenge (die ehrliche Grenze)

Die Brücke überträgt, was beide Modelle ausdrücken können:

Wird übernommen Wird nicht übernommen (übersprungen, nie geraten)
Absätze, Text-Runs (fett, kursiv, unterstrichen, durchgestrichen, hoch-/tiefgestellt, Farbe, Größe, Schriftname) benannte Stile und Themenstile (nur aufgelöste Werte)
Überschriften 1–6 Diagramme, Inhaltsverzeichnis, Kontrollkästchen, OLE
Tabellen inkl. gridSpan / vMerge Änderungsverfolgung, Kommentare
Aufzählungen und nummerierte Listen (auch verschachtelt) Fuß- und Endnoten, OMML-Formeln
Hyperlinks, Bilder, Zeilen- und Seitenumbrüche Formularfelder
Standard-Kopf-/Fußzeilen eigene Varianten für erste und gerade Seiten, Wasserzeichen
Absatzausrichtung, Abstände, Einzüge Feinheiten der Abschnitts- und Seitengeometrie

Stützt sich ein Dokument auf die rechte Spalte, tut die Brücke nicht so, als wäre alles in Ordnung: Inhalte außerhalb der gemeinsamen Menge werden bewusst stillschweigend verworfen. Für verlustfreie DOCX-Rundläufe bleiben Sie in php-docx selbst.

Lizenz

MIT. Hängt über Composer von phpoffice/phpword (LGPL-3.0) ab — genau der Fall dynamischen Bindens, für den die LGPL geschrieben wurde.