将其他文件格式转换为PDF

概览

本文解释了如何使用C#将各种其他类型的文件格式转换为PDF。它涵盖以下主题。

以下代码片段也可以与Aspose.PDF.Drawing库一起使用。

格式: EPUB

格式: Markdown

格式: MD

格式: PCL

格式: Text

格式: TXT

格式: Plain Text

格式: 预格式化的TXT

格式: 预文本

格式: XPS

将EPUB转为PDF

Aspose.PDF for .NET 允许您轻松将EPUB文件转换为PDF格式。

EPUB(电子出版物的简称)是来自国际数字出版论坛(IDPF)的一个自由开放的电子书标准。 EPUB(电子出版物的简称)是国际数字出版论坛(IDPF)的一个自由开放的电子书标准。

EPUB还支持固定布局内容。该格式旨在作为出版商和转换公司内部以及用于发行和销售的单一格式。它取代了开放电子书标准。EPUB 3版本也得到了图书行业研究小组(BISG)的认可,该组织是一个领先的图书行业协会,专门从事标准化最佳实践、研究、信息和事件的打包内容。

步骤:在C#中将EPUB转换为PDF 步骤: 在C#中将EPUB转换为PDF

  1. 创建 EpubLoadOptions 类的实例。
  2. 创建 Document 类的实例,提及源文件名和选项。
  3. 以所需的文件名保存文档。

下面的代码片段向您展示如何使用C#将EPUB文件转换为PDF格式。

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

您还可以设置转换的页面大小。要定义新的页面大小,请创建 SizeF 对象并将其传递给 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");
}

将 Markdown 转换为 PDF

此功能支持 19.6 或更高版本。

Aspose.PDF for .NET 提供了基于输入Markdown数据文件创建 PDF 文档的功能。要将 Markdown 转换为 PDF,您需要使用 MdLoadOptions 初始化 文档

以下代码片段展示了如何使用 Aspose.PDF 库实现此功能:

步骤:在 C# 中将 Markdown 转换为 PDF | 步骤: 在C#中将Markdown转换为PDF | 步骤: 在C#中将MD转换为PDF

  1. 创建 MdLoadOptions 类的实例。
  2. 创建 Document 类的实例,指定源文件名和选项。
  3. 以期望的文件名保存文档。
// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// 打开Markdown文档
Document pdfDocument= new Document(dataDir + "sample.md", new MdLoadOptions());
// 以PDF格式保存文档
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");

将PCL转换为PDF

PCL(打印机命令语言)是惠普公司开发的用于访问标准打印机功能的打印机语言。 PCL(打印机命令语言)是惠普开发的打印机语言,用于访问标准打印机功能。

当前仅支持PCL5及更早版本

``` ```
  • 用户定义的符号集。
  • 命令集 支持 异常 描述
    作业控制命令
    作业控制命令 + 双面打印模式 控制打印过程:复印件数量、输出仓、单面/双面打印、左侧和顶部偏移等。
    页面控制命令 + 跳过穿孔命令 指定页面大小、边距、页面方向、行间距、字符间距等。
    光标定位命令 +   指定光标位置,从而确定文本、栅格或矢量图像的起点和细节。
    指定光标位置,从而确定文本、光栅或矢量图像和细节的起点。
    字体选择命令 +
    1. 透明打印数据命令。
    2. 嵌入式软字体。在当前版本中,我们的库不是创建软字体,而是从目标机器上已安装的“硬”TrueType字体中选择合适的字体。
      适用性由宽高比定义。
      此功能仅适用于Bitmap和TrueType字体,并且不保证使用软字体打印的文本与源文件中的文本相关。
      因为软字体中的字符代码可能与默认的不匹配。
    3. 用户定义的符号集。
    允许从PCL文件加载软(嵌入式)字体并在内存中管理它们。
    光栅图形命令 + 仅限黑白 允许从PCL文件加载光栅图像到内存,指定光栅参数。
    如宽度、高度、压缩类型、分辨率等。
    颜色命令 +   允许对所有可打印对象进行着色。
    打印模型命令 ``` 打印模型命令 允许填充文本、光栅图像和矩形区域,使用预定义的光栅和用户定义的图案,指定图案和源光栅图像的透明度模式。预定义的图案包括剖面线、交叉剖面线和阴影。

    矩形区域填充命令 允许创建和填充具有图案的矩形区域。

    HP-GL/2 矢量图形命令 Screened Vector Command (SV), Transparency Mode Command (TR), Transparent Data Command (TD), RO 屏蔽矢量指令(SV)、透明模式指令(TR)、透明数据指令(TD)、旋转坐标系统(RO)、可缩放或位图字体命令(SB)、字符倾斜命令(SL)和额外空间(ES)未实现,DV(定义变量文本路径)命令在测试版中实现。

    允许从PCL文件加载HP-GL/2矢量图像到内存中。矢量图像原点在可打印区域的左下角,可以缩放、平移、旋转和裁剪。矢量图像可以包含文本,作为标签,以及几何图形,如矩形、圆形、椭圆、线条、弧线、贝塞尔曲线和由简单图形组成的复杂图形。封闭图形包括标签的字母可以用实心填充或矢量图案填充。图案可以是剖面图、十字剖面图、阴影、栅格自定义、PCL剖面图或PCL十字剖面图。

    孵化、交叉阴影、阴影、用户定义的光栅,PCL孵化或交叉阴影以及PCL用户定义。PCL图案为光栅。标签可以单独旋转、缩放,并在四个方向上指向:上、下、左、右。左和右方向涉及一个接一个的字母排列。上和下的方向涉及一个在另一个下面的字母排列。

    允许将一系列PCL命令加载到内存中并多次使用这些命令,例如,打印页面标题或为一组页面设置一种格式。

    Unicode文本

    允许打印非ASCII字符。由于缺少包含Unicode文本的样本文件,未实施。
    
    PCL6(PCL-XL)
    
    仅在Beta版本中实现,因为缺乏测试文件。嵌入式字体也不支持。由于无法获得JetReady规范,因此不支持JetReady扩展。
    
    二进制文件格式。
    
    ### 将PCL文件转换为PDF格式
    
    为了允许从PCL转换为PDF,Aspose.PDF有一个类[`PclLoadOptions`](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions),用于初始化LoadOptions对象。
    要实现从PCL转换为PDF,Aspose.PDF提供了[`PclLoadOptions`](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions)类,用于初始化LoadOptions对象。
    
    以下代码片段展示了将PCL文件转换为PDF格式的过程。
    
    <a name="csharp-convert-pcl-to-pdf" id="csharp-convert-pcl-to-pdf"><strong><em>步骤:</em> 在C#中将PCL转换为PDF</strong></a>
    
    1. 创建[PclLoadOptions](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions/)类的实例。
    2. 使用指定源文件名和选项,创建[Document](https://reference.aspose.com/pdf/net/aspose.pdf/document/)类的实例。
    3. 使用希望的文件名保存文档。
    
    ```csharp
    public static void ConvertPCLtoPDF()
    {
        PclLoadOptions options = new PclLoadOptions();
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    您还可以监控转换过程中的错误检测。 您还可以在转换过程中监控错误的检测。

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

    已知问题

    1. 如果打印方向不是0°,文本字符串和图像的起源可能与源PCL文件中的略有不同。如果矢量图的坐标系统旋转(前置RO命令),同样适用于矢量图。
    2. 如果标签受到一系列命令的影响:标签原点(LO)、定义可变文本路径(DV)、绝对方向(DI)或相对方向(DR),则矢量图中的标签原点可能与源PCL文件中的不同。
    3. 如果解析的PCL文件包含Intellifont或通用软字体,将抛出异常,因为完全不支持Intellifont和通用字体。
    4. 如果解析的PCL文件包含宏命令,解析的结果将与源文件大相径庭,因为不支持宏命令。

    将文本转换为PDF

    Aspose.PDF for .NET 支持将纯文本和预格式化文本文件转换为PDF格式的功能。

    将文本转换为PDF意味着将文本片段添加到PDF页面上。对于文本文件,我们处理两种类型的文本:预格式化(例如,每行80个字符的25行)和非格式化文本(纯文本)。根据我们的需求,我们可以自己控制这种添加,或者将其委托给库的算法。

    将PostScript转换为PDF

    Aspose.PDF for .NET 支持将PostScript文件转换为PDF格式的功能。Aspose.PDF的一个特点是您可以设置一组在转换过程中使用的字体文件夹。

    为了将PostScript文件转换为PDF格式,Aspose.PDF for .NET 提供了PsLoadOptions 类来初始化LoadOptions对象。之后,这个对象可以作为参数传递给Document对象的构造器,这将帮助PDF渲染引擎确定源文档的格式。

    以下代码片段可用于使用Aspose.PDF for .NET将PostScript文件转换为PDF格式:

    // 完整的示例和数据文件,请访问 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
    // 文档目录的路径。
    string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    // 创建一个新的PsLoadOptions实例
    PsLoadOptions options = new PsLoadOptions();
    // 使用创建的加载选项打开.ps文档
    Document pdfDocument = new Document(_dataDir + "input.ps", options);
    // 保存文档
    pdfDocument.Save(dataDir + "PSToPDF.pdf");
    

    Additionally, you can set a set of font folders that will be used during 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");
    }
    

    将 XML 转换为 PDF

    XML 格式用于存储结构化数据。有几种方法可以在 Aspose.PDF 中将 XML 转换为 PDF:

    1. 使用 XSLT 将任何 XML 数据转换为 HTML,然后按下面描述将 HTML 转换为 PDF
    2. 使用 Aspose.PDF XSD Schema 生成 XML 文档
    3. 使用基于 XSL-FO 标准的 XML 文档

    将 XSL-FO 转换为 PDF

    使用传统的 Aspose.PDF 技术将 XSL-FO 文件转换为 PDF - 使用 Document 对象和 XslFoLoadOptions 实例化。但有时您可能会遇到文件结构不正确的情况。对于这种情况,XSL-FO 转换器允许设置错误处理策略。您可以选择 ThrowExceptionImmediatelyTryIgnoreInvokeCustomHandler

    public static void Convert_XSLFO_to_PDF()
    {
        // 实例化 XslFoLoadOption 对象
        var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
        // 设置错误处理策略
        options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
        // 创建 Document 对象
        var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
        pdfDocument.Save(_dataDir + "data_xml.pdf");
    }
    

    将LaTeX/TeX转换为PDF

    LaTeX文件格式是一种带有标记的文本文件格式,它使用的是TeX家族语言的LaTeX衍生物,而LaTeX是TeX系统的派生格式。LaTeX(ˈleɪtɛk/lay-tek或lah-tek)是一个文档准备系统和文档标记语言。它广泛用于许多领域科学文件的交流和出版,包括数学、物理和计算机科学。它在准备和出版包含复杂多语言材料的书籍和文章中也扮演着重要角色,例如梵文和阿拉伯文,包括关键版本。LaTeX使用TeX排版程序来格式化其输出,并且本身是用TeX宏语言编写的。

    Aspose.PDF for .NET 支持将 TeX 文件转换为 PDF 格式的功能,为了实现这一需求,Aspose.Pdf 命名空间中有一个名为 LatexLoadOptions 的类,它提供了加载 LaTex 文件并使用 Document 类 渲染输出为 PDF 格式的功能。以下代码片段显示了使用 C# 将 LaTex 文件转换为 PDF 格式的过程。

    public static void ConvertTeXtoPDF()
    {
        // 实例化 Latex 加载选项对象
        TeXLoadOptions options = new TeXLoadOptions();
        // 创建 Document 对象
        Aspose.Pdf.Document pdfDocument= new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
        // 将输出保存为 PDF 文件
        pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
    }