Wie kann ich mit OOXML einen QR-Code erzeugen?

Antwort

Um mit OOXML (Office Open XML) einen QR-Code zu erzeugen, kannst du die folgenden Schritte befolgen: 1. **QR-Code-Bibliothek verwenden**: Zunächst benötigst du eine Bibliothek, die QR-Codes generieren kann. Eine beliebte Wahl ist die `ZXing`-Bibliothek (Zebra Crossing) oder `QRCoder` für .NET-Anwendungen. 2. **QR-Code generieren**: Verwende die gewählte Bibliothek, um einen QR-Code zu erstellen. Hier ein einfaches Beispiel mit `QRCoder` in C#: ```csharp using QRCoder; public byte[] GenerateQRCode(string text) { using (var qrGenerator = new QRCodeGenerator()) { using (var qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q)) { using (var qrCode = new QRCode(qrCodeData)) { return qrCode.GetGraphic(20); // 20 ist die Größe des QR-Codes } } } } ``` 3. **QR-Code in OOXML-Dokument einfügen**: Nachdem du den QR-Code als Bild (z.B. PNG) generiert hast, kannst du ihn in ein OOXML-Dokument (z.B. Word oder Excel) einfügen. Hier ein Beispiel, wie du ein Bild in ein Word-Dokument einfügst: ```csharp using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; public void InsertImageToWord(string filePath, byte[] imageBytes) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(filePath, true)) { MainDocumentPart mainPart = wordDoc.MainDocumentPart; ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Png); using (MemoryStream stream = new MemoryStream(imageBytes)) { imagePart.FeedData(stream); } AddImageToBody(wordDoc, mainPart.GetIdOfPart(imagePart)); } } private void AddImageToBody(WordprocessingDocument wordDoc, 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 DW.GraphicFrameLocks() { NoChangeAspect = true }), new DW.Graphic( new DW.GraphicData( new A.Pictures( new A.BlipFill( new A.Blip() { Embed = relationshipId }, new A.Stretch(new A.FillRectangle()) ), new A.ShapeProperties(new A.Transform2D( new A.Offset() { X = 0L, Y = 0L }, new A.Extents() { Cx = 990000L, Cy = 792000L })) ) ) { Uri = "http://schemas.openxmlformats.org/drawingml/2006/picture" }) ) ); wordDoc.MainDocumentPart.Document.Body.AppendChild(new Paragraph(new Run(element))); wordDoc.MainDocumentPart.Document.Save(); } ``` 4. **Dokument speichern**: Vergiss nicht, das Dokument zu speichern, nachdem du den QR-Code eingefügt hast. Mit diesen Schritten kannst du einen QR-Code generieren und in ein OOXML-Dokument einfügen.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Was ist der Unterschied zwischen xdr:blipFill und pic:blipFill in OOXML?

In OOXML (Office Open XML) gibt es verschiedene Namensräume, die unterschiedliche Aspekte von Dokumenten definieren. Der Unterschied zwischen `xdr:blipFill` und `pic:blipFill` liegt in den spezif... [mehr]

In welcher Maßeinheit werden in OOXML für Excel Maße von Bildern angegeben?

In OOXML (Office Open XML) für Excel werden die Maße von eingefügten Bildern in EMUs (English Metric Units) angegeben. Ein EMU entspricht 1/3600000 von einem Meter. Diese Einheit erm&o... [mehr]