我公司通过Excel中从外部公司接收数据。 我们出口到这个SQL服务器上运行的数据报告。 他们现在改变为PDF格式,有没有办法可靠端口从PDF中的数据并将其插入到我们的SQL Server 2008数据库?
这会需要写一个应用程序或者是有这样做的一个自动化的方式?
我公司通过Excel中从外部公司接收数据。 我们出口到这个SQL服务器上运行的数据报告。 他们现在改变为PDF格式,有没有办法可靠端口从PDF中的数据并将其插入到我们的SQL Server 2008数据库?
这会需要写一个应用程序或者是有这样做的一个自动化的方式?
这一切都取决于如何,他们已经包含在PDF中的数据。 一般来说,这里有两种可能的情况:
该数据只是一个PDF中的文本对象。 你需要使用一个工具从PDF提取文本,然后将其插入到你的数据库。
该数据包含在一个PDF表单字段中。 你需要使用一个工具从表单字段中提取数据,并将其插入到你的数据库。
但愿场景#2适用于你,因为这正是PDF形式设计。 方案1是真的只是一个黑客,如果你没有任何其他选择,你会只使用。 从PDF中提取纯文本是不容易或准确正如您所料。
如果您收到一个PDF表单,那么所有你需要做的是匹配的PDF形式的权利领域在数据库中的相应字段,然后吸数据。 这个过程可能,如果你写了自己的应用程序可以完全自动化。
这会需要写一个应用程序或者是有这样做的一个自动化的方式?
是的,这两个选项需要编写一个应用程序或购买的应用程序。 如果你写你自己的应用程序,那么你就需要找到一个支持检索从表单字段数据,或从PDF文件中提取文本第三方PDF库。
前面已经提到-你将不得不编写一个应用程序来做到这一点,但最好你就能够得到来自外部公司的原始数据,而不必处理PDF。
但是,如果你想从PDF中提取数据,我用iText的 ,并发现它是非常强大的,可靠的和最重要的-自由 。 它有Java和.NET版本- iTextSharp的是.NET版本。 它允许您以编程方式操纵PDF文档,它会在PDF的内容暴露给您编写的应用程序。
免责声明:我与下属的制造商ByteScout PDF SDK提取工具
只是想分享从PDF文本数据提取一些额外的现实生活场景:
使用iTextSharp的,请执行下列操作
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using iTextSharp.text.pdf;
protected void BtnSubmit_Click(object sender, EventArgs e)
{
String FilePath = @"GetFilePath";
StringBuilder sb = new StringBuilder();
PdfReader reader = new PdfReader(FilePath);
PdfStamper myStamp = new PdfStamper(reader, new FileStream(FilePath + "_TMP", FileMode.Create));
AcroFields form = myStamp.AcroFields;
if (form.GetField("GetFieldIdFromPDF") != null)
sb.Append(form.GetField("GetFieldIdFromPDF").ToString());
}
我想你将不得不为此编写的应用程序。 这个问题谈到从PDF中提取数据 。 在此之后,你可以将数据导出为Excel格式,使您可以保留现有的导入格式。
Look for information on "Scraping" the data from the PDF. I believe Adobe has some tools that allow you to do this for simple text but I've not used them.
Honestly though, I would try to do anything you can to get this data in a raw format from your vendor.