RenderToSize

Document.RenderToSize method

Rend une page de document dans unGraphics objet à une taille spécifiée.

public float RenderToSize(int pageIndex, Graphics graphics, float x, float y, float width, 
    float height)
ParamètreTaperLa description
pageIndexInt32L’index de page basé sur 0.
graphicsGraphicsL’objet vers lequel effectuer le rendu.
xSingleLa coordonnée X (en unités mondiales) du coin supérieur gauche de la page rendue.
ySingleLa coordonnée Y (en unités mondiales) du coin supérieur gauche de la page rendue.
widthSingleLa largeur maximale (en unités mondiales) pouvant être occupée par la page rendue.
heightSingleLa hauteur maximale (en unités mondiales) pouvant être occupée par la page rendue.

Return_Value

L’échelle qui a été automatiquement calculée pour que la page rendue s’adapte à la taille spécifiée.

Exemples

Montre comment restituer le document sous forme de bitmap à un emplacement et une taille spécifiés (.NetStandard 2.0).

Document doc = new Document(MyDir + "Rendering.docx");

using (SKBitmap bitmap = new SKBitmap(700, 700))
{
    using (SKCanvas canvas = new SKCanvas(bitmap))
    {
        // Applique un facteur d'échelle de 70 % à la page que nous allons rendre à l'aide de ce canevas.
        canvas.Scale(70);

        // Décalez la page de 0,5" par rapport aux bords supérieur et gauche de la page.
        canvas.Translate(0.5f, 0.5f);

        // Faites pivoter la page rendue de 10 degrés.
        canvas.RotateDegrees(10);

        // Crée et dessine un rectangle.
        SKRect rect = new SKRect(0f, 0f, 3f, 3f);
        canvas.DrawRect(rect, new SKPaint
        {
            Color = SKColors.Black,
            Style = SKPaintStyle.Stroke,
            StrokeWidth = 3f / 72f
        });

        // Rend la première page du document à la même taille que le rectangle ci-dessus.
        // Le rectangle encadrera cette page.
        float returnedScale = doc.RenderToSize(0, canvas, 0f, 0f, 3f, 3f);

        Console.WriteLine("The image was rendered at {0:P0} zoom.", returnedScale);

        // Réinitialise la matrice, puis applique un nouvel ensemble de mises à l'échelle et de traductions.
        canvas.ResetMatrix();
        canvas.Scale(5);
        canvas.Translate(10, 10);

        // Crée un autre rectangle.
        rect = new SKRect(0, 0, 50, 100);
        rect.Offset(90, 10);
        canvas.DrawRect(rect, new SKPaint
        {
            Color = SKColors.Black,
            Style = SKPaintStyle.Stroke,
            StrokeWidth = 1
        });

        // Restitue à nouveau la première page dans le rectangle nouvellement créé.
        doc.RenderToSize(0, canvas, 90, 10, 50, 100);

        using (SKFileWStream fs = new SKFileWStream(ArtifactsDir + "Rendering.RenderToSizeNetStandard2.png"))
        {
            bitmap.PeekPixels().Encode(fs, SKEncodedImageFormat.Png, 100);
        }
    }
}

Montre comment restituer un document au format bitmap à un emplacement et une taille spécifiés.

Document doc = new Document(MyDir + "Rendering.docx");

using (Bitmap bmp = new Bitmap(700, 700))
{
    using (Graphics gr = Graphics.FromImage(bmp))
    {
        gr.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

        // Définissez la propriété "PageUnit" sur "GraphicsUnit.Inch" pour utiliser les pouces comme
        // unité de mesure pour toutes les transformations et dimensions que nous définirons.
        gr.PageUnit = GraphicsUnit.Inch;

        // Décalez la sortie à 0,5" du bord.
        gr.TranslateTransform(0.5f, 0.5f);

        // Faites pivoter la sortie de 10 degrés.
        gr.RotateTransform(10);

        // Dessinez un rectangle de 3"x3".
        gr.DrawRectangle(new Pen(Color.Black, 3f / 72f), 0f, 0f, 3f, 3f);

        // Dessine la première page de notre document avec les mêmes dimensions et transformation que le rectangle.
        // Le rectangle encadrera la première page.
        float returnedScale = doc.RenderToSize(0, gr, 0f, 0f, 3f, 3f);

        // Il s'agit du facteur de mise à l'échelle que la méthode RenderToSize a appliqué à la première page pour l'adapter à la taille spécifiée.
        Assert.AreEqual(0.2566f, returnedScale, 0.0001f);

        // Définissez la propriété "PageUnit" sur "GraphicsUnit.Millimeter" pour utiliser les millimètres comme valeur
        // unité de mesure pour toutes les transformations et dimensions que nous définirons.
        gr.PageUnit = GraphicsUnit.Millimeter;

        // Réinitialise les transformations que nous avons utilisées du rendu précédent.
        gr.ResetTransform();

        // Applique un autre ensemble de transformations.
        gr.TranslateTransform(10, 10);
        gr.ScaleTransform(0.5f, 0.5f);
        gr.PageScale = 2f;

        // Créez un autre rectangle et utilisez-le pour encadrer une autre page du document.
        gr.DrawRectangle(new Pen(Color.Black, 1), 90, 10, 50, 100);
        doc.RenderToSize(1, gr, 90, 10, 50, 100);

        bmp.Save(ArtifactsDir + "Rendering.RenderToSize.png");
    }
}

Voir également