PDF 格式现已成为共享和保存文档的标准。在处理 PDF 文件时,您有时可能需要复制 PDF 中的特定页面,以提取有价值的内容、创建摘要或仅共享相关部分而不分发整个文档。在本文中,您将学习如何使用 Spire.PDF for Python 通过 Python 复制 PDF 中的页面。
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考: 如何在 Windows 中安装 Spire.PDF for Python
要复制 PDF 页面,可以先基于 PDF 中指定页面的内容创建模板,然后通过 PdfPageBase.Canvas.DrawTemplate() 方法将模板绘制到新添加的页面上。具体步骤如下:
from spire.pdf.common import *
from spire.pdf import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文件
pdf.LoadFromFile("示例.pdf")
# 获取第一页
page = pdf.Pages.get_Item(0)
# 获取页面大小
size = page.Size
# 基于该页面创建模板
template = page.CreateTemplate()
# 在文档指定位置插入新页面
page = pdf.Pages.Insert(2, size, PdfMargins(0.0))
# 在文档末尾添加新页面
# page = pdf.Pages.Add(size, PdfMargins(0.0))
# 将模板绘制到新页面上
page.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# 保存结果文件
pdf.SaveToFile("同一PDF复制页面.pdf");
pdf.Close()

Spire.PDF for Python 还可以加载两个 PDF 文件,基于其中一个 PDF 文件中的页面内容创建模板,然后将其绘制到另一个 PDF 文件的页面上。具体步骤如下:
from spire.pdf.common import *
from spire.pdf import *
# 加载第一个PDF文档
pdf1 = PdfDocument()
pdf1.LoadFromFile("示例.pdf")
# 加载第二个PDF文档
pdf2 = PdfDocument()
pdf2.LoadFromFile("考核.pdf")
# 获取第一个文档中的第一页
page = pdf1.Pages.get_Item(0)
# 获取页面大小
size = page.Size
# 基于该页面创建模板
template = page.CreateTemplate()
# 在第二个文档的指定位置插入新页面
newPage = pdf2.Pages.Insert(0, size, PdfMargins(0.0))
# 在第二个文档的末尾添加新页面
# newPage = pdf2.Pages.Add(size, PdfMargins(0.0))
# 将模板绘制到新页面上
newPage.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# 保存结果文档
pdf2.SaveToFile("在不同PDF之间复制页面.pdf")
pdf2.Close()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.Office 9.10.0 已发布。在该版本中,Spire.PDF 支持在转换 PDF 到 Markdown 时忽略图片以及在使用 Chrome 插件转换 HTML 到 PDF 时输出日志;Spire.Doc 新增方法用于跟踪文档元素的添加、删除以及文本内容的更改;Spire.XLS 支持 ARRAYTOTEXT、ARABIC、BASE、COMBINA 和 XOR 公式。此外,该版本还成功修复了大量已知问题。详情请阅读以下内容。
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
新功能:
PdfToMarkdownConverter converter = new PdfToMarkdownConverter(inputFile); converter.MarkdownOptions.IgnoreImage = true;
converter.ConvertToMarkdown(outputFile);PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(inputFile);
X509Certificate2 cert = new X509Certificate2(inputFile_pfx, "e-iceblue");
IPdfSignatureFormatter formatter = new PdfPKCS7Formatter(cert, false);
PdfMDPSignatureMaker pdfMDPSignatureMaker = new PdfMDPSignatureMaker(pdf, formatter);
PdfSignature signature = pdfMDPSignatureMaker.Signature;
signature.Name = "e-iceblue";
signature.ContactInfo = "028-81705109";
signature.Location = "chengdu";
signature.Reason = " this document";
PdfSignatureAppearance appearance = new PdfSignatureAppearance(signature);
appearance.NameLabel = "Signer: ";
appearance.ContactInfoLabel = "ContactInfo: ";
appearance.LocationLabel = "Loaction: ";
appearance.ReasonLabel = "Reason: ";
pdfMDPSignatureMaker.MakeSignature("signName", pdf.Pages[0], 100, 100, 250, 200, appearance);
pdf.SaveToFile(outputFile, FileFormat.PDF);
pdf.Dispose();PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile(inputFile);
PdfFormWidget widgets = pdf.Form as PdfFormWidget;
for (int i = 0; i < widgets.FieldsWidget.List.Count; i++)
{
PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget;
if (widget is PdfSignatureFieldWidget)
{
string originalName = widget.Name;
X509Certificate2 cert = new X509Certificate2(inputFile_pfx, "e-iceblue");
IPdfSignatureFormatter formatter = new PdfPKCS7Formatter(cert, false);
// PdfMDPSignatureMaker signatureMaker = new PdfMDPSignatureMaker(pdf, formatter);
PdfOrdinarySignatureMaker signatureMaker = new PdfOrdinarySignatureMaker(pdf, formatter);
PdfSignature signature = signatureMaker.Signature;
signature.Name = "E-iceblue";
signature.ContactInfo = "028-81705109";
signature.Location = "chengdu";
signature.Reason = "document";
PdfSignatureAppearance appearance = new PdfSignatureAppearance(signature);
appearance.NameLabel = "Signer: ";
appearance.ContactInfoLabel = "ContactInfo: ";
appearance.LocationLabel = "Loaction: ";
appearance.ReasonLabel = "Reason: ";
appearance.SignatureImage = PdfImage.FromFile(inputFile_Img);
appearance.GraphicMode = GraphicMode.SignImageAndSignDetail;
signatureMaker.MakeSignature(originalName, appearance);
}
}
pdf.SaveToFile(outputFile);
pdf.Dispose();ChromeHtmlConverter converter = new ChromeHtmlConverter(TestUtil.ChromiumPath);
//生成日志文件
converter.Logger = new Logger(logFilePath);
//启用IsEnabled 在控制台输出日志
//Logger.IsEnabled = true;
ConvertOptions options = new ConvertOptions();annotation.Title = "test";问题修复:
新功能:
public void StartTrackRevisions(string author);
public void StartTrackRevisions(string author, DateTime dateTime);
public void StopTrackRevisions();range.InsertRevision.Author = "e-iceblue";问题修复:
新功能:
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Text = "True";
workbook.Worksheets[0].Range["A2"].Text = "1234.01234";
workbook.Worksheets[0].Range["A3"].Text = "你好";
workbook.Worksheets[0].Range["B1"].Text = "#VALUE!";
workbook.Worksheets[0].Range["B2"].Text = "Seattle";
workbook.Worksheets[0].Range["B3"].Text = "$1,123.00";
workbook.Worksheets[0].Range["D1"].FormulaArray = "=ARRAYTOTEXT(A1:B4,0)";
workbook.Worksheets[0].Range["D3"].FormulaArray = "=ARRAYTOTEXT(A1:B4,1)";
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = "mcmxii";
workbook.Worksheets[0].Range["C1"].Formula = "=ARABIC(A1)";
workbook.Worksheets[0].Range["C2"].Formula = "=ARABIC(\"LVII\")";
workbook.Worksheets[0].Range["C3"].Formula = "=ARABIC(\"mcmxii\")";
workbook.Worksheets[0].Range["C4"].Formula = "=ARABIC(\"\")";
workbook.Worksheets[0].Range["C5"].Formula = "=ARABIC(\"-LVII\")";
workbook.Worksheets[0].Range["C6"].Formula = "=ARABIC(\"57\")";
workbook.Worksheets[0].Range["C7"].Formula = "=ARABIC(\"2024/10/15\")";
workbook.Worksheets[0].Range["C8"].Formula = "=ARABIC(\"文本\")"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 7;
workbook.Worksheets[0].Range["C1"].Formula = "=BASE(A1,2)";
workbook.Worksheets[0].Range["C2"].Formula = "=BASE(7,2)";
workbook.Worksheets[0].Range["C3"].Formula = "=BASE(100,16))";
workbook.Worksheets[0].Range["C4"].Formula = "=BASE(15,2,10)";
workbook.Worksheets[0].Range["C5"].Formula = "=BASE(文本,16))";
workbook.Worksheets[0].Range["C6"].Formula = "=BASE(-7,2)"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 4;
workbook.Worksheets[0].Range["C1"].Formula = "=COMBINA(A1,3)";
workbook.Worksheets[0].Range["C2"].Formula = "=COMBINA(4,3)";
workbook.Worksheets[0].Range["C3"].Formula = "=COMBINA(10,3)";
workbook.Worksheets[0].Range["C4"].Formula = "=COMBINA(3,10)";
workbook.Worksheets[0].Range["C5"].Formula = "=COMBINA(文本,16))"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 3;
workbook.Worksheets[0].Range["A2"].Value2 = 0;
workbook.Worksheets[0].Range["C1"].Formula = "=XOR(A1>A2)";
workbook.Worksheets[0].Range["C2"].Formula = "=XOR(2>9)";
workbook.Worksheets[0].Range["C3"].Formula = "=XOR(3>0,2<9)";
workbook.Worksheets[0].Range["C4"].Formula = "=XOR(3>12,2<9)";
workbook.Worksheets[0].Range["C5"].Formula = "=XOR(3>12,2<9,4>6)";
workbook.Worksheets[0].Range["A6"].Value2 = 3>0;
workbook.Worksheets[0].Range["C6"].Formula = "=XOR(A6)"; worksheet.Range["B1"].InsertOrUpdateCellImage("D:\\vs1.png",true); Workbook workbook = new Workbook();
workbook.LoadFromFile(inputFile);
var result = workbook.Worksheets[0].Range["A1"].GetNamedRange();
System.Console.WriteLine(result);
var result1 = workbook.Worksheets[0].Range["A2"].GetNamedRange();
System.Console.WriteLine(result1);
File.WriteAllText(outputFile_T, result.ToString()+ "\r\n");
File.AppendAllText(outputFile_T, result1.ToString()+ "\r\n");
var result2 = workbook.Worksheets[0].Range["A3"].GetNamedRange();
if (result2 == null)
{
System.Console.WriteLine("null");
File.AppendAllText(outputFile_T, "null");
}问题修复:
Spire.XLS 14.10.2 现已发布。该版本支持 ARRAYTOTEXT、ARABIC、BASE、COMBINA 和 XOR 公式,还支持嵌入图片到单元格以及获取单元格的 NamedRange。此外,一些在转换 Excel 到 PDF、获取页数和导出数据时出现的问题也已成功解决。新功能及问题修复详情如下。
新功能:
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Text = "True";
workbook.Worksheets[0].Range["A2"].Text = "1234.01234";
workbook.Worksheets[0].Range["A3"].Text = "你好";
workbook.Worksheets[0].Range["B1"].Text = "#VALUE!";
workbook.Worksheets[0].Range["B2"].Text = "Seattle";
workbook.Worksheets[0].Range["B3"].Text = "$1,123.00";
workbook.Worksheets[0].Range["D1"].FormulaArray = "=ARRAYTOTEXT(A1:B4,0)";
workbook.Worksheets[0].Range["D3"].FormulaArray = "=ARRAYTOTEXT(A1:B4,1)";
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = "mcmxii";
workbook.Worksheets[0].Range["C1"].Formula = "=ARABIC(A1)";
workbook.Worksheets[0].Range["C2"].Formula = "=ARABIC(\"LVII\")";
workbook.Worksheets[0].Range["C3"].Formula = "=ARABIC(\"mcmxii\")";
workbook.Worksheets[0].Range["C4"].Formula = "=ARABIC(\"\")";
workbook.Worksheets[0].Range["C5"].Formula = "=ARABIC(\"-LVII\")";
workbook.Worksheets[0].Range["C6"].Formula = "=ARABIC(\"57\")";
workbook.Worksheets[0].Range["C7"].Formula = "=ARABIC(\"2024/10/15\")";
workbook.Worksheets[0].Range["C8"].Formula = "=ARABIC(\"文本\")"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 7;
workbook.Worksheets[0].Range["C1"].Formula = "=BASE(A1,2)";
workbook.Worksheets[0].Range["C2"].Formula = "=BASE(7,2)";
workbook.Worksheets[0].Range["C3"].Formula = "=BASE(100,16))";
workbook.Worksheets[0].Range["C4"].Formula = "=BASE(15,2,10)";
workbook.Worksheets[0].Range["C5"].Formula = "=BASE(文本,16))";
workbook.Worksheets[0].Range["C6"].Formula = "=BASE(-7,2)"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 4;
workbook.Worksheets[0].Range["C1"].Formula = "=COMBINA(A1,3)";
workbook.Worksheets[0].Range["C2"].Formula = "=COMBINA(4,3)";
workbook.Worksheets[0].Range["C3"].Formula = "=COMBINA(10,3)";
workbook.Worksheets[0].Range["C4"].Formula = "=COMBINA(3,10)";
workbook.Worksheets[0].Range["C5"].Formula = "=COMBINA(文本,16))"; Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Value2 = 3;
workbook.Worksheets[0].Range["A2"].Value2 = 0;
workbook.Worksheets[0].Range["C1"].Formula = "=XOR(A1>A2)";
workbook.Worksheets[0].Range["C2"].Formula = "=XOR(2>9)";
workbook.Worksheets[0].Range["C3"].Formula = "=XOR(3>0,2<9)";
workbook.Worksheets[0].Range["C4"].Formula = "=XOR(3>12,2<9)";
workbook.Worksheets[0].Range["C5"].Formula = "=XOR(3>12,2<9,4>6)";
workbook.Worksheets[0].Range["A6"].Value2 = 3>0;
workbook.Worksheets[0].Range["C6"].Formula = "=XOR(A6)"; worksheet.Range["B1"].InsertOrUpdateCellImage("D:\\vs1.png",true); Workbook workbook = new Workbook();
workbook.LoadFromFile(inputFile);
var result = workbook.Worksheets[0].Range["A1"].GetNamedRange();
System.Console.WriteLine(result);
var result1 = workbook.Worksheets[0].Range["A2"].GetNamedRange();
System.Console.WriteLine(result1);
File.WriteAllText(outputFile_T, result.ToString()+ "\r\n");
File.AppendAllText(outputFile_T, result1.ToString()+ "\r\n");
var result2 = workbook.Worksheets[0].Range["A3"].GetNamedRange();
if (result2 == null)
{
System.Console.WriteLine("null");
File.AppendAllText(outputFile_T, "null");
}问题修复:
Spire.Office for Java 9.10.0 已发布。在最新版本中,Spire.Doc for Java 增强了 Markdown 到 Word 的转换功能;Spire.PDF for Java 支持使用 Chrome 插件转换 HTML 到 PDF;Spire.Presentation for Java 支持查找第一个出现的文本;Spire.OCR for Java 支持扫描图片流。此外,本次更新还修复了许多已知问题。详情请阅读以下内容。
获取 Spire.Office for Java 9.10.0 请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
问题修复:
新功能:
ChromeHtmlConverter converter = new ChromeHtmlConverter(TestUtil.ChromiumPath);
URI uri = new URI(converter.getUrl());
IWebSocketService webSocketService = (IWebSocketService) WebSocketServiceImpl.create(uri);
converter.setWebSocketService(webSocketService);
ConvertOptions options = new ConvertOptions();
options.setTimeout(10 * 1000);
PageSettings pageSettings = new PageSettings();
pageSettings.setPaperFormat(8);//A4
pageSettings.setMarginBottom(0);
pageSettings.setMarginTop(0);
pageSettings.setMarginLeft(0);
pageSettings.setMarginRight(0);
options.setPageSettings(pageSettings);
converter.convertToPdf(inputPath, OutputPath, options);ChromeHtmlConverter converter = new ChromeHtmlConverter(TestUtil.ChromiumPath);
converter.setLogger(new Logger(OutputPath_TXT));
// 输出保存到 TXT 文件
converter.getLogger().isEnabled(true);
//输出打印到控制台
问题修复:
新功能:
Presentation ppt = new Presentation();
ppt.loadFromFile(inputFile);
String text = "create, read";
PortionEx textRange=ppt.getSlides().get(0).FindFirstTextAsRange(text);
textRange.getFill().setFillType(FillFormatType.SOLID);
textRange.getFill().getSolidColor().setColor(Color.red);
textRange.setFontHeight(28);
textRange.setLatinFont(new TextFont("微软雅黑"));
textRange.isBold(TriState.TRUE);
textRange.isItalic(TriState.TRUE);
textRange.setTextUnderlineType(TextUnderlineType.DOUBLE);
textRange.setTextStrikethroughType(TextStrikethroughType.SINGLE);
ppt.saveToFile(outputFile, FileFormat.PPTX_2016);
ppt.dispose();问题修复:
新功能:
OcrScanner scanner = new OcrScanner();
//ConfigureOptions configureOptions = new ConfigureOptions("D:\\Models\\java\\Java\\win-x64\\","English");
ConfigureOptions configureOptions = new ConfigureOptions();
configureOptions.setLanguage("English");
configureOptions.setModelPath("D:\\Models\\java\\Java\\win-x64\\");
scanner.ConfigureDependencies(configureOptions);
scanner.scan(imageFile);
String scannedText=scanner.getText().toString();
System.out.println(scannedText);InputStream stream = new FileInputStream(sourceFolder);
scanner.Scan(stream, OCRImageFormat.Gif);问题修复:
Spire.PDF for Java 10.10.7 已发布。该版本新增支持使用 Chrome 插件转换 HTML 到 PDF。本次更新还增强了 HTML、SVG 和 OFD 到 PDF 以及 PDF 到图片的转换功能。此外,一些已知问题也在该版本中成功修复,如设置附件的自定义属性不生效的问题。详情请阅读以下内容。
新功能:
ChromeHtmlConverter converter = new ChromeHtmlConverter(TestUtil.ChromiumPath);
URI uri = new URI(converter.getUrl());
IWebSocketService webSocketService = (IWebSocketService) WebSocketServiceImpl.create(uri);
converter.setWebSocketService(webSocketService);
ConvertOptions options = new ConvertOptions();
options.setTimeout(10 * 1000);
PageSettings pageSettings = new PageSettings();
pageSettings.setPaperFormat(8);//A4
pageSettings.setMarginBottom(0);
pageSettings.setMarginTop(0);
pageSettings.setMarginLeft(0);
pageSettings.setMarginRight(0);
options.setPageSettings(pageSettings);
converter.convertToPdf(inputPath, OutputPath, options);ChromeHtmlConverter converter = new ChromeHtmlConverter(TestUtil.ChromiumPath);
converter.setLogger(new Logger(OutputPath_TXT));
// 输出保存到 TXT 文件
converter.getLogger().isEnabled(true);
//输出打印到控制台
问题修复:
Spire.Cloud 9.10.10 已发布。该版本支持给 Word 文档在线添加签名,同时也支持默认启用修订无标记模式(即默认接受修订)。此外,一些已知问题也在该版本中被成功修复,如编辑器打开 Excel 文档,下拉框丢失的问题。详情请查看以下内容:
新功能:
//在 example 的 default.json 配置,表示开启签名功能
“canSignature":true"unMarked": "true",问题修复:
了解 PDF 的页数有助于了解文档的长度,这在需要处理大量 PDF 文档的情况下尤其有用,例如日常办公、学术研究或法律文档管理。通过获取 PDF 页数,您可以估算处理文档所需的时间,从而合理安排任务并提高效率。本文将介绍如何使用 Spire.PDF for Java 通过 Java 获取 PDF 文件的页数。
首先,您需要在 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>
Spire.PDF for Java 提供的 PdfDocument.getPages().getCount() 方法可在不打开 PDF 文件的情况下快速获取 PDF 文件的页数。具体步骤如下:
import com.spire.pdf.PdfDocument;
public class CountPdfPages {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文件
pdf.loadFromFile("制度.pdf");
//计算PDF文件的页数
int pageCount = pdf.getPages().getCount();
//输出结果
System.out.print("该PDF文档的总页数为: " + pageCount);
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
如果原始文档的页边距或边框过大,而预期用途又不需要,那么裁剪 PDF 页面就特别有用。通过裁剪页面,您可以保留指定区域用于特定用途,使文档在共享、打印或演示时更加高效。本文将介绍如何使用 Spire.PDF for .NET 通过 C# 裁剪 PDF 中的页面。
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
Spire.PDF for .NET 允许您指定一个矩形区域,然后使用 PdfPageBase.CropBox 属性裁剪页面中的指定区域。具体步骤如下:
using Spire.Pdf;
using System.Drawing;
namespace CropPDFPage
{
class Program
{
static void Main(string[] args)
{
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文件
pdf.LoadFromFile("示例文档.pdf");
//获取第一张页面
PdfPageBase page = pdf.Pages[0];
//按指定区域裁剪页面
page.CropBox = new RectangleF(0, 50, 600, 320);
//保存结果文件
pdf.SaveToFile("裁剪PDF.pdf");
pdf.Close();
}
}
}

为了完成这项任务,你可以使用 PdfDocument.SaveAsImage(int pageIndex, PdfImageType type) 方法将裁剪过的 PDF 页面转换为图像。具体步骤如下:
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.Drawing.Imaging;
namespace CropPDFPage
{
class Program
{
static void Main(string[] args)
{
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文件
pdf.LoadFromFile("示例文档.pdf");
//获取第一张页面
PdfPageBase page = pdf.Pages[0];
//按指定区域裁剪页面
page.CropBox = new RectangleF(0, 50, 600, 320);
//将页面转换为图片
Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap);
//将图像保存为PNG文件
image.Save("导出为PNG图片.png", ImageFormat.Png);
//将图像保存为JPG文件
//image.Save("导出为JPG图片.jpg", ImageFormat.Jpeg);
//将图像保存为BMP文件
//image.Save("导出为BMP图片.bmp", ImageFormat.Bmp);
}
}
}

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.OCR for Java 1.9.19 现已正式发布,最新版本支持扫描图片流,并且新增了 OCR 使用的新模型。此外,一些已知问题也在此次升级更新中被成功修复,比如在 Ubuntu 系统上识别图片抛异常的问题。更多详情请阅读下面的内容。
新功能:
OcrScanner scanner = new OcrScanner();
//ConfigureOptions configureOptions = new ConfigureOptions("D:\\Models\\java\\Java\\win-x64\\","English");
ConfigureOptions configureOptions = new ConfigureOptions();
configureOptions.setLanguage("English");
configureOptions.setModelPath("D:\\Models\\java\\Java\\win-x64\\");
scanner.ConfigureDependencies(configureOptions);
scanner.scan(imageFile);
String scannedText=scanner.getText().toString();
System.out.println(scannedText);InputStream stream = new FileInputStream(sourceFolder);
scanner.Scan(stream, OCRImageFormat.Gif);问题修复:
Spire.Doc 12.10.13 已发布。本次更新增强了 Word 到 PDF 的转换功能。此外,该版本还修复了替换书签中的段落文本后段落缩进丢失的问题。详情请阅读以下内容。
问题修复: