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

Spire.Cloud 纯前端文档控件

数字签名作为一层重要的安全保护,能够确保 Excel 文件在签署后未被修改,并且能够验证文件的来源。然而,在某些情况下,文档管理人员可能需要检测并移除这些数字签名,例如需要对文档进行合并、更新等操作,或需要在不支持数字签名的系统中操作文件。本文将演示如何使用 Spire.XLS for Python 通过 Python 代码检测 Excel 文件是否包含数字签名,以及移除 Excel 文件中的数字签名,为批量处理包含数字签名的 Excel 文件提供简单高效的解决方案。

安装 Spire.XLS for Python

本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。

pip install Spire.XLS

如果您不清楚如何安装,请参考:如何在 Windows 中安装 Spire.XLS for Python

检测 Excel 文件中是否存在数字签名

Spire.XLS for Python 提供了 Workbook 类来处理 Excel 文件,并可以通过 Workbook.IsDigitallySigned 属性检查文件是否包含数字签名。开发者可以通过该属性返回的布尔值来判断 Excel 文件是否已签名。

检测 Excel 文件是否包含数字签名的具体步骤如下:

  • Python
Python
from spire.xls import *

# 创建Workbook的实例
workbook = Workbook()

# 加载一个Excel文件
workbook.LoadFromFile("示例.xlsx")

# 检查工作簿是否被数字签名
if not workbook.IsDigitallySigned:
    print("该工作簿没有数字签名。")
else:
    print("该工作簿已被数字签名。")

Python 检测及移除 Excel 文件中的数字签名

从 Excel 文件中移除数字签名

开发者可以使用 Workbook.RemoveAllDigitalSignatures() 方法轻松删除 Excel 工作簿中的所有数字签名。具体步骤如下:

  • Python
from spire.xls import *

# 创建Workbook的实例
workbook = Workbook()

# 加载一个Excel文件
workbook.LoadFromFile("示例.xlsx")

# 移除数字签名
workbook.RemoveAllDigitalSignatures()

# 保存文档
workbook.SaveToFile("output/移除Excel数字签名.xlsx", FileFormat.Version2016)
workbook.Dispose()

Python 检测及移除 Excel 文件中的数字签名

申请临时 License

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

在 Excel 数据透视表中,筛选器是一种控制显示内容的工具。它允许用户根据特定的条件筛选数据,以确保只展示相关信息。例如,用户可以按时间、地区、产品类别或其他关键字段进行筛选,从而减少了无关数据的干扰,提升数据分析的效率。本文将演示如何使用 Spire.XLS for .NET 在 C# 中为 Excel 数据透视表添加筛选器。

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.XLS

C# 给 Excel 数据透视表添加报表筛选器

Spire.XLS for .NET 提供了 XlsPivotTable.ReportFilters.Add() 方法,用于向 Excel 数据透视表添加报表筛选器。具体步骤如下:

  • C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;

namespace AddReportFilter
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象
            Workbook workbook = new Workbook();
            // 加载 Excel 文件
            workbook.LoadFromFile("示例.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取第一个数据透视表
            XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;

            // 创建报表筛选器
            PivotReportFilter reportFilter = new PivotReportFilter("产品", true);

            // 将报表筛选器添加到数据透视表
            pt.ReportFilters.Add(reportFilter);

            // 保存文件
            workbook.SaveToFile("报表筛选器.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

C# 给 Excel 数据透视表添加筛选器

C# 给 Excel 数据透视表的行字段添加筛选器

你可以使用 XlsPivotTable.RowFields[index].AddValueFilter() 或 XlsPivotTable.RowFields[index].AddLabelFilter() 方法为 Excel 数据透视表中的指定行字段添加值筛选器或标签筛选器。具体步骤如下:

  • C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;

namespace AddRowFilter
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象
            Workbook workbook = new Workbook();
            // 加载 Excel 文件
            workbook.LoadFromFile("示例.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取第一个数据透视表
            XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;

            // 为第一个行字段添加值筛选器
            pt.RowFields[0].AddValueFilter(PivotValueFilterType.GreaterThan, pt.DataFields[0], 5000, null);
            // 或为第一个行字段添加标签筛选器
            // pt.RowFields[0].AddLabelFilter(PivotLabelFilterType.Equal, "Mike", null);

            // 计算数据透视表数据
            pt.CalculateData();

            // 保存文件
            workbook.SaveToFile("行字段筛选器.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

C# 给 Excel 数据透视表添加筛选器

C# 给 Excel 数据透视表的列字段添加筛选器

要为数据透视表中的指定列字段添加值筛选器或标签筛选器,你可以使用 XlsPivotTable.ColumnFields[index].AddValueFilter() 或 XlsPivotTable.ColumnFields[index].AddLabelFilter() 方法。具体步骤如下:

  • C#
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.PivotTables;

namespace AddColumnFilter
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 对象
            Workbook workbook = new Workbook();
            // 加载 Excel 文件
            workbook.LoadFromFile("示例.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取第一个数据透视表
            XlsPivotTable pt = sheet.PivotTables[0] as XlsPivotTable;

            // 为第一个列字段添加标签筛选器
            pt.ColumnFields[0].AddLabelFilter(PivotLabelFilterType.Equal, "笔记本电脑", null);
            // 或为第一个列字段添加值筛选器
            // pt.ColumnFields[0].AddValueFilter(PivotValueFilterType.Between, pt.DataFields[0], 5000, 10000);

            // 计算数据透视表数据
            pt.CalculateData();

            // 保存文件
            workbook.SaveToFile("列字段筛选器.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

C# 给 Excel 数据透视表添加筛选器

申请临时 License

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

Spire.PDF for Java 10.10.0 更新已发布。本次更新新增支持在合并文档报错时返回错误文档的信息。此外,一些已知问题也在该版本中成功修复,如加密 PDF 文档后,红色印章变成黑色的问题。详情请阅读以下内容。

新功能:

问题修复:


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

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

当图片覆盖在文字的上方,文本会被图片遮盖从而无法阅读。这时,您可以通过设置图片的透明度来显示文字。本文将介绍怎样使用 Spire.Presentation for Java 将图片插入到幻灯片的特定位置,并通过 Java 设置 PowerPoint 中图片的透明度。

安装 Spire.Presentation for Java

首先,您需要在 Java 程序中添加 Spire.Presentation.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.presentation</artifactId>
        <version>11.9.10</version>
    </dependency>
</dependencies>

设置 PowerPoint 中图像的透明度

在此代码示例中涉及到多个类和方法,因此我们提供了下表,方便您更好地了解它们。

名字 释义
IAutoShape Interface 表示形状
ShapeList Class 表示形状的集合
PictureFillFormat Class 表示图片填充的格式
ShapeList.appendShape(ShapeType.shapeType, Rectangle2D.Double) Method 添加新图片到列表
IAutoShape.getLine().setFillType(FillFormatType.value) Method 设置线条的填充格式
IAutoShape.getFill().setFillType(FillFormatType.value) Method 设置形状的填充格式
IAutoShape.getFill().getPictureFill() Method 获取图片填充格式
PictureFillFormat.setFillType(PictureFillType.value) Method 设置图片填充模式
PictureFillFormat.getPicture().setUrl(java.lang.String value) Method 设置填充图像的图片的 URL
PictureFillFormat.getPicture().setTransparency() Method 设置图片填充的透明度

下面是设置 PowerPoint 中图像透明度的具体步骤:

  • Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.*;
import java.awt.geom.Rectangle2D;

public class SetImageTransparency {
   public static void main(String[] args) throws Exception {
       // 创建一个 Presentation 类的实例
       Presentation presentation = new Presentation();

       // 加载 PowerPoint 示例文档
       presentation.loadFromFile("/空白幻灯片.pptx");

       // 在第一页幻灯片的指定位置插入一个形状
       Rectangle2D.Double rect1 = new   Rectangle2D.Double(50, 130, 275, 150);
       IAutoShape shape =  presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect1);

       // 用图片填充这个形状
       shape.getLine().setFillType(FillFormatType.NONE);// 设置填充格式
       shape.getFill().setFillType(FillFormatType.PICTURE);// 设置填充的类型
       shape.getFill().getPictureFill().getPicture().setUrl("https://cdn.e-iceblue.cn/Logo1.png");// 设置链接图片的 URL
       shape.getFill().getPictureFill().setFillType(PictureFillType.STRETCH);// 设置图片填充模式

       // 设置图片的透明度
       shape.getFill().getPictureFill().getPicture().setTransparency(50);

       // 保存修改后的 PowerPoint 文档            
       presentation.saveToFile("/设置图片透明度.pptx", FileFormat.PPTX_2010);
   }
}

Java 设置 PowerPoint 图片透明度

申请临时 License

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

Spire.OCR 1.9.12 现已正式发布,该版本新增了 OCR 使用的新模型。同时,一些已知问题也在此次更新中被成功修复,例如字符识别错误和多次读取时字符识别不一致的问题。更多详情请查阅以下内容。

新功能:

问题修复:


获取 Spire.OCR 1.9.12,请点击:

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

Spire.Office 9.9.0 已正式发布。该版本新增了一些功能, Spire.XLS 支持识别 Msg 格式的 OLE 对象和对 DTD 进行禁用处理; Spire.Presentation 支持在执行转换功能时设置全局的字体目录,还增加了两个属性用于获取图表数据源的最后一行和最后一列。除此之外,一些在操作 Excel、PDF 和 PPT 文档时出现的问题也得以成功解决。更多新功能及问题修复详情如下。

该版本涵盖了最新版的 Spire.Doc、Spire.PDF、Spire.XLS、Spire.Presentation、Spire.DataExport、Spire.Barcode、Spire.DocViewer、Spire.PDFViewer、Spire.OfficeViewer、Spire.Email。

版本信息如下:

获取 Spire.Office 9.9.0, 请点击:

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


Spire.XLS

新功能:

问题修复:


Spire.PDF

问题修复:


Spire.Presentation

新功能:

问题修复:

Spire.Office for Java 9.9.0 已发布。在该版本中,Spire.Doc for Java 支持判断书签是否被隐藏;Spire.PDF for Java 支持提取指定区域的文本;Spire.XLS for Java 支持修订功能;Spire.Presentation for Java 支持获取 PowerPoint 文件中所有内嵌字体的名称。此外,本次更新还修复了许多已知问题。详情请阅读以下内容。

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

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


Spire.Doc for Java

新功能:

问题修复:


Spire.PDF for Java

新功能:

问题修复:


Spire.XLS for Java

新功能:

问题修复:


Spire.Presentation for Java

新功能:

问题修复:

尊敬的顾客朋友:

2024国庆将至,成都冰蓝科技有限公司全体职工在此向您致以最诚挚的祝福与问候!为满足节日期间的客户需求,我司就国庆放假安排做出如下通知:

因放假给您带来的不便,我们深表歉意。

恭祝:节日快乐,万事顺遂!

邮件地址:

在处理 PDF 文件时,有时可能需要裁剪 PDF 中的页面,以去除不必要的页边距、边框或不需要的内容。通过这样做,您可以使文档符合特定的设计要求或页面大小,从而确保输出更美观或功能更优化。本文将介绍如何使用 Spire.PDF for Python 在 Python 中裁剪 PDF 中的页面。

安装 Spire.PDF for Python

本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.PDF

如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python

Python 裁剪 PDF 页面

Spire.PDF for Python 允许您指定一个矩形区域,然后使用 PdfPageBase.CropBox 属性裁剪页面中的指定区域。具体步骤如下:

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("示例文档.pdf")

# 获取第一张页面
page = pdf.Pages.get_Item(0)

# 按指定区域裁剪页面
page.CropBox = RectangleF(0.0, 50.0, 600.0, 320.0)

# 保存结果文件
pdf.SaveToFile("裁剪PDF.pdf")
pdf.Close()

Python 裁剪 PDF 页面

Python 裁剪 PDF 页面并导出为图片

为了完成这项任务,你可以使用 PdfDocument.SaveAsImage(pageIndex: int) 方法将裁剪了的 PDF 页面转换为图像流,然后再进一步保存为指定的图片格式。具体步骤如下:

  • Python
from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("示例文档.pdf")

# 获取第一张页面
page = pdf.Pages.get_Item(0)

# 按指定区域裁剪页面
page.CropBox = RectangleF(0.0, 50.0, 600.0, 320.0)

# 将页面转换为图片
with pdf.SaveAsImage(0) as imageS:

    # 将图像保存为 PNG 文件
    imageS.Save("裁剪PDF导出为图片.png")
pdf.Close()

Python 裁剪 PDF 页面

申请临时 License

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

将 PDF 文档转换为更灵活、更易编辑的格式,如 Markdown,已成为开发人员和内容创作者的常见需求。这样的转换不仅有助于更轻松地进行文档编辑和版本控制,还能增强内容在不同平台和应用程序之间的可移植性,特别适合网络发布及分享。通过使用 Spire.PDF for .NET,开发人员可以自动化这一转换过程,同时确保在生成的 Markdown 文件中保留原始 PDF 的丰富格式和结构。

本文将演示如何使用 Spire.PDF for .NET 通过 C# 代码将 PDF 文档转换为 Markdown 格式。

安装 Spire.PDF for .NET

首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。

PM> Install-Package Spire.PDF

将 PDF 文档转换为 Markdown 文件

借助 Spire.PDF for .NET,开发者可以用 PdfDocument.LoadFromFile(string filename) 方法从文件载入 PDF 文档,然后用 PdfDocument.SaveToFile(string filename, FileFormat fileFormat) 方法将其转换为想要的格式并保存。在转换 PDF 文档为 Markdown 文件时,只需要在调用保存方法时将 FileFormat.Markdown 枚举类作为参数即可。

以下是详细操作步骤:

  • C#
using Spire.Pdf;

namespace PDFToMarkdown
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建PdfDocument类的实例
            PdfDocument pdf = new PdfDocument();

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

            // 将文档转换为Markdown文件
            pdf.SaveToFile("output/PDF转Markdown.md", FileFormat.Markdown);

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

原 PDF 文档:

C# 将 PDF 转换为 Markdown

转换出的 Markdown 文件:

C# 将 PDF 转换为 Markdown

通过流将 PDF 转换为 Markdown

除了直接读取文件进行操作外,Spire.PDF for .NET 还支持使用 PdfDocument.LoadFromStream() 方法从流中加载 PDF 文档,然后使用 PdfDocument.SaveToStream() 方法将其转换为 Markdown 文件流。使用流可以减少内存使用量,支持大文件处理,实现实时数据传输,同时还能简化与其他系统的数据交换。

通过流将 PDF 文档转换为 Markdown 文件的详细步骤如下:

  • C#
using Spire.Pdf;
using System.IO;
using System.Net.Http;

namespace PDFToMarkdownByStream
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // 创建 PdfDocument 类的实例
            PdfDocument pdf = new PdfDocument();

            // 从 URL 下载 PDF 文档作为字节数组
            using (HttpClient client = new HttpClient())
            {
                byte[] pdfBytes = await client.GetByteArrayAsync("http://example.com/Sample.pdf");

                // 使用字节数组创建 MemoryStream
                using (MemoryStream inputStream = new MemoryStream(pdfBytes))
                {
                    // 从流中加载 PDF 文档
                    pdf.LoadFromStream(inputStream);

                    // 创建另一个 MemoryStream 对象来存储 Markdown 文件
                    using (MemoryStream outputStream = new MemoryStream())
                    {
                        // 将 PDF 文档转换为 Markdown 文件流
                        pdf.SaveToStream(outputStream, FileFormat.Markdown);
                        outputStream.Position = 0; // 重置流的位置以便后续读取

                        // 上传结果流或将其写入文件
                        await client.PostAsync("http://example.com/upload", new StreamContent(outputStream));
                        File.WriteAllBytes("output.md", outputStream.ToArray());
                    }
                }
            }

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

申请临时 License

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