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

Spire.Cloud 纯前端文档控件

Spire.Presentation for Java 8.4.2已发布。该版本修复了获取出的SmartArt的节点的坐标值不正确的问题。详情请阅读以下内容。

问题修复:


获取Spire.Presentation for Java 8.4.2请点击:

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

Spire.Doc for Java 11.4.2 已发布。该版本新增支持 Docx2016 和 Docx2019 文件格式。同时,该版本还支持仅更新目录的页码和获取批注的回复项的功能。此外,该版本增强了 Word 到 PDF、HTML 和 OFD 的转换。许多已知问题也在本次更新中被修复,如接受修订后页面由竖版变为横版的问题。详情请阅读以下内容。

新功能:

问题修复:


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

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

更改 Word 文档中的字体颜色是强调要点的有效方法。例如,如果您正在创建包含重要数据的报告,将数据文本的字体颜色更改为较亮的颜色可以使其从其他文本中脱颖而出,并迅速吸引读者的注意力。更改字体颜色的另一个好处是可以增强文档的视觉外观和可读性。例如,在准备营销材料时,将标题和副标题的字体颜色更改为与文本其他部分不同的字体颜色,可以帮助我们创建清晰的信息层次,使材料更具吸引力,更易于阅读。在本文中,我们将演示如何使用 Spire.Doc for C++ 更改 Word 文档中的字体颜色。

安装 Spire.Doc for C++

有两种方法可以将 Spire.Doc for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.Doc for C++ 集成到 C++ 程序中

更改 Word 中段落的字体颜色

若要更改 Word 文档中特定段落的字体颜色,可以创建具有特定字体颜色的自定义段落样式,然后将该样式添加到文档中,并将其应用于要修改的段落。具体步骤如下:

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;

int main()
{
    // 创建Document类的实例
    intrusive_ptr<Document> document = new Document();

    //加载Word文档
    document->LoadFromFile(L"示例文档.docx");

    //获取第一节
    intrusive_ptr<Section> section = document->GetSections()->GetItemInSectionCollection(0);

    //更改第一段的字体颜色
    intrusive_ptr<Paragraph> p1 = section->GetParagraphs()->GetItemInParagraphCollection(0);
    intrusive_ptr<ParagraphStyle> style1 = new ParagraphStyle(document);
    style1->SetName(L"颜色1");
    style1->GetCharacterFormat()->SetTextColor(Color::GetRosyBrown());
    document->GetStyles()->Add(style1);
    p1->ApplyStyle(style1);

    //更改第二段的字体颜色
    intrusive_ptr<Paragraph> p2 = section->GetParagraphs()->GetItemInParagraphCollection(1);
    intrusive_ptr<ParagraphStyle> style2 = new ParagraphStyle(document);
    style2->SetName(L"颜色2");
    style2->GetCharacterFormat()->SetTextColor(Color::GetDarkGreen());
    document->GetStyles()->Add(style2);
    p2->ApplyStyle(style2);

    //保存结果文档
    document->SaveToFile(L"更改段落的字体颜色.docx", FileFormat::Docx2013);
    document->Close();
}

C++ 更改 Word 中的字体颜色

更改 Word 中特定文本的字体颜色

若要更改 Word 文档中特定文本的字体颜色,您需要搜索文档中的文本,然后更改其所有引用的字体颜色。具体步骤如下:

  • C++
#include "Spire.Doc.o.h";

using namespace Spire::Doc;
using namespace std;

int main()
{
 //创建Document类的实例
 intrusive_ptr<Document> document = new Document();

 //加载Word文档
 document->LoadFromFile(L"示例文档.docx");

 //查找要更改的字体颜色的文本
 vector<intrusive_ptr<TextSelection>> selection = document->FindAllString(L"孤独", false, true);

 //更改所有出现的文本的字体颜色
 for (auto text : selection)
 {
  text->GetAsOneRange()->GetCharacterFormat()->SetTextColor(Color::GetMediumPurple());
 }

 //保存结果文档
 document->SaveToFile(L"更改特定文本的字体颜色.docx", FileFormat::Docx2013);
 document->Close();
}

