Convertir otros formatos de archivo a PDF en .NET

Descripción general

Este artículo explica cómo convertir varios otros tipos de formatos de archivo a PDF usando C#. Cubre los siguientes temas.

El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.

Formato: EPUB

Formato: Markdown

Formato: MD

Formato: PCL

Formato: Texto

Formato: TXT

Formato: Texto Plano

Formato: Texto Preformateado

Formato: Texto Pre

Formato: XPS

Convertir EPUB a PDF

Aspose.PDF for .NET permite convertir archivos EPUB a formato PDF de manera sencilla.

EPUB (abreviatura de publicación electrónica) es un estándar de libro electrónico gratuito y abierto del Foro Internacional de Publicación Digital (IDPF). EPUB (abreviatura de publicación electrónica) es un estándar de libro electrónico gratuito y abierto del Foro Internacional de Publicación Digital (IDPF).

EPUB también admite contenido de diseño fijo. El formato está destinado como un formato único que los editores y las casas de conversión pueden usar internamente, así como para distribución y venta. Supera el estándar Open eBook. La versión EPUB 3 también está respaldada por el Grupo de Estudio de la Industria del Libro (BISG), una asociación comercial líder para prácticas estándar, investigación, información y eventos, para el empaquetado de contenido.

Pasos: Convertir EPUB a PDF en C# Pasos: Convertir EPUB a PDF en C#

  1. Crea una instancia de la clase EpubLoadOptions.
  2. Crea una instancia de la clase Document con el nombre de archivo fuente y opciones mencionadas.
  3. Guarda el documento con el nombre de archivo deseado.

El siguiente fragmento de código te muestra cómo convertir archivos EPUB a formato PDF con C#.

public static void ConvertEPUBtoPDF()
{
    EpubLoadOptions option = new EpubLoadOptions();
    Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

También puedes establecer el tamaño de página para la conversión. Para definir un nuevo tamaño de página usa el objeto SizeF y pásalo al constructor de EpubLoadOptions.

public static void ConvertEPUBtoPDFAdv()
{
    EpubLoadOptions option = new EpubLoadOptions(new SizeF(1190, 1684));
    Document pdfDocument= new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

Convertir Markdown a PDF

Esta característica es compatible con la versión 19.6 o superior.

Aspose.PDF para .NET proporciona la funcionalidad para crear un documento PDF basado en un archivo de datos Markdown. Para convertir Markdown a PDF, necesitas inicializar el Documento utilizando MdLoadOptions.

El siguiente fragmento de código muestra cómo usar esta funcionalidad con la biblioteca Aspose.PDF:

Pasos: Convertir Markdown a PDF en C# | Pasos: Convertir Markdown a PDF en C# | Pasos: Convertir MD a PDF en C#

  1. Crear una instancia de la clase MdLoadOptions .
  2. Crear una instancia de la clase Document con el nombre de archivo fuente y opciones mencionadas.
  3. Guardar el documento con el nombre de archivo deseado.
// La ruta al directorio de documentos.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Abrir documento Markdown
Document pdfDocument= new Document(dataDir + "sample.md", new MdLoadOptions());
// Guardar documento en formato PDF
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");

Convertir PCL a PDF

PCL (Lenguaje de Comando de Impresora) es un lenguaje de impresora desarrollado por Hewlett-Packard para acceder a características estándar de impresora. PCL (Lenguaje de Comando de Impresora) es un lenguaje de impresora desarrollado por Hewlett-Packard para acceder a las características estándar de la impresora.

Actualmente solo se admiten PCL5 y versiones anteriores

```

Especificar la posición del cursor y, por lo tanto, los orígenes de texto, imágenes raster o vectoriales y detalles.

Conjuntos de Comandos Soporte Excepciones Descripción
Comandos de control de trabajos
Comandos de control de trabajos + Modo de impresión dúplex Controlar el proceso de impresión: número de copias, bandeja de salida, impresión simple/dúplex, márgenes izquierdo y superior, etc.
Comandos de control de página + Comando de omisión de perforación Especificar tamaño de página, márgenes, orientación de página, distancias interlineales e intercaracterísticas, etc.
Comandos de posicionamiento del cursor +   Especificar la posición del cursor y, por lo tanto, los orígenes de texto, imágenes raster o vectoriales y detalles.
Comandos de selección de fuente +
  1. Comando de impresión de datos transparente.
  2. Fuentes suaves incrustadas. En la versión actual en lugar de crear una fuente suave, nuestra biblioteca selecciona una fuente adecuada de las fuentes TrueType "duras" existentes instaladas en la máquina objetivo.
    La idoneidad se define por la relación ancho/altura.
    Esta característica solo funciona para fuentes Bitmap y TrueType y no garantiza que el texto impreso con fuente suave sea relevante para el que está en un archivo fuente.
    Debido a que los códigos de caracteres en la fuente suave pueden no coincidir con los predeterminados.
  3. Conjuntos de símbolos definidos por el usuario.
  4. ```
  5. Conjuntos de Símbolos Definidos por el Usuario.
Permitir la carga de fuentes suaves (incrustadas) desde el archivo PCL y gestionarlas en memoria.
Comandos de gráficos rasterizados + Solo en blanco y negro Permitir la carga de imágenes rasterizadas desde el archivo PCL a la memoria, especificar parámetros del raster.
como ancho, alto, tipo de compresión, resolución, etc.
Comandos de color +   Permitir la coloración para todos los objetos imprimibles.
Comandos del Modelo de Impresión ```

| Comandos de impresión de modelo | + | | Permiten rellenar texto, imágenes rasterizadas y áreas rectangulares con patrones rasterizados predefinidos y definidos por el usuario, especificar modo de transparencia para patrones e imagen raster fuente. Los patrones predefinidos son de tramado, tramado cruzado y sombreado. | | Comandos de relleno de área rectangular | + | | Permiten la creación y relleno de áreas rectangulares con patrones. | | Comandos de gráficos vectoriales HP-GL/2 | + | | Comando de gráficos vectoriales tramados (SV), Comando de modo de transparencia (TR), Comando de datos transparentes (TD), RO |

Los comandos Screened Vector Command (SV), Transparency Mode Command (TR), Transparent Data Command (TD), RO (Rotar Sistema de Coordenadas), Scalable or Bitmap Fonts Command (SB), Character Slant Command (SL) y Extra Space (ES) no están implementados y los comandos DV (Definir Camino de Texto Variable) están realizados en versión beta.

Permite cargar imágenes vectoriales HP-GL/2 desde un archivo PCL en la memoria. La imagen vectorial tiene un origen en la esquina inferior izquierda del área imprimible, puede ser escalada, trasladada, rotada y recortada. La imagen vectorial puede contener texto, como etiquetas, y figuras geométricas tales como rectángulo, círculo, elipse, línea, arco, curva bezier y figuras complejas compuestas por las simples. Las figuras cerradas incluyendo letras de etiquetas pueden ser rellenadas con relleno sólido o patrón vectorial. El patrón puede ser tramado, entrecruzado, sombreado, trama definida por el usuario, tramado PCL o entrecruzado y PCL.

trama, trama cruzada, sombreado, trama definida por el usuario, trama cruzada PCL o trama definida por el usuario PCL. Los patrones PCL son de trama. Las etiquetas pueden rotarse, escalarse y dirigirse individualmente en cuatro direcciones: arriba, abajo, izquierda y derecha. Las direcciones Izquierda y Derecha involucran un arreglo de letras uno tras otro. Las direcciones Arriba y Abajo involucran un arreglo de letras uno bajo otro.

Macroses
―
Permitir cargar una secuencia de comandos PCL en la memoria y usar esta secuencia muchas veces, por ejemplo, para imprimir el encabezado de página o establecer un formato para un conjunto de páginas.

Texto Unicode
―

Permitir la impresión de caracteres no ASCII

No implementado debido a la falta de archivos de muestra con texto Unicode.

PCL6 (PCL-XL)

Realizado únicamente en versión Beta debido a la falta de archivos de prueba. Las fuentes incrustadas tampoco son compatibles. La extensión JetReady no es compatible porque es imposible tener la especificación de JetReady.

Formato de archivo binario.

Convertir un archivo PCL en formato PDF

Para permitir la conversión de PCL a PDF, Aspose.PDF tiene la clase PclLoadOptions que se utiliza para inicializar el objeto LoadOptions. Para permitir la conversión de PCL a PDF, Aspose.PDF tiene la clase PclLoadOptions que se utiliza para inicializar el objeto LoadOptions.

El siguiente fragmento de código muestra el proceso de conversión de un archivo PCL a formato PDF.

Pasos: Convertir PCL a PDF en C#

  1. Crear una instancia de la clase PclLoadOptions.
  2. Crear una instancia de la clase Document con el nombre de archivo fuente y las opciones mencionadas.
  3. Guardar el documento con el nombre de archivo deseado.
public static void ConvertPCLtoPDF()
{
    PclLoadOptions options = new PclLoadOptions();
    Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
    pdfDocument.Save(_dataDir + "pcl_test.pdf");
}

También puedes monitorear la detección de errores durante el proceso de conversión. También puedes monitorear la detección de errores durante el proceso de conversión.

public static void ConvertPCLtoPDFAvdanced()
{
    PclLoadOptions options = new PclLoadOptions { SupressErrors = true };
    Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
    if (options.Exceptions!=null)
        foreach (var ex in options.Exceptions)
        {
            Console.WriteLine(ex.Message);
        }
    pdfDocument.Save(_dataDir + "pcl_test.pdf");
}

Problemas Conocidos

  1. El origen de cadenas de texto e imágenes puede diferir ligeramente de los que están en un archivo PCL fuente si la dirección de impresión no es 0°. Lo mismo se aplica a imágenes vectoriales si el sistema de coordenadas del trazado vectorial está rotado (precedido por el comando RO).
  2. El origen de las etiquetas en imágenes vectoriales puede diferir de los que están en un archivo PCL fuente si las etiquetas están influenciadas por una secuencia de comandos: Origen de la Etiqueta (LO), Definir Trayectoria de Texto Variable (DV), Dirección Absoluta (DI) o Dirección Relativa (DR).
  3. Si el archivo PCL analizado contiene fuentes Intellifont o Universal, se lanzará una excepción, porque las fuentes Intellifont y Universal no son compatibles en absoluto.
  4. Si el archivo PCL analizado contiene comandos de macros, el resultado del análisis diferirá considerablemente del archivo fuente, porque los comandos de macros no son compatibles.

Convertir texto a PDF

Aspose.PDF para .NET admite la función de convertir archivos de texto plano y texto preformateado a formato PDF.

Convertir texto a PDF significa añadir fragmentos de texto a la página del PDF. En cuanto a los archivos de texto, estamos tratando con 2 tipos de texto: preformateado (por ejemplo, 25 líneas con 80 caracteres por línea) y texto no formateado (texto plano). Dependiendo de nuestras necesidades, podemos controlar esta adición nosotros mismos o confiarla a los algoritmos de la biblioteca.

Convertir PostScript a PDF

Aspose.PDF para .NET soporta la conversión de archivos PostScript a formato PDF. Una de las características de Aspose.PDF es que puedes establecer un conjunto de carpetas de fuentes que se utilizarán durante la conversión.

Para convertir un archivo PostScript a formato PDF, Aspose.PDF para .NET ofrece la clase PsLoadOptions que se utiliza para inicializar el objeto LoadOptions. Este objeto puede pasarse como argumento al constructor del objeto Document, lo que ayudará al Motor de Renderizado de PDF a determinar el formato del documento fuente.

El siguiente fragmento de código se puede utilizar para convertir un archivo PostScript en formato PDF con Aspose.PDF para .NET:

// Para ejemplos completos y archivos de datos, por favor visite https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// La ruta al directorio de documentos.
string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Crear una nueva instancia de PsLoadOptions
PsLoadOptions options = new PsLoadOptions();
// Abrir el documento .ps con las opciones de carga creadas
Document pdfDocument = new Document(_dataDir + "input.ps", options);
// Guardar el documento
pdfDocument.Save(dataDir + "PSToPDF.pdf");

Adicionalmente, puede establecer un conjunto de carpetas de fuentes que se utilizarán durante la conversión:

public static void ConvertPostscriptToPDFAvdanced()
{
    PsLoadOptions options = new PsLoadOptions
    {
        FontsFolders = new [] { @"c:\tmp\fonts1", @"c:\tmp\fonts2"}
    };
    Document pdfDocument = new Document(_dataDir + "input.ps", options);
    pdfDocument.Save(_dataDir + "ps_test.pdf");
}

Convertir XML a PDF

El formato XML se utiliza para almacenar datos estructurados. Hay varias maneras de convertir XML a PDF en Aspose.PDF:

  1. Transformar cualquier dato XML a HTML usando XSLT y convertir HTML a PDF como se describe a continuación
  2. Generar documento XML utilizando el esquema XSD de Aspose.PDF
  3. Usar documento XML basado en el estándar XSL-FO

Convertir XSL-FO a PDF

La conversión de archivos XSL-FO a PDF puede implementarse utilizando la técnica tradicional de Aspose.PDF - instanciar el objeto Document con XslFoLoadOptions. Pero a veces puedes encontrarte con una estructura de archivo incorrecta. Para este caso, el convertidor XSL-FO permite establecer la estrategia de manejo de errores. Puedes elegir ThrowExceptionImmediately, TryIgnore o InvokeCustomHandler.

public static void Convert_XSLFO_to_PDF()
{
    // Instancia el objeto XslFoLoadOption
    var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
    // Establece la estrategia de manejo de errores
    options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
    // Crea el objeto Document
    var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
    pdfDocument.Save(_dataDir + "data_xml.pdf");
}

Convertir LaTeX/TeX a PDF

El formato de archivo LaTeX es un formato de archivo de texto con marcado en la derivación LaTeX de la familia de lenguajes TeX y LaTeX es un formato derivado del sistema TeX. LaTeX (ˈleɪtɛk/lay-tek o lah-tek) es un sistema de preparación de documentos y lenguaje de marcado de documentos. Es ampliamente utilizado para la comunicación y publicación de documentos científicos en muchos campos, incluyendo matemáticas, física y ciencias de la computación. También tiene un papel prominente en la preparación y publicación de libros y artículos que contienen materiales multilingües complejos, como el sánscrito y el árabe, incluyendo ediciones críticas. LaTeX utiliza el programa de composición tipográfica TeX para formatear su salida, y está escrito en el lenguaje de macros TeX.

Aspose.PDF para .NET soporta la función de convertir archivos TeX a formato PDF y para lograr este requisito, el espacio de nombres Aspose.Pdf tiene una clase llamada LatexLoadOptions que proporciona las capacidades para cargar archivos LaTeX y renderizar la salida en formato PDF utilizando clase Document. El siguiente fragmento de código muestra el proceso de conversión de un archivo LaTeX a formato PDF con C#.

public static void ConvertTeXtoPDF()
{
    // Instanciar objeto de opción de carga de LaTeX
    TeXLoadOptions options = new TeXLoadOptions();
    // Crear objeto Document
    Aspose.Pdf.Document pdfDocument= new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
    // Guardar la salida en archivo PDF
    pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
}