RenderToSize

Document.RenderToSize method

Representa una página de documento en unGraphics objeto a un tamaño específico.

public float RenderToSize(int pageIndex, Graphics graphics, float x, float y, float width, 
    float height)
ParámetroEscribeDescripción
pageIndexInt32El índice de página basado en 0.
graphicsGraphicsEl objeto donde renderizar.
xSingleLa coordenada X (en unidades mundiales) de la esquina superior izquierda de la página renderizada.
ySingleLa coordenada Y (en unidades mundiales) de la esquina superior izquierda de la página renderizada.
widthSingleEl ancho máximo (en unidades mundiales) que puede ocupar la página renderizada.
heightSingleLa altura máxima (en unidades mundiales) que puede ocupar la página renderizada.

Valor_devuelto

La escala que se calculó automáticamente para que la página renderizada se ajustara al tamaño especificado.

Ejemplos

Muestra cómo representar el documento como un mapa de bits en una ubicación y tamaño específicos (.NetStandard 2.0).

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

using (SKBitmap bitmap = new SKBitmap(700, 700))
{
    using (SKCanvas canvas = new SKCanvas(bitmap))
    {
        // Aplicar un factor de escala del 70% a la página que representaremos usando este lienzo.
        canvas.Scale(70);

        // Desplaza la página 0,5" desde los bordes superior e izquierdo de la página.
        canvas.Translate(0.5f, 0.5f);

        // Gira la página renderizada 10 grados.
        canvas.RotateDegrees(10);

        // Crea y dibuja un rectángulo.
        SKRect rect = new SKRect(0f, 0f, 3f, 3f);
        canvas.DrawRect(rect, new SKPaint
        {
            Color = SKColors.Black,
            Style = SKPaintStyle.Stroke,
            StrokeWidth = 3f / 72f
        });

        // Representa la primera página del documento al mismo tamaño que el rectángulo anterior.
        // El rectángulo enmarcará esta página.
        float returnedScale = doc.RenderToSize(0, canvas, 0f, 0f, 3f, 3f);

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

        // Restablece la matriz y luego aplica un nuevo conjunto de escalas y traducciones.
        canvas.ResetMatrix();
        canvas.Scale(5);
        canvas.Translate(10, 10);

        // Crea otro rectángulo.
        rect = new SKRect(0, 0, 50, 100);
        rect.Offset(90, 10);
        canvas.DrawRect(rect, new SKPaint
        {
            Color = SKColors.Black,
            Style = SKPaintStyle.Stroke,
            StrokeWidth = 1
        });

        // Representa nuevamente la primera página dentro del rectángulo recién creado.
        doc.RenderToSize(0, canvas, 90, 10, 50, 100);

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

Muestra cómo representar un documento en un mapa de bits en una ubicación y tamaño específicos.

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

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

        // Establece la propiedad "PageUnit" en "GraphicsUnit.Inch" para usar pulgadas como tamaño
        // unidad de medida para cualquier transformación y dimensión que definamos.
        gr.PageUnit = GraphicsUnit.Inch;

        // Compensa la salida 0,5" desde el borde.
        gr.TranslateTransform(0.5f, 0.5f);

        // Gira la salida 10 grados.
        gr.RotateTransform(10);

        // Dibuja un rectángulo de 3"x3".
        gr.DrawRectangle(new Pen(Color.Black, 3f / 72f), 0f, 0f, 3f, 3f);

        // Dibuja la primera página de nuestro documento con las mismas dimensiones y transformación que el rectángulo.
        // El rectángulo enmarcará la primera página.
        float returnedScale = doc.RenderToSize(0, gr, 0f, 0f, 3f, 3f);

        // Este es el factor de escala que el método RenderToSize aplicó a la primera página para ajustarse al tamaño especificado.
        Assert.AreEqual(0.2566f, returnedScale, 0.0001f);

        // Establece la propiedad "PageUnit" en "GraphicsUnit.Millimeter" para usar milímetros como
        // unidad de medida para cualquier transformación y dimensión que definamos.
        gr.PageUnit = GraphicsUnit.Millimeter;

        // Restablece las transformaciones que usamos en el renderizado anterior.
        gr.ResetTransform();

        // Aplicar otro conjunto de transformaciones.
        gr.TranslateTransform(10, 10);
        gr.ScaleTransform(0.5f, 0.5f);
        gr.PageScale = 2f;

        // Crea otro rectángulo y úsalo para enmarcar otra página del documento.
        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");
    }
}

Ver también