RenderToSize

Document.RenderToSize method

Rende una pagina del documento in unGraphics oggetto a una dimensione specificata.

public float RenderToSize(int pageIndex, Graphics graphics, float x, float y, float width, 
    float height)
ParametroTipoDescrizione
pageIndexInt32Indice di pagina basato su 0.
graphicsGraphicsL’oggetto su cui effettuare il rendering.
xSingleCoordinata X (in unità mondiali) dell’angolo in alto a sinistra della pagina visualizzata.
ySingleCoordinata Y (in unità mondiali) dell’angolo in alto a sinistra della pagina visualizzata.
widthSingleLarghezza massima (in unità mondiali) che può essere occupata dalla pagina renderizzata.
heightSingleL’altezza massima (in unità mondiali) che può essere occupata dalla pagina renderizzata.

Valore di ritorno

La scala calcolata automaticamente per adattare la pagina renderizzata alle dimensioni specificate.

Esempi

Mostra come rendere il documento come bitmap in una posizione e dimensione specificate (.NetStandard 2.0).

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

using (SKBitmap bitmap = new SKBitmap(700, 700))
{
    using (SKCanvas canvas = new SKCanvas(bitmap))
    {
        // Applichiamo un fattore di scala del 70% alla pagina che verrà renderizzata utilizzando questa tela.
        canvas.Scale(70);

        // Spostare la pagina di 0,5" dai bordi superiore e sinistro della pagina.
        canvas.Translate(0.5f, 0.5f);

        // Ruota la pagina renderizzata di 10 gradi.
        canvas.RotateDegrees(10);

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

        // Rendi la prima pagina del documento della stessa dimensione del rettangolo soprastante.
        // Il rettangolo incornicerà questa pagina.
        float returnedScale = doc.RenderToSize(0, canvas, 0f, 0f, 3f, 3f);

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

        // Reimposta la matrice, quindi applica un nuovo set di ridimensionamento e traslazioni.
        canvas.ResetMatrix();
        canvas.Scale(5);
        canvas.Translate(10, 10);

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

        // Esegui nuovamente il rendering della prima pagina all'interno del rettangolo appena creato.
        doc.RenderToSize(0, canvas, 90, 10, 50, 100);

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

Mostra come trasformare un documento in un’immagine bitmap in una posizione e con dimensioni specifiche.

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

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

        // Imposta la proprietà "PageUnit" su "GraphicsUnit.Inch" per utilizzare i pollici come
        // unità di misura per tutte le trasformazioni e le dimensioni che definiremo.
        gr.PageUnit = GraphicsUnit.Inch;

        // Sposta l'output di 0,5" dal bordo.
        gr.TranslateTransform(0.5f, 0.5f);

        // Ruota l'output di 10 gradi.
        gr.RotateTransform(10);

        // Disegna un rettangolo di 3"x3".
        gr.DrawRectangle(new Pen(Color.Black, 3f / 72f), 0f, 0f, 3f, 3f);

        // Disegna la prima pagina del nostro documento con le stesse dimensioni e trasformazione del rettangolo.
        // Il rettangolo incornicerà la prima pagina.
        float returnedScale = doc.RenderToSize(0, gr, 0f, 0f, 3f, 3f);

        // Questo è il fattore di scala applicato dal metodo RenderToSize alla prima pagina per adattarla alle dimensioni specificate.
        Assert.AreEqual(0.2566f, returnedScale, 0.0001f);

        // Imposta la proprietà "PageUnit" su "GraphicsUnit.Millimeter" per utilizzare i millimetri come
        // unità di misura per tutte le trasformazioni e le dimensioni che definiremo.
        gr.PageUnit = GraphicsUnit.Millimeter;

        // Reimposta le trasformazioni utilizzate nel rendering precedente.
        gr.ResetTransform();

         // Applica un altro set di trasformazioni.
        gr.TranslateTransform(10, 10);
        gr.ScaleTransform(0.5f, 0.5f);
        gr.PageScale = 2f;

        // Crea un altro rettangolo e usalo per incorniciare un'altra pagina 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");
    }
}

Guarda anche