You are viewing limited content. For full access, please sign in.

Question

Question

Replace OCR Text with Query Results

asked on April 29, 2020

I want to replace the OCR text with my own on a document.  I dont see this in the worklfow toolbox.  Has anyone accomplished this.  I want to query another database on the server and write the results of that query into the document text.

0 0

Replies

replied on April 29, 2020

To write to the documents text layer, you will need to use an SDK Script activity.

Collect the desired new text to add to page 1's text layer into a token named "TextToAdd".  Then add a SDK Script activity and set its default entry to be the entry you want to add the text to.  Then in the code, use the following:

            ' Get the new text to add to the first page
            Dim TextToWrite As String = GetTokenValue("TextToAdd")
            ' Create object to hold existing text on first page
            Dim DocText As String = Nothing
            ' Only process if entry is a Document
            If BoundEntryInfo.EntryType = EntryType.Document Then
                Try
                    'Get DocumentInfo object from EntryInfo
                    Using Doc As DocumentInfo = TryCast(BoundEntryInfo, DocumentInfo)
                        ' Only process if the document has at least 1 page
                        If Doc.PageCount > 0 Then
                            ' Get PageInfo for the first page
                            Dim PI As PageInfo = Doc.GetPageInfo(1)
                            ' Read page text into streamreader
                            Using sr as System.IO.StreamReader = PI.ReadTextPagePart()
                                ' Only process if the streamreader has data
                                If sr.Peek >= 0 Then
                                    ' Get the existing page text
                                    DocText = sr.ReadToEnd()
                                End If
                            End Using
                            ' check if existing text is present
                            If Not String.IsNullOrEmpty(DocText) Then
                                ' add new text to the end of existing text
                                TextToWrite = DocText & Environment.NewLine & TextToWrite
                            End If
                            ' Write text to first page
                            PI.WriteTextPagePart(TextToWrite)
                        End If
                    End Using
                Catch ex As Exception
                    ' Report errror back to Workflow
                    WorkflowApi.TrackError(ex.Message)
                End Try
            End If

This will add your desired text to the end of the existing text layer for the first page of the document that it is run on. 

4 0
replied on April 30, 2020 Show version history

Worked like a charm Bert.  You saved me a ton of time.  

Is there a way to save this off to reuse.  I can see needing this a lot.

0 0
replied on March 14

Bert, this sounds like something I need for a project I'm currently working on, but I can't get the script to be valid. I am retrieving the text of a file in the repository and assigning it to a token in my workflow. I then search the repository for another entry that I want to replace the text of with the first entry. Then in my SDK script I have pasted your code, but it won't let me save and doesn't give me any errors. Any idea what I'm missing?

0 0
replied on March 24

Did you select VB.Net for your script activity?

What happens when you try to close the Script Editor?

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.