C++ 更改 Word 中的字体颜色

申请临时 License

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

饼图和圆环图是两种类似的图表,用于显示数据的百分比。这两个图表在视觉上都非常简洁,可以即时了解部分与整体的关系。在本文中,您将学习如何使用 Spire.XLS for C++ 在 Excel 中以编程方式创建饼图或圆环图。

安装 Spire.XLS for C++

有两种方法可以将 Spire.XLS for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.XLS for C++ 集成到 C++ 程序中

在 Excel 中创建饼图

饼图是一种分为几个扇区的圆形图。要在工作表中添加饼图,可以使用 Spire.XLS for C++ 提供的 Worksheet->GetCharts()->Add(ExcelChartType::Pie) 方法。以下是详细的步骤。

  • C++
#include "Spire.Xls.o.h" 

using namespace Spire::Xls;

int main()
{
	//指定输出文件路径
	std::wstring outputFile = L"Output\\饼状图.xlsx";

	//创建工作簿对象
	intrusive_ptr<Workbook> workbook = new Workbook();

	//获取第一个工作表并设置工作表名称
	intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));
	sheet->SetName(L""饼状图"");

	//在工作表中添加饼图
	intrusive_ptr<Chart> chart = nullptr;
	chart = sheet->GetCharts()->Add(ExcelChartType::Pie);

	//设置图表数据
	sheet->GetRange(L"A1")->SetValue(L"年份");
	sheet->GetRange(L"A2")->SetValue(L"2018");
	sheet->GetRange(L"A3")->SetValue(L"2019");
	sheet->GetRange(L"A4")->SetValue(L"2020");
	sheet->GetRange(L"A5")->SetValue(L"2021");

	sheet->GetRange(L"B1")->SetValue(L"销售额");
	sheet->GetRange(L"B2")->SetNumberValue(114000);
	sheet->GetRange(L"B3")->SetNumberValue(126000);
	sheet->GetRange(L"B4")->SetNumberValue(107000);
	sheet->GetRange(L"B5")->SetNumberValue(208500);

	//设置单元格样式
	sheet->GetRange(L"A1:B1")->SetRowHeight(15);
	sheet->GetRange(L"A1:B1")->GetStyle()->SetColor(Spire::Xls::Color::GetBlack());
	sheet->GetRange(L"A1:B1")->GetStyle()->GetFont()->SetColor(Spire::Xls::Color::GetWhite());
	sheet->GetRange(L"A1:B1")->GetStyle()->SetVerticalAlignment(VerticalAlignType::Center);
	sheet->GetRange(L"A1:B1")->GetStyle()->SetHorizontalAlignment(HorizontalAlignType::Center);

	//设置数字格式
	sheet->GetRange(L"B2:C5")->GetStyle()->SetNumberFormat(L"\"¥\"#,##0");

	//设置图表的数据范围
	chart->SetDataRange(sheet->GetRange(L"B2:B5"));
	chart->SetSeriesDataFromRange(false);

	//设置图表的位置
	chart->SetLeftColumn(1);
	chart->SetTopRow(6);
	chart->SetRightColumn(9);
	chart->SetBottomRow(25);

	//设置图表标题并设置其格式
	chart->SetChartTitle(L"年度销售情况");
	chart->GetChartTitleArea()->SetIsBold(true);
	chart->GetChartTitleArea()->SetSize(12);

	//在图表中获取指定的系列
	intrusive_ptr<ChartSerie> cs = chart->GetSeries()->Get(0);

	//设置系列的类别标签
	cs->SetCategoryLabels(sheet->GetRange(L"A2:A5"));

	//设置系列值
	cs->SetValues(sheet->GetRange(L"B2:B5"));

	//显示数据点的数据标签
	cs->GetDataPoints()->GetDefaultDataPoint()->GetDataLabels()->SetHasValue(true);

	//保存结果文件
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++ 在 Excel 中创建饼图或圆环图

