冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

Spire.XLS for Java 13.6.5 已发布。该版本增强了 Excel 到 PDF 的转换。此外,该版本还修复了一些已知问题,如修复了添加水印后chart的横坐标发生改变的问题。详情请阅读以下内容。

问题修复:


下载Spire.XLS for Java 13.6.5请点击:

https://www.e-iceblue.cn/Downloads/Spire-XLS-JAVA.html

Spire.PDF for Java 9.6.2 已发布。本次更新增强了 PDF 到 Word 和 Excel 以及 OFD 到 PDF 的转换。此外,一些已知问题在该版本中被成功修复,如用 WPS 工具打开文档不显示添加的文本框的问题。详情请阅读以下内容。

问题修复:


获取Spire.PDF for Java 9.6.2请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-JAVA.html

将 PDF 文件转换为图片是文档管理系统、电子档案平台或在线预览工具中的常见需求,广泛应用于缩略图生成、跨平台内容展示及历史文档存档等业务场景。对于.NET开发人员来说,Spire.PDF库提供了一种强大而有效的方法来实现PDF到图像的高保真转换。其主要优势包括

  • 高保真渲染: 保留原始布局和图形。
  • 支持多种格式: 导出为 PNG、JPEG、BMP、TIFF 等格式。
  • 跨平台: 支持 .NET Framework、.NET Core 和 .NET 6+。

在本文中,您将学习如何使用 Spire.PDF for .NET在 C# 中将 PDF 转换为 JPG 或 PNG 图片,包括安装指南、实用代码片段和转换优化技巧等。

如何安装.NET PDF库

在开始使用 C# 将 PDF 转换为 PNG 或 PDF 转换为 JPG 之前,需要先安装 Spire.PDF for .NET 库。您可以通过 NuGet 包管理器进行安装:

  • 在 Visual Studio 中打开项目
  • 转到 “工具 > NuGet 包管理器 > 管理解决方案的NuGet程序包” 页面
  • 搜索 "Spire.PDF” 并安装该软件包

或者,使用程序包管理器控制台:

PM> Install-Package Spire.PDF

C# 将PDF转换为JPG图片: 简单示例

PdfDocument 类的 SaveAsImage(int pageIndex, PdfImageType type) 方法可用于将指定的 PDF 页面转换为图片。其中的两个参数:

1、 pageIndex (Int32)

  • 说明: 要转换的PDF页面的索引(页面索引从 0 开始)。
  • 例如:
    • 0 = 第一页
    • 1 = 第二页

2、 Type (PdfImageType)

  • 说明: 指定PdfImage的类型。
  • 枚举值:
    • Bitmap
    • Metafile

以下C#代码演示了如何使用 Spire.PDF 将PDF文档的第一页转换为JPEG图像:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;

namespace PDFtoJPG
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建PdfDocument 对象
            PdfDocument pdf = new PdfDocument();

            // 加载示例PDF 文档
            pdf.LoadFromFile("示例.pdf");

            // 将第二页转换为 bitmap 图片
            Image image = pdf.SaveAsImage(1, PdfImageType.Bitmap);

            // 将图片保存为JPG 格式
            image.Save("Pdf转JPG.jpg", ImageFormat.Jpeg);

            // 释放资源
            pdf.Dispose();
        }
    }
}

将PDF文档转换为JPG图片

C# PDF 转图片的进阶示例

设置图片分辨率

Spire.PDF 提供了另一种 SaveAsImage() 方法的重载,该方法需要四个参数:页面索引、图片类型、水平分辨率(dpiX) 和垂直分辨率(dpiY)。 使用该方法,您可以通过自定义DPI设置来控制输出图像的质量和大小。

下面的C#代码示例将PDF的第一页转换为高分辨率的PNG图像(300 DPI):

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;

namespace PDFtoImage
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 创建PdfDocument 对象
                PdfDocument pdf = new PdfDocument();

                // 加载示例PDF 文档
                pdf.LoadFromFile("示例.pdf");

                // 将第二页转换为指定分辨率的图片
                Image image = pdf.SaveAsImage(1, PdfImageType.Bitmap, 300, 300);

                // 将图片另存为PNG 格式
                image.Save("Pdf转PNG.png", ImageFormat.Png);

                // 释放资源
                pdf.Dispose();

            }
        }
    }

