我有从 pdf 文件中的特定区域提取文本和图像的特定要求。该区域可能是选定的或突出显示的,或者来自给定的一组坐标。
当我经历时,所有方法都是从不在指定位置的 PDF 中完全提取图像和文本。我尝试使用 iTextSharp、Syncfussion、Apose 但无法找到更好的方法。
如果有人可以在这方面帮助我,那就太好了。你能分享你关于如何在.net中实现它的想法和建议吗?
问候, Arun.M
此代码从 pdf 中提取图像
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Bytescout.PDFExtractor;
namespace ExtractAllImages
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// This test file will be copied to the project directory on the pre-build event (see the project properties).
String inputFile = Server.MapPath("sample1.pdf");
// Create Bytescout.PDFExtractor.ImageExtractor instance
ImageExtractor extractor = new ImageExtractor();
extractor.RegistrationName = "demo";
extractor.RegistrationKey = "demo";
// Load sample PDF document
extractor.LoadDocumentFromFile("sample1.pdf");
Response.Clear();
int i = 0;
// Initialize image enumeration
if (extractor.GetFirstImage())
{
do
{
if (i == 0) // Write the fist image to the Response stream
{
string imageFileName = "image" + i + ".png";
Response.Write("<b>" + imageFileName + "</b>");
Response.ContentType = "image/png";
Response.AddHeader("Content-Disposition", "inline;filename=" + imageFileName);
// Write the image bytes into the Response output stream
Response.BinaryWrite(extractor.GetCurrentImageAsArrayOfBytes());
}
i++;
} while (extractor.GetNextImage()); // Advance image enumeration
}
Response.End();
}
}
}