Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
En el mundo actual, la mayoría de los documentos están en formato A4, pero a veces el contenido renderizado desde SVG tiene un tamaño diferente. Esto resulta en mucho espacio en blanco en la página, ¡o el contenido simplemente no cabe en la página! En este artículo, consideraremos cómo utilizar las opciones de renderizado para redimensionar las páginas de documentos al tamaño del contenido y viceversa.
El Aspose.Svg.Rendering namespace proporciona un conjunto poderoso de herramientas como clases de opciones de bajo nivel, interfaces y enumeraciones para renderizar documentos SVG a diferentes formatos de salida como PDF, XPS e imágenes. Por defecto, SVG se convierte en un documento de tamaño A4, que probablemente contenga algo de espacio vacío además de la imagen. Pero a veces, puede que necesite recortar documentos para crear un tamaño de página más pequeño que se ajuste al tamaño del contenido de la página.
La clase PageSetup proporciona un conjunto de propiedades para gestionar la configuración de la página para documentos SVG al renderizarlos a diferentes formatos de archivo. Echemos un vistazo a algunas de las más utilizadas:
Puede utilizar fácilmente los ejemplos de C# en este artículo para convertir SVG a imágenes, PDF y XPS con un diseño de página personalizado. Las únicas diferencias están en especificar:
Para convertir SVG a PNG con opciones de renderizado predeterminadas, debe seguir unos pocos pasos:
document. En los siguientes ejemplos, cargamos un archivo SVG local.ImageFormat es PNG.options y la ruta del archivo de salida savePath como parámetros.device) para convertir SVG a PNG, que toma el objeto device como parámetro.El siguiente fragmento de código C# muestra un ejemplo de cómo convertir un documento SVG a una imagen sin opciones adicionales, es decir, con opciones de renderizado predeterminadas. Como resultado de la conversión, se obtuvo un documento PNG A4 con mucho espacio vacío (ver ilustraciones de los resultados de conversión (a)).
1using Aspose.Svg.Rendering;
2using Aspose.Svg.Rendering.Image;
3using System.IO; 1// Convert SVG to PNG with default RenderingOptions
2
3// Prepare path to a source SVG file
4string documentPath = Path.Combine(DataDir, "rendering.svg");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "a4.png");
8
9// Create an instance of the SVGDocument class
10using SVGDocument document = new SVGDocument(documentPath);
11
12// Initialize an ImageRenderingOptions object with default options
13ImageRenderingOptions opt = new ImageRenderingOptions();
14
15// Create an output rendering device and convert SVG
16using ImageDevice device = new ImageDevice(opt, savePath);
17document.RenderTo(device);La enumeración SizingType del namespace Aspose.Svg.Rendering especifica banderas que, junto con otras opciones de PageSetup, definen diferentes estrategias para ajustar el tamaño de la página o el tamaño del contenido al renderizar documentos SVG.
| Nombre | Descripción |
|---|---|
| AjustarContenido | Ajusta el tamaño de la página para que se ajuste al contenido sin escalar. Esto asegura que todo el contenido SVG sea visible sin márgenes adicionales. Ideal para documentos donde el contenido debe determinar el tamaño de la página. |
| EscalarContenido | Escala el contenido para que se ajuste a un tamaño de página predefinido. La relación de aspecto del contenido puede cambiar para ajustarse a las dimensiones especificadas. Esta opción es útil cuando necesita que el contenido se ajuste a un diseño de página fijo. |
| Contener | Redimensiona el contenido para que se ajuste a las dimensiones de la página mientras mantiene la relación de aspecto. A diferencia de ScaleContent, este método asegura que la relación de aspecto permanezca intacta, lo que puede resultar en espacios vacíos si la relación de aspecto del contenido difiere de la de la página. |
| Recortar | Ajusta el contenido a una página y recorta cualquier porción que se extienda más allá de ciertos límites de la página. |
Para ajustar el tamaño de la página de la imagen de salida al ancho y alto del contenido, necesita utilizar la bandera FitContent, que ajustará el tamaño de la página para que se ajuste al contenido sin escalar. Veamos los pasos que debe seguir:
documentPath) carga el documento SVG desde un sistema de archivos local.SizingType en FitContent, lo que significa que el tamaño de la página del documento de salida se ajustará al ancho y alto del contenido sin escalar.device) para convertir SVG a JPG. 1using Aspose.Svg.Rendering;
2using Aspose.Svg.Rendering.Image;
3using System.IO;
4...
5 // Preparar la ruta a un archivo SVG fuente
6 string documentPath = Path.Combine(DataDir, "rendering.svg");
7
8 // Preparar una ruta para guardar el archivo convertido
9 string savePath = Path.Combine(OutputDir, "fitContent.jpg");
10
11 // Crear una instancia de la clase SVGDocument
12 using SVGDocument document = new SVGDocument(documentPath);
13
14 // Inicializar un objeto ImageRenderingOptions con opciones personalizadas. Usar la bandera AjustarContenido
15 ImageRenderingOptions opt = new ImageRenderingOptions(ImageFormat.Jpeg);
16 opt.PageSetup.Sizing = SizingType.FitContent;
17
18 // Crear un dispositivo de renderizado de salida y convertir SVG
19 using ImageDevice device = new ImageDevice(opt, savePath);
20 document.RenderTo(device);La conversión de SVG a JPG resultó en un documento JPG con un tamaño de página que se ajusta al contenido SVG (ver ilustraciones de los resultados de conversión (b)).
Nota: Al convertir un SVG a un formato de trama como JPG, el tamaño en píxeles de la imagen puede cambiar debido a diferencias en la resolución (DPI). Los SVG son independientes de la resolución, lo que significa que sus dimensiones se definen en un sistema de coordenadas en lugar de en píxeles fijos. Al convertir, la resolución predeterminada se establece en 300 DPI, mientras que la resolución estándar de pantalla es de 96 DPI. Esto resulta en una imagen de salida más grande porque los tamaños de píxeles se escalan proporcionalmente. Por ejemplo, un SVG de 350 x 350 unidades se convertirá aproximadamente a 1094 x 1094 píxeles a 300 DPI. Para mantener las dimensiones originales, es importante especificar la resolución deseada al convertir.
Para todos los ejemplos en el artículo, utilizamos el archivo fuente rendering.svg – 350 x 350 px.
En el siguiente ejemplo, la propiedad
AnyPage establece el tamaño de la página en 1500x3000 píxeles, que es más grande de lo necesario para acomodar los contenidos del documento SVG. Usando SizingType con la bandera ScaleContent escala el contenido SVG para que quepa en la página:
1using Aspose.Svg.Rendering;
2using Aspose.Svg.Rendering.Image;
3using Aspose.Svg.Drawing;
4using System.IO;
5...
6 // Preparar la ruta a un archivo SVG fuente
7 string documentPath = Path.Combine(DataDir, "rendering.svg");
8
9 // Preparar una ruta para guardar el archivo convertido
10 string savePath = Path.Combine(OutputDir, "scaleContent.png");
11
12 // Crear una instancia de la clase SVGDocument
13 using SVGDocument document = new SVGDocument(documentPath);
14
15 // Inicializar un objeto ImageRenderingOptions con opciones personalizadas. Usar la bandera EscalarContenido
16 ImageRenderingOptions opt = new ImageRenderingOptions();
17 opt.PageSetup.AnyPage = new Page(new Drawing.Size(1500, 3000));
18 opt.PageSetup.Sizing = SizingType.ScaleContent;
19
20 // Crear un dispositivo de renderizado de salida y convertir SVG
21 using ImageDevice device = new ImageDevice(opt, savePath);
22 document.RenderTo(device);La conversión de SVG a PNG resultó en una imagen PNG de 1500x3000 que fue escalada (ampliada) sin mantener la relación de aspecto (ver la ilustración de los resultados de conversión (с)).
ContainLa bandera Contain controla el tamaño del contenido y permite que se escale mientras mantiene su relación de aspecto. El contenido se escala hasta que se ajusta al ancho o alto de la página. El siguiente ejemplo muestra cómo se puede usar la bandera Contain en combinación con el establecimiento de un tamaño de página de 2000x2500 píxeles. Si no se establece el tamaño de la página, el resultado se escalará y se ajustará al formato A4 al renderizar.
1using Aspose.Svg.Rendering;
2using Aspose.Svg.Rendering.Image;
3using System.IO;
4...
5 // Preparar la ruta a un archivo SVG fuente
6 string documentPath = Path.Combine(DataDir, "rendering.svg");
7
8 // Preparar la ruta para guardar el archivo convertido
9 string savePath = Path.Combine(OutputDir, "using-contain.png");
10
11 // Inicializar SVGDocument
12 using SVGDocument document = new SVGDocument(documentPath);
13
14 // Inicializar un objeto ImageRenderingOptions con opciones personalizadas. Usar la bandera Contener
15 ImageRenderingOptions opt = new ImageRenderingOptions();
16 opt.PageSetup.AnyPage = new Page(new Drawing.Size(2000, 2500));
17 opt.PageSetup.Sizing = SizingType.Contain;
18
19 // Crear un dispositivo de renderizado de salida y convertir SVG
20 using ImageDevice device = new ImageDevice(opt, savePath);
21 document.RenderTo(device);En el ejemplo, la propiedad
AnyPage de la PageSetup establece un nuevo objeto
Page con un Size de 2000x2500 píxeles. Esto establece el tamaño de la página en 2000x2500 píxeles.
Luego establecemos la propiedad
Sizing del objeto PageSetup para incluir la bandera Contain. Esto significa que el contenido del documento de salida se escalará para ajustarse al ancho o alto de la página mientras mantiene sus proporciones. En este ejemplo, la imagen se ajusta al ancho de la página (ver la
ilustración de los resultados de conversión (d)).
Para recortar el tamaño de la página de salida al ancho y alto requeridos, necesita establecer primero el tamaño de la página y luego la bandera SizingType.Crop en la propiedad
Sizing. Si no establece las dimensiones de la página requeridas, entonces se elegirá el tamaño A4 por defecto.
1using Aspose.Svg.Rendering;
2using Aspose.Svg.Rendering.Image;
3using Aspose.Svg.Drawing;
4using System.IO;
5...
6 // Preparar la ruta a un archivo SVG fuente
7 string documentPath = Path.Combine(DataDir, "rendering.svg");
8
9 // Preparar una ruta para guardar el archivo convertido
10 string savePath = Path.Combine(OutputDir, "using-crop.jpg");
11
12 // Inicializar SVGDocument
13 using SVGDocument document = new SVGDocument(documentPath);
14
15 // Inicializar un objeto ImageRenderingOptions con opciones personalizadas. Usar la bandera Recortar
16 ImageRenderingOptions opt = new ImageRenderingOptions(ImageFormat.Jpeg);
17 opt.PageSetup.AnyPage = new Page(new Drawing.Size(500, 500));
18 opt.PageSetup.Sizing = SizingType.Crop;
19
20 // Crear un dispositivo de renderizado de salida y convertir SVG
21 using ImageDevice device = new ImageDevice(opt, savePath);
22 document.RenderTo(device);La figura muestra los resultados de convertir el archivo rendering.svg a formatos PNG y JPG utilizando el método RenderTo() y varias opciones de renderizado que controlan el tamaño de la página del documento de salida.
Nota: La imagen SVG fuente es de 350x350 píxeles.

a) El resultado de convertir SVG a PNG con opciones de renderizado predeterminadas es un documento PNG del tamaño de una página A4 con mucho espacio en blanco. La imagen renderizada en una página A4 se estira en altura y ancho aproximadamente 3 veces ya que la resolución predeterminada es de 300 dpi.
b) La conversión del SVG a JPG resultó en un documento JPG con un ancho y alto de página que se ajusta al ancho y alto del contenido. La imagen renderizada se estira aproximadamente 3 veces en altura y ancho porque la resolución predeterminada es de 300 dpi.
c) El resultado de convertir SVG a PNG con escalado (ampliación) sin preservar las proporciones.
d) La conversión de SVG a PNG resultó en un documento PNG en el que la imagen SVG se escaló para ajustarse al ancho de la página de salida mientras mantenía la relación de aspecto de la imagen.
Véase también
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.