RenderToSize

Document.RenderToSize method

Rende una pagina del documento in un fileGraphics oggetto a una dimensione specificata.

public float RenderToSize(int pageIndex, Graphics graphics, float x, float y, float width, 
    float height)
ParametroTipoDescrizione
pageIndexInt32L’indice di pagina in base 0.
graphicsGraphicsL’oggetto su cui eseguire il rendering.
xSingleLa coordinata X (in unità mondiali) dell’angolo superiore sinistro della pagina renderizzata.
ySingleLa coordinata Y (in unità mondiali) dell’angolo superiore sinistro della pagina renderizzata.
widthSingleLa larghezza massima (in unità mondiali) che può essere occupata dalla pagina sottoposta a rendering.
heightSingleL’altezza massima (in unità mondiali) che può essere occupata dalla pagina renderizzata.

Valore di ritorno

La scala calcolata automaticamente affinché la pagina sottoposta a rendering si adatti alla dimensione specificata.

Esempi

Mostra come eseguire il rendering del 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))
    {
        // Applica un fattore di scala del 70% alla pagina che renderemo utilizzando questa tela.
        canvas.Scale(70);

        // Sposta 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
        });

        // Rende la prima pagina del documento alla stessa dimensione del rettangolo sopra.
        // 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 una nuova serie di ridimensionamenti 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
        });

        // Visualizza nuovamente la 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 eseguire il rendering di un documento in una bitmap in una posizione e dimensione specificate.

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 file
        // unità di misura per eventuali trasformazioni e dimensioni che definiremo.
        gr.PageUnit = GraphicsUnit.Inch;

        // Sposta l'output a 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 che il metodo RenderToSize ha applicato alla prima pagina per adattarla alla dimensione specificata.
        Assert.AreEqual(0.2566f, returnedScale, 0.0001f);

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

        // Reimposta le trasformazioni che abbiamo utilizzato dal rendering precedente.
        gr.ResetTransform();

        // Applica un'altra serie 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