在 Excel 中创建圆环图

圆环图是饼图的变体。它的中心有一个孔,可以显示其他信息。以下是在 Excel 工作表中添加圆环图的步骤。

  • C++
#include "Spire.Xls.o.h" 

using namespace Spire::Xls;

int main()
{
	//指定输出文件路径
	std::wstring outputFile = L"Output\\圆环图.xlsx";

	//创建工作簿对象
	intrusive_ptr<Workbook> workbook = new Workbook();

	//获取第一个工作表
	intrusive_ptr<Worksheet> sheet = dynamic_pointer_cast<Worksheet>(workbook->GetWorksheets()->Get(0));

	//将数据插入指定的单元格
	sheet->GetRange(L"A1")->SetValue(L"国家");
	sheet->GetRange(L"A2")->SetValue(L"古巴");
	sheet->GetRange(L"A3")->SetValue(L"墨西哥");
	sheet->GetRange(L"A4")->SetValue(L"法国");
	sheet->GetRange(L"A5")->SetValue(L"德国");
	sheet->GetRange(L"B1")->SetValue(L"销售额");
	sheet->GetRange(L"B2")->SetNumberValue(6000);
	sheet->GetRange(L"B3")->SetNumberValue(8000);
	sheet->GetRange(L"B4")->SetNumberValue(9000);
	sheet->GetRange(L"B5")->SetNumberValue(8500);

	//设置单元格样式
	sheet->GetRange(L"A1:B1")->SetRowHeight(15);
	sheet->GetRange(L"A1:B1")->GetStyle()->SetColor(Spire::Xls::Color::GetBlack());
	sheet->GetRange(L"A1:B1")->GetStyle()->GetFont()->SetColor(Spire::Xls::Color::GetWhite());
	sheet->GetRange(L"A1:B1")->GetStyle()->GetFont()->SetIsBold(true);
	sheet->GetRange(L"A1:B1")->GetStyle()->SetVerticalAlignment(VerticalAlignType::Center);
	sheet->GetRange(L"A1:B1")->GetStyle()->SetHorizontalAlignment(HorizontalAlignType::Center);

	//在工作表中添加环形图
	intrusive_ptr<Chart> chart = sheet->GetCharts()->Add();
	chart->SetChartType(ExcelChartType::Doughnut);

	//设置图表的数据范围
	chart->SetDataRange(sheet->GetRange(L"A1:B5"));
	chart->SetSeriesDataFromRange(false);

	//设置图表位置
	chart->SetLeftColumn(4);
	chart->SetTopRow(2);
	chart->SetRightColumn(12);
	chart->SetBottomRow(22);

	//设置图表标题
	chart->SetChartTitle(L"按国家划分的市场份额");
	chart->GetChartTitleArea()->SetIsBold(true);
	chart->GetChartTitleArea()->SetSize(12);

	//显示数据点的数据标签
	for (int i = 0; i < chart->GetSeries()->GetCount(); i++)
	{
		intrusive_ptr<ChartSerie> cs = chart->GetSeries()->Get(i);
		cs->GetDataPoints()->GetDefaultDataPoint()->GetDataLabels()->SetHasPercentage(true);
	}

	//设置图表的图例位置
	chart->GetLegend()->SetPosition(LegendPositionType::Top);

	//保存结果文件
	workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
	workbook->Dispose();
}

C++ 在 Excel 中创建饼图或圆环图

申请临时 License

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

Spire.Presentation for Java 8.4.1已发布。本次更新支持通过文本宽度调整表格列宽和设置形状的圆角半径。同时支持使用自定义布局添加新幻灯片。此外,一些已知问题也在该版本中被成功修复,如设置SeriesLinesColor后,打开文档时出现错误消息的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.Presentation for Java 8.4.1请点击

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

