Convertir d'autres formats de fichiers en PDF en .NET

Vue d’ensemble

Cet article explique comment convertir divers autres types de formats de fichiers en PDF en utilisant C#. Il couvre les sujets suivants.

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Format : EPUB

Format : Markdown

Format: MD

Format: PCL

Format: Texte

Format: TXT

Format: Texte Brut

Format : TXT Préformaté

Format : Texte Pré

Format : XPS

Convertir EPUB en PDF

Aspose.PDF pour .NET vous permet de convertir facilement les fichiers EPUB au format PDF.

EPUB (abréviation de publication électronique) est une norme de livre électronique gratuite et ouverte de l’International Digital Publishing Forum (IDPF). EPUB (abréviation de publication électronique) est une norme de livre électronique libre et ouverte de l’International Digital Publishing Forum (IDPF).

EPUB prend également en charge le contenu à mise en page fixe. Le format est destiné à être un format unique que les éditeurs et les maisons de conversion peuvent utiliser en interne, ainsi que pour la distribution et la vente. Il remplace la norme Open eBook. La version EPUB 3 est également approuvée par le Book Industry Study Group (BISG), une association commerciale de premier plan pour les meilleures pratiques standardisées, la recherche, l’information et les événements, pour l’emballage de contenu.

Étapes : Convertir EPUB en PDF en C# Étapes : Convertir EPUB en PDF en C#

  1. Créez une instance de la classe EpubLoadOptions.
  2. Créez une instance de la classe Document en mentionnant le nom de fichier source et les options.
  3. Enregistrez le document avec le nom de fichier souhaité.

Le code suivant montre comment convertir des fichiers EPUB en format PDF avec C#.

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

Vous pouvez également définir la taille de page pour la conversion. Pour définir une nouvelle taille de page, utilisez l’objet SizeF et passez-le au constructeur 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 en PDF

Cette fonctionnalité est prise en charge par la version 19.6 ou supérieure.

Aspose.PDF pour .NET fournit la fonctionnalité pour créer un document PDF basé sur un fichier de données Markdown. Pour convertir le Markdown en PDF, vous devez initialiser le Document en utilisant MdLoadOptions.

Le fragment de code suivant montre comment utiliser cette fonctionnalité avec la bibliothèque Aspose.PDF :

Étapes : Convertir Markdown en PDF en C# | Étapes : Convertir Markdown en PDF en C# | Étapes : Convertir MD en PDF en C#

  1. Créez une instance de la classe MdLoadOptions.
  2. Créez une instance de la classe Document en mentionnant le nom de fichier source et les options.
  3. Enregistrez le document avec le nom de fichier souhaité.
// Le chemin vers le répertoire des documents.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Ouvrir le document Markdown
Document pdfDocument= new Document(dataDir + "sample.md", new MdLoadOptions());
// Enregistrer le document au format PDF
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");

Convertir PCL en PDF

PCL (Printer Command Language) est un langage d’imprimante développé par Hewlett-Packard pour accéder aux fonctionnalités standard de l’imprimante. PCL (Langage de Commande d’Imprimante) est un langage d’imprimante développé par Hewlett-Packard pour accéder aux fonctionnalités standard de l’imprimante.

Actuellement, seules les versions PCL5 et antérieures sont prises en charge

Ensembles de commandes Prise en charge Exceptions Description
Commandes de contrôle de travaux
    <tr>
        <td>
            Commandes de contrôle des travaux
        </td>
        <td>
            +
        </td>
        <td>
            Mode d'impression recto verso
        </td>
        <td>
            Contrôler le processus d'impression : nombre de copies, bac de sortie, impression recto/verso, décalages gauche et haut, etc.
        </td>
    </tr>
    <tr>
        <td>
            Commandes de contrôle de page
        </td>
        <td>
            +
        </td>
        <td>
            Commande de saut de perforation
        </td>
        <td>
            Spécifiez une taille de page, des marges, une orientation de page, des distances inter-lignes, inter-caractères, etc.
        </td>
    </tr>
    <tr>
        <td>
            Commandes de positionnement du curseur
        </td>
        <td>
            +
        </td>
        <td>
            &nbsp;
        </td>
        <td>
            Spécifiez la position du curseur et, par conséquent, les origines du texte, des images matricielles ou vectorielles et des détails.
        </td>
    </tr>

<tr>
    <td>
        Spécifiez la position du curseur et, par conséquent, les origines des images de texte, raster ou vectorielles et des détails.
    </td>
</tr>
<tr>
    <td>
        Commandes de sélection de police
    </td>
    <td>
        +
    </td>
    <td>
        <ol>
            <li>Commande d'impression de données transparentes.</li>
            <li>Polices douces intégrées. Dans la version actuelle, au lieu de créer une police douce, notre bibliothèque sélectionne
                une police adéquate parmi les polices TrueType "dures" existantes installées sur une machine cible. <br/>
                L'adéquation est définie par le rapport largeur/hauteur.<br/>
                Cette fonctionnalité ne fonctionne que pour les polices Bitmap et TrueType et ne garantit pas
                que le texte imprimé avec la police douce sera pertinent par rapport à celui d'un fichier source.<br/>
                Car les codes de caractères dans la police douce peuvent ne pas correspondre à ceux par défaut.
            </li>
            <li>Jeux de symboles définis par l'utilisateur.</li>
        </ol>
    </td>
</tr>
  • Jeux de symboles définis par l'utilisateur.
  • Permet le chargement de polices douces (intégrées) à partir du fichier PCL et leur gestion en mémoire.
    Commandes graphiques raster + Noir et blanc uniquement Permet le chargement d'images raster à partir du fichier PCL en mémoire, spécifiez les paramètres raster.
    tels que largeur, hauteur, type de compression, résolution, etc.
    Commandes de couleur +   Permet la coloration pour tous les objets imprimables.
    Commandes du modèle d'impression ``` ``` Commandes d'impression de modèle +   Permet de remplir du texte, des images raster et des zones rectangulaires avec des motifs raster prédéfinis et
    des motifs définis par l'utilisateur, spécifie le mode de transparence pour les motifs et l'image raster source.
    Les motifs prédéfinis sont le hachurage, le croisillonnage et les ombrages.
    Commandes de remplissage de zone rectangulaire +   Permet la création et le remplissage de zones rectangulaires avec des motifs.
    Commandes graphiques vectorielles HP-GL/2 + Commande vectorielle écranée (SV), Commande de mode de transparence (TR), Commande de données transparentes (TD), RO ``` Les commandes Screened Vector Command (SV), Transparency Mode Command (TR), Transparent Data Command (TD), RO (Rotate Coordinate System), Scalable or Bitmap Fonts Command (SB), Character Slant Command (SL) et Extra Space (ES) ne sont pas implémentées et les commandes DV (Define Variable Text Path) sont réalisées en version bêta.

    Permet de charger des images vectorielles HP-GL/2 à partir d’un fichier PCL en mémoire. L’image vectorielle a son origine dans le coin inférieur gauche de la zone imprimable, peut être mise à l’échelle, translatée, tournée et rognée. L’image vectorielle peut contenir du texte, comme des étiquettes, et des figures géométriques telles que rectangle, cercle, ellipse, ligne, arc, courbe de Bézier et figures complexes composées des simples. Les figures fermées incluant les lettres des étiquettes peuvent être remplies avec un remplissage uni ou un motif vectoriel. Le motif peut être un hachurage, un croisillon, un ombrage, un raster défini par l’utilisateur, un hachurage PCL ou un croisillon PCL.

    hachage, hachage croisé, ombrage, raster défini par l’utilisateur, hachage ou hachage croisé PCL et PCL défini par l’utilisateur. Les motifs PCL sont des rasters. Les étiquettes peuvent être individuellement tournées, mises à l’échelle et dirigées dans quatre directions : haut, bas, gauche et droite. Les directions gauche et droite impliquent un arrangement des lettres l’une après l’autre. Les directions haut et bas impliquent un arrangement des lettres l’une sous l’autre.

    
    Macros
    

    
    Permet de charger une séquence de commandes PCL en mémoire et d'utiliser cette séquence plusieurs fois, par exemple, pour imprimer l'en-tête d'une page ou définir un formatage pour un ensemble de pages.
    

    Texte Unicode

    Conversion d’un fichier PCL en format PDF

    Pour permettre la conversion de PCL à PDF, Aspose.PDF dispose de la classe PclLoadOptions qui est utilisée pour initialiser l’objet LoadOptions.

    
    <table>
        <tbody>
            <tr>
                <td>
                    Autoriser l'impression de caractères non ASCII. Non implémenté en raison de l'absence de fichiers exemples avec du texte Unicode
                </td>
            </tr>
            <tr>
                <td>
                    PCL6 (PCL-XL)
                </td>
                <td>
                    Réalisé uniquement en version Beta en raison du manque de fichiers de test. Les polices intégrées ne sont également pas
                    prises en charge. L'extension JetReady n'est pas prise en charge car il est
                    impossible d'avoir la spécification JetReady.
                </td>
                <td>
                    Format de fichier binaire.
                </td>
            </tr>
        </tbody>
    </table>
    

    Pour permettre la conversion de PCL en PDF, Aspose.PDF dispose de la classe PclLoadOptions qui est utilisée pour initialiser l’objet LoadOptions.

    Le code suivant montre le processus de conversion d’un fichier PCL en format PDF.

    Étapes : Convertir PCL en PDF en C#

    1. Créer une instance de la classe PclLoadOptions.
    2. Créer une instance de la classe Document avec le nom de fichier source mentionné et les options.
    3. Enregistrer le document avec le nom de fichier souhaité.
    public static void ConvertPCLtoPDF()
    {
        PclLoadOptions options = new PclLoadOptions();
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    Vous pouvez également surveiller la détection des erreurs pendant le processus de conversion. Vous pouvez également surveiller la détection des erreurs pendant le processus de conversion.

    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");
    }
    

    Problèmes connus

    1. L’origine des chaînes de texte et des images peut légèrement différer de celles dans un fichier PCL source si la direction d’impression n’est pas de 0°. Il en va de même pour les images vectorielles si le système de coordonnées du tracé vectoriel est pivoté (commande RO précédée).
    2. L’origine des étiquettes dans les images vectorielles peut différer de celles dans un fichier PCL source si les étiquettes sont influencées par une séquence de commandes : Origine de l’étiquette (LO), Définir le chemin du texte variable (DV), Direction absolue (DI) ou Direction relative (DR).
    3. Si le fichier PCL analysé contient des polices Intellifont ou Universal, une exception sera lancée, car les polices Intellifont et Universal ne sont pas du tout prises en charge.
    4. Si le fichier PCL analysé contient des commandes de macros, le résultat de l’analyse différera fortement du fichier source, car les commandes de macros ne sont pas prises en charge.

    Convertir du texte en PDF

    Aspose.PDF pour .NET prend en charge la fonctionnalité de conversion de fichiers texte simples et pré-formatés en format PDF.

    Convertir du texte en PDF signifie ajouter des fragments de texte à la page PDF. En ce qui concerne les fichiers texte, nous traitons 2 types de texte : le pré-formatage (par exemple, 25 lignes de 80 caractères chacune) et le texte non formaté (texte brut). Selon nos besoins, nous pouvons contrôler nous-mêmes cette addition ou la confier aux algorithmes de la bibliothèque.

    Convertir PostScript en PDF

    Aspose.PDF pour .NET prend en charge la conversion des fichiers PostScript en format PDF. Une des fonctionnalités d’Aspose.PDF est que vous pouvez définir un ensemble de dossiers de polices à utiliser pendant la conversion.

    Pour convertir un fichier PostScript en format PDF, Aspose.PDF pour .NET propose la classe PsLoadOptions qui est utilisée pour initialiser l’objet LoadOptions. Cet objet peut ensuite être passé comme argument au constructeur de l’objet Document, ce qui aidera le moteur de rendu PDF à déterminer le format du document source.

    Le fragment de code suivant peut être utilisé pour convertir un fichier PostScript en format PDF avec Aspose.PDF pour .NET :

    // Pour des exemples complets et des fichiers de données, veuillez aller à https://github.com/aspose-pdf/Aspose.PDF-for-.NET
    // Le chemin vers le répertoire des documents.
    string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    // Créez une nouvelle instance de PsLoadOptions
    PsLoadOptions options = new PsLoadOptions();
    // Ouvrez le document .ps avec les options de chargement créées
    Document pdfDocument = new Document(_dataDir + "input.ps", options);
    // Enregistrez le document
    pdfDocument.Save(dataDir + "PSToPDF.pdf");
    

    De plus, vous pouvez définir un ensemble de dossiers de polices qui seront utilisés lors de la conversion :

    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 en PDF

    Le format XML est utilisé pour stocker des données structurées. Il existe plusieurs méthodes pour convertir le XML en PDF avec Aspose.PDF :

    1. Transformer n’importe quelle donnée XML en HTML en utilisant XSLT et convertir le HTML en PDF comme décrit ci-dessous
    2. Générer un document XML en utilisant le schéma XSD de Aspose.PDF
    3. Utiliser un document XML basé sur la norme XSL-FO

    Convertir XSL-FO en PDF

    La conversion de fichiers XSL-FO en PDF peut être réalisée en utilisant la technique traditionnelle d’Aspose.PDF - instancier l’objet Document avec XslFoLoadOptions. Mais parfois, vous pouvez rencontrer une structure de fichier incorrecte. Dans ce cas, le convertisseur XSL-FO permet de définir la stratégie de gestion des erreurs. Vous pouvez choisir ThrowExceptionImmediately, TryIgnore ou InvokeCustomHandler.

    public static void Convert_XSLFO_to_PDF()
    {
        // Instancier l'objet XslFoLoadOption
        var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
        // Définir la stratégie de gestion des erreurs
        options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
        // Créer l'objet Document
        var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
        pdfDocument.Save(_dataDir + "data_xml.pdf");
    }
    

    Convertir LaTeX/TeX en PDF

    Le format de fichier LaTeX est un format de fichier texte avec des balises dans la dérivée LaTeX de la famille de langages TeX et LaTeX est un format dérivé du système TeX. LaTeX (ˈleɪtɛk/lay-tek ou lah-tek) est un système de préparation de documents et un langage de balisage de documents. Il est largement utilisé pour la communication et la publication de documents scientifiques dans de nombreux domaines, y compris les mathématiques, la physique et l’informatique. Il joue également un rôle important dans la préparation et la publication de livres et d’articles contenant des matériaux multilingues complexes, tels que le sanskrit et l’arabe, y compris les éditions critiques. LaTeX utilise le programme de composition typographique TeX pour formater sa sortie, et est lui-même écrit dans le langage de macro TeX.

    Aspose.PDF pour .NET prend en charge la fonctionnalité de conversion des fichiers TeX en format PDF et pour accomplir cette exigence, l’espace de noms Aspose.Pdf a une classe nommée LatexLoadOptions qui offre les capacités de charger les fichiers LaTex et de rendre le résultat en format PDF en utilisant la classe Document. Le fragment de code suivant montre le processus de conversion d’un fichier LaTex en format PDF avec C#.

    public static void ConvertTeXtoPDF()
    {
        // Instancier l'objet d'option de chargement Latex
        TeXLoadOptions options = new TeXLoadOptions();
        // Créer un objet Document
        Aspose.Pdf.Document pdfDocument= new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
        // Enregistrer le résultat dans un fichier PDF
        pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
    }