将PDF转换为PNG图片

请注意:DPI 越高,图像质量越好,但转换速度越慢。

将整个PDF文件转换为图片

遍历PDF 中的所有页面,然后将每个页面转换为单独的图片:

// 遍历PDF中所有页面
for (int i = 0; i < pdf.Pages.Count; i++)
{
    // 将每页转换为单独的图片并设置Dpi
    Image image = pdf.SaveAsImage(i, PdfImageType.Bitmap, 300, 300);

    // 将图片保存为PNG格式
    string file = string.Format("Image\\ToImage-{0}.png", i);
    image.Save(file, ImageFormat.Png);
}

转换为不同的图像格式

通过更改 Image.Save() 方法的 ImageFormat 参数,可以将 PDF 转换为 JPG、PNG、BMP 或 Gif 格式:

// 保存为 JPEG 格式
image.Save("PDFtoJPG.jpg", ImageFormat.Jpeg);

// 保存为 PNG 格式
image.Save("PDFtoPNG.png", ImageFormat.Png);

// 保存为 BMP 格式
image.Save("PDFtoBMP.bmp", ImageFormat.Bmp);

// 保存为 EMF 格式
image.Save("PDFtoEMF.emf", ImageFormat.Emf);

// 保存为 GIF 格式
image.Save("PDFtoGIF.gif", ImageFormat.Gif);

使用内存流

对于需要处理数据流的情况,可参考以下代码:

// 创建 MemoryStream 对象
MemoryStream ms = new MemoryStream();

// 将第一页转换为图片并设置dpi
Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap, 300, 300);

// 以 PNG 格式将图像保存到流
image.Save(ms, ImageFormat.Png);

// 将Stream对象写入字节数组,以便进一步处理
byte[] imageBytes = ms.ToArray();

性能优化技巧

  • 内存管理: 逐页转换,避免处理大型PDF文件时出现内存超载的情况。
  • DPI 优化: 设置高DPI可提高图像质量,但也会增加文件大小和处理时间。
  • 资源处置: 调用 PdfDocument 类的 Dispose() 方法释放资源。

结论

Spire.PDF 为 C# 开发者提供了一种高效的方式来将 PDF 文件转换为图片。其强大的功能集、高质量的渲染效果以及对多种图像格式的支持,使其成为处理简单或复杂 PDF 转图片任务的理想选择。通过本文提供的示例,您可以在.NET 应用程序中快速集成 PDF 转换功能。

常见问题

问题1:如何去除输出图片上的水印?

答:您可以申请30天免费试用许可证,以去除红色水印并全面评估Spire.PDF库。或者您也可以使用免费版(有一定的页面限制)。

问题 2:Spire.PDF 能将PDF转换为多页TIFF文件吗?

答:可以!官方详细教程请参阅: 使用C#将PDF转换为TIFF

问题3:Spire.PDF 能将PDF转换为SVG吗?

答:可以!Spire.PDF for .NET提供了 SaveToFile(String, FileFormat.SVG) 方法,用于将PDF文件转换为SVG文件。完整示例可以查看这篇文章

问题4:在哪里可以找到其他文档或获得技术支持?

Spire.Office for Java 8.6.0 已发布。在该版本中,Spire.Doc for Java支持了设置装订线位置和内容控件的颜色;Spire.XLS for Java增强了 Excel 到 PDF 和图片的转换。此外,许多已知问题也在该版本中被成功修复。详情请阅读以下内容。

获取 Spire.Office for Java 8.6.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html


Spire.Doc for Java

新功能:

问题修复:


Spire.XLS for Java

问题修复:

Spire.Doc for Java 11.6.0 已发布。该版本支持设置装订线位置和内容控件的颜色。该版本还增强了 Word 到 PDF 和 OFD 的转换功能。此外,一些已知问题在该版本中被成功修复,如接受修订后多出空白段落的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.Doc for Java 11.6.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-Doc-JAVA.html

