Wie kann ich einen QR-Code in DOCX mit OOXML erzeugen?

Antwort

Um einen QR-Code in einer DOCX-Datei mit Hilfe von OOXML (Office Open XML) zu erzeugen, kannst du die folgenden Schritte befolgen: 1. **QR-Code generieren**: Zuerst musst du einen QR-Code generieren. Dies kann mit einer Bibliothek wie ZXing oder einer Online-API erfolgen. Der QR-Code sollte als Bilddatei (z.B. PNG oder JPEG) gespeichert werden. 2. **DOCX-Datei erstellen oder öffnen**: Verwende eine Bibliothek wie `DocumentFormat.OpenXml` in C#, um eine neue DOCX-Datei zu erstellen oder eine bestehende zu öffnen. 3. **Bild in die DOCX-Datei einfügen**: - Füge das Bild des QR-Codes in die DOCX-Datei ein. Hier ist ein Beispiel, wie du das in C# machen kannst: ```csharp using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using System.IO; public void InsertQrCode(string docxFilePath, string qrCodeImagePath) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(docxFilePath, true)) { MainDocumentPart mainPart = wordDoc.MainDocumentPart; // Bild hinzufügen AddImageToBody(mainPart, qrCodeImagePath); } } private void AddImageToBody(MainDocumentPart mainPart, string imagePath) { // Bildstream öffnen using (FileStream stream = new FileStream(imagePath, FileMode.Open)) { ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Png); imagePart.FeedData(stream); AddImageToDocument(mainPart.GetIdOfPart(imagePart)); } } private void AddImageToDocument(string relationshipId) { var element = new Drawing( new DW.Inline( new DW.Extent() { Cx = 990000L, Cy = 792000L }, new DW.EffectExtent() { LeftEdge = 0L, TopEdge = 0L, RightEdge = 0L, BottomEdge = 0L }, new DW.DocProperties() { Id = (UInt32Value)1U, Name = "QR Code" }, new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }), new A.Graphic( new A.GraphicData( new A.Pictures.Picture( new A.Pictures.NonVisualPictureProperties( new A.Pictures.NonVisualDrawingProperties() { Id = (UInt32Value)0U, Name = "QR Code" }, new A.Pictures.NonVisualPictureDrawingProperties()), new A.Pictures.BlipFill( new A.Blip() { Embed = relationshipId }, new A.Stretch(new A.FillRectangle())), new A.Pictures.ShapeProperties( new A.Transform2D( new A.Extents() { Cx = 990000L, Cy = 792000L }, new A.OfficeArtExtensionList()))))) )); mainPart.Document.Body.AppendChild(new Paragraph(new Run(element))); } ``` 4. **DOCX speichern**: Speichere die Änderungen an der DOCX-Datei. Mit diesen Schritten kannst du einen QR-Code in eine DOCX-Datei einfügen. Stelle sicher, dass du die entsprechenden Bibliotheken in deinem Projekt referenzierst.

Kategorie: Technologie Tags: QRCode DOCX OOXML
Frage stellen und sofort Antwort erhalten