PDF导入到SQL

时间:2013-05-22 22:23:07

标签: vb.net sql-server-2008

我有一个pdf文件,我转换为单独的HTML文件, 我的目标是将它们导入MS SQL,以便我可以在表中搜索特定的标识符 在网页上显示结果。

我能够读取所有的html文件,并将其放入SQL表中,但转换器会切断完整的句子,因为它们被拆分为多个div容器。

<div class="S2"> DA0-17.0</div>
<div class="S5"> 1416</div>
<div class="S2"> Required when the subscriber is the same person as the patient. If</div>
<div class="S5"> 2698</div>
<div class="S2"> the subscriber is not the same person as the patient, do not use</div>
<div class="S2"> this element.</div>
<div class="S4"> CODE</div>
<div class="S4"> DEFINITION</div>
<div class="S2"> 18</div>
<div class="S2"> Self</div>

我正在尝试检索S2类。

我不需要S5或S4类 附件是SQL结果的示例, 根据需要的字段数量动态创建插入字符串。

SQL Results

以下是创建插入值的部分:

If iFieldNum = 1 Then
    sInsertstring = sInsertstring + "id2, " + "num" + CStr(iFieldNum)
    sInsertValues = sInsertValues + "'" + msbr + "', '" + ms2 + "'"
Else
    sInsertstring = sInsertstring + ", num" + CStr(iFieldNum)
    sInsertValues = sInsertValues + ", '" + ms2 + "'"
End If
iFieldNum += 1

希望有人可以帮助我解决这个问题,或者指出我如何解决这个问题的正确方向。 完整代码可根据要求提供。 谢谢你的时间, 罗伯特。

Ps:这是基于应用程序,而不是Web

回复Edper:

Dim fFileName As String
Dim dListing As New DirectoryInfo(My.Settings.ImportDir)
Dim aFileArray As FileInfo() = dListing.GetFiles()
Dim fFiles As FileInfo
    For Each fFiles In aFileArray
    fFileName = fFiles.Name
    Dim fStream = New FileStream(My.Settings.ImportDir + "\" + fFileName, FileMode.Open)
    Dim sReader = New StreamReader(fStream)

回复Edper 我想要的是以下内容:

在HTML文件中(大约700个)是具有不同类名的div容器。

 <div class="S2"> Required when the subscriber is the same person as the patient. If</div>
 <div class="S5"> 2698</div>
 <div class="S2"> the subscriber is not the same person as the patient, do not use</div>
 <div class="S2"> this element.</div>

我能够为每次出现创建插入语句,但是我希望<div class="S5"><div class="S4">之间的“描述”是一长行文本,此时它被拆分为3部分我不想要,我不知道如何将它们结合起来 我对VB.NET的了解相当有限,而且我正在努力学习,因为我在经典ASP方面是有效的,但在这种情况下无效。

对于我的问题的错误表述,我很抱歉 我根本不知道如何进一步解释它..

1 个答案:

答案 0 :(得分:0)

您可以在表单中删除Webbrowser控件,然后将其设为visible = false以免显示。然后只为字符串构建器声明一个全局变量,如:

Dim builder As New StringBuilder

然后,当您获得此代码中的所有HTML文件时,您可能会这样做:

Dim fFileName As String
Dim dListing As New DirectoryInfo(My.Settings.ImportDir)
Dim aFileArray As FileInfo() = dListing.GetFiles()
Dim fFiles As FileInfo

For Each fFiles In aFileArray
    WebBrowser1.Navigate(dListing&"\"&fFiles)
Next

当使用WebBrowser1_DocumentCompleted事件完全加载html时,您可以从多个S2获取所有类(如divs),如:

    Dim elems As HtmlElementCollection
    elems = WebBrowser1.Document.GetElementsByTagName("DIV")

    For Each elem As HtmlElement In elems

        If (elem.GetAttribute("className") = "S2") Then
            builder.Append(elem.InnerHtml).Append(" ")
        End If
    Next

    'Do something for string builder (i.e. builder.ToString()) here before clearing the String Builder like this could be where you insert the records to your table probably

    builder.Clear()