Spire.PDFViewer 7.11.0 已发布。该版本修复了文档内容显示不完整的问题。同时,该版本还修复了一些已知问题,如修复了滚动页面时,文档内容无法流畅加载的问题。详情请阅读以下内容。

问题修复:


获取Spire.PDFViewer 7.11.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDFViewer-NET.html

现今,将 PDF 文档转换为 Word 文件已经相对容易。然而,如果您需要在转换过程中保留原始的布局和字体格式,那么并非所有的软件都能够胜任这项任务。在此方面,Spire.PDF for Java 表现得十分出色,它在用 Java 将 PDF 转换为 Word 时为用户提供了以下两种转换模式,以便更好地满足用户的需求:

固定布局模式转换速度快,有利于最大程度保持 PDF 文件的原貌。但是,生成的文档的可编辑性将受到限制,因为 PDF 中的每一行文本将在生成的 Word 文档中显示在单独的框架中。

流动形态是一种完整的识别模式。转换后的内容不会以框架形式呈现,并且生成的文档的结构是可流动的。生成的 Word 文档很容易重新编辑,但看起来可能与原始 PDF 文件不同。

安装 Spire.PDF for Java

首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>11.11.11</version>
    </dependency>
</dependencies>

将 PDF 转换为固定布局的 Doc/Docx 文档

Spire.PDF for Java 拥有强大的文档转换功能,仅需三步即可实现将 PDF 转换为固定布局的 Doc/Docx 文档。详细步骤如下:

  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

public class ConvertPdfToWordWithFixedLayout {

    public static void main(String[] args) {

        //创建PdfDocument对象
        PdfDocument doc = new PdfDocument();

        //加载PDF文件
        doc.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\示例文档.pdf");

        //将PDF转换为Doc文档并保存到指定的路径
        doc.saveToFile("ToDoc.doc", FileFormat.DOC);

        //将PDF转换为Docx文档并保存到指定的路径
        doc.saveToFile("ToDocx.docx", FileFormat.DOCX);
        doc.close();
    }
}

将 PDF 转换为流动形态的 Doc/Docx 文档

Spire.PDF for Java 提供了 PdfDocument.getConvertOptions().setConvertToWordUsingFlow() 方法,可以将 PDF 文档转换为流动形态的 Doc/Docx 文档。详细步骤如下:

  • Java
import com.spire.pdf.FileFormat;
        import com.spire.pdf.PdfDocument;

public class ConvertPdfToWordWithFlowableStructure {

    public static void main(String[] args) {

        //创建PdfDocument对象
        PdfDocument doc = new PdfDocument();

        //加载PDF文件
        doc.loadFromFile("示例文档.pdf");

        //将PDF转换为具有流动结构的Word
        doc.getConvertOptions().setConvertToWordUsingFlow(true);

        //将PDF转换为Doc格式文件并保存
        doc.saveToFile("ToDoc.doc", FileFormat.DOC);

        //将PDF转换为Docx格式文件并保存
        doc.saveToFile("ToDocx.docx", FileFormat.DOCX);
        doc.close();
    }
}

使用 PdfToWordConverter 直接转换 PDF 到 Word

Spire.PDF for Java 还提供了 PdfToWordConverter 类来直接进行 PDF 到 Word 文档的转换。开发者可以直接使用文件路径或 Stream 实例作为参数创建 PdfToWordConverter 实例,然后使用 PdfToWordConverter.saveToDocx() 方法直接将 PDF 文件转换为 Word 文档并保存为文件或 Stream 实例。以下是操作步骤:

  • Java
import com.spire.pdf.conversion.PdfToWordConverter;

public class Test {
    public static void main(String[] args) throws Exception {
        // 使用PDF文件路径或流创建一个PdfToWordConverter实例
        PdfToWordConverter converter = new PdfToWordConverter("Sample.pdf");

        // 将PDF文件转换为Word文档,并保存到文件或流中
        converter.saveToDocx("output/PDFToWord.docx");

        // 释放资源
        converter.dispose();
    }
}

转换结果:

