我的公司通过Excel从外部公司接收数据。我们将其导出到SQL Server以运行数据报告。它们现在正在改为PDF格式,有没有办法可靠地从PDF中移植数据并将其插入我们的SQL Server 2008数据库?
这是否需要编写应用程序,或者是否有自动执行此操作的方式?
答案 0 :(得分:5)
如前所述 - 必须编写应用程序才能执行此操作,但理想情况下,您可以从外部公司获取原始数据,而不必处理PDF。
但是,如果您做想要从PDF中提取数据,我使用iText 并发现它非常强大,可靠,最重要的是 - 免费击>。它有Java和.Net风格 - iTextSharp是.Net版本。它允许您以编程方式操作PDF文档,它会将PDF的内容暴露给您编写的应用程序。
答案 1 :(得分:4)
这完全取决于他们如何在PDF中包含数据。一般来说,这里有两种可能的情况:
数据只是PDF中的文本对象。您需要使用工具从PDF中提取文本,然后将其插入数据库。
数据包含在PDF格式的表单字段中。您需要使用工具从表单字段中提取数据并将其插入数据库。
希望情景#2适用于您,因为这正是PDF表单的设计目标。场景#1实际上只是一个你只能使用的黑客,如果你没有任何其他选择。从PDF中提取纯文本并不像您期望的那样简单或准确。
如果您收到PDF表单,那么您需要做的就是将PDF表单中的正确字段与数据库中的相应字段匹配,然后填入数据。如果您编写自己的应用程序,则此过程可以完全自动化。
这需要编写应用程序或 是否有自动化的方式 此?
是的,这两个选项都需要编写应用程序或购买应用程序。如果您编写自己的应用程序,则需要找到支持从表单字段检索数据或从PDF中提取文本的第三方PDF库。
答案 2 :(得分:3)
免责声明:我与ByteScout PDF Extractor SDK工具
的制造商有联系只想分享一些从PDF中提取文本数据的其他现实场景:
答案 3 :(得分:1)
使用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());
}
答案 4 :(得分:0)
我认为你必须为此编写一个应用程序。这个问题谈到了extracting data from PDF。在此之后,您可以将数据导出为Excel格式,以便保留现有的导入格式。
答案 5 :(得分:0)
查找有关“刮取”PDF中数据的信息。我相信Adobe有一些工具允许你为简单的文本做这个,但我没有使用它们。
老实说,我会尝试尽一切可能从您的供应商那里以原始格式获取这些数据。