从 PDF 文档中提取文本功能在各个领域都有着广泛的应用。当处理大量的 PDF 格式合同、报告和财务数据。提取 PDF 文本可以快速检索关键信息,进行数据分析;当需要将 PDF 文档内容翻译成其他语言时,可以先提取原 PDF 文档文本内容;同时从 PDF 文档中提取的文本内容可以作为数据输入的一部分,与其他系统或应用进行无缝对接。在本文中,您将学习如何使用 Spire.PDF for C++ 从 PDF 文档中提取文本。

安装 Spire.PDF for C++

有两种方法可以将 Spire.PDF for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。

如何将 Spire.PDF for C++ 集成到 C++ 程序中

从指定页面提取所有文本

Spire.PDF for C++ 提供的 PdfTextExtractor 类用于从可搜索的 PDF 文件中提取文本,PdfTextExtractOptions 类用于管理提取选项。在未设置特定的提取选项时,默认情况下 PdfTextExtractor->ExtractText() 方法会从指定的页面中提取所有文本。详细的步骤如下:

  • C++
#include "Spire.Pdf.o.h"
#include <locale>
#include <codecvt>
using namespace Spire::Pdf;
using namespace std;

int main()
{
	// 创建PdfDocument对象
	intrusive_ptr<PdfDocument> doc = new PdfDocument();

	// 加载PDF文档
	doc->LoadFromFile(L"极昼极夜是怎么形成的.pdf");

	// 获取PDF第一页,遍历文档所有页便可提取文档所有文本内容
	intrusive_ptr<PdfPageBase> page = doc->GetPages()->GetItem(0);

	// 创建PdfTextExtractor 对象
	intrusive_ptr<PdfTextExtractor> textExtractor = new PdfTextExtractor(page);

	// 创建PdfTextExtractOptions 对象
	intrusive_ptr<PdfTextExtractOptions>  extractOptions = new PdfTextExtractOptions();

	// 从页面中提取文本
	wstring	text = textExtractor->ExtractText(extractOptions);

	// 写入到 txt 文件中
	wofstream write(L"提取文本.txt");
	auto LocUtf8 = locale(locale(""), new std::codecvt_utf8<wchar_t>);
	write.imbue(LocUtf8);
	write << text;

	// 释放对象
	write.close();
	doc->Close();
}

C++ 从 PDF 文档中提取文本

从页面矩形区域提取文本

使用 PdfTextExtractOptions.ExtractArea 属性可以指定一个页面矩形区域进行 PDF 文本内容的提取。具体步骤如下:

  • C++
#include "Spire.Pdf.o.h"
#include <locale>
#include <codecvt>
using namespace Spire::Pdf;
using namespace std;

int main()
{
	// 创建PdfDocument对象
	intrusive_ptr<PdfDocument> doc = new PdfDocument();

	// 加载PDF文档
	doc->LoadFromFile(L"极昼极夜是怎么形成的.pdf");

	// 获取PDF第一页
	intrusive_ptr<PdfPageBase> page = doc->GetPages()->GetItem(0);

	// 创建PdfTextExtractor 对象
	intrusive_ptr<PdfTextExtractor> textExtractor = new PdfTextExtractor(page);

	// 创建PdfTextExtractOptions 对象
	intrusive_ptr<PdfTextExtractOptions>  extractOptions = new PdfTextExtractOptions();

	// 设置提取区域范围
	extractOptions->SetExtractArea(new RectangleF(0, 0, 600, 200));

	// 从页面指定区域范围提取文本
	wstring	text = textExtractor->ExtractText(extractOptions);

	// 写入到 txt 文件中
	wofstream write(L"从指定区域提取文本.txt");
	auto LocUtf8 = locale(locale(""), new std::codecvt_utf8<wchar_t>);
	write.imbue(LocUtf8);
	write << text;

	// 释放对象
	write.close();
	doc->Close();
}

