Mit einer .NET API auf HTML Canvas zeichnen
Aspose.HTML for .NET
stellt den HTML Canvas 2D-Kontext über die Schnittstelle
ICanvasRenderingContext2D
bereit. Erstellen Sie ein HTMLCanvasElement, fordern Sie dessen "2d"-Kontext an, führen Sie Zeichenbefehle in C# aus und rendern Sie das enthaltende HTMLDocument als PDF oder in ein anderes unterstütztes Ausgabeformat.
Auf HTML Canvas zeichnen und als PDF rendern
Das Beispiel erstellt eine Zeichenfläche mit 500 × 180 Pixeln, zeichnet Verlaufstext und ein Rechteck innerhalb ihrer Grenzen und rendert das fertige HTML-Dokument als canvas.pdf.
C#-Code zum Zeichnen auf HTML Canvas 2D
using Aspose.Html;
using Aspose.Html.Dom.Canvas;
using Aspose.Html.Rendering.Pdf;
using HTMLDocument document = new HTMLDocument();
// Create and configure the canvas
HTMLCanvasElement canvas =
(HTMLCanvasElement)document.CreateElement("canvas");
canvas.Width = 500;
canvas.Height = 180;
canvas.SetAttribute("style", "border: 1px solid #d3d3d3;");
document.Body.AppendChild(canvas);
// Get the 2D drawing context
ICanvasRenderingContext2D context =
(ICanvasRenderingContext2D)canvas.GetContext("2d");
// Create a horizontal gradient
ICanvasGradient gradient =
context.CreateLinearGradient(0, 0, canvas.Width, 0);
gradient.AddColorStop(0, "magenta");
gradient.AddColorStop(0.5, "blue");
gradient.AddColorStop(1, "red");
// Draw gradient text and a rectangle
context.FillStyle = gradient;
context.Font = "bold 32px sans-serif";
context.FillText("HTML Canvas 2D", 20, 70);
context.FillRect(20, 110, 460, 30);
// Render the HTML document to PDF
using PdfDevice device = new PdfDevice("canvas.pdf");
document.RenderTo(device);
Schritte zum Zeichnen und Rendern von HTML Canvas
- Erstellen Sie ein
HTMLDocumentund fügen Sie dessen Dokumentkörper einHTMLCanvasElementhinzu. - Legen Sie
WidthundHeightfest, um Bitmap-Abmessungen und Koordinatenraum zu definieren. - Rufen Sie
GetContext("2d")auf und wandeln Sie das Ergebnis inICanvasRenderingContext2Dum. - Konfigurieren Sie Zeichenstile und rufen Sie Methoden wie
FillText()undFillRect()auf. - Erstellen Sie ein
PdfDeviceund übergeben Sie es anRenderTo(), um das Dokument als PDF zu schreiben.
HTML Canvas 2D-Funktionen und Rendering-Hinweise
- Formen und Pfade. Zeichnen Sie gefüllte oder umrandete Rechtecke, Linien, Kurven, Bögen und benutzerdefinierte Pfade mit Canvas 2D-Methoden.
- Text und Bilder. Legen Sie Schriftarten und Zeichenstile fest, rendern Sie Text und platzieren Sie unterstützte Bildquellen auf der Zeichenfläche.
- Farben, Verläufe und Muster. Weisen Sie
FillStyleundStrokeStyleVollfarben,ICanvasGradient-Objekte oder Muster zu. - Transformationen und Komposition. Verschieben, drehen, skalieren und beschneiden Sie, steuern Sie die Deckkraft und wählen Sie, wie neue Zeichenoperationen mit vorhandenen Pixeln kombiniert werden.
- Bitmap-Abmessungen sind wichtig.
WidthundHeightdefinieren die zugrunde liegende Bitmap. Wird nur die CSS-Größe skaliert, kann die Bitmap gestreckt und unscharf werden. - Das Rendering erfasst den aktuellen Zustand. Schließen Sie alle Zeichenbefehle vor
RenderTo()ab. Verwenden SiePdfDevice,XpsDevice,DocDeviceoderImageDevicefür eine andere unterstützte Ausgabe.
Dokumentation zu Canvas 2D und Rendering
Unter HTML5 Canvas bearbeiten finden Sie beide unterstützten Abläufe: das Laden von HTML, das über JavaScript zeichnet, und das direkte Zeichnen mit der C# Canvas 2D API. Die ICanvasRenderingContext2D API-Referenz listet verfügbare Eigenschaften und Zeichenmethoden auf. Lesen Sie Rendering-Geräte , wenn PDF-, XPS-, DOCX- oder Bildausgabe mit gerätespezifischen Optionen erforderlich ist.
Aspose.HTML for .NET installieren
Installieren Sie Aspose.HTML for .NET aus NuGet mit der .NET CLI:
dotnet add package Aspose.HTML
Alternativ können Sie die Benutzeroberfläche des NuGet-Paket-Managers verwenden oder Install-Package Aspose.HTML in der Paket-Manager-Konsole ausführen. Einzelheiten zur Einrichtung finden Sie in der
Installationsanleitung
. Mit einer
temporären Lizenz
können Sie die API ohne Einschränkungen der Evaluierung testen.
Häufige Fragen zu HTML Canvas 2D
1. Worin unterscheiden sich HTMLCanvasElement und ICanvasRenderingContext2D?
Das Element HTMLCanvasElement stellt den <canvas>-Knoten dar und definiert seine Bitmap-Abmessungen. ICanvasRenderingContext2D ist die von GetContext("2d") zurückgegebene Zeichenschnittstelle mit Stil-, Pfad-, Text-, Bild-, Transformations- und Pixeloperationen.
2. Warum kann die HTML Canvas-Ausgabe unscharf oder gestreckt aussehen?
Die Eigenschaften Width und Height definieren die zugrunde liegende Bitmap. Zeigt CSS sie in deutlich anderen Abmessungen an, skaliert der Browser oder Renderer die Pixel. Legen Sie die Bitmap-Größe für die gewünschte Ausgabe fest, statt nur CSS-Skalierung zu verwenden.
3. Kann Aspose.HTML eine mit JavaScript gezeichnete Canvas rendern?
Ja. Laden Sie ein HTML-Dokument mit dem <canvas>-Element und seinem Skript, lassen Sie die Skriptausführung abschließen und konvertieren oder rendern Sie anschließend das Dokument. Direktes Zeichnen in C# mit ICanvasRenderingContext2D ist verfügbar, wenn JavaScript nicht benötigt wird.
4. Wandelt das Rendern von HTML Canvas in PDF die Zeichnung in bearbeitbare HTML- oder SVG-Vektoren um?
Nein. Canvas ist eine Bitmap-Zeichenfläche. Das Rendering bewahrt den sichtbaren Zustand im Ausgabedokument, rekonstruiert die Zeichnung jedoch nicht als bearbeitbare HTML-Elemente oder SVG-Pfade.
5. Kann ich HTML Canvas statt als PDF als Bild speichern?
Ja. Rendern Sie das enthaltende HTMLDocument über ein für die gewünschte Rasterausgabe konfiguriertes ImageDevice. Die Canvas bleibt Teil des Seitenlayouts, daher können Seitengröße, Ränder und umgebendes HTML das Ergebnis beeinflussen.
Verwandte HTML-Rendering-Abläufe
Fahren Sie mit Dokumenterstellung, HTML-Bearbeitung, PDF-Konvertierung oder Bildausgabe fort.