Java 将 PDF 转为 Word

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

Spire.Doc 11.6.1 已发布。改版本增强了 Word 到 PDF 和 HTML 的转换。此外,许多已知问题也在本次更新中被成功修复,如更新邮件合并域失败的问题。详情请阅读以下内容。

问题修复:


获取Spire.Doc 11.6.1请点击:

https://www.e-iceblue.cn/Downloads/Spire-Doc-NET.html

Spire.XLS for Java 13.6.0 已发布。该版本增强了 Excel 到 PDF 的转换。此外,该版本还修复了一些已知问题,如修复了添加图片水印后图表的横坐标发生改变的问题。详情请阅读以下内容。

问题修复:


下载Spire.XLS for Java 13.6.0请点击:

https://www.e-iceblue.cn/Downloads/Spire-XLS-JAVA.html

Word 文档中的变量是一种域,其特点是能够便捷、精确地对文本进行管理,如替换文本、删除文本等操作。与查找替换功能相比,通过给变量赋值的方式来替换文本通常更快捷,且不容易出错。本文将介绍如何使用 Spire.Doc for Java 通过程序在 Word 文档中添加或更改变量

安装 Spire.Doc for Java

首先,您需要在 Java 程序中添加 Spire.Doc.jar 文件作为依赖项。您可以从此链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>13.12.2</version>
    </dependency>
</dependencies>

插入变量到 Word 文档

由于 Word 文档中的变量是域的一种,我们可以直接使用插入域的 Paragraph.appendField(String fieldName, FieldType.Field_Doc_Variable) 方法来插入变量到 Word 文档中,然后再使用 VariableCollection.add() 方法来给变量赋值。需要注意的是,在给变量赋值后,还需要更新文档中的域,赋的值才会在打开 Word 文档时显示出来。插入变量的详细操作步骤如下:

  • Java
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.formatting.CharacterFormat;

public class AddVariables {
    public static void main(String[] args) {

        //创建Document
        Document document = new Document();

        //添加一个节
        Section section = document.addSection();

        //添加一个段落
        Paragraph paragraph = section.addParagraph();

        //设置文本格式
        CharacterFormat characterFormat = paragraph.getStyle().getCharacterFormat();
        characterFormat.setFontName("微软雅黑");
        characterFormat.setFontSize(14);

        //设置页边距
        section.getPageSetup().getMargins().setTop(80f);

        //添加变量到段落
        paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
        paragraph.appendText("是物质的永恒运动、变化的持续性、顺序性的表现,包含时刻和时段两个概念。\r\n");
        paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
        paragraph.appendText("是人类用以描述物质运动过程或事件发生过程的一个参数,确定");
        paragraph.appendField("物理量", FieldType.Field_Doc_Variable);
        paragraph.appendText(",是靠不受外界影响的物质周期变化的规律。");

        //获取变量集合
        VariableCollection variableCollection = document.getVariables();

        //给添加的变量赋值
        variableCollection.add("物理量", "时间");

        //更新文档中的域
        document.isUpdateFields(true);

        //保存文档
        document.saveToFile("添加变量.docx", FileFormat.Auto);
        document.dispose();
    }
}

Java 在 Word 文档中添加或更改变量

更改 Word 文档中变量的值

Spire.Doc for Java 提供的 VariableCollection.set() 可以更改指定变量的值。而在更改变量的值后,只需要更新文档中的域,文档中的所有此变量就会显示新的值,从而实现快速精确地替换的文本。以下是详细操作步骤:

  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.VariableCollection;

public class ChangeVariableValue {
    public static void main(String[] args) {

        //创建Document的对象
        Document document = new Document();

        //载入Word文档
        document.loadFromFile("添加变量.docx");

        //获取变量集合
        VariableCollection variableCollection = document.getVariables();

        //给指定变量分配一个新的值
        variableCollection.set("物理量", "Time");

        //更新文档中的域
        document.isUpdateFields(true);

        //保存文档
        document.saveToFile("更改变量.docx", FileFormat.Auto);
        document.dispose();
    }
}

Java 在 Word 文档中添加或更改变量

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。