C++ 从 PDF 文档中提取文本

设置简单提取选项提取文本

Spire.PDF for C++ 使用上面提及的方式或设置 PdfTextExtractOptions->SetIsSimpleExtraction(false) 提取文本时,产品内部是根据文本坐标位置计算排序来提取。当设置 PdfTextExtractOptions->SetIsSimpleExtraction(true) 简单提取选项提取是根据文本在页面中绘制的逻辑顺序提取,即先绘制在页面的内容会先提取,后绘制的内容后提取,不管它的具体坐标位置。具体步骤如下:

  • C++
#include "Spire.Pdf.o.h"
#include <locale>
#include <codecvt>
using namespace Spire::Pdf;
using namespace std;

int main()
{
	// 创建PdfDocument对象
	intrusive_ptr<PdfDocument> doc = new PdfDocument();

	// 加载PDF文档
	doc->LoadFromFile(L"示例.pdf");

	// 获取PDF第一页
	intrusive_ptr<PdfPageBase> page = doc->GetPages()->GetItem(0);

	// 创建PdfTextExtractor 对象
	intrusive_ptr<PdfTextExtractor> textExtractor = new PdfTextExtractor(page);

	// 创建PdfTextExtractOptions 对象
	intrusive_ptr<PdfTextExtractOptions>  extractOptions = new PdfTextExtractOptions();

	// 设置简单提取选项为true来提取文本
	extractOptions->SetIsSimpleExtraction(true);

	// 提取文本
	wstring	text = textExtractor->ExtractText(extractOptions);

	// 写入到 txt 文件中
	wofstream write(L"提取文本.txt");
	auto LocUtf8 = locale(locale(""), new std::codecvt_utf8<wchar_t>);
	write.imbue(LocUtf8);
	write << text;

	// 释放对象
	write.close();
	doc->Close();
}

C++ 从 PDF 文档中提取文本

申请临时 License

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

Spire.Presentation 8.4.1 已发布。该版本修复了转换PPT到图片时程序进入死循环导致内存耗尽的问题。详情请阅读以下内容。

问题修复:


获取 Spire.Presentation 8.4.1 请点击:

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

当我们需要对单个 PDF 页面的内容进行分开展示、分开打印等操作时,重新编辑内容往往会比较麻烦。我们可以直接将单个页面拆分成多个页面,从而方便我们分别进行展示、打印等操作。本文将介绍如何使用 Spire.PDF for Java 通过程序拆分 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>12.9.0</version>
    </dependency>
</dependencies>

将一个 PDF 页面拆分成多个页面

Spire.PDF for Java 提供了 PdfPageBase.createTemplate().draw() 方法来将一个 PDF 页面的内容绘制在一个新的 PDF 页面上。我们可以使用这个方法将原页面的内容分别绘制在多个页面上来达到拆分 PDF 页面的目的。以下是将一个 PDF 页面拆分成三个页面的详细操作步骤:

  • Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.geom.Point2D;

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

        //创建PdfDocument的对象
        PdfDocument pdf = new PdfDocument();

        //载入PDF文档
        pdf.loadFromFile("C:/四月.pdf");

        //获取PDF文档的第一页
        PdfPageBase page = pdf.getPages().get(0);

        //创建一个新的PDF文档并移除页边距
        PdfDocument newPdf = new PdfDocument();
        newPdf.getPageSettings().getMargins().setAll(0);

        //横向拆分
        newPdf.getPageSettings().setWidth((float) page.getSize().getWidth());
        newPdf.getPageSettings().setHeight((float) page.getSize().getHeight()/3);

        //水平拆分
        //newPdf.getPageSettings().setWidth((float) page.getSize().getWidth()/2);
        //newPdf.getPageSettings().setHeight((float) page.getSize().getHeight());

        //添加一个页面到新建的PDF文档
        PdfPageBase newPage = newPdf.getPages().add();

        //将PdfLayoutType设置为Paginate来使内容自动分页
        PdfTextLayout layout = new PdfTextLayout();
        layout.setBreak(PdfLayoutBreakType.Fit_Page);
        layout.setLayout(PdfLayoutType.Paginate);

        //将原文的页面的内容绘制在新文档页面上
        page.createTemplate().draw(newPage, new Point2D.Float(0, 0), layout);

        //保存文档
        newPdf.saveToFile("拆分PDF页面.pdf");
        newPdf.close();
    }
}

