该页面可以包含自动翻译的文本。

从 PDF 文档中提取文本、路径和图像(C# 和 VB.NET)

使用 Docotic.Pdf 库 可在 Windows、Linux、macOS、Android、iOS 或云环境中的 .NET 上从 PDF 文档提取文本、图像和矢量路径。

提取文本和图像

从 PDF 获取文本

你可以使用 Docotic.Pdf 在 .NET 中将 PDF 文档转换为文本。此示例展示了如何在 C# 中将 PDF 转换为格式化文本:

using BitMiracle.Docotic.Pdf;

using var pdf = new PdfDocument("your_document.pdf");
var options = new PdfTextExtractionOptions
{
    SkipInvisibleText = true,
    WithFormatting = true
};
string formattedText = pdf.GetText(options);
Console.WriteLine(formattedText);

你可以仅从 PDF 页面的特定部分提取文本。为此请使用 PdfTextExtractionOptions.Rectangle 属性。

你还可以获取每个文本块的详细信息,以进行更复杂的分析。Docotic.Pdf 允许你提取 PDF 文本 按原样按单词按字符。此示例展示了如何在 C# 中按单词提取 PDF 文本:

using var pdf = new PdfDocument("your_document.pdf");
PdfPage page = pdf.Pages[0];
foreach (PdfTextData data in page.GetWords())
{
    Console.WriteLine(
    $"{{\n" +
    $"  text: '{data.GetText()}',\n" +
    $"  bounds: {data.Bounds},\n" +
    $"  font name: '{data.Font.Name}',\n" +
    $"  font size: {data.FontSize},\n" +
    $"  transformation matrix: {data.TransformationMatrix},\n" +
    $"  rendering mode: '{data.RenderingMode}',\n" +
    $"  brush: {data.Brush},\n" +
    $"  pen: {data.Pen}\n" +
    $"}},"
    );
}

阅读 从 PDF 提取文本 文章,获取更多 .NET 中 PDF 转文本的示例和信息。

在 .NET 中从 PDF 获取图像

该库可用于 按原样从 PDF 文件提取图像按绘制方式提取图像。如何在 C# 中从 PDF 提取所有图像:

using BitMiracle.Docotic.Pdf;

using var pdf = new PdfDocument("your_document.pdf");
int i = 0;
foreach (PdfImage image in pdf.GetImages())
{
    string imageFile = image.Save(i.ToString());
    ++i;
}

提取后的图像可以保存为 TIFF 和 JPEG 图像。

在提取图像时,该库不会重新压缩图像。你将获得与 PDF 中相同质量的图像。

你还可以获取有关图像在页面上实际绘制位置的信息。

从 PDF 提取矢量路径

你可以使用 PdfPage.GetObjects() 方法 获取 PDF 文档中矢量路径的信息。请查看 复制页面对象提取页面对象 示例以了解更多细节。

你还可以使用 PdfPage.GetObjects(PdfObjectExtractionOptions) 重载 将文本提取为矢量路径。此功能可用于在 .NET 中展平 PDF 文本。