Java 拆分 PDF 页面

申请临时 License

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

Spire.XLS for Java 13.4.1 已发布。改版本增强了 Excel 到 HTML 和 PDF 的转换。此外,该版本还修复了一些已知问题,如插入图片后图片高度改变的问题。详情请阅读以下内容。

问题修复:


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

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

对于包含机密信息或敏感信息的 PDF 文档,使用密码对其进行加密可以确保只有指定人员能够获取其中的内容。而对加密的 PDF 文档进行解密处理,则可以方便公开发布文档,使任何人都能够随意获取其中的内容。本文将介绍如何使用 Spire.PDF for Java 通过程序加密 PDF 文档或解密 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>12.9.0</version>
    </dependency>
</dependencies>

使用密码加密 PDF 文档

可以用于加密 PDF 文档的密码有两种:打开密码和权限密码。打开密码可以限制其他人打开 PDF 文档,必须输入密码才能查看有打开密码的 PDF 文档。而权限密码则可以限制对文档进行操作,如打印、复制、评论等。当一个 PDF 文档被同时用这两种密码加密时,可以使用其中任意一种来打开 PDF 文档。

Spire.PDF for Java 提供的 PdfDocument.encrypt()方法可以使用密码对PDF文档进行加密。 方法创建基于密码的安全策略, 方法可以同时用于设置打开密码和权限密码。以下是详细操作步骤:

  • Java
import java.util.EnumSet;

import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

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

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

//载入PDF文件
doc.loadFromFile("C:/信用卡跟踪表.pdf");

// 创建基于密码的安全策略,包含打开密码和权限密码
PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy("openPwd", "permissionPwd");

// 设置加密算法为AES 256位
securityPolicy.setEncryptionAlgorithm(PdfEncryptionAlgorithm.AES_256);

// 设置文档权限为禁止所有操作
securityPolicy.setDocumentPrivilege(PdfDocumentPrivilege.getForbidAll());

// 允许降级打印
securityPolicy.getDocumentPrivilege().setAllowDegradedPrinting(true);

// 允许修改注释
securityPolicy.getDocumentPrivilege().setAllowModifyAnnotations(true);

// 允许文档组装
securityPolicy.getDocumentPrivilege().setAllowAssembly(true);

// 允许修改文档内容
securityPolicy.getDocumentPrivilege().setAllowModifyContents(true);

// 允许填写表单字段
securityPolicy.getDocumentPrivilege().setAllowFillFormFields(true);

// 允许打印
securityPolicy.getDocumentPrivilege().setAllowPrint(true);

// 加密文档
doc.encrypt(securityPolicy);

// 将加密后的文档保存到输出文件路径
doc.saveToFile("加密.pdf",FileFormat.PDF);

// 释放文档资源
doc.dispose();
    }
}

Java 加密或解密 PDF 文档

移除 PDF 文档的密码

如需解密 PDF 文件,可以使用PdfDocument.decrypt()方法解密文档。 以下是详细操作步骤:

  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;

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

        //创建PdfDocument的对象
        PdfDocument pdf = new PdfDocument();

        //使用密码载入加密的PDF文档
        pdf.loadFromFile("加密.pdf", "password");

        //解密文档
        pdf.decrypt();

        //保存文件
        pdf.saveToFile("解密.pdf");
        pdf.close();
    }
}

Java 加密或解密 PDF 文档

申请临时 License

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